§
    1@Äj#  ã                   óz   — d Z ddlZddlmZmZ ddlmZmZ  G d„ d¦  «        Zej	        Z
 G d„ d¦  «        Zd	„ ZdS )
z
Target Options
é    N)ÚconfigÚutils)ÚTargetConfigÚOptionc                   óN   — e Zd ZdZ G d„ d¦  «        Zd„ Zed„ ¦   «         Zd„ ZdS )ÚTargetOptionszƒTarget options maps user options from decorators to the
    ``numba.core.compiler.Flags`` used by lowering and target context.
    c                   ó   — e Zd Zd„ fd„ZdS )úTargetOptions.Mappingc                 ó   — | S ©N© )Úxs    úCC:\Projects\Historical\venv\Lib\site-packages\numba/core/options.pyú<lambda>zTargetOptions.Mapping.<lambda>   s   € °a€ ó    c                 ó"   — || _         || _        d S r   )Ú	flag_nameÚapply)Úselfr   r   s      r   Ú__init__zTargetOptions.Mapping.__init__   s   € Ø&ˆDŒNØˆDŒJˆJˆJr   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ÚMappingr
      s-   € € € € € Ø,7¨Kð 	ð 	ð 	ð 	ð 	ð 	r   r   c                 ó   — dS )zÁSubclasses can override this method to make target specific
        customizations of default flags.

        Parameters
        ----------
        flags : Flags
        options : dict
        Nr   )r   ÚflagsÚoptionss      r   ÚfinalizezTargetOptions.finalize   s	   € ð 	ˆr   c                 ór   —  | ¦   «         }|                      ||¦  «         |                     ||¦  «         |S )z¯Parse target options defined in ``options`` and set ``flags``
        accordingly.

        Parameters
        ----------
        flags : Flags
        options : dict
        )Ú_applyr   )Úclsr   r   Úopts       r   Úparse_as_flagszTargetOptions.parse_as_flags   s<   € ð ˆc‰eŒeˆØ�
Š
�5˜'Ñ"Ô"Ð"Ø�Š�U˜GÑ$Ô$Ð$Øˆr   c                 óþ  — i }t          | ¦  «        }t          |¦  «        D ],}t          ||¦  «        }t          ||j        ¦  «        r|||<   Œ-t          ¦   «         }|                     ¦   «         D ]O\  }}||v rF|                     ||         ¦  «        }t          ||j	        |¦  «         | 
                    |¦  «         ŒPt          |¦  «        |z
  }	|	r)d|	› d|                     ¦   «         › �}
t          |
¦  «        ‚d S )NzUnrecognized options: z. Known options are )ÚtypeÚdirÚgetattrÚ
isinstancer   ÚsetÚitemsr   Úsetattrr   ÚaddÚkeysÚKeyError)r   r   r   Úmappingsr!   ÚkÚvÚusedÚmappingÚunusedÚms              r   r    zTargetOptions._apply-   s  € àˆÝ�4‰jŒjˆÝ�S‘”ð 	 ð 	 ˆAÝ˜˜Q‘”ˆAÝ˜!˜Sœ[Ñ)Ô)ð  Ø�˜‘øå‰uŒuˆØ"Ÿ.š.Ñ*Ô*ð 	ð 	‰JˆAˆwØ�Gˆ|ˆ|Ø—M’M '¨!¤*Ñ-Ô-�Ý˜˜wÔ0°!Ñ4Ô4Ð4Ø—’˜‘”�øå�W‘” Ñ$ˆØð 	ð8¨&ð 8ð 8Ø&.§m¢m¡o¤oð8ð 8ˆAå˜1‘+”+Ðð		ð 	r   N)	r   r   r   Ú__doc__r   r   Úclassmethodr#   r    r   r   r   r   r   
   s   € € € € € ðð ðð ð ð ð ñ ô ð ð
	ð 	ð 	ð ðð ñ „[ððð ð ð ð r   r   c                   óª  — e Zd ZdZ edej        ¦  «        Z ed¦  «        Z ed¦  «        Z	 ed¦  «        Z
 ed¦  «        Z ed¦  «        Z ed¦  «        Z ed	¦  «        Z ed
¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        ZdS )ÚDefaultOptionszJDefines how user-level target options are mapped to the target flags.
    Úenable_pyobjectÚforce_pyobjectÚenable_loopliftÚnrtÚ	debuginfoÚboundscheckÚrelease_gilÚwritable_argsÚno_rewritesÚno_cpython_wrapperÚno_cfunc_wrapperÚauto_parallelÚfastmathÚerror_modelÚinlineÚforceinlineÚdbg_extend_lifetimesÚdbg_optnoneN)r   r   r   r6   Ú_mappingÚoperatorÚnot_ÚnopythonÚforceobjÚloopliftÚ_nrtÚdebugr?   ÚnogilrA   rB   rC   rD   ÚparallelrF   rG   rH   rI   Ú_dbg_extend_lifetimesÚ_dbg_optnoner   r   r   r9   r9   H   s1  € € € € € ðð àˆxÐ)¨8¬=Ñ9Ô9€HØˆxÐ(Ñ)Ô)€HØˆxÐ)Ñ*Ô*€HØˆ8�E‰?Œ?€DØˆH�[Ñ!Ô!€EØ�(˜=Ñ)Ô)€KØˆH�]Ñ#Ô#€EØ�H˜_Ñ-Ô-€Mà�(˜=Ñ)Ô)€KØ!˜Ð"6Ñ7Ô7ÐØ�xÐ 2Ñ3Ô3Ðàˆx˜Ñ(Ô(€HØˆx˜
Ñ#Ô#€HØ�(˜=Ñ)Ô)€KØˆX�hÑÔ€FØ�(˜=Ñ)Ô)€Kà$˜HÐ%;Ñ<Ô<ÐØ�8˜MÑ*Ô*€L€L€Lr   r9   c                  ó<   — d„ | D ¦   «         }t          dd|¦  «        S )z‡Returns a mixin class with a subset of the options

    Parameters
    ----------
    *args : str
        Option names to include.
    c                 ó:   — i | ]}|t          t          |¦  «        “ŒS r   )r'   r9   )Ú.0r0   s     r   ú
<dictcomp>z+include_default_options.<locals>.<dictcomp>j   s$   € Ð8Ð8Ð8¨aˆA�w•~ qÑ)Ô)Ð8Ð8Ð8r   ÚOptionMixinsr   )r%   )ÚargsÚglbss     r   Úinclude_default_optionsr_   b   s)   € ð 9Ð8°4Ð8Ñ8Ô8€Då�  DÑ)Ô)Ð)r   )r6   rM   Ú
numba.corer   r   Únumba.core.targetconfigr   r   r   r   rL   r9   r_   r   r   r   ú<module>rb      s¾   ððð ð €€€à $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8ð8ð 8ð 8ð 8ð 8ñ 8ô 8ð 8ðv Ô €ð+ð +ð +ð +ð +ñ +ô +ð +ð4
*ð 
*ð 
*ð 
*ð 
*r   