docs: def __get_dynamic_attr(self, attname, arg, default=None):
          """
          Gets "something" from self, which could be an attribute or
          a callable with either 0 or 1 arguments (besides self).
          
          Stolen from django.contrib.syntication.feeds.Feed.
          """
          try:
              attr = getattr(self, attname)
          except AttributeError:
              return default
          if callable(attr):
              # Check func_code.co_argcount rather than try/excepting the
              # function and catching the TypeError, because something inside
              # the function may raise the TypeError. This technique is more
              # accurate.
              if hasattr(attr, 'func_code'):
                  argcount = attr.func_code.co_argcount
              else:
                  argcount = attr.__call__.func_code.co_argcount
              if argcount == 2: # one argument is 'self'
                  return attr(arg)
              else:
                  return attr()
          return attr