As move_base and thus also the BaseGlobalPlanner interface are written in C++ you can't trivially inject your Python code there. Here are a few options I see:
- Use the already available A* implementation (see global_planner) and not your own.
- Manually reimplement in C++ (or try some sort of Python to C++ tool, but I'd expect that to be more of a timesink than anything else)
- Implement a thin BaseGlobalPlanner plugin that calls your Python planner running in it's own external (rospy) ROS node, for instance via a service call. In that case, the C++ plugin doesn't do more than forwarding the request outside and then forwarding the response via the planner interface.