ó
    |chi  ã                   ó  • S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	J
r
JrJrJrJrJrJr  S SKJr  S SKJr  S SKJrJrJr  S S	KJrJr  S S
KJrJr  S SKJ r   SSK!J"r"  SSK#J$r$  SSK%J&r&J'r'   " S S\"5      r( " S S\$5      r)g)é    N)ÚDecimal)Ú
attrgetter)Úurljoin)ÚDecimalValidatorÚEmailValidatorÚMaxLengthValidatorÚMaxValueValidatorÚMinLengthValidatorÚMinValueValidatorÚRegexValidatorÚURLValidator)Úmodels)Ú	force_str)Ú
exceptionsÚ	renderersÚserializers)Ú
inflectionÚuritemplate)Ú_UnvalidatedFieldÚempty)Úapi_settingsé   )ÚBaseSchemaGenerator)ÚViewInspector)Úget_pk_descriptionÚis_list_viewc                   ó*   • \ rS rSrS rS rSS jrSrg)ÚSchemaGeneratoré   c                 ó”   • U R                   =(       d    SU R                  =(       d    SS.nU R                  b  U R                  US'   U$ )NÚ )ÚtitleÚversionÚdescription)r"   r#   r$   )ÚselfÚinfos     Úg/var/www/djangovue.mamus.xyz/django/venv/lib/python3.13/site-packages/rest_framework/schemas/openapi.pyÚget_infoÚSchemaGenerator.get_info   sF   € ð —Z‘Z×% 2Ø—|‘|×) rñ
ˆð
 ×ÑÑ'Ø"&×"2Ñ"2ˆD�Ñàˆó    c                 óØ   • 0 nU Hb  nX    HW  nSX   U   ;  a  M  X   U   S   nXR;   a1  [         R                  " SR                  X%   S   X%   S   UUUS95        UUS.X%'   MY     Md     g )NÚoperationIdzîYou have a duplicated operationId in your OpenAPI schema: {operation_id}
	Route: {route1}, Method: {method1}
	Route: {route2}, Method: {method2}
	An operationId has to be unique across your schema. Your schema may not work in other tools.ÚrouteÚmethod)Úroute1Úmethod1Úroute2Úmethod2Úoperation_id)r-   r.   )ÚwarningsÚwarnÚformat)r%   ÚpathsÚidsr-   r.   r3   s         r'   Úcheck_duplicate_operation_idÚ,SchemaGenerator.check_duplicate_operation_id&   sš   € ØˆÛˆEØœ,�Ø ¨©°VÑ(<Ó<ÙØ$™|¨FÑ3°MÑB�ØÓ&Ü—M’Mðy÷  ™Ø#&Ñ#4°WÑ#=Ø$'Ñ$5°hÑ$?Ø#(Ø$*Ø)5ð  ð ôð #Ø$ñ%�Ó!ó% 'ò r*   Nc                 ó  • U R                  5         0 n0 nU R                  U(       a  SOU5      u  pVU GH  u  pxn	U R                  XxU	5      (       d  M   U	R                  R	                  Xx5      n
U	R                  R                  Xx5      nUR                  5        H;  nXÃ;  a  M
  X<   X¼   :X  a  M  [        R                  " SR                  U5      5        M=     UR                  U5        UR                  S5      (       a  USS n[        U R                  =(       d    SU5      nUR                  U0 5        X¤U   UR                  5       '   GM     U R!                  U5        SU R#                  5       US.n[%        U5      S:”  a  SU0US	'   U$ )
z
Generate a OpenAPI schema.
NzASchema component "{}" has been overridden with a different value.Ú/r   z3.0.2)Úopenapir&   r7   r   ÚschemasÚ
components)Ú_initialise_endpointsÚ_get_paths_and_endpointsÚhas_view_permissionsÚschemaÚget_operationÚget_componentsÚkeysr4   r5   r6   ÚupdateÚ
startswithr   ÚurlÚ
setdefaultÚlowerr9   r(   Úlen)r%   ÚrequestÚpublicÚcomponents_schemasr7   Ú_Úview_endpointsÚpathr.   ÚviewÚ	operationr?   ÚkrC   s                 r'   Ú
get_schemaÚSchemaGenerator.get_schema@   sw  € ð 	×"Ñ"Ô$ØÐð ˆØ ×9Ñ9Æ&¹$ÈgÓVÑˆÜ"0ÑˆD˜$Ø×,Ñ,¨T¸4×@Ñ@ÙàŸ™×1Ñ1°$Ó?ˆIØŸ™×3Ñ3°DÓAˆJØ—_‘_Ö&�ØÓ.ÙØ%Ñ(¨J©MÓ9ÙÜ—’Ða×hÑhÐijÓkÖlñ 'ð ×%Ñ% jÔ1ð �‰˜s×#Ñ#Ø˜A˜B�x�Ü˜4Ÿ8™8Ÿ? s¨DÓ1ˆDà×Ñ˜T 2Ô&Ø*3�$‰K˜Ÿ™›Ô'ñ+ #1ð. 	×)Ñ)¨%Ô0ð Ø—M‘M“OØñ
ˆô Ð!Ó" QÓ&àÐ-ð$ˆF�<Ñ ð ˆr*   © )NF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r(   r9   rV   Ú__static_attributes__rX   r*   r'   r   r      s   † ò
ò÷4/r*   r   c                   óà   ^ • \ rS rSrS$U 4S jjr/ r/ rSSSSSS.rS	 rS
 r	S r
S rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS  rS! r S" r!S#r"U =r#$ )%Ú
AutoSchemaét   c                 ó˜   >• U(       a"  [        S U 5       5      (       d  [        S5      eXl        X l        X0l        [
        TU ]  5         g)zö
:param operation_id_base: user-defined name in operationId. If empty, it will be deducted from the Model/Serializer/View name.
:param component_name: user-defined component's name. If empty, it will be deducted from the Serializer's class name.
c              3   óB   #   • U  H  n[        U[        5      v •  M     g 7f©N©Ú
isinstanceÚstr)Ú.0Útags     r'   Ú	<genexpr>Ú&AutoSchema.__init__.<locals>.<genexpr>{   s   é € ÐAºD°SœJ s¬C×0Ð0ºDùó   ‚z'tags must be a list or tuple of string.N)ÚallÚ
ValueErrorÚ_tagsÚoperation_id_baseÚcomponent_nameÚsuperÚ__init__)r%   Útagsro   rp   Ú	__class__s       €r'   rr   ÚAutoSchema.__init__v   s@   ø€ ö
 œÑA¹DÓA×AÑAÜÐFÓGÐGØŒ
Ø!2ÔØ,ÔÜ‰ÑÕr*   ÚretrieveÚcreaterG   ÚpartialUpdateÚdestroy)ÚgetÚpostÚputÚpatchÚdeletec                 ó`  • 0 nU R                  X5      US'   U R                  X5      US'   / nX@R                  X5      -  nX@R                  X5      -  nX@R	                  X5      -  nXCS'   U R                  X5      nU(       a  XSS'   U R                  X5      US'   U R                  X5      US'   U$ )Nr,   r$   Ú
parametersÚrequestBodyÚ	responsesrs   )Úget_operation_idÚget_descriptionÚget_path_parametersÚget_pagination_parametersÚget_filter_parametersÚget_request_bodyÚget_responsesÚget_tags)r%   rR   r.   rT   r€   Úrequest_bodys         r'   rD   ÚAutoSchema.get_operation�   sÀ   € Øˆ	à#'×#8Ñ#8¸Ó#Fˆ	�-Ñ Ø#'×#7Ñ#7¸Ó#Eˆ	�-Ñ àˆ
Ø×.Ñ.¨tÓ<Ñ<ˆ
Ø×4Ñ4°TÓBÑBˆ
Ø×0Ñ0°Ó>Ñ>ˆ
Ø",�,Ñà×,Ñ,¨TÓ:ˆÞØ'3�mÑ$Ø!%×!3Ñ!3°DÓ!Aˆ	�+ÑØ ŸM™M¨$Ó7ˆ	�&ÑàÐr*   c                 ó:  • U R                   b  U R                   $ UR                  R                  n[        R                  " S[        R
                  5      nUR                  SU5      nUS:X  a.  [        SR                  UR                  R                  5      5      eU$ )z‰
Compute the component's name from the serializer.
Raise an exception if the serializer's class name is "Serializer" (case-insensitive).
Ú
serializerr!   z�"{}" is an invalid class name for schema generation. Serializer's class name should be unique and explicit. e.g. "ItemSerializer")	rp   rt   rY   ÚreÚcompileÚ
IGNORECASEÚsubÚ	Exceptionr6   )r%   rŽ   rp   Úpatterns       r'   Úget_component_nameÚAutoSchema.get_component_name¡   sŒ   € ð
 ×ÑÑ*Ø×&Ñ&Ð&ð $×-Ñ-×6Ñ6ˆä—*’*˜\¬2¯=©=Ó9ˆØ Ÿ™ R¨Ó8ˆà˜RÓÜð`ç‘˜
×,Ñ,×5Ñ5Ó6óð ð Ðr*   c                 óÂ  • UR                  5       S:X  a  0 $ U R                  X5      nU R                  X5      n0 n[        U[        R
                  5      (       a3  U R                  U5      nU R                  U5      nUR                  Xg5        [        U[        R
                  5      (       a3  U R                  U5      nU R                  U5      nUR                  Xg5        U$ )z>
Return components with their properties from the serializer.
r~   )	rK   Úget_request_serializerÚget_response_serializerre   r   Ú
Serializerr•   Úmap_serializerrJ   )r%   rR   r.   Úrequest_serializerÚresponse_serializerr?   rp   Úcontents           r'   rE   ÚAutoSchema.get_components¸   sÌ   € ð
 �<‰<‹>˜XÓ%ØˆIà!×8Ñ8¸ÓFÐØ"×:Ñ:¸4ÓHÐàˆ
äÐ(¬+×*@Ñ*@×AÑAØ!×4Ñ4Ð5GÓHˆNØ×)Ñ)Ð*<Ó=ˆGØ×!Ñ! .Ô:äÐ)¬;×+AÑ+A×BÑBØ!×4Ñ4Ð5HÓIˆNØ×)Ñ)Ð*=Ó>ˆGØ×!Ñ! .Ô:àÐr*   c                 óf   • UR                  S5      nUS   SR                  S USS   5       5      -   $ )NrP   r   r!   c              3   ó@   #   • U  H  oR                  5       v •  M     g 7frc   )r"   )rg   Úxs     r'   ri   Ú,AutoSchema._to_camel_case.<locals>.<genexpr>Õ   s   é € Ð&Iº.°Q§w¡w§y yº.ùs   ‚r   )ÚsplitÚjoin)r%   Ú	snake_strr?   s      r'   Ú_to_camel_caseÚAutoSchema._to_camel_caseÑ   s6   € Ø—_‘_ SÓ)ˆ
ð ˜!‰}˜rŸw™wÑ&I¸*ÀQÀR¹.Ó&IÓIÑIÐIr*   c                 ó´  • [        [        U R                  SS5      SS5      nU R                  b  U R                  nOíUb  UR                  nOÝU R	                  X5      bA  U R	                  X5      R
                  R                  nUR                  S5      (       a  USS nOŠU R                  R
                  R                  nUR                  S5      (       a  USS nOUR                  S5      (       a  USS	 nUR                  UR                  5       5      (       a  US[        U5      *  nUS
:X  a(  [        (       d   S5       e[        R                  " U5      nU$ )zQ
Compute the base part for operation ID from the model, serializer or view name.
ÚquerysetNÚmodelrš   iöÿÿÿÚAPIViewiùÿÿÿÚViewéüÿÿÿÚlistz:`inflection` must be installed for OpenAPI schema support.)ÚgetattrrS   ro   rY   Úget_serializerrt   Úendswithr"   rL   r   Ú	pluralize)r%   rR   r.   Úactionr«   Únames         r'   Úget_operation_id_baseÚ AutoSchema.get_operation_id_base×   s2  € ô œ §	¡	¨:°tÓ<¸gÀtÓLˆà×!Ñ!Ñ-Ø×)Ñ)‰Dð ÑØ—>‘>‰Dð × Ñ  Ó.Ñ:Ø×&Ñ& tÓ4×>Ñ>×GÑGˆDØ�}‰}˜\×*Ñ*Ø˜D˜S�z�øð —9‘9×&Ñ&×/Ñ/ˆDØ�}‰}˜Y×'Ñ'Ø˜C˜R�y‘Ø—‘˜v×&Ñ&Ø˜C˜R�y�ð �}‰}˜VŸ\™\›^×,Ñ,Ø˜Mœc &›k˜\Ð*�à�VÓß’:Ð[Ð[Ó[�:Ü×'Ò'¨Ó-ˆDàˆr*   c                 ó0  • [        U R                  SUR                  5       5      n[        XU R                  5      (       a  SnO>X0R                  ;  a  U R                  U5      nOU R                  UR                  5          nU R                  XU5      nXE-   $ )zN
Compute an operation ID from the view type and get_operation_id_base method.
r´   r¯   )r°   rS   rK   r   Úmethod_mappingr§   r¶   )r%   rR   r.   Úmethod_namer´   rµ   s         r'   rƒ   ÚAutoSchema.get_operation_idý   s~   € ô ˜dŸi™i¨°6·<±<³>ÓBˆÜ˜ d§i¡i×0Ñ0Ø‰FØ× 3Ñ 3Ó3Ø×(Ñ(¨Ó5‰Fà×(Ñ(¨¯©«Ñ8ˆFà×)Ñ)¨$¸Ó?ˆà‰}Ðr*   c                 óÚ  • [         (       d   S5       e[        [        U R                  SS5      SS5      n/ n[         R                  " U5       Hˆ  nSnUbe   UR                  R                  U5      nUb'  UR                  (       a  [        UR                  5      nOUb  UR                  (       a  [        X75      nUSSUSS	0S
.nUR                  U5        MŠ     U$ ! [         a    Sn Nxf = f)z<
Return a list of parameters from templated path variables.
z;`uritemplate` must be installed for OpenAPI schema support.rª   Nr«   r!   rR   TÚtypeÚstring)rµ   ÚinÚrequiredr$   rC   )r   r°   rS   Ú	variablesÚ_metaÚ	get_fieldr“   Ú	help_textr   Úprimary_keyr   Úappend)	r%   rR   r.   r«   r€   Úvariabler$   Úmodel_fieldÚ	parameters	            r'   r…   ÚAutoSchema.get_path_parameters  sò   € ÷ Š{ÐYÐYÓYˆ{äœ §	¡	¨:°tÓ<¸gÀtÓLˆØˆ
ä#×-Ò-¨dÖ3ˆHØˆKØÑ ð'Ø"'§+¡+×"7Ñ"7¸Ó"A�Kð Ñ*¨{×/D×/DÜ"+¨K×,AÑ,AÓ"B‘KØ Ñ,°×1H×1HÜ"4°UÓ"H�Kð !ØØ Ø*à˜HðñˆIð ×Ñ˜iÖ(ñ/ 4ð2 Ðøô' !ó 'Ø"&’Kð'ús   ÁCÃC*Ã)C*c                 ó¸   • U R                  X5      (       d  / $ / nU R                  R                   H%  nX4" 5       R                  U R                  5      -  nM'     U$ rc   )Úallows_filtersrS   Úfilter_backendsÚget_schema_operation_parameters)r%   rR   r.   r€   Úfilter_backends        r'   r‡   Ú AutoSchema.get_filter_parameters1  sS   € Ø×"Ñ" 4×0Ñ0ØˆIØˆ
Ø"Ÿi™i×7Ô7ˆNØ˜.Ó*×JÑJÈ4Ï9É9ÓUÑUŠJñ 8àÐr*   c                 óÂ   • [        U R                  SS5      c  g[        U R                  S5      (       a  U R                  R                  S;   $ UR	                  5       S;   $ )z¼
Determine whether to include filter Fields in schema.

Default implementation looks for ModelViewSet or GenericAPIView
actions/methods that cause filtering on the default implementation.
rÍ   NFr´   )r¯   rv   rG   Úpartial_updatery   )rz   r|   r}   r~   )r°   rS   Úhasattrr´   rK   ©r%   rR   r.   s      r'   rÌ   ÚAutoSchema.allows_filters9  sT   € ô �4—9‘9Ð/°Ó6Ñ>ØÜ�4—9‘9˜h×'Ñ'Ø—9‘9×#Ñ#Ð'bÑbÐbØ�|‰|‹~Ð!BÑBÐBr*   c                 ó”   • U R                   n[        XU5      (       d  / $ U R                  5       nU(       d  / $ UR                  U5      $ rc   )rS   r   Úget_paginatorrÎ   )r%   rR   r.   rS   Ú	paginators        r'   r†   Ú$AutoSchema.get_pagination_parametersF  sD   € Ø�y‰yˆä˜D¨$×/Ñ/ØˆIà×&Ñ&Ó(ˆ	ÞØˆIà×8Ñ8¸Ó>Ð>r*   c                 óH  • [        [        R                  UR                  5      5      n[	        S U 5       5      (       a  SnOP[	        S U 5       5      (       a  SnO6[	        S U 5       5      (       a  SnO[	        S U 5       5      (       a  SnOS nS	U0nU(       a  X4S
'   U$ )Nc              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frc   )re   Úbool©rg   Úchoices     r'   ri   Ú-AutoSchema.map_choicefield.<locals>.<genexpr>T  s   é € Ð>²g¨FŒz˜&¤$×'Ð'²gùrk   Úbooleanc              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frc   )re   ÚintrÝ   s     r'   ri   rß   V  ó   é € Ð?²w¨V”˜F¤C×(Ð(²wùrk   Úintegerc              3   óX   #   • U  H   n[        U[        [        [        45      v •  M"     g 7frc   )re   râ   Úfloatr   rÝ   s     r'   ri   rß   X  s!   é € ÐQÊ¸v”˜F¤S¬%´Ð$9×:Ð:Êùs   ‚(*Únumberc              3   óB   #   • U  H  n[        U[        5      v •  M     g 7frc   rd   rÝ   s     r'   ri   rß   [  rã   rk   r¾   Úenumr½   )r¯   ÚdictÚfromkeysÚchoicesrl   )r%   Úfieldrì   r½   Úmappings        r'   Úmap_choicefieldÚAutoSchema.map_choicefieldR  s•   € Ü”t—}‘} U§]¡]Ó3Ó4ˆÜÑ>±gÓ>×>Ñ>Ø‰DÜÑ?±wÓ?×?Ñ?Ø‰DÜÑQÉÓQ×QÑQà‰DÜÑ?±wÓ?×?Ñ?Ø‰DàˆDð
 �Gð
ˆö Ø"�F‰OØˆr*   c                 ó
  • [        U[        R                  5      (       a  SU R                  UR                  5      S.$ [        U[        R
                  5      (       a  U R                  U5      nSUS'   U$ [        U[        R                  5      (       a  SU R                  UR                  5      S.$ [        U[        R                  5      (       a~  [        USS5      (       a  U R                  UR                  S9$ [        UR                  SS 5      nUb9  UR                  R                  n[        U[        R                   5      (       a  SS	0$ [        U[        R"                  5      (       a  SU R%                  U5      S.$ [        U[        R&                  5      (       a  U R%                  U5      $ [        U[        R(                  5      (       aD  S0 S.n[        UR                  [*        5      (       d  U R                  UR                  5      US
'   U$ [        U[        R,                  5      (       a  SSS.$ [        U[        R.                  5      (       a  SSS.$ [        U[        R0                  5      (       a  SSS.$ [        U[        R2                  5      (       a  SSS.$ [        U[        R4                  5      (       a  SSS.$ [        U[        R6                  5      (       a%  SS0nUR8                  S:w  a  UR8                  US'   U$ [        U[        R:                  5      (       aª  [        US[<        R>                  5      (       a  SSS.nOSS0nUR@                  (       a$  [C        SUR@                  S-
  S-  -   S-   5      US'   URD                  (       a'  [G        URD                  S-  5      S-   US'   US   * US'   U RI                  X5        U$ [        U[        RJ                  5      (       a  SS0nU RI                  X5        U$ [        U[        RL                  5      (       aZ  SS	0nU RI                  X5        [G        URO                  SS5      5      S :”  d  [G        URO                  SS5      5      S :”  a  S!US'   U$ [        U[        RP                  5      (       a  SS"S.$ [        RR                  S#[        RT                  S[        RV                  S[        RX                  S0nSURO                  URZ                  S5      0$ )$NÚarray©r½   ÚitemsÚobjectr½   Úpk_fieldF)rí   r«   rä   rô   r¾   Údate)r½   r6   z	date-timeÚemailÚuriÚuuidÚbothr6   Úcoerce_to_stringÚdecimalrç   Ú.r   Ú0Ú1Ú
multipleOfÚ9ÚmaximumÚminimumr   iÿÿÿÚint64Úbinaryrà   ).re   r   ÚListSerializerr›   Úchildrš   ÚManyRelatedFieldÚ	map_fieldÚchild_relationÚPrimaryKeyRelatedFieldr°   rö   rª   rÂ   Úpkr   Ú	AutoFieldÚMultipleChoiceFieldrï   ÚChoiceFieldÚ	ListFieldr   Ú	DateFieldÚDateTimeFieldÚ
EmailFieldÚURLFieldÚ	UUIDFieldÚIPAddressFieldÚprotocolÚDecimalFieldr   ÚCOERCE_DECIMAL_TO_STRINGÚdecimal_placesræ   Úmax_whole_digitsrâ   Ú_map_min_maxÚ
FloatFieldÚIntegerFieldrz   Ú	FileFieldÚBooleanFieldÚ	JSONFieldÚ	DictFieldÚHStoreFieldrt   )r%   rí   Údatar«   rÈ   rî   rž   ÚFIELD_CLASS_SCHEMA_TYPEs           r'   r
  ÚAutoSchema.map_fieldn  sž  € ô �eœ[×7Ñ7×8Ñ8àØ×,Ñ,¨U¯[©[Ó9ñð ô �eœ[×3Ñ3×4Ñ4Ø×&Ñ& uÓ-ˆDØ#ˆD�‰LØˆKô �eœ[×9Ñ9×:Ñ:àØŸ™¨×(<Ñ(<Ó=ñð ô �eœ[×?Ñ?×@Ñ@Ü�u˜j¨%×0Ñ0Ø—~‘~¨E¯N©N�~Ð;Ð;Ü˜EŸN™N¨G°TÓ:ˆEØÑ Ø#Ÿk™kŸn™n�Ü˜k¬6×+;Ñ+;×<Ñ<Ø" IÐ.Ð.ô �eœ[×<Ñ<×=Ñ=àØ×-Ñ-¨eÓ4ñð ô
 �eœ[×4Ñ4×5Ñ5Ø×'Ñ'¨Ó.Ð.ô �eœ[×2Ñ2×3Ñ3àØñˆGô ˜eŸk™kÔ+<×=Ñ=Ø#'§>¡>°%·+±+Ó#>�˜Ñ ØˆNô �eœ[×2Ñ2×3Ñ3à Ø ñð ô
 �eœ[×6Ñ6×7Ñ7à Ø%ñð ô �eœ[×3Ñ3×4Ñ4à Ø!ñð ô
 �eœ[×1Ñ1×2Ñ2à Øñð ô
 �eœ[×2Ñ2×3Ñ3à Ø ñð ô
 �eœ[×7Ñ7×8Ñ8à˜ðˆGð �~‰~ Ó'Ø$)§N¡N�˜Ñ!ØˆNä�eœ[×5Ñ5×6Ñ6Ü�uÐ0´,×2WÑ2W×XÑXà$Ø'ñ‘ð ˜Hð�ð ×#×#Ü(-¨c°U×5IÑ5IÈAÑ5MÐQTÑ4TÑ.TÐWZÑ.ZÓ([�˜Ñ%Ø×%×%Ü%(¨×)?Ñ)?À#Ñ)EÓ%FÈÑ%J�˜	Ñ"Ø&-¨iÑ&8Ð%8�˜	Ñ"Ø×Ñ˜eÔ-ØˆNä�eœ[×3Ñ3×4Ñ4à˜ðˆGð ×Ñ˜eÔ-ØˆNä�eœ[×5Ñ5×6Ñ6à˜	ðˆGð ×Ñ˜eÔ-ä�7—;‘;˜y¨!Ó,Ó-°
Ó:¼cÀ'Ç+Á+ÈiÐYZÓB[Ó>\Ð_iÓ>iØ$+�˜Ñ!ØˆNä�eœ[×2Ñ2×3Ñ3à Ø"ñð ô ×$Ñ$ iÜ×!Ñ! 8Ü×!Ñ! 8Ü×#Ñ# Xð	#
Ðð Ð/×3Ñ3°E·O±OÀXÓNÐOÐOr*   c                 ó†   • UR                   (       a  UR                   US'   UR                  (       a  UR                  US'   g g )Nr  r  )Ú	max_valueÚ	min_value)r%   rí   rž   s      r'   r  ÚAutoSchema._map_min_maxþ  s1   € Ø�?�?Ø!&§¡ˆG�IÑØ�?�?Ø!&§¡ˆG�IÒð r*   c                 ó  • / n0 nUR                   R                  5        GHQ  n[        U[        R                  5      (       a  M%  UR
                  (       a1  UR                  (       d   UR                  U R                  U5      5        U R                  U5      nUR                  (       a  SUS'   UR                  (       a  SUS'   UR                  (       a  SUS'   UR                  b=  UR                  [        :w  a)  [        UR                  5      (       d  UR                  US'   UR                   (       a  [#        UR                   5      US'   U R%                  XE5        XSU R                  U5      '   GMT     SUS.nU(       a  X&S	'   U$ )
NTÚreadOnlyÚ	writeOnlyÚnullableÚdefaultr$   rõ   )r½   Ú
propertiesrÀ   )ÚfieldsÚvaluesre   r   ÚHiddenFieldrÀ   ÚpartialrÆ   Úget_field_namer
  Ú	read_onlyÚ
write_onlyÚ
allow_nullr0  r   ÚcallablerÄ   rf   Úmap_field_validators)r%   rŽ   rÀ   r1  rí   rC   Úresults          r'   r›   ÚAutoSchema.map_serializer  s6  € àˆØˆ
à×&Ñ&×-Ñ-×/ˆEÜ˜%¤×!8Ñ!8×9Ñ9Ùà�~�~ j×&8×&8Ø—‘ × 3Ñ 3°EÓ :Ô;à—^‘^ EÓ*ˆFØ��Ø%)��zÑ"Ø××Ø&*��{Ñ#Ø××Ø%)��zÑ"Ø�}‰}Ñ(¨U¯]©]¼eÓ-CÌHÐUZ×UbÑUb×LcÑLcØ$)§M¡M��yÑ!Ø��Ü(+¨E¯O©OÓ(<��}Ñ%Ø×%Ñ% eÔ4à5;�t×*Ñ*¨5Ó1Ô2ñ) 0ð. Ø$ñ
ˆö Ø!)�:Ñàˆr*   c                 ó„  • UR                    GH/  n[        U[        5      (       a  SUS'   [        U[        5      (       a  SUS'   [        U[        5      (       a+  UR
                  R                  R                  SS5      US'   Mx  [        U[        5      (       a3  Sn[        U[        R                  5      (       a  SnUR                  X$'   MÀ  [        U[        5      (       a4  S	n[        U[        R                  5      (       a  S
nUR                  X$'   GM	  [        U[        5      (       a  UR                  US'   GM0  [        U[        5      (       a  UR                  US'   GMW  [        U[        5      (       d  GMo  [!        US["        R$                  5      (       a  GM’  UR&                  (       a$  [)        SUR&                  S-
  S-  -   S-   5      US'   UR*                  (       d  GMÛ  UR*                  nUR&                  b  UR&                  S:”  a  XSR&                  -  n[-        US-  5      S-   US'   US   * US'   GM2     g)z
map field validators
rø   r6   rù   z\Zz\zr”   Ú	maxLengthÚmaxItemsÚ	minLengthÚminItemsr  r  rü   rþ   r   rÿ   r   r  Nr   r  )Ú
validatorsre   r   r   r   Úregexr”   Úreplacer   r   r  Úlimit_valuer
   r	   r   r   r°   r   r  r  ræ   Ú
max_digitsrâ   )r%   rí   rC   ÚvÚ	attr_nameÚdigitss         r'   r;  ÚAutoSchema.map_field_validators(  sÔ  € ð ×!Õ!ˆAô ˜!œ^×,Ñ,Ø#*��xÑ Ü˜!œ\×*Ñ*Ø#(��xÑ Ü˜!œ^×,Ñ,ð %&§G¡G§O¡O×$;Ñ$;¸EÀ5Ó$I��yÓ!Ü˜AÔ1×2Ñ2Ø'�	Ü˜e¤[×%:Ñ%:×;Ñ;Ø *�IØ$%§M¡M�Ó!Ü˜AÔ1×2Ñ2Ø'�	Ü˜e¤[×%:Ñ%:×;Ñ;Ø *�IØ$%§M¡M�Ô!Ü˜AÔ0×1Ñ1Ø$%§M¡M��yÔ!Ü˜AÔ0×1Ñ1Ø$%§M¡M��yÔ!Ü˜AÔ/×0Ô0Ü Ð'9¼<×;`Ñ;`×aÔaØ×#×#Ü+0°¸×8HÑ8HÈ1Ñ8LÐPSÑ7SÑ1SÐVYÑ1YÓ+Z�F˜<Ñ(Ø—<—<’<ØŸ\™\�FØ×'Ñ'Ñ3¸×8HÑ8HÈ1Ó8LØ×"2Ñ"2Ñ2˜Ü(+¨F°S©LÓ(9¸AÑ(=�F˜9Ñ%Ø)/°	Ñ):Ð(:�F˜9Ô%òE "r*   c                 ó   • UR                   $ )zx
Override this method if you want to change schema field name.
For example, convert snake_case field name to camelCase.
)Ú
field_name)r%   rí   s     r'   r6  ÚAutoSchema.get_field_nameP  s   € ð
 ×ÑÐr*   c                 óN   • [        U R                  SS 5      nU(       a  U" 5       $ g )NÚpagination_class)r°   rS   )r%   rP  s     r'   r×   ÚAutoSchema.get_paginatorW  s%   € Ü" 4§9¡9Ð.@À$ÓGÐÞÙ#Ó%Ð%Ør*   c                 óf   • [        [        [        S5      U R                  R                  5      5      $ )NÚ
media_type)r¯   Úmapr   rS   Úparser_classesrÔ   s      r'   Úmap_parsersÚAutoSchema.map_parsers]  s#   € Ü”Cœ
 <Ó0°$·)±)×2JÑ2JÓKÓLÐLr*   c                 ó¼   • / nU R                   R                   H?  n[        U[        R                  5      (       a  M$  UR                  UR                  5        MA     U$ rc   )rS   Úrenderer_classesÚ
issubclassr   ÚBrowsableAPIRendererrÆ   rS  )r%   rR   r.   Úmedia_typesÚrenderers        r'   Úmap_renderersÚAutoSchema.map_renderers`  sM   € ØˆØŸ	™	×2Ô2ˆHä˜(¤I×$BÑ$B×CÑCÙØ×Ñ˜x×2Ñ2Ö3ñ	 3ð
 Ðr*   c                 ó  • U R                   n[        US5      (       d  g  UR                  5       $ ! [        R                   a=    [
        R                  " SR                  UR                  R                  X!5      5         g f = f)Nr±   zt{}.get_serializer() raised an exception during schema generation. Serializer fields will not be generated for {} {}.)
rS   rÓ   r±   r   ÚAPIExceptionr4   r5   r6   rt   rY   )r%   rR   r.   rS   s       r'   r±   ÚAutoSchema.get_serializeri  st   € Ø�y‰yˆä�tÐ-×.Ñ.Øð	Ø×&Ñ&Ó(Ð(øÜ×&Ñ&ó 	Ü�MŠMð 1÷ "™6 $§.¡.×"9Ñ"9¸6ÓHôJñ ð	ús    0 °ABÂ Bc                 ó$   • U R                  X5      $ )zZ
Override this method if your view uses a different serializer for
handling request body.
©r±   rÔ   s      r'   r˜   Ú!AutoSchema.get_request_serializerx  ó   € ð
 ×"Ñ" 4Ó0Ð0r*   c                 ó$   • U R                  X5      $ )z]
Override this method if your view uses a different serializer for
populating response data.
rd  rÔ   s      r'   r™   Ú"AutoSchema.get_response_serializer  rf  r*   c                 óF   • SSR                  U R                  U5      5      0$ )Nz$refz#/components/schemas/{})r6   r•   )r%   rŽ   s     r'   Úget_referenceÚAutoSchema.get_reference†  s%   € ØÐ1×8Ñ8¸×9PÑ9PÐQ[Ó9\Ó]Ð^Ð^r*   c                 ó  • US;  a  0 $ U R                  X5      U l        U R                  X5      n[        U[        R
                  5      (       d  0 nOU R                  U5      nSU R                   Vs0 s H  nUSU0_M
     sn0$ s  snf )N)ÚPUTÚPATCHÚPOSTrž   rC   )rV  Úrequest_media_typesr˜   re   r   rš   rj  )r%   rR   r.   rŽ   Úitem_schemaÚcts         r'   rˆ   ÚAutoSchema.get_request_body‰  sš   € ØÐ1Ó1ØˆIà#'×#3Ñ#3°DÓ#AˆÔ à×0Ñ0°Ó>ˆ
ä˜*¤k×&<Ñ&<×=Ñ=Ø‰Kà×,Ñ,¨ZÓ8ˆKð à×2Ò2óâ2�Bð �X˜{Ð+Ò+Ù2ñð
ð 	
ùòs   Á2Bc                 óÌ  • US:X  a  SSS00$ U R                  X5      U l        U R                  X5      n[        U[        R
                  5      (       d  0 nOU R                  U5      n[        XU R                  5      (       a.  SUS.nU R                  5       nU(       a  UR                  U5      nOUnUS:X  a  SOS	nUU R                   Vs0 s H  nUS
U0_M
     snSS.0$ s  snf )NÚDELETEÚ204r$   r!   rò   ró   ro  Ú201Ú200rC   )rž   r$   )r^  Úresponse_media_typesr™   re   r   rš   rj  r   rS   r×   Úget_paginated_response_schema)	r%   rR   r.   rŽ   rq  Úresponse_schemarØ   Ústatus_coderr  s	            r'   r‰   ÚAutoSchema.get_responses�  s  € Ø�XÓàØ! 2ððð ð %)×$6Ñ$6°tÓ$DˆÔ!à×1Ñ1°$Ó?ˆ
ä˜*¤k×&<Ñ&<×=Ñ=Ø‰Kà×,Ñ,¨ZÓ8ˆKä˜ d§i¡i×0Ñ0àØ$ñˆOð ×*Ñ*Ó,ˆIÞØ"+×"IÑ"IÈ/Ó"Z�øà)ˆOØ%¨Ó/‘e°Uˆàð #×7Ò7óâ7˜ð ˜ ?Ð3Ò3Ù7ñð  "ñ	ð
ð 	
ùòs   ÃC!c                 ó¼   • U R                   (       a  U R                   $ UR                  S5      (       a  USS  nUR                  S5      S   R                  SS5      /$ )Nr<   r   r   rP   Ú-)rn   rH   r¤   rE  rÔ   s      r'   rŠ   ÚAutoSchema.get_tagsÆ  sR   € à�:�:Ø—:‘:Ðð
 �?‰?˜3×ÑØ˜˜�8ˆDà—
‘
˜3“ Ñ"×*Ñ*¨3°Ó4Ð5Ð5r*   )rn   rp   ro   rp  ry  )NNN)$rY   rZ   r[   r\   rr   rp  ry  r¹   rD   r•   rE   r§   r¶   rƒ   r…   r‡   rÌ   r†   rï   r
  r  r›   r;  r6  r×   rV  r^  r±   r˜   r™   rj  rˆ   r‰   rŠ   r]   Ú__classcell__)rt   s   @r'   r_   r_   t   sÁ   ø† ÷
ð ÐØÐð ØØØ Øñ€Nòò(ò.ò2Jò$òLò "òHòCò
?òò8NPò`1ò"òH&;òP òòMòòò1ò1ò_ò
ò('
÷R6ð 6r*   r_   )*r�   r4   rý   r   Úoperatorr   Úurllib.parser   Údjango.core.validatorsr   r   r   r	   r
   r   r   r   Ú	django.dbr   Údjango.utils.encodingr   Úrest_frameworkr   r   r   Úrest_framework.compatr   r   Úrest_framework.fieldsr   r   Úrest_framework.settingsr   Ú
generatorsr   Ú
inspectorsr   Úutilsr   r   r   r_   rX   r*   r'   Ú<module>rŽ     sa   ðÛ 	Û Ý Ý Ý  ÷÷ ó õ Ý +ç =Ñ =ß 9ß :Ý 0å +Ý %ß 3ôWÐ)ô Wôx]	6�õ ]	6r*   