
    T	                         S r SSKJr  SSKJr  SSKJr  SSKJr  SSKr " S S\5      r " S	 S
\R                  " \\
5      5      rg)zSimple immutable data object.    )absolute_import)division)print_function)unicode_literalsNc                   <   ^  \ rS rSrSrU 4S jr\S 5       rSrU =r	$ )	_DataType   zDumb immutable data type.c                    >^  UR                  5       nUR                  S[        5       5      nUR                  U 4S j[	        U5       5       5        [
        [        T ]  T XU5      $ )NNAMESc              3   N   >#    U  H  u  pUTR                  U5      4v   M     g 7fN)_CreateAccessor).0inameclss      1lib/googlecloudsdk/command_lib/code/dataobject.py	<genexpr>$_DataType.__new__.<locals>.<genexpr>$   s(      H6F71s""1%&6Fs   "%)copygettupleupdate	enumeratesuperr   __new__)r   	classnamebases
class_dictnames	__class__s   `    r   r   _DataType.__new__!   s\    "JNN7EG,E H6?6FH H C(i
KK    c                 "   ^  [        U 4S j5      $ )z"Create an tuple accessor property.c                    > U T   $ r    )tplr   s    r   <lambda>+_DataType._CreateAccessor.<locals>.<lambda>,   s	    Ar#   )property)r   s   `r   r   _DataType._CreateAccessor)   s     &''r#   r&   )
__name__
__module____qualname____firstlineno____doc__r   staticmethodr   __static_attributes____classcell__r!   s   @r   r   r      s     !L ( (r#   r   c                   2   ^  \ rS rSrSrU 4S jrS rSrU =r$ )
DataObject/   z!Parent class of dumb data object.c                    >^ [        U S[        5       5      n[        T5      [        U5      -
  nU(       a  [        S[	        U5      -   5      e[        U4S jU 5       5      n[
        [        U ]  X5      $ )Nr   zInvalid names: c              3   <   >#    U  H  oT;   a  TU   OS v   M     g 7fr   r&   )r   r   kwargss     r   r   %DataObject.__new__.<locals>.<genexpr>8   s     KUTtD8Us   )getattrr   set
ValueErrorreprr   r6   r   )r   r:   r    invalid_namesr'   r!   s    `   r   r   DataObject.__new__2   s`    C%'*EK#e*,M(4+>>??
KUK
KCS)#33r#   c                 j   ^ ^ [        UU 4S jT R                   5       5      nT R                  " S0 UD6$ )Nc           
   3   `   >#    U  H#  oTR                  U[        TUS 5      5      4v   M%     g 7fr   )r   r<   )r   nchangesselfs     r   r   %DataObject.replace.<locals>.<genexpr>=   s(     OJq7;;q'$4"89:Js   +.r&   )dictr   r!   )rF   rE   outs   `` r   replaceDataObject.replace;   s)    
ODJJO
OC>> C  r#   r&   )	r,   r-   r.   r/   r0   r   rJ   r2   r3   r4   s   @r   r6   r6   /   s    )4! !r#   r6   )r0   
__future__r   r   r   r   sixtyper   with_metaclassr   r6   r&   r#   r   <module>rP      s>    $ &  % ' 
( (.!##Iu5 !r#   