
    xKg                     v    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y)
z
Target Options
    N)configutils)TargetConfigOptionc                   @    e Zd ZdZ G d d      Zd Zed        Zd Zy)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y)TargetOptions.Mappingc                     | S N )xs    V/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/core/options.py<lambda>zTargetOptions.Mapping.<lambda>   s    a    c                      || _         || _        y r   )	flag_nameapply)selfr   r   s      r   __init__zTargetOptions.Mapping.__init__   s    &DNDJr   N)__name__
__module____qualname__r   r   r   r   Mappingr
      s
    ,7 	r   r   c                      y)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                 \     |        }|j                  ||       |j                  ||       |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,     e

5'"UG$r   c                    i }t        |       }t        |      D ]*  }t        ||      }t        ||j                        s&|||<   , t               }|j                         D ]F  \  }}||v s|j                  ||         }t        ||j                  |       |j                  |       H t        |      |z
  }	|	r!d|	 d|j                          }
t        |
      y )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    4jSAQA!S[[) 
 u"..*JAwG|MM'!*-w00!4	 + W$)& 2&&.mmo%68A1+	 r   N)	r   r   r   __doc__r   r   classmethodr#   r    r   r   r   r   r   
   s/     
	  r   r   c                   F   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y)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   s    )8==9H()H)*HE?D[!E=)K]#E_-M=)K!"67 23(H
#H=)KhF=)K$%;<M*Lr   r9   c                  b    | D ci c]  }|t        t        |       }}t        dd|      S c c}w )zReturns a mixin class with a subset of the options

    Parameters
    ----------
    *args : str
        Option names to include.
    OptionMixinsr   )r'   r9   r%   )argsr0   glbss      r   include_default_optionsr\   b   s8     4884aAw~q))4D8D)) 9s   ,)r6   rM   
numba.corer   r   numba.core.targetconfigr   r   r   r   rL   r9   r\   r   r   r   <module>r_      s<     $ 88 8v   + +4
*r   