code: def do_map(*args, **kwargs):
      
      seq, func = prepare_map(args, kwargs)
      if seq:
          for item in seq:
              yield func(item)
docs: Applies a filter on a sequence of objects or looks up an attribute.
      This is useful when dealing with lists of objects but you are really
      only interested in a certain value of it.
  
      The basic usage is mapping on an attribute.  Imagine you have a list
      of users but you are only interested in a list of usernames:
  
      .. sourcecode:: jinja
  
          Users on this page: {{ users|map(attribute='username')|join(', ') }}
  
      Alternatively you can let it invoke a filter by passing the name of the
      filter and the arguments afterwards.  A good example would be applying a
      text conversion filter on a sequence:
  
      .. sourcecode:: jinja
  
          Users on this page: {{ titles|map('lower')|join(', ') }}
  
      .. versionadded:: 2.7