
    ]jf              
          U d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d d	lmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ d d
l%m&Z&m'Z' d dl(Z(d dl)Z)d dl*m+Z+ d dl)m,Z, d dl-m.Z.m/Z/m0Z0m1Z1 erd dl2m3Z3  G d de,      Z4 G d de4      Z5dZ6e7e8d<    e jr                  d      Z:ee7   e8d<    e#d      Z;edee;gdf   de;de;ded   fd       Z< e jr                  d      Z=ee7   e8d<    e jr                  d       Z>ee7   e8d!<    e	       d"e7de7fd#       Z? G d$ d%      Z@ G d& d'e@      ZA G d( d)e@      ZB G d* d+e      ZCeCj                  eBeCj                  eAeCj                  e@iZGeeCe"e@   f   e8d,<    G d- d.e      ZHd/ed0edefd1ZI G d2 d3      ZJ e	       e6fd4e7d5e7de7fd6       ZK e	       d<d7e7d8e7de7fd9       ZLd:e7deMfd;ZN e(j                         ZPy)=    N)defaultdict)contextmanager)Enumauto)	lru_cache)zip_longest)	iskeyword)PathPurePath)TYPE_CHECKINGAbstractSetAnyCallableClassVarDefaultDictDict	GeneratorListMapping
NamedTupleOptionalPatternSequenceSetTupleTypeTypeVarUnion)ParseResulturlparse)version)	BaseModel)PYDANTIC_V2
ConfigDictcached_propertymodel_validator)
DictStrAnyc                       e Zd ZU  e       Zeee      ed<    e       Z	eee      ed<   e
s
deddf fdZe
serNdddddddd	eeeeef      eeeef   ef   df   d
eeeeef      eeeef   ef   df   dededededdfdZ xZS ddddddddd	eeeeef      eeeef   ef   df   d
eeeeef      eeeef   ef   df   dedee   dedededdf fdZ xZS  xZS )
_BaseModel_exclude_fields_pass_fieldsvaluesreturnNc                 p    t        |   di | | j                  D ]  }||v st        | |||           y )N )super__init__r+   setattr)selfr,   pass_field_name	__class__s      L/root/env/lib/python3.12/site-packages/datamodel_code_generator/reference.pyr1   z_BaseModel.__init__6   sC    G&v&#'#4#4 L"f,D/6/3JKL    Fincludeexcludeby_aliasexclude_unsetexclude_defaultsexclude_noner9   r:   r;   r<   r=   r>   r'   c                d    | j                  |t        |xs d      | j                  z  ||||      S )Nr/   r8   )
model_dumpsetr*   )r3   r9   r:   r;   r<   r=   r>   s          r6   dictz_BaseModel.dict?   s@     #2.1E1EE%"/%5!- '  r7   r9   r:   r;   skip_defaultsr<   r=   r>   rD   c          	      d    t         |   |t        |xs d      | j                  z  |||||      S )Nr/   rC   )r0   rB   rA   r*   )	r3   r9   r:   r;   rD   r<   r=   r>   r5   s	           r6   rB   z_BaseModel.dictX   sD     w|#2.1E1EE%"/"/%5!- $  r7   )__name__
__module____qualname__rA   r*   r   r   str__annotations__r+   r   r   r1   r#   r   r   intr   boolrB   r   __classcell__r5   s   @r6   r)   r)   0   s   *-%OXc#h'/'*uL(3s8$,	LS 	LT 	L   !&&+).%* c3h0'%S/3:N2OQUU c3h0'%S/3:N2OQUU   $ #' # <  !&04&+).%* c3h0'%S/3:N2OQUU c3h0'%S/3:N2OQUU   (~  $ #' #  9 r7   r)   c                      e Zd ZU eed<   dZeed<   eed<   dZee   ed<   dZe	ed<   dZ
ee   ed	<   g Zee   ed
<   d
hZeee      ed<    ed      dedefd       Zer edefd      Zn
 G d d      Zedefd       Zy)	Referencepath original_namenameNduplicate_nameTloadedsourcechildrenr*   before)moder,   r-   c                 ~    t        |t              s|S |j                  d      }|r|S |j                  d|      |d<   |S )zT
        If original_name is empty then, `original_name` is assigned `name`
        rS   rT   )
isinstancerB   get)clsr,   rS   s      r6   validate_original_namez Reference.validate_original_name|   sC    
 &$'M

?3M"(**V]"Cr7   never)arbitrary_types_allowedignored_typesrevalidate_instancesc                   ~    e Zd ZdZefZ ej                  ej                         ej                  d      k  rdZ
ydZ
y)Reference.ConfigTz1.9.2FnoneN)rF   rG   rH   ra   r%   keep_untouchedr!   parsepydanticVERSIONcopy_on_model_validationr/   r7   r6   Configre      sJ    &*#-/N !7==!1!12]W]]75KK  %  %r7   rl   c                 @    | j                   j                  dd      d   S )N.   )rT   rsplitr3   s    r6   
short_namezReference.short_name   s    yyQ'++r7   )rF   rG   rH   rI   rJ   rS   rU   r   rV   rL   rW   r   rX   r   r*   r   r   r&   r_   r#   r$   r%   model_configrl   propertyrs   r/   r7   r6   rP   rP   r   s    
IM3
I$(NHSM(FD FHSM Hd3i+5,OXc#h'6(#C C  $  "$(*,!(
	 	 ,C , ,r7   rP   ItemSINGULAR_NAME_SUFFIXz^#[^/].*
ID_PATTERNTsettercurrent_value	new_valuer-   NNNc              #   T   K   |} | |       	 d   | |       y #  | |       w xY wwNr/   )rz   r{   r|   previous_values       r6   context_variabler      s-      &N
9~~s   ( 	(
%(z([^_])([A-Z][a-z]+)_UNDER_SCORE_1z([a-z0-9])([A-Z])_UNDER_SCORE_2stringc                 v    t         j                  d|       }t        j                  d|      j                         S )Nz\1_\2)r   subr   lower)r   subbeds     r6   camel_to_snaker      s0    &1Fh/5577r7   c                       e Zd Z	 	 	 	 	 	 	 ddeeeef      dedee   dee   dee   dedefd	Zed
edefd       Z		 	 	 ddedee
e      dededef
dZ	 dd
edee
e      deeee   f   fdZy)FieldNameResolverNaliasessnake_case_fieldempty_field_nameoriginal_delimiterspecial_field_name_prefix remove_special_field_name_prefixcapitalise_enum_membersc                     |i ni || _         |xs d| _        || _        || _        |dn|| _        || _        || _        y )N_field)r   r   r   r   r   r   r   )r3   r   r   r   r   r   r   r   s           r6   r1   zFieldNameResolver.__init__   sX     18"[[%5%< 01C08G>W 	& 7W--D$r7   
field_namer-   c                      y)NTr/   r^   r   s     r6   _validate_field_namez&FieldNameResolver._validate_field_name   s    r7   rT   excludesignore_snake_case_fieldupper_camelc                    |s| j                   }|d   dk(  r|dd  xs | j                   }| j                  r%|s#| j                  t        || j                        }t	        j
                  dd|      }|d   j                         r| j                   d| }|j                  d      r5| j                  r|dd  }n| j                   | }n|j                  d      r5| j                  s| j                  r|st        |      }d}t        |      s| j                  |      s|dz  }|rt        |      }n| j                  r|j                         }n|}|j                         s| j                  |      st        |      s|rM||v rI|r| | n| d| }|dz  }|j                         s| j                  |      r6t        |      rB|r||v rI|S )Nr   #ro   )	delimiteru   [¹²³⁴⁵⁶⁷⁸⁹]|\Wr   )r   r   r   snake_to_upper_camelrer   	isnumericr   
startswithr   r   r   r	   r   upperisidentifier)r3   rT   r   r   r   countnew_names          r6   get_valid_namez FieldNameResolver.get_valid_name   s    ((D7c>84t44D !!+''3'8O8OPDvv6TB7445Qtf=D ooc"44ABx889$@ ooc" (($$+!$'DT?$";";D"ACKD+D1H))zz|HH&&(0I0I(0S"X1+6$w'tfAeW<MHQJE &&(0I0I(0S"X1 r7   c                 ~    || j                   v r| j                   |   |fS | j                  ||      }|||k(  rd fS |fS )N)r   )r   r   )r3   r   r   
valid_names       r6   get_valid_field_name_and_aliasz0FieldNameResolver.get_valid_field_name_and_alias  sS     %<<
+Z77((h(G
:#;4KKKKr7   )NFNNNFFNFFr   )rF   rG   rH   r   r   rI   rL   r1   classmethodr   r   r   r   r   r/   r7   r6   r   r      s.    04!&*.,03716(-E'#s(+,E E #3-	E
 %SME $,C=E +/E "&E( c d   (,(-!55 3s8$5 "&	5
 5 
5p ?CLL)1#c();L	sHSM!	"Lr7   r   c                   &    e Zd Zededefd       Zy)PydanticFieldNameResolverr   r-   c                 $    t        t        |       S r   )hasattrr"   r   s     r6   r   z.PydanticFieldNameResolver._validate_field_name  s     9j111r7   N)rF   rG   rH   r   rI   rL   r   r/   r7   r6   r   r     s"    2c 2d 2 2r7   r   c                   H     e Zd Z	 	 	 ddedeee      dededef
 fdZ xZS )EnumFieldNameResolverrT   r   r   r   r-   c                 X    t         |   |dk(  rdn|dh|xs
 t               z  ||      S )Nmromro_)rT   r   r   r   )r0   r   rA   )r3   rT   r   r   r   r5   s        r6   r   z$EnumFieldNameResolver.get_valid_name   s>     w%5=dW 1CE2$;#	 & 
 	
r7   r   )	rF   rG   rH   rI   r   r   rL   r   rM   rN   s   @r6   r   r     sQ     (,(-!

 3s8$
 "&	

 
 

 
r7   r   c                   6    e Zd Z e       Z e       Z e       Zy)	ModelTypeN)rF   rG   rH   r   PYDANTICENUMCLASSr/   r7   r6   r   r   /  s    vH6DFEr7   r   DEFAULT_FIELD_NAME_RESOLVERSc                   (    e Zd ZU eed<   ee   ed<   y)	ClassNamerT   rU   N)rF   rG   rH   rI   rJ   r   r/   r7   r6   r   r   <  s    
ISM!r7   r   	base_pathtarget_pathc                 :   | |k(  rt        d      S |j                         s|S d}g }t        | j                  |j                        D ]*  \  }}||k(  r|s|s|s|dz  }|s|j	                  |       , t        g t        |      D cg c]  }d c}| S c c}w )Nrn   r   ro   z..)r
   is_absoluter   partsappendrange)r   r   parent_countrX   	base_parttarget_partr   s          r6   get_relative_pathr   A  s    KCy""$LH"-ioo{?P?P"Q )	;#LKALOOK() @l 341$4@x@@4s   	B
c                   j   e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 dCdeee      dee   dee   dee   deeeef      ded	ee   d
eeegef      dee	   dee
eee   f      dee   dee   dededdfdZedee	   fd       Zdee	   ddfdZedee   fd       Zdee   ddfdZedee	   ded   fd       Zededed   fd       Zedee   fd       Zdee   ddfdZedee   ded   fd       Zedee   fd       Zedee   fd       Zd ee   ddfd!Zd"ed#ee   ddfd$Zd#e ee   ef   defd%Z!d&edefd'Z"e#d&edefd(       Z$e#d&edefd)       Z%e#d#ee   defd*       Z&dDd&ed+ede'fd,Z(ddd-ddd.d#ee   d/ed0ed1ed2edee   d3ede'fd4Z)d#e ee   ef   dee'   fd5Z*d#e ee   ef   ddfd6Z+d7edefd8Z,	 	 	 	 dEd7ed2ed9ee   d1edee   de-fd:Z.dDd7ed;edefd<Z/e0d7edefd=       Z1dejd                  fd7ed>eee      d?edefd@Z3dejd                  fdAed>eee      d?ede4eee   f   fdBZ5y)FModelResolverNFexclude_namesduplicate_name_suffixbase_urlsingular_name_suffixr   r   r   custom_class_name_generatorr   field_name_resolver_classesoriginal_field_name_delimiterr   r   r   r-   c                 t   i | _         g | _        d | _        d | _        t	        t
              | _        t               | _        |xs
 t               | _	        || _
        || _        t        |t              r|nt        | _        t         j#                         }|
r|j%                  |
       |j'                         D ci c]*  \  }}| ||||||||t(        j*                  k(  r|nd      , c}}| _        |xs | j.                  | _        |	xs t3        j4                         | _        | j6                  | _        y c c}}w )NF)r   r   r   r   r   r   r   )
references_current_root_root_id_root_id_base_pathr   rB   idsrA   after_load_filesr   r   	_base_urlr\   rI   rw   r   r   copyupdateitemsr   r   field_name_resolversdefault_class_name_generatorclass_name_generatorr
   cwd
_base_path_current_base_path)r3   r   r   r   r   r   r   r   r   r   r   r   r   r   r   "merged_field_name_resolver_classeskvs                     r6   r1   zModelResolver.__init__S  s6   & 13,.'+155@5F*-%'4'=4I"(0 .4 !% 	!
 .J-N-N-P*&.556QR ;@@BI
 1 q!1!1#@*C1Q	& )@
 
I
! (L4+L+L 	! !* 7TXXZ26//%I
s   8/D4c                     | j                   S r   r   rr   s    r6   current_base_pathzModelResolver.current_base_path      &&&r7   c                     || _         y r   r   r3   r   s     r6   set_current_base_pathz#ModelResolver.set_current_base_path  s
    "+r7   c                     | j                   S r   r   rr   s    r6   r   zModelResolver.base_url  s    ~~r7   c                     || _         y r   r   r3   r   s     r6   set_base_urlzModelResolver.set_base_url  s	    !r7   r}   c              #      K   |r| j                   |z  j                         }t        | j                  | j                  |      5  d  d d d        y # 1 sw Y   y xY wwr   )r   resolver   r   r   r   s     r6   current_base_path_contextz'ModelResolver.current_base_path_context  sV      94==?I&&(>(>	
 	 	 	 	s   AAA	AAAc              #      K   | j                   r/t        | j                  | j                  |      5  d  d d d        y d  y # 1 sw Y   y xY wwr   )r   r   r   r   r   s     r6   base_url_contextzModelResolver.base_url_context  sD     >>!$"3"3T]]HM    s   .AAAAAc                 b    t        | j                        dkD  r| j                  S | j                  S )Nro   )lenr   rr   s    r6   current_rootzModelResolver.current_root  s-    t!!"Q&%%%!!!r7   r   c                     || _         y r   )r   r3   r   s     r6   set_current_rootzModelResolver.set_current_root  s
    )r7   c              #      K   t        | j                  | j                  |      5  d  d d d        y # 1 sw Y   y xY wwr   )r   r   r   r   s     r6   current_root_contextz"ModelResolver.current_root_context  s7      d33T5F5FU 		 	 	s   ">2	>;>c                     | j                   S r   )r   rr   s    r6   root_idzModelResolver.root_id  s    }}r7   c                     | j                   S r   )r   rr   s    r6   root_id_base_pathzModelResolver.root_id_base_path  r   r7   r  c                 p    |r&d|v r"|j                  dd      d   | _        || _        y d | _        || _        y )N/ro   r   )rq   r   r   )r3   r  s     r6   set_root_idzModelResolver.set_root_id  s=    sg~&-nnS!&<Q&?D#   '+D#r7   id_rQ   c                 x    | j                  |      | j                  dj                  | j                           |<   y )Nr  )resolve_refr   joinr   )r3   r  rQ   s      r6   add_idzModelResolver.add_id  s/    595E5Ed5K$++,-c2r7   c                    t        |t              r|}n| j                  |      }|dk(  rdj                  | j                         dS | j
                  r| j                  s||d   dk7  rtt        |      si|j                  dd      ^}}t        | j
                  |      j                         }t        | j                  |      j                         }|r|d|d    z  }t        j                  |      r,| j                   dj                  | j                           |   }nd|vr|dz  }n'|d   dk(  rdj                  | j                         | }|j#                  d      }dj                  |d |       }dj                  |d |        ddj                  ||dz   d         }| j$                  r@t        |      s5t        | j                  |      j'                         s| j$                   d| }| j                  r$ddlm}  || j                  |      }	d|	v r|	S |	 dS t        |      rQ|j                  dd      \  }
}|
| j,                  k(  r dj                  | j                         d| S t/        |
      }| j,                  r| j
                  s|S t/        | j,                        }|j0                  |j2                  f|j0                  |j2                  fk(  rt        |j4                        }t        t        |j4                        j6                  |j6                        }| j
                  |z  |j8                  z  }|j;                         r.|j                         j=                  | j                         d| S |S )Nr   r  r   ro   rR   )join_url)r\   rI   	join_pathr
  r   r   r   is_urlsplitr
   r   r   r   as_posixrx   matchr   indexr  is_filehttpr  r  r    schemenetlocrQ   parentrT   existsrelative_to)r3   rQ   joined_path	file_pathobject_partresolved_file_pathrefr   r  
joined_url	file_part	path_part
target_urlroot_id_urltarget_url_pathrelative_target_baser   s                    r6   r	  zModelResolver.resolve_ref  sN   dC K...K#hht0012!44""MMA#%;' '2&7&7Q&?#I!%d&<&<i!H!P!P!R+!3hj  ;q>"233K(xx):): ;<[IC+%s"Q3&!$$*;*;!< =k]K#))#.IJY 78IWW[)456aIXYMN@[8\7]^C%%{#tDOOY'G'O'O'Q//0#7==&!$--5Jj !! \###;#&99S!#4 IyDLL(((4#4#456a	{CC&.y&9JLLT%;%;
'/'=K!!:#4#45"""":  #'z"7'8))*11?3I3I($ **-AAODXDXX  %%')113??PQQRS\R]^^
r7   r  c                 <   t        |      s| j                  sy|j                  dd      ^}}t        | j                  |      j                         j                         }| j                  |      r|| j                  v S | j                  |      r|| j                  v S y)NFr   ro   )
r  r   r  r
   r   r   r  is_external_root_refr   is_external_ref)r3   r  r!  r   absolute_paths        r6   is_after_loadzModelResolver.is_after_load  s    #;d44		#q)	AT__i8@@BKKM$$S) D$9$999!!#& D$9$999r7   c                     d| v xr | d   dk7  S )Nr   r   r/   r  s    r6   r)  zModelResolver.is_external_ref  s    cz+c!fm+r7   c                     | d   dk(  S )Nrp   r   r/   r-  s    r6   r(  z"ModelResolver.is_external_root_ref#  s    2w#~r7   c                 h    dj                  d | D              j                  dd      }d|vr|dz  }|S )Nr  c              3   &   K   | ]	  }|s|  y wr   r/   .0ps     r6   	<genexpr>z*ModelResolver.join_path.<locals>.<genexpr>)  s     4Q!q4s   z/#r   )r
  replace)rQ   r  s     r6   r  zModelResolver.join_path'  s;    hh4$44<<T3Gk!3Kr7   resolvedc                    |s| j                  |      }n|}| j                  j                  |      }|r|S |j                  dd      }t	        |      dk(  r2t        | j                  |      r|d   d d n|d         j                  }n1| j                  |      rt        |d   d d       j                  n|d   }| j                  |d      j                  }t        |||d      }|| j                  |<   |S )Nr  ro   r   rp   F)unique)rQ   rS   rT   rV   )r	  r   r]   rq   r   r
   r(  stemget_class_namerT   rP   )r3   r  r6  rQ   	reference	split_refrS   rT   s           r6   add_refzModelResolver.add_ref.  s   ##C(DDOO''-	JJsA&	y>Q %)%>%>t%D	!Sb!)TU,d  ,,T2 Yq\#2&',,q\ 
 ""="?DD'	
	 !*r7   T)
class_namesingular_namer8  r   rV   rS   r>  r?  r8  rV   c                ^   | j                  |      }| j                  j                  |      }	|	r7|r|	j                  sd|	_        |r||	j                  k(  s||	j
                  k(  r|	S |}
d }|r(| j                  |
||	r|	j
                  nd ||      \  }
}nZ| j                  |
t        j                        }
|rt        |
|xs | j                        }
n|r| j                  |
      }||
k(  r|
}|}
|	r||	_        |
|	_        ||	_        ||	_        |	S t        |||
||      }	|	| j                  |<   |	S )NT)rT   r8  reserved_namer?  r   )
model_type)rQ   rS   rT   rV   rU   )r  r   r]   rV   rS   rT   r:  get_valid_field_namer   r   get_singular_namer   _get_unique_namerU   rP   )r3   rQ   rS   r>  r?  r8  r   rV   r  r;  rT   rU   unique_names                r6   addzModelResolver.addL  sX    nnT*)-)<)<[)I	i..#'	 ! I$;$;; INN2  (,#'#6#609innt+%9 $7 $ D. ,,Tioo,ND(.K$2K2K "33D9$&%)N"&3I#!IN%I'5I$  " +-I ,5DOOK(r7   c                 V    | j                   j                  | j                  |            S r   )r   r]   r	  r3   rQ   s     r6   r]   zModelResolver.get  s"    ""4#3#3D#9::r7   c                 x    | j                  |      | j                  v r| j                  | j                  |      = y y r   )r	  r   rI  s     r6   deletezModelResolver.delete  s5    D!T__4 0 0 67 5r7   rT   c                 `    | j                   t        j                     j                  |dd      S )NT)r   r   r   r   r   r   )r3   rT   s     r6   r   z*ModelResolver.default_class_name_generator  s1    ((9HH$D I 
 	
r7   rA  c                 f    d|v r9|j                  d      }dj                   fd|d d D              }|dz  }|d   }nd}|} j                  |      }|rt        ||xs  j                        }d }	|r.||k(  rt        ||	      S  j                  |d      }
|
|k7  r|}	|
}t        | | |	      S )Nrn   c              3   z   K   | ]2  }j                   t        j                     j                  |d        4 yw)T)r   NrM  )r2  nr3   s     r6   r4  z/ModelResolver.get_class_name.<locals>.<genexpr>  s@      
  )))//:IIt J s   8;rp   rR   )rT   rU   T)camel)r  r
  r   rD  r   r   rE  )r3   rT   r8  rA  r?  r   
split_nameprefixr>  rU   rF  s   `          r6   r:  zModelResolver.get_class_name  s     $;CJXX 
 $CR F cMF#BJFJ..z:
*0MD4M4MJ )-
* jPP//
$/GKj(!+$J5nUUr7   rQ  c                 4   |}d}| j                   j                         D ch c]  }|j                   c}| j                  z  }||v rK| j                  r|| j                  |dz
  g}n||g}|rdnd}|j                  d |D              }|dz  }||v rK|S c c}w )Nro   rR   r   c              3   8   K   | ]  }|st        |        y wr   )rI   r1  s     r6   r4  z1ModelResolver._get_unique_name.<locals>.<genexpr>  s     (IAqQ(Is   )r   r,   rT   r   r   r
  )	r3   rT   rQ  rF  r   rreference_names
name_partsr   s	            r6   rE  zModelResolver._get_unique_name  s     OO224
AFF
 _,))..AI5
 #E]
#I#..(I(IIKQJE _, 
s   Bc                 >    |j                         xr t        |       S r   )r   r	   )r^   rT   s     r6   validate_namezModelResolver.validate_name  s      ":9T?'::r7   r   rB  c                 @    | j                   |   j                  ||      S r   )r   r   )r3   rT   r   rB  s       r6   rC  z"ModelResolver.get_valid_field_name  s"     ((4CCD(SSr7   r   c                 @    | j                   |   j                  ||      S r   )r   r   )r3   r   r   rB  s       r6   r   z,ModelResolver.get_valid_field_name_and_alias  s'     ((4SS
 	
r7   )NNNNNFNNNNNNFF)F)TNFN)6rF   rG   rH   r   r   rI   r   rL   r   r
   r   r   r   r   r1   ru   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r   r	  r+  staticmethodr)  r(  r  rP   r=  rG  r]   rK  r   r   r:  rE  r   rZ  r   rC  r   r   r/   r7   r6   r   r   R  s    -1/3"&.2/3!&*.FJ$( 7;3716(-#6BC)6B  (}6B 3-	6B
 'sm6B '#s(+,6B 6B #3-6B &.hucz.B%C6B D>6B &.D!2334&
6B (0}6B $,C=6B  +/!6B" "&#6B$ 
%6Bp '8D> ' ',x~ ,$ , (3-  "Xc] "t " !$	#	$   ;K1L   "hsm " "
*Xc] *t * $SM	#	$  #   '8C= ' ' 8C=  T  L# LXc] Lt LChsmS&8 9 Cc CJ	 	 	 ,S ,T , , # $    #  3 $ 9 F !#.2:sm: :
 : : : 'sm: : 
:x;hsmS01 ;hy6I ;85#!34 8 8
 
 
 '+#.2&V&V &V  }	&V
 &V 'sm&V 
&VPS  # ( ; ; ; ; (, ) 2 2	TT 3s8$T 	T
 
T (, ) 2 2	

 3s8$
 	

 
sHSM!	"
r7   r   rT   suffixc                 D    t         j                  |       }|du r|  | }|S )NF)inflect_enginesingular_noun)rT   r^  r?  s      r6   rD  rD    s.    "006M&)r7   wordr   c                     d}| j                  |      rd}| dd  } |dj                  d | j                  |      D              z   S )NrR   r   ro   c              3   T   K   | ]   }|s|d    j                         |dd z    " yw)r   ro   N)r   )r2  xs     r6   r4  z'snake_to_upper_camel.<locals>.<genexpr>  s(     UQSTAaDJJL1QR50Us   (()r   r
  r  )rb  r   rS  s      r6   r   r     sF    Fy!ABxBGGU$**Y:OUUUUr7   r  c                 $    | j                  d      S )N)zhttps://zhttp://)r   r-  s    r6   r  r    s    >>122r7   )r   )Qr   collectionsr   
contextlibr   enumr   r   	functoolsr   	itertoolsr   keywordr	   pathlibr
   r   typingr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   urllib.parser   r    inflectri   	packagingr!   r"   datamodel_code_generator.utilr#   r$   r%   r&   pydantic.typingr'   r)   rP   rw   rI   rJ   compilerx   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rD  r   rL   r  enginer`  r/   r7   r6   <module>rv     su   	 # %   !  "     * /      *? ?D-,
 -,` # c "%2::k2
GCL 2CL aS$Y01>?    *rzz*@A A)rzz*=> > 83 83 8 8
VL VLr2 1 2
- 
   NN)1OO&J d9d3D.E#EF "
 "
A A AX A"S
 S
l /C C     Vs Vs VS V V3 3 3  !r7   