@@ -43,7 +43,9 @@ def permutation(x): return uninferable
4343 def poisson(lam=1.0, size=None): return uninferable
4444 def power(a, size=None): return uninferable
4545 def rand(*args): return uninferable
46- def randint(low, high=None, size=None, dtype='l'): return uninferable
46+ def randint(low, high=None, size=None, dtype='l'):
47+ import numpy
48+ return numpy.ndarray((1,1))
4749 def randn(*args): return uninferable
4850 def random_integers(low, high=None, size=None): return uninferable
4951 def random_sample(size=None): return uninferable
@@ -273,87 +275,6 @@ def __init__(self, obj, align=False, copy=False):
273275 def newbyteorder(self, new_order='S'): return uninferable
274276 def __neg__(self): return uninferable
275277
276-
277- class ndarray(object):
278- def __init__(self, shape, dtype=float, buffer=None, offset=0,
279- strides=None, order=None):
280- self.T = None
281- self.base = None
282- self.ctypes = None
283- self.data = None
284- self.dtype = None
285- self.flags = None
286- self.flat = None
287- self.imag = None
288- self.itemsize = None
289- self.nbytes = None
290- self.ndim = None
291- self.real = None
292- self.shape = None
293- self.size = None
294- self.strides = None
295-
296- def __neg__(self): return uninferable
297- def __inv__(self): return uninferable
298- def __invert__(self): return uninferable
299- def all(self): return uninferable
300- def any(self): return uninferable
301- def argmax(self): return uninferable
302- def argmin(self): return uninferable
303- def argpartition(self): return uninferable
304- def argsort(self): return uninferable
305- def astype(self): return uninferable
306- def byteswap(self): return uninferable
307- def choose(self): return uninferable
308- def clip(self): return uninferable
309- def compress(self): return uninferable
310- def conj(self): return uninferable
311- def conjugate(self): return uninferable
312- def copy(self): return uninferable
313- def cumprod(self): return uninferable
314- def cumsum(self): return uninferable
315- def diagonal(self): return uninferable
316- def dot(self): return uninferable
317- def dump(self): return uninferable
318- def dumps(self): return uninferable
319- def fill(self): return uninferable
320- def flatten(self): return uninferable
321- def getfield(self): return uninferable
322- def item(self): return uninferable
323- def itemset(self): return uninferable
324- def max(self): return uninferable
325- def mean(self): return uninferable
326- def min(self): return uninferable
327- def newbyteorder(self): return uninferable
328- def nonzero(self): return uninferable
329- def partition(self): return uninferable
330- def prod(self): return uninferable
331- def ptp(self): return uninferable
332- def put(self): return uninferable
333- def ravel(self): return uninferable
334- def repeat(self): return uninferable
335- def reshape(self): return uninferable
336- def resize(self): return uninferable
337- def round(self): return uninferable
338- def searchsorted(self): return uninferable
339- def setfield(self): return uninferable
340- def setflags(self): return uninferable
341- def sort(self): return uninferable
342- def squeeze(self): return uninferable
343- def std(self): return uninferable
344- def sum(self): return uninferable
345- def swapaxes(self): return uninferable
346- def take(self): return uninferable
347- def tobytes(self): return uninferable
348- def tofile(self): return uninferable
349- def tolist(self): return uninferable
350- def tostring(self): return uninferable
351- def trace(self): return uninferable
352- def transpose(self): return uninferable
353- def var(self): return uninferable
354- def view(self): return uninferable
355-
356-
357278 class busdaycalendar(object):
358279 def __init__(self, weekmask='1111100', holidays=None):
359280 self.holidays = None
@@ -547,25 +468,105 @@ def _replace_numpy_function_infer_call_result(node, context=None):
547468 node .infer_call_result = numpy_function_infer_call_result (node )
548469 return
549470
550-
551- astroid .MANAGER .register_transform (
552- astroid .FunctionDef ,
553- _replace_numpy_function_infer_call_result ,
554- functools .partial (
555- _looks_like_numpy_function , "linspace" , "numpy.core.function_base"
556- ),
557- )
558-
559471astroid .MANAGER .register_transform (
560472 astroid .FunctionDef ,
561473 _replace_numpy_function_infer_call_result ,
562474 functools .partial (_looks_like_numpy_function , "array" , "numpy.core.records" ),
563475)
564476
477+ def infer_numpy_ndarray (node , context = None ):
478+ ndarray = """
479+ class ndarray(object):
480+ def __init__(self, shape, dtype=float, buffer=None, offset=0,
481+ strides=None, order=None):
482+ self.T = None
483+ self.base = None
484+ self.ctypes = None
485+ self.data = None
486+ self.dtype = None
487+ self.flags = None
488+ self.flat = None
489+ self.imag = None
490+ self.itemsize = None
491+ self.nbytes = None
492+ self.ndim = None
493+ self.real = None
494+ self.shape = None
495+ self.size = None
496+ self.strides = None
497+
498+ def __neg__(self): return uninferable
499+ def __inv__(self): return uninferable
500+ def __invert__(self): return uninferable
501+ def all(self): return uninferable
502+ def any(self): return uninferable
503+ def argmax(self): return uninferable
504+ def argmin(self): return uninferable
505+ def argpartition(self): return uninferable
506+ def argsort(self): return uninferable
507+ def astype(self): return uninferable
508+ def byteswap(self): return uninferable
509+ def choose(self): return uninferable
510+ def clip(self): return uninferable
511+ def compress(self): return uninferable
512+ def conj(self): return uninferable
513+ def conjugate(self): return uninferable
514+ def copy(self): return uninferable
515+ def cumprod(self): return uninferable
516+ def cumsum(self): return uninferable
517+ def diagonal(self): return uninferable
518+ def dot(self): return uninferable
519+ def dump(self): return uninferable
520+ def dumps(self): return uninferable
521+ def fill(self): return uninferable
522+ def flatten(self): return uninferable
523+ def getfield(self): return uninferable
524+ def item(self): return uninferable
525+ def itemset(self): return uninferable
526+ def max(self): return uninferable
527+ def mean(self): return uninferable
528+ def min(self): return uninferable
529+ def newbyteorder(self): return uninferable
530+ def nonzero(self): return uninferable
531+ def partition(self): return uninferable
532+ def prod(self): return uninferable
533+ def ptp(self): return uninferable
534+ def put(self): return uninferable
535+ def ravel(self): return uninferable
536+ def repeat(self): return uninferable
537+ def reshape(self): return uninferable
538+ def resize(self): return uninferable
539+ def round(self): return uninferable
540+ def searchsorted(self): return uninferable
541+ def setfield(self): return uninferable
542+ def setflags(self): return uninferable
543+ def sort(self): return uninferable
544+ def squeeze(self): return uninferable
545+ def std(self): return uninferable
546+ def sum(self): return uninferable
547+ def swapaxes(self): return uninferable
548+ def take(self): return uninferable
549+ def tobytes(self): return uninferable
550+ def tofile(self): return uninferable
551+ def tolist(self): return uninferable
552+ def tostring(self): return uninferable
553+ def trace(self): return uninferable
554+ def transpose(self): return uninferable
555+ def var(self): return uninferable
556+ def view(self): return uninferable
557+ """
558+ node = astroid .extract_node (ndarray )
559+ return node .infer (context = context )
560+
561+ def _looks_like_numpy_ndarray (node ):
562+ if isinstance (node , astroid .Attribute ) and node .attrname == 'ndarray' :
563+ return True
564+ return False
565+
565566astroid .MANAGER .register_transform (
566- astroid .FunctionDef ,
567- _replace_numpy_function_infer_call_result ,
568- functools . partial ( _looks_like_numpy_function , "zeros_like" , "numpy.core.numeric" ),
567+ astroid .Attribute ,
568+ astroid . inference_tip ( infer_numpy_ndarray ) ,
569+ _looks_like_numpy_ndarray
569570)
570571
571572astroid .register_module_extender (
0 commit comments