123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- # Copyright (c) 2015-2016 Claudiu Popa <pcmanticore@gmail.com>
-
- # Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
- # For details: https://github.com/PyCQA/astroid/blob/master/COPYING.LESSER
-
-
- """Astroid hooks for numpy."""
-
- import astroid
-
-
- def numpy_random_mtrand_transform():
- return astroid.parse('''
- def beta(a, b, size=None): pass
- def binomial(n, p, size=None): pass
- def bytes(length): pass
- def chisquare(df, size=None): pass
- def choice(a, size=None, replace=True, p=None): pass
- def dirichlet(alpha, size=None): pass
- def exponential(scale=1.0, size=None): pass
- def f(dfnum, dfden, size=None): pass
- def gamma(shape, scale=1.0, size=None): pass
- def geometric(p, size=None): pass
- def get_state(): pass
- def gumbel(loc=0.0, scale=1.0, size=None): pass
- def hypergeometric(ngood, nbad, nsample, size=None): pass
- def laplace(loc=0.0, scale=1.0, size=None): pass
- def logistic(loc=0.0, scale=1.0, size=None): pass
- def lognormal(mean=0.0, sigma=1.0, size=None): pass
- def logseries(p, size=None): pass
- def multinomial(n, pvals, size=None): pass
- def multivariate_normal(mean, cov, size=None): pass
- def negative_binomial(n, p, size=None): pass
- def noncentral_chisquare(df, nonc, size=None): pass
- def noncentral_f(dfnum, dfden, nonc, size=None): pass
- def normal(loc=0.0, scale=1.0, size=None): pass
- def pareto(a, size=None): pass
- def permutation(x): pass
- def poisson(lam=1.0, size=None): pass
- def power(a, size=None): pass
- def rand(*args): pass
- def randint(low, high=None, size=None, dtype='l'): pass
- def randn(*args): pass
- def random_integers(low, high=None, size=None): pass
- def random_sample(size=None): pass
- def rayleigh(scale=1.0, size=None): pass
- def seed(seed=None): pass
- def set_state(state): pass
- def shuffle(x): pass
- def standard_cauchy(size=None): pass
- def standard_exponential(size=None): pass
- def standard_gamma(shape, size=None): pass
- def standard_normal(size=None): pass
- def standard_t(df, size=None): pass
- def triangular(left, mode, right, size=None): pass
- def uniform(low=0.0, high=1.0, size=None): pass
- def vonmises(mu, kappa, size=None): pass
- def wald(mean, scale, size=None): pass
- def weibull(a, size=None): pass
- def zipf(a, size=None): pass
- ''')
-
-
- def numpy_core_umath_transform():
- ufunc_optional_keyword_arguments = ("""out=None, where=True, casting='same_kind', order='K', """
- """dtype=None, subok=True""")
- return astroid.parse('''
- # Constants
- e = 2.718281828459045
- euler_gamma = 0.5772156649015329
-
- # No arg functions
- def geterrobj(): pass
-
- # One arg functions
- def seterrobj(errobj): pass
-
- # One arg functions with optional kwargs
- def arccos(x, {opt_args:s}): pass
- def arccosh(x, {opt_args:s}): pass
- def arcsin(x, {opt_args:s}): pass
- def arcsinh(x, {opt_args:s}): pass
- def arctan(x, {opt_args:s}): pass
- def arctanh(x, {opt_args:s}): pass
- def cbrt(x, {opt_args:s}): pass
- def conj(x, {opt_args:s}): pass
- def conjugate(x, {opt_args:s}): pass
- def cosh(x, {opt_args:s}): pass
- def deg2rad(x, {opt_args:s}): pass
- def degrees(x, {opt_args:s}): pass
- def exp2(x, {opt_args:s}): pass
- def expm1(x, {opt_args:s}): pass
- def fabs(x, {opt_args:s}): pass
- def frexp(x, {opt_args:s}): pass
- def isfinite(x, {opt_args:s}): pass
- def isinf(x, {opt_args:s}): pass
- def log(x, {opt_args:s}): pass
- def log1p(x, {opt_args:s}): pass
- def log2(x, {opt_args:s}): pass
- def logical_not(x, {opt_args:s}): pass
- def modf(x, {opt_args:s}): pass
- def negative(x, {opt_args:s}): pass
- def rad2deg(x, {opt_args:s}): pass
- def radians(x, {opt_args:s}): pass
- def reciprocal(x, {opt_args:s}): pass
- def rint(x, {opt_args:s}): pass
- def sign(x, {opt_args:s}): pass
- def signbit(x, {opt_args:s}): pass
- def sinh(x, {opt_args:s}): pass
- def spacing(x, {opt_args:s}): pass
- def square(x, {opt_args:s}): pass
- def tan(x, {opt_args:s}): pass
- def tanh(x, {opt_args:s}): pass
- def trunc(x, {opt_args:s}): pass
-
- # Two args functions with optional kwargs
- def bitwise_and(x1, x2, {opt_args:s}): pass
- def bitwise_or(x1, x2, {opt_args:s}): pass
- def bitwise_xor(x1, x2, {opt_args:s}): pass
- def copysign(x1, x2, {opt_args:s}): pass
- def divide(x1, x2, {opt_args:s}): pass
- def equal(x1, x2, {opt_args:s}): pass
- def float_power(x1, x2, {opt_args:s}): pass
- def floor_divide(x1, x2, {opt_args:s}): pass
- def fmax(x1, x2, {opt_args:s}): pass
- def fmin(x1, x2, {opt_args:s}): pass
- def fmod(x1, x2, {opt_args:s}): pass
- def greater(x1, x2, {opt_args:s}): pass
- def hypot(x1, x2, {opt_args:s}): pass
- def ldexp(x1, x2, {opt_args:s}): pass
- def left_shift(x1, x2, {opt_args:s}): pass
- def less(x1, x2, {opt_args:s}): pass
- def logaddexp(x1, x2, {opt_args:s}): pass
- def logaddexp2(x1, x2, {opt_args:s}): pass
- def logical_and(x1, x2, {opt_args:s}): pass
- def logical_or(x1, x2, {opt_args:s}): pass
- def logical_xor(x1, x2, {opt_args:s}): pass
- def maximum(x1, x2, {opt_args:s}): pass
- def minimum(x1, x2, {opt_args:s}): pass
- def nextafter(x1, x2, {opt_args:s}): pass
- def not_equal(x1, x2, {opt_args:s}): pass
- def power(x1, x2, {opt_args:s}): pass
- def remainder(x1, x2, {opt_args:s}): pass
- def right_shift(x1, x2, {opt_args:s}): pass
- def subtract(x1, x2, {opt_args:s}): pass
- def true_divide(x1, x2, {opt_args:s}): pass
- '''.format(opt_args=ufunc_optional_keyword_arguments))
-
-
- def numpy_core_numerictypes_transform():
- return astroid.parse('''
- # different types defined in numerictypes.py
- uint16 = type('uint16')
- uint32 = type('uint32')
- uint64 = type('uint64')
- int128 = type('int128')
- uint128 = type('uint128')
- float16 = type('float16')
- float32 = type('float32')
- float64 = type('float64')
- float80 = type('float80')
- float96 = type('float96')
- float128 = type('float128')
- float256 = type('float256')
- complex32 = type('complex32')
- complex64 = type('complex64')
- complex128 = type('complex128')
- complex160 = type('complex160')
- complex192 = type('complex192')
- complex256 = type('complex256')
- complex512 = type('complex512')
- timedelta64 = type('timedelta64')
- datetime64 = type('datetime64')
- unicode_ = type('unicode_')
- string_ = type('string_')
- object_ = type('object_')
- ''')
-
-
- def numpy_funcs():
- return astroid.parse('''
- import builtins
- def sum(a, axis=None, dtype=None, out=None, keepdims=None):
- return builtins.sum(a)
- ''')
-
-
- astroid.register_module_extender(astroid.MANAGER, 'numpy.core.umath', numpy_core_umath_transform)
- astroid.register_module_extender(astroid.MANAGER, 'numpy.random.mtrand',
- numpy_random_mtrand_transform)
- astroid.register_module_extender(astroid.MANAGER, 'numpy.core.numerictypes',
- numpy_core_numerictypes_transform)
- astroid.register_module_extender(astroid.MANAGER, 'numpy', numpy_funcs)
|