<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def geo(map_data, **kwargs):
 """Draw a map in the current context figure. Parameters map_data: string or bqplot.map (default: WorldMap) Name of the map or json file required for the map data. options: dict (default: {}) Options for the scales to be created. If a scale labeled 'x' is required for that mark, options['x'] contains optional keyword arguments for the constructor of the corresponding scale type. axes_options: dict (default: {}) Options for the axes to be created. If an axis labeled 'x' is required for that mark, axes_options['x'] contains optional keyword arguments for the constructor of the corresponding axis type. """

    scales = kwargs.pop('scales', _context['scales'])
    options = kwargs.get('options', {})
    if 'projection' not in scales:
        scales['projection'] = Mercator(**options.get('projection', {}))
    kwargs['scales'] = scales
    if isinstance(map_data, string_types):
        kwargs['map_data'] = topo_load('map_data/' + map_data + '.json')
    else:
        kwargs['map_data'] = map_data
    return _draw_mark(Map, **kwargs)