def _self_arg(bindings: inspect.BoundArguments) -> Optional[str]:
    """Guess whether the given bindings have a "self" argument and return its
    name.

    This guesses that first arg that contains "self" is a self argument.
    """

    if len(bindings.arguments) == 0:
        return None

    firstarg = next(iter(bindings.arguments))

    if "self" in firstarg:
        return firstarg

    return None
Guess whether the given bindings have a "self" argument and return its
    name.

    This guesses that first arg that contains "self" is a self argument.
    
src/core/trulens/core/utils/pyschema.py