Ë
    €Ï8  ã                   ó2   — d Z ddlmZ ddlmZ ddlmZ d„ Zy)z*Functions for formatting debugging output.é    )Úabsolute_import)Údivision)Úunicode_literalsc                 óÜ   — t        | j                  j                  «       d„ ¬«      }dj                  | j                  j
                  dj                  d„ |D «       «      t        | «      ¬«      S )aœ  Generic debug output for object that lists its property keys and values.

  Use as function:
  x = X()
  generic_repr(x)
  # X(y='hi', z=1)  # ID: 140030868127696

  Use as addition to class:
  class X:
    def __init__(self, y='hi'):
      self.y = y
      self.z = 1

    def __repr__(self):
      return generic_repr(self)
  # X(y='hi', z=1)  # ID: 140030868127696

  Note: Declaring a class by running eval on this repr output will work
  only if all properties are settable in the class's __init__. Nested objects
  may also cause an issue.

  Args:
    class_instance (object): Instance of class to print debug output for.

  Returns:
    Debug output string.
  c                 ó   — | d   S )Nr   © )Úkey_value_pairs    ú,lib/googlecloudsdk/core/util/debug_output.pyÚ<lambda>zgeneric_repr.<locals>.<lambda>4   s	   €  °Ò!2ó    )Úkeyz&{class_name}({attributes})  # ID: {id}z, c              3   óF   K  — | ]  \  }}d j                  ||«      –— Œ y­w)z{}={!r}N)Úformat)Ú.0ÚkÚvs      r
   Ú	<genexpr>zgeneric_repr.<locals>.<genexpr>7   s'   è ø€ ð @Ù->¡T Q¨ˆ)×
Ñ
˜1˜a×
 Ñ->ùs   ‚!)Ú
class_nameÚ
attributesÚid)ÚsortedÚ__dict__Úitemsr   Ú	__class__Ú__name__Újoinr   )Úclass_instanceÚsorted_attributess     r
   Úgeneric_reprr      sq   € ô8 Ø×Ñ×#Ñ#Ó%Ù
2ô4Ðð 
2×	8Ñ	8Ø×)Ñ)×2Ñ2Ø—‘ñ @Ù->ó@ó @ä	ˆNÓ	ð	 
9ó 
ð r   N)Ú__doc__Ú
__future__r   r   r   r   r   r   r
   Ú<module>r"      s   ðñ 1å &Ý Ý 'ó#r   