
    ]jJe                       U d dl m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
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 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l(m)Z)m*Z* d dl(mZ+ d dl,m-Z- d dl.m/Z/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z:  ejv                  d      Z<de=d<   g dZ>de=d<    G d de      Z? ede:      Z@ G d de:      ZA G d de:      ZB G d  d!e:      ZC G d" d#e:      ZD G d$ d%e:      ZE G d& d'e:      ZF G d( d)e:      ZG G d* d+e:      ZH G d, d-e:      ZI e'd.       G d/ d0e0             ZJy)1    )annotationsN)defaultdict)Enum)Path)AnyCallableClassVarDefaultDictDictIterableListMappingOptionalPatternSequenceSetTupleTypeTypeVarUnion)ParseResult)warn)Field)DefaultPutDictErrorLiteralTypeOpenAPIScopePythonVersion	load_yamlsnooper_to_methods)	DataModelDataModelFieldBase)pydantic)get_special_path)JsonSchemaObjectJsonSchemaParserget_model_by_path)snake_to_upper_camel)DataTypeDataTypeManagerEmptyDataTypeStrictTypes)	BaseModelz^application/.*json$zPattern[str]RE_APPLICATION_JSON_PATTERN)getputpostdeletepatchheadoptionstrace	List[str]OPERATION_NAMESc                      e Zd ZdZdZdZdZy)ParameterLocationqueryheaderpathcookieN)__name__
__module____qualname__r;   r<   r=   r>        Q/root/env/lib/python3.12/site-packages/datamodel_code_generator/parser/openapi.pyr:   r:   F   s    EFDFrC   r:   
BaseModelT)boundc                  ,    e Zd ZU  edd      Zded<   y)ReferenceObject.$refaliasstrrefN)r?   r@   rA   r   rM   __annotations__rB   rC   rD   rH   rH   P   s    S'C'rC   rH   c                  F    e Zd ZU dZded<   dZded<   dZded<   dZded<   y)ExampleObjectNOptional[str]summarydescriptionr   valueexternalValue)r?   r@   rA   rR   rN   rS   rT   rU   rB   rC   rD   rP   rP   T   s*    !G]!!%K%E3#'M='rC   rP   c                  H    e Zd ZU  edd      Zded<   dZded<   dZded	<   y)
MediaObjectNschemarJ   z.Union[ReferenceObject, JsonSchemaObject, None]schema_r   example0Union[str, ReferenceObject, ExampleObject, None]examples)r?   r@   rA   r   rY   rN   rZ   r\   rB   rC   rD   rW   rW   [   s0    >CH?G;  GSAEH>ErC   rW   c                      e Zd ZU dZded<    edd      Zded<   dZded<   d	Zd
ed<   d	Z	d
ed<    edd      Z
ded<   dZded<   dZded<   i Zded<   y)ParameterObjectNrQ   nameinrJ   zOptional[ParameterLocation]in_rS   Fboolrequired
deprecatedrX   Optional[JsonSchemaObject]rY   r   rZ   r[   r\   Dict[str, MediaObject]content)r?   r@   rA   r_   rN   r   ra   rS   rc   rd   rY   rZ   r\   rg   rB   rC   rD   r^   r^   c   sn    D-',T'>C	$>!%K%HdJ*/H*EG'EGSAEH>E&(G#(rC   r^   c                      e Zd ZU dZded<   dZded<   dZded<    edd	      Zd
ed<   dZ	ded<   dZ
ded<   i Zded<   y)HeaderObjectNrQ   rS   Frb   rc   rd   rX   rJ   re   rY   r   rZ   r[   r\   rf   rg   )r?   r@   rA   rS   rN   rc   rd   r   rY   rZ   r\   rg   rB   rC   rD   ri   ri   o   sR    !%K%HdJ*/H*EG'EGSAEH>E&(G#(rC   ri   c                  8    e Zd ZU dZded<   i Zded<   dZded<   y)	RequestBodyObjectNrQ   rS   rf   rg   Frb   rc   )r?   r@   rA   rS   rN   rg   rc   rB   rC   rD   rk   rk   y   s!    !%K%&(G#(HdrC   rk   c                  8    e Zd ZU dZded<   i Zded<   i Zded<   y)ResponseObjectNrQ   rS   zDict[str, ParameterObject]headersz"Dict[Union[str, int], MediaObject]rg   )r?   r@   rA   rS   rN   rn   rg   rB   rC   rD   rm   rm      s"    !%K%*,G',24G/4rC   rm   c                  ~    e Zd ZU g Zded<   dZded<   dZded<   dZded<   g Zded	<   dZ	d
ed<   i Z
ded<   dZded<   y)	Operationr7   tagsNrQ   rR   rS   operationId-List[Union[ReferenceObject, ParameterObject]]
parametersz/Union[ReferenceObject, RequestBodyObject, None]requestBody=Dict[Union[str, int], Union[ReferenceObject, ResponseObject]]	responsesFrb   rd   )r?   r@   rA   rq   rN   rR   rS   rr   rt   ru   rw   rd   rB   rC   rD   rp   rp      sU    D)!G]!!%K%!%K%@BJ=BCGK@GOQILQJrC   rp   c                  T    e Zd ZU i Zded<   i Zded<   i Zded<   i Zded<   i Zd	ed
<   y)ComponentsObjectz3Dict[str, Union[ReferenceObject, JsonSchemaObject]]schemasz1Dict[str, Union[ReferenceObject, ResponseObject]]rw   z0Dict[str, Union[ReferenceObject, ExampleObject]]r\   z4Dict[str, Union[ReferenceObject, RequestBodyObject]]requestBodiesz/Dict[str, Union[ReferenceObject, HeaderObject]]rn   N)	r?   r@   rA   rz   rN   rw   r\   r{   rn   rB   rC   rD   ry   ry      s9    CEG@ECEI@EACH>CJLMGL?AG<ArC   ry   )max_variable_lengthc            E          e Zd ZU dgZded<   ej                  ej                  ej                  ej                  dddde
j                  ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZdd	Zd fd
Z	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 ddZe	 	 	 	 	 	 	 	 dd       Zedd       Z	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZddZ xZS ) OpenAPIParserz#/components/schemaszClassVar[List[str]]SCHEMA_PATHSNFzutf-8)Ddata_model_typedata_model_root_typedata_type_manager_typedata_model_field_type
base_classadditional_importscustom_template_dirextra_template_datatarget_python_versiondump_resolve_reference_action
validationfield_constraintssnake_case_fieldstrip_default_nonealiasesallow_population_by_field_nameallow_extra_fields(apply_default_values_for_required_fields"force_optional_for_required_fields
class_nameuse_standard_collections	base_pathuse_schema_descriptionuse_field_descriptionuse_default_kwargreuse_modelencodingenum_field_as_literaluse_one_literal_as_defaultset_default_enum_memberuse_subclass_enumstrict_nullableuse_generic_container_typesenable_faux_immutabilityremote_text_cachedisable_appending_item_suffixstrict_typesempty_enum_field_namecustom_class_name_generatorfield_extra_keysfield_include_all_keys!field_extra_keys_without_x_prefixopenapi_scopeswrap_string_literaluse_title_as_nameuse_operation_id_as_nameuse_unique_items_as_sethttp_headershttp_ignore_tlsuse_annotated2use_non_positive_negative_number_constrained_typesoriginal_field_name_delimiteruse_double_quotesuse_union_operatorallow_responses_without_contentcollapse_root_modelsspecial_field_name_prefix remove_special_field_name_prefixcapitalise_enum_memberskeep_model_orderknown_third_partycustom_formatterscustom_formatters_kwargsuse_pendulumhttp_query_parameterstreat_dots_as_moduleuse_exact_importsdefault_field_extrasc       D           t        F|   dEi d|d|d|d|d|d|d|d|d	|	d
|
d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|d | d!|!d"|"d#|#d$|$d%|%d&|&d'|'d(|(d)|)d*|*d+|+d,|-d-|.d.|/d/|0d0|1d1|2d2|3d3|4d4|5d5|6d6|7d7|8d8|9d9|:d:|;d;|<d<|=d=|>d>|?d?@d@AdABdBCdCDdDE |,xs t        j                  g| _        y )FNsourcer   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   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   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   )super__init__r   Schemasopen_api_scopes)Gselfr   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   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   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	__class__sG                                                                         rD   r   zOpenAPIParser.__init__   su   R 	 E	
E	
+E	
 "6E	
 $:	E	

 #8E	
 "E	
  2E	
 !4E	
 !4E	
 #8E	
 +HE	
 "E	
 0E	
 .E	
  2E	
  !E	
" ,J#E	
$  2%E	
& 6^'E	
( 0R)E	
* "+E	
, &>-E	
.  /E	
0 $:1E	
2 #83E	
4 05E	
6 $7E	
8 9E	
: #8;E	
< (B=E	
> %<?E	
@ 0AE	
B ,CE	
D )DEE	
F &>GE	
H 0IE	
J +HKE	
L &ME	
N #8OE	
P )DQE	
R .SE	
T $:UE	
V /PWE	
X !4YE	
Z 0[E	
\ &>]E	
^ %<_E	
` &aE	
b ,cE	
d (eE	
f @rgE	
h +HiE	
j 0kE	
l  2mE	
n -LoE	
p "6qE	
r '@sE	
t .NuE	
v %<wE	
x .yE	
z 0{E	
| 0}E	
~ &>E	
@ &AE	
B #8CE	
D "6EE	
F 0GE	
H "6IE	
L 4B 4
  F
rC   c                    | j                   j                  |      j                  dd      \  }}|r| j                  |      }n| j                  }t        ||j                  d      dd        S )N#   /)model_resolverresolve_refsplit_get_ref_bodyraw_objr'   )r   rM   ref_fileref_pathref_bodys        rD   get_ref_modelzOpenAPIParser.get_ref_model/  sc    !00<<SAGGQO())(3H||H 8>>#+>qr+BCCrC   c                    |j                   r9| j                  r-t        |j                  t              r|j                  dg|_        t
        |   |      S )Nnull)nullabler   
isinstancetyperL   r   get_data_type)r   objr   s     rD   r   zOpenAPIParser.get_data_type7  sA     <<D00Z#5N&)CHw$S))rC   c                ~    t        |t              r,| j                  |j                        }|j	                  |      S |S N)r   rH   r   rM   	parse_obj)r   r   object_typeref_objs       rD   resolve_objectzOpenAPIParser.resolve_object?  s8     c?+((1G((11
rC   c                Z   |j                   r| j                  ||g ||      }n|j                  r| j                  |||      }n|j                  s|j
                  rC| j                  |||      }t        |t              r|j                  r| j                  |||       ny|j                  r| j                  |||      }nY|j                  r| j                  |||      }n9|j                  r| j                  |j                        }n| j!                  |      }| j#                  ||       |S r   )is_arrayparse_arrayallOfparse_all_ofoneOfanyOfparse_root_typer   r+   
propertiesparse_object	is_objectenum
parse_enumrM   get_ref_data_typer   	parse_ref)r   r_   r   r=   	data_types        rD   parse_schemazOpenAPIParser.parse_schemaG  s     <<((sMdMDMBIYY))$T:IYY#)),,T3=I)]3!!$T2]]))$T:IXXc48IWW..sww7I**3/IsD!rC   c                    |j                   j                         D ]A  \  }}t        |j                  t              s!| j                  ||j                  g ||       C y r   )rg   itemsr   rY   r%   r   )r   r_   request_bodyr=   
media_type	media_objs         rD   parse_request_bodyz OpenAPIParser.parse_request_body`  sa     !!'')	P 
)++-=>!!$	(9(9;NT;N:;NO	PrC   c           
        t        t              }|j                         D ]2  \  }}t        |t              ro|j
                  s$| j                  |j
                        }|j                  di       j                         D 	ci c]  \  }}	|t        j                  |	       }
}}	n|j                  }
| j                  r|
st        d      ||   d<   |
j                         D ]n  \  }}|j                  }|st        |t              r)| j                  ||g |t!        |      |      ||   |<   N| j#                  |j
                        ||   |<   p 5 |S c c}	}w )Nrg   None)r   zapplication/json)r   dictr   r   rH   rM   r   r/   rW   r   rg   r   r)   rY   r%   r   rL   r   )r   r_   rw   r=   
data_typesstatus_codedetail	ref_modelkvrg   content_typer   object_schemas                 rD   parse_responseszOpenAPIParser.parse_responsesm  sh    ITI

 $-??#4 	K&/2zz ..vzz:	 !*i < B B D1 {,,Q// 
 !..33G>FF>S
;'(:;%,]]_ !c #$m-=><@<M<Mm-Tt-TS5E-T|-T=J{+L9 =A<R<R%))=J{+L9	8 /s    Ec                    |S r   rB   )clsr_   rq   r=   s       rD   
parse_tagszOpenAPIParser.parse_tags  s	     rC   c                d    t        |j                  dd            }| |j                          | S )Nr   _)r(   replace
capitalize)r
  	path_namemethodsuffixcamel_path_names        rD   _get_model_namezOpenAPIParser._get_model_name  s7    .y/@/@c/JK!"6#4#4#6"7x@@rC   c                   g }t               }| j                  j                  ||dd      }|D ]Z  }| j                  |t              }|j
                  }|r|j                  t        j                  k7  rF| j                  j                  ||      \  }	}
|j                  r\|j                  | j                  |	|j                  | j                  |	|j                  g |||      ||j                  |
             g }d }|j                  j!                         D ]\  \  }}|j                  s| j                  |j                  t"              }|j                  | j                  |	|g ||||             ^ |sOt%        |      dk(  r|d   }n| j'                  |      }d }|j                  | j)                  |	|r|j*                  nd ||j                  |
|r!| j-                  |      r|j/                         nd |r0| j0                  r$|j2                  s|j                  r|j4                  nd | j6                  |r| j9                  |      ni | j:                  | j<                  | j>                  ||r|j2                  nd	             ] t@        jB                  | jD                  v r;|r8| jF                  j                  | jI                  ||| jJ                  
             y y y )NT)r   unique)
field_nameexcludes)r  field
field_typeoriginal_field_namerc   rK   r   r   )r   F)r_   defaultr   rc   rK   constraintsr   r   extrasr   r   r   original_namehas_default)fields	referencecustom_base_class)&setr   addr   r^   r_   ra   r:   r;   get_valid_field_name_and_aliasrY   appendget_object_field
parse_itemrc   rg   r   r%   lenr   r   r  is_constraints_fieldr   r   r   r   r   get_field_extrasr   r   r   r   
Parametersr   resultsr   r   )r   r_   rt   r=   r!  exclude_field_namesr"  	parameterparameter_namer  rK   r   r  r   r   r   s                   rD   parse_all_parametersz"OpenAPIParser.parse_all_parameters  s    ,.(+''++D$4PT+U	# L	I++IGI&^^N!Y]]6G6M6M%M $ 3 3 R R)4G !S !J   ))#-'//#'??&	(9(9;XT;X4;X;X$ -;!*!3!3# * 	 .0
<@ &&,,. $,, $($7$7!))+;%M %%&)EdEDE.E*E" "z?a' *1I $* EI$(M..'9F 5 5D"+!*!3!3#(T-F-F}-U %2$6$6$8!( 00*66):L:L "/!7!7 "+/+B+B(  $44]C&*&8&8.2.H.H*.*@*@&4( %2$=$="1 / cL	\ ""d&:&::vLL$$!'&*oo %  @F:rC   c                D   t         j                  |      }|dd  \  }}| j                  r(|j                  st	        d|       |j                  }d}| j                  | j                  ||d      |j                  g |d       |j                  rt        |j                  t              r;| j                  |j                  j                        }t        j                  |      }n|j                  }| j                  | j                  ||d      |g |d	       | j                  | j                  ||d
      |j                   g |d       t"        j$                  | j&                  v r5| j)                  | j                  ||d      |j*                  g |d       y y )Nz~All operations must have an operationId when --use_operation_id_as_name is set.The following path was missing an operationId:  ParametersQuery)r  rt   Requestru   )r_   r   r=   Responserw   )r_   rw   r=   Tagsrq   )r_   rq   r=   )rp   r   r   rr   r   r2  r  rt   ru   r   rH   r   rM   rk   r   r  rw   r   r9  r   r  rq   )r   raw_operationr=   	operationr  r  r  r   s           rD   parse_operationzOpenAPIParser.parse_operation  s   
 ''6	 I	6((((FFO[R  "--IF!!  F;L M  !d!L!	

   )//A ..y/D/D/H/HI	0::9E(44##)))VI)N)+t+]+ $ 
 	%%i
%K))%4%% 	 	

  4 44OO)))VF)K^^$t_V_   5rC   c                   | j                         D ]&  \  }}| j                  r1t        d       	 ddlm}  ||j
                  d| j                         t        |j
                        }|| _	        |j                  di       j                  di       }|j                  d	      }t        j                  | j                  v r3|j                         D ]   \  }}| j                  ||g |d
d|       " t        j                   | j                  v s|j                  di       }	|	j                  dg       D 
cg c],  }
t#        |
t$              rd|
v r| j'                  |
d         n|
. }}
g |d}|	j                         D ]  \  }}d|v r| j)                  |d         }|d d  }d|v r|j+                  |d          |dd  }|rg ||}nt-        d|      }|j                         D ]O  \  }}|t.        vr|rd|v r|d   j+                  |       n||d<   |	d	|vr||d	<   | j1                  |g ||       Q  ) | j3                          y # t        $ r t        d       Y w xY wc c}
w )NzDeprecated: `--validation` option is deprecated. the option will be removed in a future release. please use another tool to validate OpenAPI.
r   )
BaseParserzopenapi-spec-validator)spec_stringbackendr   zWarning: Validation was skipped for OpenAPI. `prance` or `openapi-spec-validator` are not installed.
To use --validation option after datamodel-code-generator 0.24.0, Please run `$pip install 'datamodel-code-generator[validation]'`.

componentsrz   securityz#/componentspathsrt   rI   z#/pathsr   root)_get_context_source_path_partsr   r   prancer>  textr   ImportErrorr   r   r/   r   r   r   r   parse_raw_objPathsr   r   r   r   extendr$   r8   r<  _resolve_unparsed_json_pointer)r   r   
path_partsr>  specificationrz   rB  obj_namer   rC  prt   
paths_pathr  methodspaths_parametersrelative_path_namer=   operation_namer:  s                       rD   	parse_rawzOpenAPIParser.parse_raw-  s   "&"E"E"G J	FJN
1$*KK 8!% -6fkk,BM(DL&3&7&7b&I&M&M2'G >K=N=N>H ##t';';; ]]_ && J*JnJiJJ	 !!T%9%993@3D3DWb3Q #YY|R84!!T* 6<q[D&&qy1aG4
 4
 6z595
*/++- &Iw("&"4"4WV_"E'1!}$#w.(//0EF)212&)@@-?@/
C9@ 5)@$++}< -l ; B BCS T>Nl ;#/Jm4S8@M*5,,)3d3N3cJ	X 	++-{ # E84s   %I61I'I$#I$)r   z)Union[str, Path, List[Path], ParseResult]r   Type[DataModel]r   rW  r   zType[DataTypeManager]r   zType[DataModelFieldBase]r   rQ   r   Optional[List[str]]r   Optional[Path]r   z*Optional[DefaultDict[str, Dict[str, Any]]]r   r   r   z(Optional[Callable[[Iterable[str]], str]]r   rb   r   rb   r   rb   r   rb   r   zOptional[Mapping[str, str]]r   rb   r   rb   r   rb   r   rb   r   rQ   r   rb   r   rY  r   rb   r   rb   r   rb   r   rb   r   rL   r   zOptional[LiteralType]r   rb   r   rb   r   rb   r   rb   r   rb   r   rb   r   z"Optional[DefaultPutDict[str, str]]r   rb   r   zOptional[Sequence[StrictTypes]]r   rQ   r   zOptional[Callable[[str], str]]r   Optional[Set[str]]r   rb   r   rZ  r   zOptional[List[OpenAPIScope]]r   zOptional[bool]r   rb   r   rb   r   rb   r   #Optional[Sequence[Tuple[str, str]]]r   rb   r   rb   r   rb   r   rQ   r   rb   r   rb   r   rb   r   rb   r   rQ   r   rb   r   rb   r   rb   r   rX  r   rX  r   Optional[Dict[str, Any]]r   rb   r   r[  r   rb   r   rb   r   r\  )rM   rL   returnDict[str, Any])r   r%   r]  r)   )r   z"Union[ReferenceObject, BaseModelT]r   zType[BaseModelT]r]  rE   )r_   rL   r   r%   r=   r7   r]  r)   )r_   rL   r   rk   r=   r7   r]  r   )r_   rL   rw   rv   r=   r7   r]  z*Dict[Union[str, int], Dict[str, DataType]])r_   rL   rq   r7   r=   r7   r]  r7   )r  rL   r  rL   r  rL   r]  rL   )r_   rL   rt   rs   r=   r7   r]  r   )r:  r^  r=   r7   r]  r   )r]  r   )r?   r@   rA   r   rN   pydantic_modelr-   CustomRootTyper*   DataModelFieldr   PY_38r   r   r   r   r   r   r  classmethodr  r  r2  r<  rV  __classcell__)r   s   @rD   r~   r~      s   )?(@L%@ ,:+C+C0>0M0M8F8V8V:H:W:W$(26.2JN/</B/BRV "'!&#(/3/4#(9>38$().$(',&+"'!7;+0(-"' %,1).@D.38</3FJ/3',@D7;.3"').(-<@ %#CH7;"'#(05%*3716(-!&1515=A"EI%*"'9=OQ
9Q
 )	Q

 .Q
 !6Q
  8Q
 "Q
 0Q
 ,Q
 HQ
  -Q
 (PQ
 Q
  Q
  !Q
" !#Q
$ -%Q
& )-'Q
( !)Q
* 37+Q
, -1-Q
. "/Q
0 #'1Q
2 "3Q
4 !%5Q
6  $7Q
8  9Q
: ;Q
< =Q
>  5?Q
@ %)AQ
B "&CQ
D  EQ
F GQ
H &*IQ
J #'KQ
L >MQ
N (,OQ
P 6QQ
R  -SQ
T &DUQ
V -WQ
X !%YQ
Z ,>[Q
\ 5]Q
^ ,_Q
`  aQ
b #'cQ
d "&eQ
f :gQ
h iQ
j kQ
l =AmQ
n (5oQ
p  qQ
r !sQ
t *.uQ
v #wQ
x $1yQ
z +/{Q
| "&}Q
~ Q
@ /AQ
B /CQ
D #;EQ
F GQ
H  CIQ
J #KQ
L  MQ
N 7OQ
fD*5DT	  	
 
2PP (P 	P
 
P%% Q% 	%
 
4%N   	
 
  A A^^ B^ 	^
 
^@)%) ) 
	)VM.rC   r~   )K
__future__r   recollectionsr   r   r   pathlibr   typingr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   urllib.parser   warningsr   r#   r   datamodel_code_generatorr   r   r   r   r   r   r    datamodel_code_generator.modelr!   r"   r_  $datamodel_code_generator.parser.baser$   *datamodel_code_generator.parser.jsonschemar%   r&   r'   "datamodel_code_generator.referencer(   datamodel_code_generator.typesr)   r*   r+   r,   datamodel_code_generator.utilr-   compiler.   rN   r8   r:   rE   rH   rP   rW   r^   ri   rk   rm   rp   ry   r~   rB   rC   rD   <module>rt     sE   " 	 #      $ %     I E A 
 D  4,6BJJ7N,O \ O	 	  \3
(i ((I (F) F	)i 	))9 )	 5Y 5	 By B -a.$ a. .a.rC   