def METHOD_NAME(self, sobj_name, detailed=False, format="pprint"):
    """Describe an sobject.
    Arguments:
        sobj_name - sobject name to describe. e.g. "Account", "Contact"
        detailed - set to `True` to get detailed information about object
        format -- one of these values:
        - "pprint" -- string in easily readable Python dict shape (default)
        - "obj" -- ordinary Python objects
    For example:
        >>> describe("Account")
        >>> data = describe("Account", detailed=True, format=obj)
    """
    from pprint import pprint
    data = getattr(self._sf, sobj_name).METHOD_NAME()
    if detailed:
        rc = data
    else:
        rc = dict(_summarize(field) for field in data["fields"])
    if format == "pprint":
        pprint(rc)
    elif format == "obj":
        return rc
    else:
        raise TypeError(f"Unknown format {format}")