c0fec0de/pyebus

View on GitHub
pyebus/util.py

Summary

Maintainability
A
35 mins
Test Coverage
"""Utilities."""


def repr_(obj, args=None, kwargs=None):
    """
    Return Python Representation String.

    Keyword Args:
        args (tuple): Tuple with all arg values
        kwargs (tuple): Tuple of (key, value, default) tuples.
    """
    classname = obj.__class__.__qualname__
    args = [repr(arg) for arg in args or []]
    if kwargs:
        for key, value, default in kwargs:
            if value != default:
                args.append(f"{key}={value!r}")
    argsjoined = ", ".join(args)
    return f"{classname}({argsjoined})"