+
    –°³j7U  ã                  óÜ   € ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RI
HtHtHt . ROtRtRtRtRtRtRtRtRtRt] ! R R
4      4       t ! R R	4      t ! R R4      t ! R R4      tR# )é    )Úannotations)Ú	dataclass)ÚAny)ÚQConfigMapping)ÚBackendConfig)Ú_get_quant_type_to_strÚ_quant_type_from_strÚ	QuantTypeÚConvertCustomConfigÚFuseCustomConfigÚPrepareCustomConfigÚStandaloneModuleConfigEntryÚstandalone_module_nameÚstandalone_module_classÚ%float_to_observed_custom_module_classÚ)observed_to_quantized_custom_module_classÚnon_traceable_module_nameÚnon_traceable_module_classÚinput_quantized_idxsÚoutput_quantized_idxsÚpreserved_attributesc                  ó@   € ] tR t^$t$ R]R&   R]R&   R]R&   R]R&   R	tR
# )r   úQConfigMapping | NoneÚqconfig_mappingútuple[Any, ...]Úexample_inputsúPrepareCustomConfig | NoneÚprepare_custom_configúBackendConfig | NoneÚbackend_config© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r!   ó    Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/ao/quantization/fx/custom_config.pyr   r   $   s   ‡ ð +Ó*Ø#Ó#Ø5Ó5Ø(×(r(   c                  óÈ   € ] tR t^.tRtR R ltR tR R ltR R lt]	P                  3R	 R
 lltR R ltR R ltR R ltR R ltR R lt]R R l4       tR R ltRtR# )r   aˆ  
Custom configuration for :func:`~torch.ao.quantization.quantize_fx.prepare_fx` and
:func:`~torch.ao.quantization.quantize_fx.prepare_qat_fx`.

Example usage::

    prepare_custom_config = PrepareCustomConfig()             .set_standalone_module_name("module1", qconfig_mapping, example_inputs,                 child_prepare_custom_config, backend_config)             .set_standalone_module_class(MyStandaloneModule, qconfig_mapping, example_inputs,                 child_prepare_custom_config, backend_config)             .set_float_to_observed_mapping(FloatCustomModule, ObservedCustomModule)             .set_non_traceable_module_names(["module2", "module3"])             .set_non_traceable_module_classes([NonTraceableModule1, NonTraceableModule2])             .set_input_quantized_indexes([0])             .set_output_quantized_indexes([0])             .set_preserved_attributes(["attr1", "attr2"])
c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚNoner!   )Úformats   "r)   Ú__annotate__Ú PrepareCustomConfig.__annotate__B   s   € ÷ 2ñ 2˜$ñ 2r(   c                	óv   € / V n         / V n        / V n        . V n        . V n        . V n        . V n        . V n        R # ©N)Ústandalone_module_namesÚstandalone_module_classesÚfloat_to_observed_mappingÚnon_traceable_module_namesÚnon_traceable_module_classesÚinput_quantized_indexesÚoutput_quantized_indexesr   ©Úselfs   &r)   Ú__init__ÚPrepareCustomConfig.__init__B   sB   € ØOQˆÔ$ØRTˆÔ&ØLNˆÔ&Ø57ˆÔ'Ø8:ˆÔ)Ø24ˆÔ$Ø35ˆÔ%Ø/1ˆÖ!r(   c                	ó˜   € V P                   P                  4        UUu/ uF  w  r\        V4      ^ 8”  g   K  WbK  	  pppRV R2# u uppi )r   zPrepareCustomConfig(Ú)©Ú__dict__ÚitemsÚlen©r=   ÚkÚvÚdict_nonemptys   &   r)   Ú__repr__ÚPrepareCustomConfig.__repr__L   óJ   € Ø*.¯-©-×*=Ñ*=Ô*?ÔNÑ*?¡$ !Ä3ÀqÃ6ÈAÁ:œ˜šÑ*?ˆÑNØ% m _°AÐ6Ð6ùó Oó
   žA·Ac               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )r-   Úmodule_nameÚstrr   r   r   r   r   r   r    r   r.   r   r!   )r0   s   "r)   r1   r2   P   sF   € ÷ ñ àðð /ðð (ð	ð
  :ðð -ðð 
ñr(   c                ó8   € \        W#WE4      V P                  V&   V # )aT  
Set the configuration for running a standalone module identified by ``module_name``.

If ``qconfig_mapping`` is None, the parent ``qconfig_mapping`` will be used instead.
If ``prepare_custom_config`` is None, an empty ``PrepareCustomConfig`` will be used.
If ``backend_config`` is None, the parent ``backend_config`` will be used instead.
)r   r5   )r=   rO   r   r   r   r    s   &&&&&&r)   Úset_standalone_module_nameÚ.PrepareCustomConfig.set_standalone_module_nameP   s'   € ô 5PØÐ-Bó5
ˆ×$Ñ$ [Ñ1ð ˆr(   c               ó0   € V ^8„  d   QhRRRRRRRRR	R
RR/# )r-   Úmodule_classÚtyper   r   r   r   r   r   r    r   r.   r   r!   )r0   s   "r)   r1   r2   d   sF   € ÷ ñ àðð /ðð (ð	ð
  :ðð -ðð 
ñr(   c                ó8   € \        W#WE4      V P                  V&   V # )aU  
Set the configuration for running a standalone module identified by ``module_class``.

If ``qconfig_mapping`` is None, the parent ``qconfig_mapping`` will be used instead.
If ``prepare_custom_config`` is None, an empty ``PrepareCustomConfig`` will be used.
If ``backend_config`` is None, the parent ``backend_config`` will be used instead.
)r   r6   )r=   rU   r   r   r   r    s   &&&&&&r)   Úset_standalone_module_classÚ/PrepareCustomConfig.set_standalone_module_classd   s'   € ô 8SØÐ-Bó8
ˆ×&Ñ& |Ñ4ð ˆr(   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r-   Úfloat_classrV   Úobserved_classÚ
quant_typer
   r.   r   r!   )r0   s   "r)   r1   r2   x   s2   € ÷ ñ àðð ðð ð	ð
 
ñr(   c                ó®   € V\         P                  8w  d   \        R4      hW0P                  9  d   / V P                  V&   W P                  V,          V&   V # )a  
Set the mapping from a custom float module class to a custom observed module class.

The observed module class must have a ``from_float`` class method that converts the float module class
to the observed module class. This is currently only supported for static quantization.
zQset_float_to_observed_mapping is currently only supported for static quantization)r
   ÚSTATICÚ
ValueErrorr7   )r=   r[   r\   r]   s   &&&&r)   Úset_float_to_observed_mappingÚ1PrepareCustomConfig.set_float_to_observed_mappingx   sX   € ð œ×)Ñ)Ô)ÜØcóð ð ×;Ñ;Ô;Ø9;ˆD×*Ñ*¨:Ñ6ØBP×&Ñ& zÕ2°;Ñ?Øˆr(   c               ó    € V ^8„  d   QhRRRR/# )r-   Úmodule_namesú	list[str]r.   r   r!   )r0   s   "r)   r1   r2   �   s   € ÷ ñ Ø%ðà	ñr(   c                ó   € Wn         V # )zJ
Set the modules that are not symbolically traceable, identified by name.
)r8   )r=   rd   s   &&r)   Úset_non_traceable_module_namesÚ2PrepareCustomConfig.set_non_traceable_module_names�   s   € ð +7Ô'Øˆr(   c               ó    € V ^8„  d   QhRRRR/# )r-   Úmodule_classesz
list[type]r.   r   r!   )r0   s   "r)   r1   r2   –   s   € ÷ ñ Ø(ðà	ñr(   c                ó   € Wn         V # )zK
Set the modules that are not symbolically traceable, identified by class.
)r9   )r=   rj   s   &&r)   Ú set_non_traceable_module_classesÚ4PrepareCustomConfig.set_non_traceable_module_classes–   s   € ð -;Ô)Øˆr(   c               ó    € V ^8„  d   QhRRRR/# ©r-   Úindexesz	list[int]r.   r   r!   )r0   s   "r)   r1   r2   Ÿ   ó   € ÷ ñ °9ð ÐATñ r(   c                ó   € Wn         V # )z…
Set the indexes of the inputs of the graph that should be quantized.
Inputs are otherwise assumed to be in fp32 by default instead.
)r:   ©r=   rp   s   &&r)   Úset_input_quantized_indexesÚ/PrepareCustomConfig.set_input_quantized_indexesŸ   s   € ð
 (/Ô$Øˆr(   c               ó    € V ^8„  d   QhRRRR/# ro   r!   )r0   s   "r)   r1   r2   §   s   € ÷ ñ °Ið ÐBUñ r(   c                ó   € Wn         V # )z‡
Set the indexes of the outputs of the graph that should be quantized.
Outputs are otherwise assumed to be in fp32 by default instead.
)r;   rs   s   &&r)   Úset_output_quantized_indexesÚ0PrepareCustomConfig.set_output_quantized_indexes§   s   € ð
 )0Ô%Øˆr(   c               ó    € V ^8„  d   QhRRRR/# )r-   Ú
attributesre   r.   r   r!   )r0   s   "r)   r1   r2   ¯   rq   r(   c                ó   € Wn         V # ©z„
Set the names of the attributes that will persist in the graph module even if they are not used in
the model's ``forward`` method.
©r   ©r=   r{   s   &&r)   Úset_preserved_attributesÚ,PrepareCustomConfig.set_preserved_attributes¯   ó   € ð
 %/Ô!Øˆr(   c               ó    € V ^8„  d   QhRRRR/# )r-   Úprepare_custom_config_dictúdict[str, Any]r.   r   r!   )r0   s   "r)   r1   r2   ¹   s    € ÷ Eñ EØ)7ðEà	ñEr(   c                óò  € R R lpR R lpR R lpV ! 4       pVP                  \        . 4       FE  w  pppp	p
V! V\        4      pV! V	\        4      pV! V
\        4      pVP                  VVVVV4       KG  	  VP                  \        . 4       FE  w  pppp	p
V! V\        4      pV! V	\        4      pV! V
\        4      pVP	                  VVVVV4       KG  	  VP                  \
        / 4      P                  4        F>  w  pp\        V4      pVP                  4        F  w  ppVP                  VVV4       K  	  K@  	  VP                  VP                  \        . 4      4       VP                  VP                  \        . 4      4       VP                  VP                  \        . 4      4       VP                  VP                  \         . 4      4       VP#                  VP                  \$        . 4      4       V# )aŠ  
Create a ``PrepareCustomConfig`` from a dictionary with the following items:

    "standalone_module_name": a list of (module_name, qconfig_mapping, example_inputs,
    child_prepare_custom_config, backend_config) tuples

    "standalone_module_class" a list of (module_class, qconfig_mapping, example_inputs,
    child_prepare_custom_config, backend_config) tuples

    "float_to_observed_custom_module_class": a nested dictionary mapping from quantization
    mode to an inner mapping from float module classes to observed module classes, e.g.
    {"static": {FloatCustomModule: ObservedCustomModule}}

    "non_traceable_module_name": a list of modules names that are not symbolically traceable
    "non_traceable_module_class": a list of module classes that are not symbolically traceable
    "input_quantized_idxs": a list of indexes of graph inputs that should be quantized
    "output_quantized_idxs": a list of indexes of graph outputs that should be quantized
    "preserved_attributes": a list of attributes that persist even if they are not used in ``forward``

This function is primarily for backward compatibility and may be removed in the future.
c               ó$   € V ^8„  d   QhRRRRRR/# )r-   Úobjr   Údict_keyrP   r.   r   r!   )r0   s   "r)   r1   Ú3PrepareCustomConfig.from_dict.<locals>.__annotate__Ò   s"   € ÷ 
	ñ 
	 cð 
	°Sð 
	Ð=Rñ 
	r(   c                óÈ   € \        V \        4      '       g   V f   V # \        V \        4      '       d   \        P                  ! V 4      # \	        RV R\        V 4       R24      h)zV
Convert the given object into a QConfigMapping if possible, else throw an exception.
z7Expected QConfigMapping in prepare_custom_config_dict["ú	"], got 'Ú')Ú
isinstancer   ÚdictÚ	from_dictr`   rV   ©rˆ   r‰   s   &&r)   Ú_get_qconfig_mappingÚ;PrepareCustomConfig.from_dict.<locals>._get_qconfig_mappingÒ   sa   € ô ˜#œ~×.Ò.°#²+Ø�
Ü˜#œt×$Ò$Ü%×/Ò/°Ó4Ð4ÜØJÈ8È*ÐT^Ô_cÐdgÓ_hÐ^iÐijÐkóð r(   c               ó$   € V ^8„  d   QhRRRRRR/# )r-   rˆ   r   r‰   rP   r.   r   r!   )r0   s   "r)   r1   rŠ   Þ   s$   € ÷ 	ñ 	Øð	Ø #ð	à'ñ	r(   c                óÆ   € \        V \        4      '       g   V f   V # \        V \        4      '       d   \        P                  V 4      # \	        RV R\        V 4       R24      h)z[
Convert the given object into a PrepareCustomConfig if possible, else throw an exception.
z<Expected PrepareCustomConfig in prepare_custom_config_dict["rŒ   r�   )rŽ   r   r�   r�   r`   rV   r‘   s   &&r)   Ú_get_prepare_custom_configÚAPrepareCustomConfig.from_dict.<locals>._get_prepare_custom_configÞ   sc   € ô ˜#Ô2×3Ò3°s²{Ø�
Ü˜#œt×$Ò$Ü*×4Ñ4°SÓ9Ð9ÜØOÐPXÈzÐYcÔdhÐilÓdmÐcnÐnoÐpóð r(   c               ó$   € V ^8„  d   QhRRRRRR/# )r-   rˆ   r   r‰   rP   r.   r   r!   )r0   s   "r)   r1   rŠ   ì   s"   € ÷ 
	ñ 
	 Sð 
	°Cð 
	Ð<Pñ 
	r(   c                óÈ   € \        V \        4      '       g   V f   V # \        V \        4      '       d   \        P                  ! V 4      # \	        RV R\        V 4       R24      h)zU
Convert the given object into a BackendConfig if possible, else throw an exception.
z6Expected BackendConfig in prepare_custom_config_dict["rŒ   r�   )rŽ   r   r�   r�   r`   rV   r‘   s   &&r)   Ú_get_backend_configÚ:PrepareCustomConfig.from_dict.<locals>._get_backend_configì   sa   € ô ˜#œ}×-Ò-°²Ø�
Ü˜#œt×$Ò$Ü$×.Ò.¨sÓ3Ð3ÜØIÈ(ÈÐS]Ô^bÐcfÓ^gÐ]hÐhiÐjóð r(   )ÚgetÚSTANDALONE_MODULE_NAME_DICT_KEYrR   Ú STANDALONE_MODULE_CLASS_DICT_KEYrX   ÚFLOAT_TO_OBSERVED_DICT_KEYrD   r	   ra   rg   Ú"NON_TRACEABLE_MODULE_NAME_DICT_KEYrl   Ú#NON_TRACEABLE_MODULE_CLASS_DICT_KEYrt   Ú INPUT_QUANTIZED_INDEXES_DICT_KEYrx   Ú!OUTPUT_QUANTIZED_INDEXES_DICT_KEYr€   ÚPRESERVED_ATTRIBUTES_DICT_KEY)Úclsr„   r’   r–   rš   ÚconfrO   Úqconfig_dictr   Ú_prepare_custom_config_dictÚbackend_config_dictr   r   r    rU   Úquant_type_nameÚcustom_module_mappingr]   r[   r\   s   &&                  r)   r�   ÚPrepareCustomConfig.from_dict¸   s2  € õ4
	õ	õ
	ñ ‹uˆð (×+Ñ+Ô,KÈRÖPñ
ØØØØ'Øá2ØÔ=óˆOñ %?Ø+Ô-Ló%Ð!ñ 1Ø#Ô%DóˆNð ×+Ñ+ØØØØ%Øöñ Qð. (×+Ñ+Ô,LÈbÖQñ
ØØØØ'Øá2ØÔ>óˆOñ %?Ø+Ô-Mó%Ð!ñ 1Ø#Ô%EóˆNð ×,Ñ,ØØØØ%Øöñ Rð" 7Q×6TÑ6TÜ&¨ó7
ç
‰%‹'ò7Ñ2ˆOÐ2ô .¨oÓ>ˆJØ/D×/JÑ/JÖ/LÑ+�˜^Ø×2Ñ2Ø °öó 0Mñ	7ð 	×+Ñ+Ø&×*Ñ*Ô+MÈrÓRô	
ð 	×-Ñ-Ø&×*Ñ*Ô+NÐPRÓSô	
ð 	×(Ñ(Ø&×*Ñ*Ô+KÈRÓPô	
ð 	×)Ñ)Ø&×*Ñ*Ô+LÈbÓQô	
ð 	×%Ñ%Ø&×*Ñ*Ô+HÈ"ÓMô	
ð ˆr(   c               ó   € V ^8„  d   QhRR/# ©r-   r.   r…   r!   )r0   s   "r)   r1   r2   @  s   € ÷ 3ñ 3˜ñ 3r(   c                óÞ  € R R lp/ pV P                   P                  4        F;  w  r4\        V9  d
   . V\        &   V\        ,          P                  V! W44      4       K=  	  V P                  P                  4        F;  w  rT\
        V9  d
   . V\
        &   V\
        ,          P                  V! WT4      4       K=  	  V P                  P                  4        F3  w  pp\        V9  d
   / V\        &   VV\        ,          \        V4      &   K5  	  \        V P                  4      ^ 8”  d   V P                  V\        &   \        V P                  4      ^ 8”  d   V P                  V\        &   \        V P                  4      ^ 8”  d   V P                  V\        &   \        V P                   4      ^ 8”  d   V P                   V\"        &   \        V P$                  4      ^ 8”  d   V P$                  V\&        &   V# )z¡
Convert this ``PrepareCustomConfig`` to a dictionary with the items described in
:func:`~torch.ao.quantization.fx.custom_config.PrepareCustomConfig.from_dict`.
c               ó    € V ^8„  d   QhRRRR/# )r-   Úkeyr   Úer   r!   )r0   s   "r)   r1   Ú1PrepareCustomConfig.to_dict.<locals>.__annotate__F  s   € ÷ 	ñ 	˜Sð 	Ð%@ñ 	r(   c                óð   € VP                   '       d   VP                   P                  4       MR pVP                  '       d   VP                  P                  4       MR pV VVP                  VVP                  3# r4   )r   Úto_dictr   r   r    )r±   r²   r§   r„   s   &&  r)   Ú_make_tupleÚ0PrepareCustomConfig.to_dict.<locals>._make_tupleF  sp   € Ø:;×:K×:KÐ:K˜1×,Ñ,×4Ñ4Ô6ÐQUˆLà56×5L×5LÐ5L�×'Ñ'×/Ñ/Ô1ÐRVð 'ð ØØ× Ñ Ø*Ø× Ñ ðð r(   )r5   rD   r�   Úappendr6   rž   r7   rŸ   r   rE   r8   r    r9   r¡   r:   r¢   r;   r£   r   r¤   )r=   r¶   ÚdrO   Úsm_config_entryrU   r]   r7   s   &       r)   rµ   ÚPrepareCustomConfig.to_dict@  s³  € õ	ð ˆØ,0×,HÑ,H×,NÑ,NÖ,PÑ(ˆKÜ.°aÔ7Ø57�Ô1Ñ2ØÔ-Õ.×5Ñ5Ù˜KÓ9öñ -Qð .2×-KÑ-K×-QÑ-QÖ-SÑ)ˆLÜ/°qÔ8Ø68�Ô2Ñ3ØÔ.Õ/×6Ñ6Ù˜LÓ:öñ .Tð ×+Ñ+×1Ñ1Ö3ñ
ØØ%ä)°Ô2Ø02�Ô,Ñ-à)ð Ô(Õ)Ô*@ÀÓ*LÓMñ 4ô ˆt×.Ñ.Ó/°!Ô3Ø48×4SÑ4SˆAÔ0Ñ1Üˆt×0Ñ0Ó1°AÔ5Ø59×5VÑ5VˆAÔ1Ñ2Üˆt×+Ñ+Ó,¨qÔ0Ø26×2NÑ2NˆAÔ.Ñ/Üˆt×,Ñ,Ó-°Ô1Ø37×3PÑ3PˆAÔ/Ñ0Üˆt×(Ñ(Ó)¨AÔ-Ø/3×/HÑ/HˆAÔ+Ñ,Øˆr(   )r7   r:   r9   r8   r;   r   r6   r5   N)r"   r#   r$   r%   Ú__doc__r>   rJ   rR   rX   r
   r_   ra   rg   rl   rt   rx   r€   Úclassmethodr�   rµ   r'   r!   r(   r)   r   r   .   se   † ñõ&2ò7õõ(ð0 !*× 0Ñ 0÷	õ*õõõõð ôEó ðE÷N3ñ 3r(   c                  ó€   € ] tR tRtRtR R ltR t]P                  3R R llt	R R	 lt
]R
 R l4       tR R ltRtR# )r   iv  a+  
Custom configuration for :func:`~torch.ao.quantization.quantize_fx.convert_fx`.

Example usage::

    convert_custom_config = ConvertCustomConfig()             .set_observed_to_quantized_mapping(ObservedCustomModule, QuantizedCustomModule)             .set_preserved_attributes(["attr1", "attr2"])
c               ó   € V ^8„  d   QhRR/# r,   r!   )r0   s   "r)   r1   Ú ConvertCustomConfig.__annotate__�  s   € ÷ 2ñ 2˜$ñ 2r(   c                	ó"   € / V n         . V n        R # r4   ©Úobserved_to_quantized_mappingr   r<   s   &r)   r>   ÚConvertCustomConfig.__init__�  s   € ØPRˆÔ*Ø/1ˆÖ!r(   c                	ó˜   € V P                   P                  4        UUu/ uF  w  r\        V4      ^ 8”  g   K  WbK  	  pppRV R2# u uppi )r   zConvertCustomConfig(rA   rB   rF   s   &   r)   rJ   ÚConvertCustomConfig.__repr__…  rL   rM   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r-   r\   rV   Úquantized_classr]   r
   r.   r   r!   )r0   s   "r)   r1   rÀ   ‰  s2   € ÷ ñ àðð ðð ð	ð
 
ñr(   c                ón   € W0P                   9  d   / V P                   V&   W P                   V,          V&   V # )zç
Set the mapping from a custom observed module class to a custom quantized module class.

The quantized module class must have a ``from_observed`` class method that converts the observed module class
to the quantized module class.
)rÃ   )r=   r\   rÈ   r]   s   &&&&r)   Ú!set_observed_to_quantized_mappingÚ5ConvertCustomConfig.set_observed_to_quantized_mapping‰  s8   € ð ×?Ñ?Ô?Ø=?ˆD×.Ñ.¨zÑ:ØIX×*Ñ*¨:Õ6°~ÑFØˆr(   c               ó    € V ^8„  d   QhRRRR/# )r-   r{   re   r.   r   r!   )r0   s   "r)   r1   rÀ   š  rq   r(   c                ó   € Wn         V # r}   r~   r   s   &&r)   r€   Ú,ConvertCustomConfig.set_preserved_attributesš  r‚   r(   c               ó    € V ^8„  d   QhRRRR/# )r-   Úconvert_custom_config_dictr…   r.   r   r!   )r0   s   "r)   r1   rÀ   ¤  s   € ÷ ñ Ø)7ðà	ñr(   c                ó$  € V ! 4       pVP                  \        / 4      P                  4        F;  w  r4\        V4      pVP                  4        F  w  rgVP	                  WgV4       K  	  K=  	  VP                  VP                  \        . 4      4       V# )aˆ  
Create a ``ConvertCustomConfig`` from a dictionary with the following items:

    "observed_to_quantized_custom_module_class": a nested dictionary mapping from quantization
    mode to an inner mapping from observed module classes to quantized module classes, e.g.::
    {
    "static": {FloatCustomModule: ObservedCustomModule},
    "dynamic": {FloatCustomModule: ObservedCustomModule},
    "weight_only": {FloatCustomModule: ObservedCustomModule}
    }
    "preserved_attributes": a list of attributes that persist even if they are not used in ``forward``

This function is primarily for backward compatibility and may be removed in the future.
)rœ   ÚOBSERVED_TO_QUANTIZED_DICT_KEYrD   r	   rÊ   r€   r¤   )r¥   rÐ   r¦   rª   r«   r]   r\   rÈ   s   &&      r)   r�   ÚConvertCustomConfig.from_dict£  s’   € ñ$ ‹uˆØ6P×6TÑ6TÜ*¨Bó7
ç
‰%‹'ò7Ñ2ˆOô .¨oÓ>ˆJØ3H×3NÑ3NÖ3PÑ/�Ø×6Ñ6Ø"°Zöó 4Qñ	7ð 	×%Ñ%Ø&×*Ñ*Ô+HÈ"ÓMô	
ð ˆr(   c               ó   € V ^8„  d   QhRR/# r®   r!   )r0   s   "r)   r1   rÀ   Ã  s   € ÷ ñ ˜ñ r(   c                ó  € / pV P                   P                  4        F3  w  pp\        V9  d
   / V\        &   VV\        ,          \        V4      &   K5  	  \	        V P
                  4      ^ 8”  d   V P
                  V\        &   V# )z¡
Convert this ``ConvertCustomConfig`` to a dictionary with the items described in
:func:`~torch.ao.quantization.fx.custom_config.ConvertCustomConfig.from_dict`.
)rÃ   rD   rÒ   r   rE   r   r¤   )r=   r¹   r]   rÃ   s   &   r)   rµ   ÚConvertCustomConfig.to_dictÃ  s„   € ð
 ˆð ×/Ñ/×5Ñ5Ö7ñ
ØØ)ä-°QÔ6Ø46�Ô0Ñ1à-ð Ô,Õ-Ô.DÀZÓ.PÓQñ 8ô ˆt×(Ñ(Ó)¨AÔ-Ø/3×/HÑ/HˆAÔ+Ñ,Øˆr(   rÂ   N)r"   r#   r$   r%   r¼   r>   rJ   r
   r_   rÊ   r€   r½   r�   rµ   r'   r!   r(   r)   r   r   v  sD   † ñõ2ò7ð !*× 0Ñ 0÷	õ"ð ôó ð÷>ñ r(   c                  óZ   € ] tR tRtRtR R ltR tR R lt]R R	 l4       t	R
 R lt
RtR# )r   i×  zÇ
Custom configuration for :func:`~torch.ao.quantization.quantize_fx.fuse_fx`.

Example usage::

    fuse_custom_config = FuseCustomConfig().set_preserved_attributes(
        ["attr1", "attr2"]
    )
c               ó   € V ^8„  d   QhRR/# r,   r!   )r0   s   "r)   r1   ÚFuseCustomConfig.__annotate__â  s   € ÷ 2ñ 2˜$ñ 2r(   c                	ó   € . V n         R # r4   r~   r<   s   &r)   r>   ÚFuseCustomConfig.__init__â  s
   € Ø/1ˆÖ!r(   c                	ó˜   € V P                   P                  4        UUu/ uF  w  r\        V4      ^ 8”  g   K  WbK  	  pppRV R2# u uppi )r   zFuseCustomConfig(rA   rB   rF   s   &   r)   rJ   ÚFuseCustomConfig.__repr__å  sJ   € Ø*.¯-©-×*=Ñ*=Ô*?ÔNÑ*?¡$ !Ä3ÀqÃ6ÈAÁ:œ˜šÑ*?ˆÑNØ" = /°Ð3Ð3ùó OrM   c               ó    € V ^8„  d   QhRRRR/# )r-   r{   re   r.   r   r!   )r0   s   "r)   r1   rÙ   é  s   € ÷ ñ °9ð ÐAQñ r(   c                ó   € Wn         V # r}   r~   r   s   &&r)   r€   Ú)FuseCustomConfig.set_preserved_attributesé  r‚   r(   c               ó    € V ^8„  d   QhRRRR/# )r-   Úfuse_custom_config_dictr…   r.   r   r!   )r0   s   "r)   r1   rÙ   ó  s   € ÷ ñ °ð ÐCSñ r(   c                ó^   € V ! 4       pVP                  VP                  \        . 4      4       V# )a  
Create a ``ConvertCustomConfig`` from a dictionary with the following items:

    "preserved_attributes": a list of attributes that persist even if they are not used in ``forward``

This function is primarily for backward compatibility and may be removed in the future.
)r€   rœ   r¤   )r¥   râ   r¦   s   && r)   r�   ÚFuseCustomConfig.from_dictò  s1   € ñ ‹uˆØ×%Ñ%Ø#×'Ñ'Ô(EÀrÓJô	
ð ˆr(   c               ó   € V ^8„  d   QhRR/# r®   r!   )r0   s   "r)   r1   rÙ     s   € ÷ ñ ˜ñ r(   c                ód   € / p\        V P                  4      ^ 8”  d   V P                  V\        &   V# )zž
Convert this ``FuseCustomConfig`` to a dictionary with the items described in
:func:`~torch.ao.quantization.fx.custom_config.ConvertCustomConfig.from_dict`.
)rE   r   r¤   )r=   r¹   s   & r)   rµ   ÚFuseCustomConfig.to_dict  s2   € ð
 ˆÜˆt×(Ñ(Ó)¨AÔ-Ø/3×/HÑ/HˆAÔ+Ñ,Øˆr(   r~   N)r"   r#   r$   r%   r¼   r>   rJ   r€   r½   r�   rµ   r'   r!   r(   r)   r   r   ×  s4   † ñõ2ò4õð ôó ð÷ñ r(   N)r   r   r   r   )Ú
__future__r   Údataclassesr   Útypingr   Útorch.ao.quantizationr   Ú$torch.ao.quantization.backend_configr   Ú torch.ao.quantization.quant_typer   r	   r
   Ú__all__r�   rž   rŸ   rÒ   r    r¡   r¢   r£   r¤   r   r   r   r   r!   r(   r)   Ú<module>rï      sš   ðå "å !Ý å 0Ý >÷ñ ò€ð #;Ð Ø#<Ð  ØDÐ Ø!LÐ Ø%@Ð "Ø&BÐ #Ø#9Ð  Ø$;Ð !Ø 6Ð ð ÷)ð )ó ð)÷Eñ E÷P
^ñ ^÷B2ó 2r(   