Ë
    º2ÚiÈ  ã                   ód   — 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 d dlmZ d„ Zd„ Zy)	é    N)Údefaultdict)Úcamelize)Úapi_settings)ÚResolvedComponentÚ	list_hashÚload_enum_name_overridesÚsafe_refÚwarn)Úspectacular_settingsc           	      óè  ‡‡— dˆfd„	Šˆfd„}| j                  di «      j                  di «      }t        «       }t        t        «      }t        t        «      } ‰|«      D ]“  \  }}	|	j	                  «       D ]{  \  }
}|j                  d«      dk(  r|j                  di «      }d	|vrŒ1t        |d	   D �cg c]	  }|d
vsŒ|‘Œ c}«      }||
   j                  |«       ||   j                  ||
f«       Œ} Œ• i }|j	                  «       D ]ß  \  }
}|D ]Õ  }||v r||   }n•t        |«      dk(  rt        |
«      › d�}nxt        ||   «      dk(  r4t        t        ||   «      «      \  }}t        |«      › t        |
«      › d�}n3t        |
«      › |dd j                  «       › d�}t        d|
› d|› d�«       |j                  ||«      |k7  rt        d|› d�«       ||= n|||<   ||||
f<   Œ× Œá  ‰|«      D �]5  \  }}	|	j	                  «       D �]  \  }
}|j                  d«      dk(  }|r|j                  di «      }d	|vrŒ4|d	   }|d	   D �cg c]	  }|d
vsŒ|‘Œ c}|d	<   t        |d	   «      }|j                  |«      xs |||
f   }|j	                  «       D ��ci c]  \  }}|dv sŒ||“Œ }}}|j	                  «       D ��ci c]  \  }}|dvsŒ||“Œ }}}t        j                  rj|j                  dd«      j                  d«      r|j!                  d«      |d<   n4d|j                  dd«      v r |d   j#                  d«      \  }}}d|z   |d<    |||¬«      g}t        j$                  r@d|v r|j'                   |dd	dgi¬«      «       d|v r|j'                   |dd	dgi¬«      «       t        |«      dk(  r|j)                  |d   j*                  «       n+|j)                  d|D �cg c]  }|j*                  ‘Œ c}i«       |rt-        |«      |	|
   d<   �Œt-        |«      |	|
<   �Œ �Œ8 ‰j.                  j1                  t        j2                  «      | d<   | S c c}w c c}w c c}}w c c}}w c c}w )zþ
    simple replacement of Enum/Choices that globally share the same name and have
    the same choices. Aids client generation to not generate a separate enum for
    every occurrence. only takes effect when replacement is guaranteed to be correct.
    Nc              3   ó„  •K  — |sx| j                  «       D ]d  \  }} t        j                  rt        j                  dd|«      }t        j
                  rt        j                  dd|«      } ‰| |«      E d {  –—†  Œf y t        | t        «      r| D ]  } ‰||«      E d {  –—†  Œ y t        | t        «      r~| j                  d«      r	|| d   f–—  ‰| j                  dg «      |«      E d {  –—†   ‰| j                  dg «      |«      E d {  –—†   ‰| j                  dg «      |«      E d {  –—†  y y 7 Œ¿7 Œ˜7 ŒL7 Œ-7 Œ­w)Nz^Patched(.+)z\1z(.+)Request$Ú
propertiesÚoneOfÚallOfÚanyOf)
Úitemsr   ÚCOMPONENT_SPLIT_PATCHÚreÚsubÚCOMPONENT_SPLIT_REQUESTÚ
isinstanceÚlistÚdictÚget)ÚschemaÚcomponent_nameÚitemÚiter_prop_containerss      €úL/var/www/html/acx/venv/lib/python3.12/site-packages/drf_spectacular/hooks.pyr   z6postprocess_schema_enums.<locals>.iter_prop_containers   s1  øè ø€ ÙØ*0¯,©,«.ò HÑ&� Ü'×=Ò=Ü%'§V¡V¨N¸EÀ>Ó%R�NÜ'×?Ò?Ü%'§V¡V¨N¸EÀ>Ó%R�NÙ/°¸ÓG×GÑGñHô ˜¤Ô%Øò F�Ù/°°nÓE×EÑEñFä˜¤Ô%Ø�z‰z˜,Ô'Ø$ f¨\Ñ&:Ð:Ò:Ù+¨F¯J©J°wÀÓ,CÀ^ÓT×TÐTÙ+¨F¯J©J°wÀÓ,CÀ^ÓT×TÐTÙ+¨F¯J©J°wÀÓ,CÀ^ÓT×TÑTð &ð	 Høð Føð UøØTøØTús[   ƒA3E Á6D6Á7(E ÂD8Â AE Ã-D:Ã. E ÄD<Ä E Ä/D>Ä0E Ä8E Ä:E Ä<E Ä>E c                 óx   •— t        | t         j                  || ¬«      }‰j                  j                  |«       |S )N)ÚnameÚtyper   Úobject)r   ÚSCHEMAÚregistryÚregister_on_missing)r!   r   Ú	componentÚ	generators      €r   Úcreate_enum_componentz7postprocess_schema_enums.<locals>.create_enum_component&   s;   ø€ Ü%ØÜ"×)Ñ)ØØô	
ˆ	ð 	×Ñ×.Ñ.¨yÔ9ØÐó    Ú
componentsÚschemasr"   Úarrayr   Úenum)Ú Né   ÚEnumé   zOenum naming encountered a non-optimally resolvable collision for fields named "zq". The same name has been used for multiple choice sets in multiple components. The collision was resolved with "z9". add an entry to ENUM_NAME_OVERRIDES to fix the naming.z4encountered multiple names for the same choice set (z‡). This may be unwanted even though the generated schema is technically correct. Add an entry to ENUM_NAME_OVERRIDES to fix the naming.)r"   r.   Údescriptionr/   Ú*z

*)r   Ú	BlankEnumÚNullEnumr   r   )N)r   r   r   Úsetr   r   ÚaddÚlenr   ÚnextÚiterÚ
capitalizer
   r   Ú ENUM_GENERATE_CHOICE_DESCRIPTIONÚ
startswithÚpopÚ	partitionÚ#ENUM_ADD_EXPLICIT_BLANK_NULL_CHOICEÚappendÚupdateÚrefr	   r%   ÚbuildÚAPPEND_COMPONENTS)Úresultr(   Úkwargsr)   r,   Ú	overridesÚprop_hash_mappingÚhash_name_mappingr   ÚpropsÚ	prop_nameÚprop_schemaÚiÚprop_enum_cleaned_hashÚenum_name_mappingÚprop_hash_setÚ	prop_hashÚ	enum_nameÚ_Úis_arrayÚprop_enum_original_listÚkÚvÚenum_schemaÚpostr+   Úcr   s    `                         @r   Úpostprocess_schema_enumsr]      s  ù€ õUô$ð �j‰j˜ rÓ*×.Ñ.¨y¸"Ó=€Gä(Ó*€Iä#¤CÓ(ÐÜ#¤CÓ(Ðá!5°gÓ!>ò 	WÑˆ˜Ø&+§k¡k£mò 	WÑ"ˆI�{Ø�‰˜vÓ&¨'Ò1Ø)Ÿo™o¨g°rÓ:�Ø˜[Ñ(Øä%.¸;ÀvÑ;NÖ/f°aÐRSÐ[eÒRe²Ò/fÓ%gÐ"Ø˜iÑ(×,Ñ,Ð-CÔDØÐ4Ñ5×9Ñ9¸>È9Ð:UÕVñ	Wð	Wð ÐØ$5×$;Ñ$;Ó$=ò BÑ ˆ	�=Ø&ò 	BˆIØ˜IÑ%Ø% iÑ0‘	Ü�]Ó# qÒ(ä'¨	Ó2Ð3°4Ð8‘	ÜÐ& yÑ1Ó2°aÒ7ä$(¬Ð.?À	Ñ.JÓ)KÓ$LÑ!� Ü'¨Ó7Ð8¼À)Ó9LÐ8MÈTÐR‘	ä'¨	Ó2Ð3°I¸b¸q°M×4LÑ4LÓ4NÐ3OÈtÐT�	ÜðØ'˜[ð )PØPYÈ{ð [MðNôð !×$Ñ$ Y°	Ó:¸iÒGÜØJÈ9È+ð VMð Nôð
 & iÑ0à/8Ð! )Ñ,Ø8AÐ˜y¨)Ð4Ò5ñ7	BðBñ@ )¨Ó1ó -9‰ˆˆ5Ø&+§k¡k£mó ,	9Ñ"ˆI�{Ø"—‘ vÓ.°'Ñ9ˆHÙØ)Ÿo™o¨g°rÓ:�à˜[Ñ(Øà&1°&Ñ&9Ð#Ø.9¸&Ñ.AÖ"Y¨ÀQÈjÒEX¢1Ò"YˆK˜ÑÜ! +¨fÑ"5Ó6ˆIð *×-Ñ-¨iÓ8ÒcÐ<MÈiÐYbÐNbÑ<cˆIð -8×,=Ñ,=Ó,?×Y¡D A qÀ1ÐHXÒCX˜1˜a™4ÐYˆKÑYØ,7×,=Ñ,=Ó,?×]¡D A qÀ1ÐL\ÒC\˜1˜a™4Ð]ˆKÑ]ô $×DÒDØ—?‘? =°"Ó5×@Ñ@ÀÔEØ1<·±ÀÓ1O�K Ò.Ø §¡°¸rÓ BÑBØ!,¨]Ñ!;×!EÑ!EÀgÓ!N‘J�A�q˜$Ø14°t±�K Ñ.ñ & i¸ÔDðˆJô $×GÒGØÐ0Ñ0Ø×%Ñ%Ñ&;¸KÐQWÐZ\ÐY]ÐP^Ô&_Ô`ØÐ2Ñ2Ø×%Ñ%Ñ&;¸JÐPVÐY]ÐX^ÐO_Ô&`Ôaä�:‹ !Ò#Ø×"Ñ" :¨a¡=×#4Ñ#4Õ5à×"Ñ" G¸ZÖ-H¸¨a¯e«eÒ-HÐ#IÔJáÜ,4°[Ó,A��iÑ  Ó)ä#+¨KÓ#8��iÓ òY,	9ð-9ð` %×-Ñ-×3Ñ3Ô4H×4ZÑ4ZÓ[€Fˆ<ÑØ€Mùòs 0gùòd #Zùó ZùÛ]ùò, .Is6   Â3	QÂ=QÉ		QÉQÊQ#
Ê%Q#
Ë Q)
ËQ)
Ï'Q/c           
      óÂ   — dt         j                  › d�}| D ����cg c]2  \  }}}}|j                  |«      s|j                  |dz   «      s||||f‘Œ4 c}}}}S c c}}}}w )z 
        preprocessing hook that filters out {format} suffixed paths, in case
        format_suffix_patterns is used and {format} path params are unwanted.
    ú{ú}ú/)r   ÚFORMAT_SUFFIX_KWARGÚendswith)Ú	endpointsrH   Úformat_pathÚpathÚ
path_regexÚmethodÚcallbacks          r   Úpreprocess_exclude_path_formatrj   š   sm   € ð
 ”|×7Ñ7Ð8¸Ð;€Kð 3<÷ñ á.ˆD�*˜f hØ—‘˜kÔ*¨d¯m©m¸KÈ#Ñ<MÔ.Nð 
ˆz˜6 8Ò,õð ùõ s   œ7A
)r   Úcollectionsr   Ú
inflectionr   Úrest_framework.settingsr   Údrf_spectacular.plumbingr   r   r   r	   r
   Údrf_spectacular.settingsr   r]   rj   © r*   r   ú<module>rq      s,   ðÛ 	Ý #å Ý 0÷õ õ :òJóZ
r*   