code: def annotate_arg(arg_name, with_annotation):
      
      arg_binding_key = arg_binding_keys.new(arg_name, with_annotation)
      return _get_pinject_wrapper(locations.get_back_frame_loc(),
                                  arg_binding_key=arg_binding_key)
docs: Adds an annotation to an injected arg.
  
      arg_name must be one of the named args of the decorated function, i.e.,
        @annotate_arg('foo', with_annotation='something')
        def a_function(foo):  # ...
      is OK, but
        @annotate_arg('foo', with_annotation='something')
        def a_function(bar, **kwargs):  # ...
      is not.
  
      The same arg (on the same function) may not be annotated twice.
  
      Args:
        arg_name: the name of the arg to annotate on the decorated function
        with_annotation: an annotation object
      Returns:
        a function that will decorate functions passed to it