code: def ordered_repr(obj: object, attrlist: Iterable[str],
                   joiner: str = COMMA_SPACE) -> str:
      
      return "<{classname}({kvp})>".format(
          classname=type(obj).__name__,
          kvp=joiner.join("{}={}".format(a, repr(getattr(obj, a)))
                          for a in attrlist)
      )
docs: Shortcut to make :func:`repr` functions ordered.
      Define your :func:`__repr__` like this:
  
      .. code-block:: python
  
          def __repr__(self):
              return ordered_repr(self, ["field1", "field2", "field3"])
  
      Args:
          obj: object to display
          attrlist: iterable of attribute names
          joiner: string with which to join the elements
  
      Returns:
          string: :func:`repr`-style representation