zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
U
¬ý°dÔ ã@s¦UdZddlmZddlZddlmZmZddlZddl    m
Z
ddl m Z da ded    <d
dd œd d „Zddddœdd„Zdddddœdd„Zddddddœdd„ZdS)z%Common utilities for Numba operationsé)Ú annotationsN)Ú TYPE_CHECKINGÚCallable)Úimport_optional_dependency)ÚNumbaUtilErrorFÚboolÚGLOBAL_USE_NUMBAz
str | None)ÚengineÚreturncCs|dkp|dkotS)z%Signal whether to use numba routines.ÚnumbaN)r)r    ©r úNd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/core/util/numba_.pyÚmaybe_use_numbasrÚNone)Úenabler
cCs|r tdƒ|adS)Nr )rr)rr r r Ú set_use_numbasrzdict[str, bool] | Nonez dict | Nonezdict[str, bool])Ú engine_kwargsÚkwargsr
cCsL|dkr i}| dd¡}|r(|r(tdƒ‚| dd¡}| dd¡}|||dœS)    a¶
    Return arguments to pass to numba.JIT, falling back on pandas default JIT settings.
 
    Parameters
    ----------
    engine_kwargs : dict, default None
        user passed keyword arguments for numba.JIT
    kwargs : dict, default None
        user passed keyword arguments to pass into the JITed function
 
    Returns
    -------
    dict[str, bool]
        nopython, nogil, parallel
 
    Raises
    ------
    NumbaUtilError
    NÚnopythonTz\numba does not support kwargs with nopython=True: https://github.com/numba/numba/issues/2916ÚnogilFÚparallel©rrr)Úgetr)rrrrrr r r Úget_jit_argumentss ÿ  rr)Úfuncrrrr
csNtrddl‰ntdƒ‰ˆj ˆ¡r(ˆ}n"ˆjˆˆ|d‡‡‡‡fdd„ƒ}|S)aˆ
    JIT the user's function given the configurable arguments.
 
    Parameters
    ----------
    func : function
        user defined function
    nopython : bool
        nopython parameter for numba.JIT
    nogil : bool
        nogil parameter for numba.JIT
    parallel : bool
        parallel parameter for numba.JIT
 
    Returns
    -------
    function
        Numba JITed function
    rNr rcsDttˆjdƒˆkstˆtjƒr$ˆ‰nˆjˆˆˆd‰‡fdd„}|S)NF)rrcsˆ|f|žŽS)Nr )ÚdataÚ_args©Zjfr r Úimplksz3jit_user_function.<locals>.numba_func.<locals>.impl)ÚgetattrÚnpÚ__name__Ú
isinstanceÚtypesÚBuiltinFunctionTypeZjit)rrr©rrrr rr Ú
numba_funcbsÿ z%jit_user_function.<locals>.numba_func)rr rZ    extendingZ    is_jittedZ generated_jit)rrrrr&r r%r Újit_user_functionBs
  r')F)NN)Ú__doc__Ú
__future__rr#ÚtypingrrÚnumpyr Zpandas.compat._optionalrZ pandas.errorsrrÚ__annotations__rrrr'r r r r Ú<module>s    ÿ$