docs: def _do_magic_import(self, rule, p_selectors, p_parents, p_children, scope, media, c_lineno, c_property, c_codestr, code, name):
          """
          Implements @import for sprite-maps
          Imports magic sprite map directories
          """
          if callable(STATIC_ROOT):
              files = sorted(STATIC_ROOT(name))
          else:
              glob_path = os.path.join(STATIC_ROOT, name)
              files = glob.glob(glob_path)
              files = sorted((file[len(STATIC_ROOT):], None) for file in files)
  
          if files:
              # Build magic context
              map_name = os.path.normpath(
                  os.path.dirname(name)).replace('\\', '_').replace('/', '_')
              kwargs = {}
  
              def setdefault(var, val):
                  _var = '$' + map_name + '-' + var
                  if _var in rule[CONTEXT]:
                      kwargs[var] = interpolate(rule[CONTEXT][_var], rule)
                  else:
                      rule[CONTEXT][_var] = val
                      kwargs[var] = interpolate(val, rule)
                  return rule[CONTEXT][_var]
  
              setdefault(
                  'sprite-base-class', StringValue('.' + map_name + '-sprite'))
              setdefault('sprite-dimensions', BooleanValue(False))
              position = setdefault('position', NumberValue(0, '%'))
              spacing = setdefault('spacing', NumberValue(0))
              repeat = setdefault('repeat', StringValue('no-repeat'))
              names = tuple(os.path.splitext(
                  os.path.basename(file))[0] for file, storage in files)
              for n in names:
                  setdefault(n + '-position', position)
                  setdefault(n + '-spacing', spacing)
                  setdefault(n + '-repeat', repeat)
              sprite_map = _sprite_map(name, **kwargs)
              rule[CONTEXT]['$' + map_name + '-' + 'sprites'] = sprite_map
              ret = '''
                  @import "compass/utilities/sprites/base";
  
                  // All sprites should extend this class
                  // The %(map_name)s-sprite mixin will do so for you.
                  #{$%(map_name)s-sprite-base-class} {
                      background: $%(map_name)s-sprites;
                  }
  
                  // Use this to set the dimensions of an element
                  // based on the size of the original image.
                  @mixin %(map_name)s-sprite-dimensions($name) {
                      @include sprite-dimensions($%(map_name)s-sprites, $name);
                  }
  
                  // Move the background position to display the sprite.
                  @mixin %(map_name)s-sprite-position($name, $offset-x: 0, $offset-y: 0) {
                      @include sprite-position($%(map_name)s-sprites, $name, $offset-x, $offset-y);
                  }
  
                  // Extends the sprite base class and set the background position for the desired sprite.
                  // It will also apply the image dimensions if $dimensions is true.
                  @mixin %(map_name)s-sprite($name, $dimensions: $%(map_name)s-sprite-dimensions, $offset-x: 0, $offset-y: 0) {
                      @extend #{$%(map_name)s-sprite-base-class};
                      @include sprite($%(map_name)s-sprites, $name, $dimensions, $offset-x, $offset-y);
                  }
  
                  @mixin %(map_name)s-sprites($sprite-names, $dimensions: $%(map_name)s-sprite-dimensions) {
                      @include sprites($%(map_name)s-sprites, $sprite-names, $%(map_name)s-sprite-base-class, $dimensions);
                  }
  
                  // Generates a class for each sprited image.
                  @mixin all-%(map_name)s-sprites($dimensions: $%(map_name)s-sprite-dimensions) {
                      @include %(map_name)s-sprites(%(sprites)s, $dimensions);
                  }
              ''' % {'map_name': map_name, 'sprites': ' '.join(names)}
              return ret