@@ -43,7 +43,9 @@ def permutation(x): return uninferable
43
43
def poisson(lam=1.0, size=None): return uninferable
44
44
def power(a, size=None): return uninferable
45
45
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))
47
49
def randn(*args): return uninferable
48
50
def random_integers(low, high=None, size=None): return uninferable
49
51
def random_sample(size=None): return uninferable
@@ -273,87 +275,6 @@ def __init__(self, obj, align=False, copy=False):
273
275
def newbyteorder(self, new_order='S'): return uninferable
274
276
def __neg__(self): return uninferable
275
277
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
-
357
278
class busdaycalendar(object):
358
279
def __init__(self, weekmask='1111100', holidays=None):
359
280
self.holidays = None
@@ -547,25 +468,105 @@ def _replace_numpy_function_infer_call_result(node, context=None):
547
468
node .infer_call_result = numpy_function_infer_call_result (node )
548
469
return
549
470
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
-
559
471
astroid .MANAGER .register_transform (
560
472
astroid .FunctionDef ,
561
473
_replace_numpy_function_infer_call_result ,
562
474
functools .partial (_looks_like_numpy_function , "array" , "numpy.core.records" ),
563
475
)
564
476
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
+
565
566
astroid .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
569
570
)
570
571
571
572
astroid .register_module_extender (
0 commit comments