parameters: (*args, **kwargs)
docstring: 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
docstring_summary: 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.
docstring_tokens: 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 .
function: def do_map(*args, **kwargs):
      """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
      """
      context = args[0]
      seq = args[1]
  
      if len(args) == 2 and 'attribute' in kwargs:
          attribute = kwargs.pop('attribute')
          if kwargs:
              raise FilterArgumentError('Unexpected keyword argument %r' %
                  next(iter(kwargs)))
          func = make_attrgetter(context.environment, attribute)
      else:
          try:
              name = args[2]
              args = args[3:]
          except LookupError:
              raise FilterArgumentError('map requires a filter argument')
          func = lambda item: context.environment.call_filter(
              name, item, args, kwargs, context=context)
  
      if seq:
          for item in seq:
              yield func(item)
function_tokens: def do_map ( * args , * * kwargs ) : context = args [ 0 ] seq = args [ 1 ] if len ( args ) == 2 and 'attribute' in kwargs : attribute = kwargs . pop ( 'attribute' ) if kwargs : raise FilterArgumentError ( 'Unexpected keyword argument %r' % next ( iter ( kwargs ) ) ) func = make_attrgetter ( context . environment , attribute ) else : try : name = args [ 2 ] args = args [ 3 : ] except LookupError : raise FilterArgumentError ( 'map requires a filter argument' ) func = lambda item : context . environment . call_filter ( name , item , args , kwargs , context = context ) if seq : for item in seq : yield func ( item )