docs: def parse_assign_target(self, with_tuple=True, name_only=False,
                              extra_end_rules=None):
          """Parse an assignment target.  As Jinja2 allows assignments to
          tuples, this function can parse all allowed assignment targets.  Per
          default assignments to tuples are parsed, that can be disable however
          by setting `with_tuple` to `False`.  If only assignments to names are
          wanted `name_only` can be set to `True`.  The `extra_end_rules`
          parameter is forwarded to the tuple parsing function.
          """
          if name_only:
              token = self.stream.expect('name')
              target = nodes.Name(token.value, 'store', lineno=token.lineno)
          else:
              if with_tuple:
                  target = self.parse_tuple(simplified=True,
                                            extra_end_rules=extra_end_rules)
              else:
                  target = self.parse_primary(with_postfix=False)
              target.set_ctx('store')
          if not target.can_assign():
              self.fail('can\'t assign to %r' % target.__class__.
                        __name__.lower(), target.lineno)
          return target