code: def simple_repr(
      obj,
      attrs: tp.Optional[tp.Sequence[str]] = None,
      overrides: dict = {},
  ):
      """
      Return a simple representation string for `obj`.
      If `attrs` is not None, it should be a list of attributes to include.
      """
      params = inspect.signature(obj.__class__).parameters
      attrs_repr = []
      if attrs is None:
          attrs = list(params.keys())
      for attr in attrs:
          display = False
          if attr in overrides:
              value = overrides[attr]
          elif hasattr(obj, attr):
              value = getattr(obj, attr)
          else:
              continue
          if attr in params:
              param = params[attr]
              if param.default is inspect._empty or value != param.default:  # type: ignore
                  display = True
          else:
              display = True
  
          if display:
              attrs_repr.append(f"{attr}={value}")
      return f"{obj.__class__.__name__}({','.join(attrs_repr)})"
  
file_path: julius/julius/utils.py
imports: import inspect
  import typing
  import sys
  import time
label_desc: Use image node_id 1 for calling a global function with example usage: simple_repr(obj, attrs, overrides) and returns: obj, str, str, str