
    ]j"M                    .   d Z ddlmZ ddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZ ddl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 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# erddl$m%Z% ddl&m'Z' ddl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2m3Z3 ddl4m5Z5m6Z6m7Z7 ddl8m9Z9 ddl:m;Z; ddl<m=Z= ddl>m?Z?m@Z@mAZAmBZBmCZCmDZD  G d de
      ZEddZF ej                  ej                  eF        G d de!      ZHdddZIeJdk(  r ej                   eI              yy)z
Main function.
    )annotationsN)defaultdict)IntEnum)
TextIOBase)Path)TYPE_CHECKINGAnyDefaultDictDictListOptionalSequenceSetTupleUnioncast)ParseResulturlparse)	BaseModel)	UnionMode)	Namespace)Self)DataModelTypeErrorInputFileTypeInvalidClassNameErrorOpenAPIScopeenable_debug_messagegenerate)DEFAULT_ENCODING
arg_parser	namespace)PythonVersionblack_find_project_rootis_supported_in_black)LiteralType)is_url)StrictTypes)PYDANTIC_V2
ConfigDictModelfield_validator	load_tomlmodel_validatorc                      e Zd ZdZdZdZdZy)ExitzExit reasons.r         N)__name__
__module____qualname____doc__OKERRORKeyboardInterrupt     K/root/env/lib/python3.12/site-packages/datamodel_code_generator/__main__.pyr0   r0   G   s    	
BEr;   r0   c                6    t        t        j                         y N)exitr0   r7   )___s     r<   sig_int_handlerrB   O   s    Mr;   c                  n   e Zd ZU er0 ed      ZdudZdudZer
e	dvd       Z
n(e	dwd       Ze	dvd       Z
n G d	 d       Zes	e	dvd
       Z
 edddd      dxd       Z eddddd      dyd       Z edd      dzd       Z ed      	 	 	 	 d{d       Z ed      	 	 	 	 d{d       Z ed      d{d       Z edd      d|d        Z ed!d      	 	 	 	 d|d"       Z ed      d{d#       Z ed      d{d$       Zer ed      d}d%       Zn ed      d~d&       Zd'Zd(ed<   ej:                  Zd)ed*<   ej@                  Z!d+ed,<   d'Z"ded<   d-Z#d.ed/<   d-Z$d.ed0<   e%jL                  Z'd1ed2<   d3Z(ded4<   d5Z)d6ed7<   d'Z*ded<   d'Z+ded<   d-Z,d.ed8<   d-Z-d.ed9<   d-Z.d.ed:<   d-Z/d.ed;<   d'Z0ded<   d-Z1d.ed<<   d-Z2d.ed=<   d-Z3d.ed><   d-Z4d.ed?<   d-Z5d.ed@<   d-Z6d.edA<   d'Z7dBedC<   d-Z8d.edD<   d-Z9d.edE<   d-Z:d.edF<   d-Z;d.edG<   d-Z<d.edH<   e=Z>dedI<   d'Z?dJedK<   d-Z@d.edL<   d-ZAd.edM<   d-ZBd.edN<   d-ZCd.edO<   d-ZDd.edP<   d-ZEd.edQ<   d-ZFd.edR<   d'ZGded<   d-ZHd.edS<   g ZIdTedU<   d'ZJdBedV<   d'ZKdWedX<   d-ZLd.edY<   d'ZMdWedZ<   eNj                  gZPd[ed\<   d'ZQd]ed^<   d-ZRd.ed_<   d-ZSd.ed`<   d-ZTd.eda<   d'ZUdbed<   d-ZVd.edc<   d-ZWd.edd<   d-ZXd.ede<   d'ZYdBedf<   d-ZZd.edg<   d-Z[d.edh<   d'Z\dBedi<   d-Z]d.edj<   d-Z^d.edk<   d-Z_d.edl<   d'Z`dBedm<   d'Zaded<   d'Zbd6edn<   d'Zcded<   d-Zdd.edo<   d'Zedbed!<   d-Zfd.edp<   d-Zgd.edq<   d'Zhdreds<   ddtZiy')ConfigT)arbitrary_types_allowedstrc                    t        | |      S r>   )getattrselfitems     r<   getz
Config.getZ   s    4&&r;   c                $    | j                  |      S r>   rL   rI   s     r<   __getitem__zConfig.__getitem__]   s    88D>!r;   c                     y r>   r:   clss    r<   
get_fieldszConfig.get_fieldsb   s    36r;   c                $    | j                  |      S r>   )model_validate)rR   objs     r<   	parse_objzConfig.parse_objg   s    ))#..r;   c                    | j                   S r>   )model_fieldsrQ   s    r<   rS   zConfig.get_fieldsk   s    '''r;   c                      e Zd ZefZy)Config.ConfigN)r3   r4   r5   r   rE   r:   r;   r<   rD   r[   q   s     (2m#r;   c                    | j                   S r>   )
__fields__rQ   s    r<   rS   zConfig.get_fieldsx   s    ~~%r;   aliasesextra_template_datacustom_formatters_kwargsbefore)modeOptional[TextIOBase]c                    |t        |t              r|S t        t        t        |      j	                         j                         j                  d            S )Nrt)
isinstancer   r   r   
expanduserresolveopenrR   values     r<   validate_filezConfig.validate_file|   sE     =Juj9LJU 6 6 8 @ @ B G G MNNr;   inputoutputcustom_template_dircustom_file_header_pathOptional[Path]c                x    |t        |t              r|S t        |      j                         j                         S r>   )rf   r   rg   rh   rj   s     r<   validate_pathzConfig.validate_path   s3     =Jud3LE{%%'//11r;   urlOptional[ParseResult]c                p    t        |t              rt        |      rt        |      S |y t	        d|       )Nz7This protocol doesn't support only http/https. --input=)rf   rF   r'   r   r   rj   s     r<   validate_urlzConfig.validate_url   s;    eS!fUmE?"]EeWM
 	
r;   afterc                    |j                  d      r7|d   }||j                  k(  r#t        d|j                  j                   d      |S )Nuse_generic_container_typestarget_python_versionzO`--use-generic-container-types` can not be used with `--target-python_version` z8.
 The version will be not supported in a future version)rL   PY_36r   rk   )rR   valuesr{   s      r<   $validate_use_generic_container_typesz+Config.validate_use_generic_container_types   sv     ::3439:Q3R!$(=(C(CCef{  gB  gB  gH  gH  fI IM M  r;   c                `    |j                  d      |j                  d      st        d      |S )Noriginal_field_name_delimitersnake_case_fieldzO`--original-field-name-delimiter` can not be used without `--snake-case-field`.rL   r   rR   r}   s     r<   &validate_original_field_name_delimiterz-Config.validate_original_field_name_delimiter   s8     ::56B::01e  r;   c                `    |j                  d      r|j                  d      rt        d      |S )Ncustom_file_headerrp   zH`--custom_file_header_path` can not be used with `--custom_file_header`.r   r   s     r<   validate_custom_file_headerz"Config.validate_custom_file_header   s2    ::*+

;T0UZ  r;   http_headersc                d    dd}t        |t              r|D cg c]
  } ||       c}S |S c c}w )Nc                    t        | t              r)	 | j                  dd      \  }}||j                         fS | S # t        $ r t        d|       w xY w)N:r1   maxsplitzInvalid http header: rf   rF   splitlstrip
ValueErrorr   	each_item
field_namefield_values      r<   validate_each_itemz8Config.validate_http_headers.<locals>.validate_each_item   sk    )S)G.7oocAo.N+J%{'9'9';;;  " G"7	} EFFG	   '< Ar   r	   returnzTuple[str, str]rf   listrR   rk   r   r   s       r<   validate_http_headerszConfig.validate_http_headers   s5    	 eT"CHIi&y1II J   -http_query_parametersc                d    dd}t        |t              r|D cg c]
  } ||       c}S |S c c}w )Nc                    t        | t              r)	 | j                  dd      \  }}||j                         fS | S # t        $ r t        d|       w xY w)N=r1   r   zInvalid http query parameter: r   r   s      r<   r   zAConfig.validate_http_query_parameters.<locals>.validate_each_item   sk    )S)P.7oocAo.N+J%{'9'9';;;  " P"@ NOOPr   r   r   r   s       r<   validate_http_query_parametersz%Config.validate_http_query_parameters   s5    	 eT"CHIi&y1II Jr   c                n    |j                  d      #|j                  d      j                  d      |d<   |S )Nadditional_imports,rL   r   r   s     r<   validate_additional_importsz"Config.validate_additional_imports   s8    ::*+7+1::6J+K+Q+QRU+VF'(r;   c                n    |j                  d      #|j                  d      j                  d      |d<   |S )Ncustom_formattersr   r   r   s     r<   validate_custom_formattersz!Config.validate_custom_formatters   s8    ::)*6*0**5H*I*O*OPS*TF&'r;   c                ,    | j                   rd| _        | S )NT)use_annotatedfield_constraints)rJ   s    r<   validate_rootzConfig.validate_root   s    !!)-&Kr;   c                2    |j                  d      rd|d<   |S )Nr   Tr   rN   r   s     r<   r   zConfig.validate_root   s    zz/*.2*+Mr;   NzOptional[Union[Path, str]]r   input_file_typer   output_model_typeFbooldebugdisable_warningsr#   r{    
base_classr>   zOptional[List[str]]r   
validationr   r   strip_default_nonedisable_timestampenable_version_headerallow_population_by_field_nameallow_extra_fieldsuse_defaultforce_optionalzOptional[str]
class_nameuse_standard_collectionsuse_schema_descriptionuse_field_descriptionuse_default_kwargreuse_modelencodingzOptional[LiteralType]enum_field_as_literaluse_one_literal_as_defaultset_default_enum_memberuse_subclass_enumstrict_nullablerz   use_union_operatorenable_faux_immutabilitydisable_appending_item_suffixzList[StrictTypes]strict_typesempty_enum_field_namezOptional[Set[str]]field_extra_keysfield_include_all_keys!field_extra_keys_without_x_prefixzOptional[List[OpenAPIScope]]openapi_scopeszOptional[bool]wrap_string_literaluse_title_as_nameuse_operation_id_as_nameuse_unique_items_as_setz#Optional[Sequence[Tuple[str, str]]]http_ignore_tlsr   2use_non_positive_negative_number_constrained_typesr   use_double_quotescollapse_root_modelsspecial_field_name_prefix remove_special_field_name_prefixcapitalise_enum_memberskeep_model_orderr   r   use_pendulumtreat_dot_as_moduleuse_exact_importszOptional[UnionMode]
union_modec           	     j   | j                         D ci c]  }t        ||      |t        ||       }}|j                  d      t        j                  j
                  k(  rd|d<   |j                  d      rd|d<   t        j                  |      }|D ]  }t        | |t        ||              y c c}w )Nr   Tr   r   )	rS   rH   rL   r   MsgspecStructrk   rD   rW   setattr)rJ   argsfset_argsparsed_argsr   s         r<   
merge_argszConfig.merge_args=  s     __&
tQ+ wtQ
 
 <<+,0K0K0Q0QQ(,H_%<<(,0H()&&x0" 	HJD*gk:&FG	H
s    B0)rK   rF   r   r	   )r   Dict[str, Any])rR   ztype[Model]rV   r	   r   r+   )rk   r	   r   rc   )rk   r	   r   rq   )rk   r	   r   ru   )r}   r   r   r   )rk   r	   r   zOptional[List[Tuple[str, str]]])rJ   r   r   r   )r}   r	   r   r	   )r   r   r   None)jr3   r4   r5   r)   r*   model_configrL   rO   r   classmethodrS   rW   rD   r,   rl   rs   rw   r.   r~   r   r   r   r   r   r   r   rm   __annotations__r   Autor   r   PydanticBaseModelr   rn   r   r   r#   PY_38r{   r   r   ro   r_   r   r   r   r   r^   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   rz   r   r   rt   r   r   r   r   r   r   r   Schemasr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rp   r   r`   r   r   r   r   r   r   r:   r;   r<   rD   rD   V   s   !$?	'	" 6 6 / / ( (
	4 	4
 & & (*D8OO
 !22
 U*
 +
 '"
#
	
 #
 '"#	 # '" # ^(3 4 ,8<	( =  (# $
 (# $
 	g	&	 
'	 
g	&	 
'	
 )-E%,%2%7%7O]7'4'F'F}F!FN!E4"d"+8+>+>=>J.5+5*..04-4J#t#"d"$$$(G!(#t#"'4'+0"D0$$K ND  $J$%*d*#(D("'4'#t#K$Hc$3707',,$)T)#t#!OT!(--$$%*d*!%C	%*/!4/&(L#(+/=/+/(/#(D(<@%'9@4@4H4H3IN0I*..#t#%*d*$)T)8<L5<!OT!M4?D6D37!=7#t#!&$&/3}3-2$d2$)T)"d"(,,.2^2-1*15929L$AE>E %%#t#&*J#*Hr;   rD   c                   t        j                  t               | t        j                  dd } t        j
                  | t               t        j                  rddlm} t        |       t        d       t        t               j                         f      }|dz  }|j                         r]t        |      j!                  di       j!                  di       j#                         D ci c]  \  }}|j%                  d	d
      | }}}ni }	 t&        j)                  |      }|j+                  t               |j6                  si|j8                  s]t        j:                  j=                         r?t        dt        j0                         t        j>                          t2        j4                  S tA        |jB                        sSt        d|jB                  jD                   dtF        jH                   t        j0                         t2        j4                  S |jJ                  r
tM                |jN                  rtQ        jR                  d       |jT                  d}	n/|jT                  5 }
	 tW        jX                  |
d       }		 ddd       |j\                  d}n|j\                  5 }
	 tW        jX                  |
      }	 ddd       t_        t`              r tc        d |j#                         D              s+t        dt        j0                         t2        j4                  S |jd                  d}n|jd                  5 }
	 tW        jX                  |
      }	 ddd       t_        t`              r tc        d |j#                         D              s+t        dt        j0                         t2        j4                  S 	 tg        d\i d|j8                  xs, |j6                  xs t        j:                  ji                         d|jj                  d|jl                  d|jn                  d|jB                  d|jp                  d|jr                  d |jt                  d!|jv                  d"|jx                  d#|jz                  d$|j|                  d%	d&|d'|j~                  d(|j                  d)|j                  d*|j                  d+|j                  d,|j                  d-|j                  d.|j                  d/|j                  d0|j                  d1|j                  d2|j                  d3|j                  d4|j                  d5|j                  d6|j                  d7|j                  d8|j                  d9|j                  d:|j                  d;|j                  d<|j                  d=|j                  d>|j                  d?|j                  d@|j                  dA|j                  dB|j                  dC|j                  dD|j                  dE|j                  dF|j                  dG|j                  dH|j                  dI|j                  dJ|j                  dK|j                  dL|j                  dM|j                  dN|j                  dO|j                  dP|j                  dQ|j                  dR|j                  dS|j                  dT|j                  dU|dV|j                  dW|j                  dX|j                  dY|j                  dZ|j                   t2        j                  S c c}}w # t,        $ r?}t        |j.                  t        j0                         t2        j4                  cY d}~S d}~ww xY w# tV        jZ                  $ rA}t        d| t        j0                         t2        j4                  cY d}~cddd       S d}~ww xY w# 1 sw Y   bxY w# tV        jZ                  $ rA}t        d| t        j0                         t2        j4                  cY d}~cddd       S d}~ww xY w# 1 sw Y   xY w# tV        jZ                  $ rA}t        d| t        j0                         t2        j4                  cY d}~cddd       S d}~ww xY w# 1 sw Y   YxY w# t        $ r8}t        | d[t        j0                         t2        j4                  cY d}~S d}~wt,        $ r>}t        t        |      t        j0                         t2        j4                  cY d}~S d}~wt        $ r@ ddlv}t        |j                         t        j0                         t2        j4                  cY S w xY w)]zMain function.Nr1   )r"   r   )versionzpyproject.tomltoolzdatamodel-codegen-r@   )filezBNot Found Input: require `stdin` or arguments `--input` or `--url`z/Installed black doesn't support Python version z>.
You have to install a newer black.
Installed black version: ignorec                "    t        t        fi | S r>   )r   dict)ds    r<   <lambda>zmain.<locals>.<lambda>  s    D0FA0F r;   )object_hookz$Unable to load extra template data: zUnable to load alias mapping: c              3  f   K   | ])  \  }}t        |t              xr t        |t               + y wr>   rf   rF   .0kvs      r<   	<genexpr>zmain.<locals>.<genexpr>  s/      4
:>!QJq#5:a#554
   /1zFAlias mapping must be a JSON string mapping (e.g. {"from": "to", ...})z1Unable to load custom_formatters_kwargs mapping: c              3  f   K   | ])  \  }}t        |t              xr t        |t               + y wr>   r  r  s      r<   r  zmain.<locals>.<genexpr>  s4      E
1 q#5:a#55E
r  zYCustom formatters kwargs mapping must be a JSON string mapping (e.g. {"from": "to", ...})input_r   rn   r   r{   r   r   ro   r   r   r   r   r_   r^   r   r   r   r   (apply_default_values_for_required_fields"force_optional_for_required_fieldsr   r   r   r   r   r   r   r   r   r   r   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rp   r   r`   r   r   treat_dots_as_moduler   r   z& You have to set `--class-name` optionr:   )xargcompleteautocompleter!   sysargv
parse_argsr"   r    datamodel_code_generator.versionprintr?   r$   r   rh   is_filer-   rL   itemsreplacerD   rW   r   r   messagestderrr0   r8   rm   rt   stdinisatty
print_helpr%   r{   rk   black__version__r   r   r   warningssimplefilterr_   jsonloadJSONDecodeErrorr^   rf   r   allr`   r   readr   rn   r   r   r   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rp   r   r   r   r   r   r   r7   r   rF   	Exception	traceback
format_exc)r   r   rootpyproject_toml_pathr  r  pyproject_tomlconfiger_   datar^   r`   r'  s                 r<   mainr/  O  sj	    Z(|xx|$)4<gQ"DFNN$4#67D!11""$ ""56S_S$b)UW*
1 IIc3"*
 *
 !!.1)$
 <<

syy/?/?/AP	
 	zz !=!=>=f>Z>Z>`>`=a b((-(9(9':< 		
 zz||h'!!)"'' 	"4"&*ii&F'#	" ~~^^ 	"t"))D/	" '4( 4
BI--/4
 1
 XZZ ::&&.#' ,, 	""+/99T?(	" 2D9 E
0668E
 B
 kZZ ::P C	
::AA1AC	
"22C	
 ==C	
 %66	C	

 #)">">C	
 ((C	
  &88C	
 !' : :C	
 ((C	
 %66C	
 $44C	
  &88C	
 !4C	
 C	
 %66C	
  #)">">!C	
" ,2+P+P#C	
$  &88%C	
& 6<5G5G'C	
( 06/D/D)C	
* ((+C	
, &,%D%D-C	
. $*#@#@/C	
0 #)">">1C	
2 %663C	
4 **5C	
6 __7C	
8 #)">">9C	
: (.'H'H;C	
< %+$B$B=C	
> %66?C	
@ #22AC	
B )/(J(JCC	
D &,%D%DEC	
F +1*N*NGC	
H  ,,IC	
J #)">">KC	
L $44MC	
N $*#@#@OC	
P /5.V.VQC	
R "00SC	
T !' : :UC	
V %66WC	
X &,%D%DYC	
Z %+$B$B[C	
\  ,,]C	
^ #22_C	
` !..aC	
b @F?x?xcC	
d +1*N*NeC	
f %66gC	
h "(!<!<iC	
j  &88kC	
l '-&F&FmC	
n .4-T-ToC	
p %+$B$BqC	
r $44sC	
t  &88uC	
v %+$B$BwC	
x %66yC	
z &>{C	
|  ,,}C	
~ #)">">C	
@ "(!;!;AC	
B %66CC	
D ((EC	
H wwC*
  aiicjj)zzF '' "<QC@szzRzz!	" 	"
"	" 	" '' "6qc:Lzz!	" 	""	" 	"* '' "GsK zz!	" 	""	" 	"r ! 9:Lzz c!f3::&zz i""$3::6zz	s   )\9*\? &_!(^
$a&_.:b)<a6Nb6 ?	^4^<^^
_-_
__!__!!_+.a-`=.a/a=aaab&%-b!b&b)!b&&b))b36	f?-c2,f2f>3d71f7A	ff__main__)r@   intrA   r	   r   r   r>   )r   zOptional[Sequence[str]]r   r0   )Lr6   
__future__r   r!  signalr  r  collectionsr   enumr   ior   pathlibr   typingr   r	   r
   r   r   r   r   r   r   r   r   urllib.parser   r   r  r  pydanticr   *datamodel_code_generator.model.pydantic_v2r   argparser   typing_extensionsr   datamodel_code_generatorr   r   r   r   r   r   r   "datamodel_code_generator.argumentsr    r!   r"   datamodel_code_generator.formatr#   r$   r%   datamodel_code_generator.parserr&   "datamodel_code_generator.referencer'   datamodel_code_generator.typesr(   datamodel_code_generator.utilr)   r*   r+   r,   r-   r.   r0   rB   SIGINTrD   r/  r3   r?   r:   r;   r<   <module>rF     s    #   
  #       /    @"&   W V 
 8 5 6 7  fmm_ -vHY vHr@F zCHHTV r;   