| Viewing file:  brain_numpy_ndarray.py (8.79 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html# For details: https://github.com/PyCQA/astroid/blob/main/LICENSE
 # Copyright (c) https://github.com/PyCQA/astroid/blob/main/CONTRIBUTORS.txt
 
 """Astroid hooks for numpy ndarray class."""
 from __future__ import annotations
 
 from astroid.brain.brain_numpy_utils import numpy_supports_type_hints
 from astroid.builder import extract_node
 from astroid.context import InferenceContext
 from astroid.inference_tip import inference_tip
 from astroid.manager import AstroidManager
 from astroid.nodes.node_classes import Attribute
 
 
 def infer_numpy_ndarray(node, context: InferenceContext | None = None):
 ndarray = """
 class ndarray(object):
 def __init__(self, shape, dtype=float, buffer=None, offset=0,
 strides=None, order=None):
 self.T = numpy.ndarray([0, 0])
 self.base = None
 self.ctypes = None
 self.data = None
 self.dtype = None
 self.flags = None
 # Should be a numpy.flatiter instance but not available for now
 # Putting an array instead so that iteration and indexing are authorized
 self.flat = np.ndarray([0, 0])
 self.imag = np.ndarray([0, 0])
 self.itemsize = None
 self.nbytes = None
 self.ndim = None
 self.real = np.ndarray([0, 0])
 self.shape = numpy.ndarray([0, 0])
 self.size = None
 self.strides = None
 
 def __abs__(self): return numpy.ndarray([0, 0])
 def __add__(self, value): return numpy.ndarray([0, 0])
 def __and__(self, value): return numpy.ndarray([0, 0])
 def __array__(self, dtype=None): return numpy.ndarray([0, 0])
 def __array_wrap__(self, obj): return numpy.ndarray([0, 0])
 def __contains__(self, key): return True
 def __copy__(self): return numpy.ndarray([0, 0])
 def __deepcopy__(self, memo): return numpy.ndarray([0, 0])
 def __divmod__(self, value): return (numpy.ndarray([0, 0]), numpy.ndarray([0, 0]))
 def __eq__(self, value): return numpy.ndarray([0, 0])
 def __float__(self): return 0.
 def __floordiv__(self): return numpy.ndarray([0, 0])
 def __ge__(self, value): return numpy.ndarray([0, 0])
 def __getitem__(self, key): return uninferable
 def __gt__(self, value): return numpy.ndarray([0, 0])
 def __iadd__(self, value): return numpy.ndarray([0, 0])
 def __iand__(self, value): return numpy.ndarray([0, 0])
 def __ifloordiv__(self, value): return numpy.ndarray([0, 0])
 def __ilshift__(self, value): return numpy.ndarray([0, 0])
 def __imod__(self, value): return numpy.ndarray([0, 0])
 def __imul__(self, value): return numpy.ndarray([0, 0])
 def __int__(self): return 0
 def __invert__(self): return numpy.ndarray([0, 0])
 def __ior__(self, value): return numpy.ndarray([0, 0])
 def __ipow__(self, value): return numpy.ndarray([0, 0])
 def __irshift__(self, value): return numpy.ndarray([0, 0])
 def __isub__(self, value): return numpy.ndarray([0, 0])
 def __itruediv__(self, value): return numpy.ndarray([0, 0])
 def __ixor__(self, value): return numpy.ndarray([0, 0])
 def __le__(self, value): return numpy.ndarray([0, 0])
 def __len__(self): return 1
 def __lshift__(self, value): return numpy.ndarray([0, 0])
 def __lt__(self, value): return numpy.ndarray([0, 0])
 def __matmul__(self, value): return numpy.ndarray([0, 0])
 def __mod__(self, value): return numpy.ndarray([0, 0])
 def __mul__(self, value): return numpy.ndarray([0, 0])
 def __ne__(self, value): return numpy.ndarray([0, 0])
 def __neg__(self): return numpy.ndarray([0, 0])
 def __or__(self, value): return numpy.ndarray([0, 0])
 def __pos__(self): return numpy.ndarray([0, 0])
 def __pow__(self): return numpy.ndarray([0, 0])
 def __repr__(self): return str()
 def __rshift__(self): return numpy.ndarray([0, 0])
 def __setitem__(self, key, value): return uninferable
 def __str__(self): return str()
 def __sub__(self, value): return numpy.ndarray([0, 0])
 def __truediv__(self, value): return numpy.ndarray([0, 0])
 def __xor__(self, value): return numpy.ndarray([0, 0])
 def all(self, axis=None, out=None, keepdims=False): return np.ndarray([0, 0])
 def any(self, axis=None, out=None, keepdims=False): return np.ndarray([0, 0])
 def argmax(self, axis=None, out=None): return np.ndarray([0, 0])
 def argmin(self, axis=None, out=None): return np.ndarray([0, 0])
 def argpartition(self, kth, axis=-1, kind='introselect', order=None): return np.ndarray([0, 0])
 def argsort(self, axis=-1, kind='quicksort', order=None): return np.ndarray([0, 0])
 def astype(self, dtype, order='K', casting='unsafe', subok=True, copy=True): return np.ndarray([0, 0])
 def byteswap(self, inplace=False): return np.ndarray([0, 0])
 def choose(self, choices, out=None, mode='raise'): return np.ndarray([0, 0])
 def clip(self, min=None, max=None, out=None): return np.ndarray([0, 0])
 def compress(self, condition, axis=None, out=None): return np.ndarray([0, 0])
 def conj(self): return np.ndarray([0, 0])
 def conjugate(self): return np.ndarray([0, 0])
 def copy(self, order='C'): return np.ndarray([0, 0])
 def cumprod(self, axis=None, dtype=None, out=None): return np.ndarray([0, 0])
 def cumsum(self, axis=None, dtype=None, out=None): return np.ndarray([0, 0])
 def diagonal(self, offset=0, axis1=0, axis2=1): return np.ndarray([0, 0])
 def dot(self, b, out=None): return np.ndarray([0, 0])
 def dump(self, file): return None
 def dumps(self): return str()
 def fill(self, value): return None
 def flatten(self, order='C'): return np.ndarray([0, 0])
 def getfield(self, dtype, offset=0): return np.ndarray([0, 0])
 def item(self, *args): return uninferable
 def itemset(self, *args): return None
 def max(self, axis=None, out=None): return np.ndarray([0, 0])
 def mean(self, axis=None, dtype=None, out=None, keepdims=False): return np.ndarray([0, 0])
 def min(self, axis=None, out=None, keepdims=False): return np.ndarray([0, 0])
 def newbyteorder(self, new_order='S'): return np.ndarray([0, 0])
 def nonzero(self): return (1,)
 def partition(self, kth, axis=-1, kind='introselect', order=None): return None
 def prod(self, axis=None, dtype=None, out=None, keepdims=False): return np.ndarray([0, 0])
 def ptp(self, axis=None, out=None): return np.ndarray([0, 0])
 def put(self, indices, values, mode='raise'): return None
 def ravel(self, order='C'): return np.ndarray([0, 0])
 def repeat(self, repeats, axis=None): return np.ndarray([0, 0])
 def reshape(self, shape, order='C'): return np.ndarray([0, 0])
 def resize(self, new_shape, refcheck=True): return None
 def round(self, decimals=0, out=None): return np.ndarray([0, 0])
 def searchsorted(self, v, side='left', sorter=None): return np.ndarray([0, 0])
 def setfield(self, val, dtype, offset=0): return None
 def setflags(self, write=None, align=None, uic=None): return None
 def sort(self, axis=-1, kind='quicksort', order=None): return None
 def squeeze(self, axis=None): return np.ndarray([0, 0])
 def std(self, axis=None, dtype=None, out=None, ddof=0, keepdims=False): return np.ndarray([0, 0])
 def sum(self, axis=None, dtype=None, out=None, keepdims=False): return np.ndarray([0, 0])
 def swapaxes(self, axis1, axis2): return np.ndarray([0, 0])
 def take(self, indices, axis=None, out=None, mode='raise'): return np.ndarray([0, 0])
 def tobytes(self, order='C'): return b''
 def tofile(self, fid, sep="", format="%s"): return None
 def tolist(self, ): return []
 def tostring(self, order='C'): return b''
 def trace(self, offset=0, axis1=0, axis2=1, dtype=None, out=None): return np.ndarray([0, 0])
 def transpose(self, *axes): return np.ndarray([0, 0])
 def var(self, axis=None, dtype=None, out=None, ddof=0, keepdims=False): return np.ndarray([0, 0])
 def view(self, dtype=None, type=None): return np.ndarray([0, 0])
 """
 if numpy_supports_type_hints():
 ndarray += """
 @classmethod
 def __class_getitem__(cls, value):
 return cls
 """
 node = extract_node(ndarray)
 return node.infer(context=context)
 
 
 def _looks_like_numpy_ndarray(node) -> bool:
 return isinstance(node, Attribute) and node.attrname == "ndarray"
 
 
 AstroidManager().register_transform(
 Attribute,
 inference_tip(infer_numpy_ndarray),
 _looks_like_numpy_ndarray,
 )
 
 |