
    Ώkh                         d dl Z d dlZd dlZddlmZ d Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Z e j                         Z e       ZefdZ G d de      Zd Z e       Zd ZddZd Zd Zd Zd Zd Zy)    N   )
underscorec                     t        t        d t        t        j                  t
        |       t        |                   d       }t        | t        | |             t        |        || _
        | S )Nc                      | d   j                   S )Nr   )sort_key)fields    K/var/www/teggl/fontify/venv/lib/python3.12/site-packages/cobble/__init__.py<lambda>zdata.<locals>.<lambda>   s    %(++     )key)sortedfiltermap	functoolspartial_read_fielddir_add_methods_methods	visitable_cobble_fields)clsfieldss     r	   datar      s^    	!!+s3SX>	
 ,F hsF+,cNCJr   c                 ~    t        || j                  | i      }|j                         D ]  \  }}t        | ||        y N)_compile_definitions__name__itemssetattr)r   methodsdefinitionsr   values        r	   r   r      s?    &ws0CDK!'') !
US% !r   c                     |D cg c]  \  }}|	 }}}t        | |      t        | |      t        | |      t               t	        | |      gS c c}}w r   )
_make_init
_make_repr_make_eq	_make_neq
_make_hash)r   r   namer   namess        r	   r   r      sU    %+,kdET,E,33e3  -s   Ac                     d dj                  fd|D              }dj                  d |D              }dj                  ||| j                        S )Nc                 d    |j                   t        k(  r| S dj                  | |j                         S )Nz{0}={1})default
_undefinedformat)r*   r   s     r	   make_argz_make_init.<locals>.make_arg'   s*    ==J&K##D%--88r   , c              3   6   K   | ]  \  }} ||        y wr    ).0r*   r   r1   s      r	   	<genexpr>z_make_init.<locals>.<genexpr>-   s     LkdEHT51Ls    c              3   D   K   | ]  \  }}d j                  |        yw)z
    self.{0} = {0}Nr0   )r5   r*   r   s      r	   r6   z_make_init.<locals>.<genexpr>.   s'      !D% 	%%d+!s    z<def __init__(self, {0}):{1}
    super({2}, self).__init__()
)joinr0   r   )r   r   args_sourceassignments_sourcer1   s       @r	   r%   r%   &   si    9 ))LVLLK !!!  LRRS^`rtw  uA  uA  B  Br   c           	          dj                  | j                  dj                  d t        |      D              dj                  d |D                    S )Nz7def __repr__(self):
     return '{0}({1})'.format({2})
r2   c              3   F   K   | ]  \  }}d j                  ||        yw)z{0}={{{1}}}Nr9   )r5   indexr*   s      r	   r6   z_make_repr.<locals>.<genexpr>8   s!     Xt-&&tU3Xs   !c              3   >   K   | ]  }d j                  |        yw)zrepr(self.{0})Nr9   )r5   r*   s     r	   r6   z_make_repr.<locals>.<genexpr>9   s     BD"))$/B   )r0   r   r:   	enumerate)r   r+   s     r	   r&   r&   5   sF    FMM		XyQVGWXX		BEBB r   c                     dj                  | j                        g|D cg c]  }dj                  |       c}z   }dj                  dj                  |            S c c}w )Nzisinstance(other, {0})zself.{0} == other.{0}z'def __eq__(self, other):
    return {0}z and )r0   r   r:   )r   r+   r*   
conditionss       r	   r'   r'   =   sY    *11#,,?@:?@$	 	'	'	-@AJ5<<W\\*=UVV 	As   Ac                       y)Nz3def __ne__(self, other): return not (self == other)r4   r4   r   r	   r(   r(   C   s    @r   c                     | j                   g|D cg c]  }dj                  |       c}z   }dj                  dj                  |            S c c}w )Nzself.{0}z&def __hash__(self): return hash(({0}))r2   )r   r0   r:   )r   r+   r*   elementss       r	   r)   r)   G   sH    ~U KT!2!24!8 KKH3::499X;NOO !Ls   Ac                 N    dj                  |t        |      t        |             S )Nzddef _accept{args}(self, visitor{args_signature}): return visitor.{method_name}(self{args_signature}))argsargs_signaturemethod_name)r0   _args_signature_visit_method_name)r   rI   s     r	   _make_acceptrN   L   s.    qxx&t,&s+ y  r   c                 `    | t         d fvrt        d      t        t        t              |       S )Nzdefault value must be Noner.   )r/   	TypeError_Fieldnext_sort_key_countrP   s    r	   r   r   X   s-    z4((455$'99r   c                       e Zd Zd Zy)rR   c                      || _         || _        y r   )r   r.   )selfr   r.   s      r	   __init__z_Field.__init___   s     r   N)r   
__module____qualname__rX   r4   r   r	   rR   rR   ^   s    r   rR   c                 D    t        | |      }t        |t              r||fS y r   )getattr
isinstancerR   )r   r*   members      r	   r   r   d   s%    S$F&&!V|r   c                 0    t         j                  |        | S r   )_visitablesaddr   s    r	   r   r   m   s    OOCJr   c                    |d}t        t        d t        |                   }|D ]  }t        |t	        ||      g        dfd|D        }dj                  | j                  t        |      |dj                  |            }t        |gt        t        i      }t        t        |j                                     S )	Nr   c                     | t         v S r   )r`   )subclasss    r	   r
   zvisitor.<locals>.<lambda>w   s    [0 r   rI   z@
    @abc.abstractmethod
    def {0}(self, value):
        pass
c              3   R   K   | ]  }j                  t        |               y wr   )r0   rM   )r5   re   abstract_method_templates     r	   r6   zvisitor.<locals>.<genexpr>   s*       	!''(:8(DEs   $'z
class {name}Visitor(metaclass=abc.ABCMeta):

    def visit(self, value{args_signature}):
        return value._accept{args}(self{args_signature})

{abstract_methods}

)r*   rJ   rI   abstract_methods)setr   _subclassesr   rN   r0   r   rL   r:   r   abcrS   itervalues)r   rI   
subclassesre   rj   source
definitionrh   s          @r	   visitorrs   r   s    |V0C J  DXXD ABCD 
"
 F	"4(	YY/0	    &vhc
;JZ&&()**r   c                 F    dj                  d t        d|       D              S )Nr7   c              3   >   K   | ]  }d j                  |        yw)z, arg{0}Nr9   )r5   	arg_indexs     r	   r6   z"_args_signature.<locals>.<genexpr>   s     PI:$$Y/PrA   r   )r:   rangerf   s    r	   rL   rL      s    77Pq$PPPr   c                 t    dt         i}|j                  |       i }t        dj                  |       ||       |S )Nrm   ri   )rm   updateexecr:   )r"   bindingsdefinition_globalsstashs       r	   r   r      s:    h'E;	!3U;Lr   c                 2    dt        | j                        z   S )Nvisit_)r   r   rb   s    r	   rM   rM      s    j...r   c                     | j                         }d}|t        |      k  r%|t        ||         z  }|dz  }|t        |      k  r%|S )Nr   r   )__subclasses__lenrl   )r   rp   r?   s      r	   rl   rl      sT    ##%JE
#j/
!k*U"344

 #j/
! r   c                      t               }t         fd|j                  D              }|j                  |        t               di |S )Nc              3   @   K   | ]  \  }}|t        |      f  y wr   )r\   )r5   r*   r   objs      r	   r6   zcopy.<locals>.<genexpr>   s)      D% 
wsD!"s   r4   )typedictr   ry   )r   kwargsobj_typeattrss   `   r	   copyr      sK    CyH #22 E 
LL49ur   r   )	itertoolsr   rm   
inflectionr   r   r   r   r%   r&   r'   r(   r)   rN   countrT   objectr/   r   rR   r   rk   r`   r   rs   rL   r   rM   rl   r   r4   r   r	   <module>r      s      
 "!BWAP
 ")//#X
  :V  e
#+LQ/r   