
    J/Ph                     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 )TargetOptionszTarget 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    R/var/www/html/test/jupyter/venv/lib/python3.11/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    &DNDJJJr   N)__name__
__module____qualname__r   r   r   r   Mappingr
      s-        ,7K 	 	 	 	 	 	r   r   c                     dS )zSubclasses 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 )zParse 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<     cee

5'"""UG$$$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   4jjS 	  	 AQA!S[))  uu"..** 	 	JAwG||MM'!*--w0!444W$ 	8& 8 8&.mmoo8 8A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9Hx())Hx)**H8E??DH[!!E(=))KH]##EH_--M(=))K!"677x 233x((Hx
##H(=))KXhF(=))K$H%;<<8M**LLLr   r9   c                  <    d | D             }t          dd|          S )zReturns 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8aAw~q))888r   OptionMixinsr   )r%   )argsglbss     r   include_default_optionsr_   b   s)     984888D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   