docs: def obj_repr(obj, *args, **kwargs):
      """
      Returns human-readable string representation of an object given that it has
      been created by calling constructor with the specified positional and
      keyword arguments.
  
      This is a convenience function to help implement custom `__repr__()`
      methods. For example:
  
      >>> class Animal(object):
      ...    def __init__(self, hit_points, color, **kwargs):
      ...       self.hit_points = hit_points
      ...       self.color = color
      ...       self.hostile = kwargs.get("hostile", False)
      ...    def __repr__(self):
      ...       return obj_repr(self, self.hit_points, self.color, hostile = self.hostile)
      >>> dog = Animal(2.3, "purple")
      >>> repr(dog)
      "Animal(2.3, 'purple', hostile = False)"
      """
      cls_name = type(obj).__name__
      return "%s(%s)" % (cls_name, args_repr(*args, **kwargs), )