@@ -515,6 +515,7 @@ def dtype(self) -> Type:
515
515
Returns:
516
516
Type: Inner data type.
517
517
"""
518
+ # TODO: account for mixed typed NadaArrays due to e.g. padding
518
519
if self .empty :
519
520
return NoneType
520
521
return type (self .inner .item (0 ))
@@ -531,143 +532,242 @@ def is_rational(self) -> bool:
531
532
532
533
@copy_metadata (np .ndarray .compress )
533
534
def compress (self , * args , ** kwargs ):
534
- return self .inner .compress (* args , ** kwargs )
535
+ result = self .inner .compress (* args , ** kwargs )
536
+ if isinstance (result , np .ndarray ):
537
+ result = NadaArray (result )
538
+ return result
535
539
536
540
@copy_metadata (np .ndarray .copy )
537
541
def copy (self , * args , ** kwargs ):
538
- return self .inner .copy (* args , ** kwargs )
542
+ result = self .inner .copy (* args , ** kwargs )
543
+ if isinstance (result , np .ndarray ):
544
+ result = NadaArray (result )
545
+ return result
539
546
540
547
@copy_metadata (np .ndarray .cumprod )
541
548
def cumprod (self , * args , ** kwargs ):
542
- return self .inner .cumprod (* args , ** kwargs )
549
+ result = self .inner .cumprod (* args , ** kwargs )
550
+ if isinstance (result , np .ndarray ):
551
+ result = NadaArray (result )
552
+ return result
543
553
544
554
@copy_metadata (np .ndarray .cumsum )
545
555
def cumsum (self , * args , ** kwargs ):
546
- return self .inner .cumsum (* args , ** kwargs )
556
+ result = self .inner .cumsum (* args , ** kwargs )
557
+ if isinstance (result , np .ndarray ):
558
+ result = NadaArray (result )
559
+ return result
547
560
548
561
@copy_metadata (np .ndarray .diagonal )
549
562
def diagonal (self , * args , ** kwargs ):
550
- return self .inner .diagonal (* args , ** kwargs )
563
+ result = self .inner .diagonal (* args , ** kwargs )
564
+ if isinstance (result , np .ndarray ):
565
+ result = NadaArray (result )
566
+ return result
551
567
552
568
@copy_metadata (np .ndarray .fill )
553
569
def fill (self , * args , ** kwargs ):
554
- return self .inner .fill (* args , ** kwargs )
570
+ result = self .inner .fill (* args , ** kwargs )
571
+ if isinstance (result , np .ndarray ):
572
+ result = NadaArray (result )
573
+ return result
555
574
556
575
@copy_metadata (np .ndarray .flatten )
557
576
def flatten (self , * args , ** kwargs ):
558
- return self .inner .flatten (* args , ** kwargs )
577
+ result = self .inner .flatten (* args , ** kwargs )
578
+ if isinstance (result , np .ndarray ):
579
+ result = NadaArray (result )
580
+ return result
559
581
560
582
@copy_metadata (np .ndarray .item )
561
583
def item (self , * args , ** kwargs ):
562
- return self .inner .item (* args , ** kwargs )
584
+ result = self .inner .item (* args , ** kwargs )
585
+ if isinstance (result , np .ndarray ):
586
+ result = NadaArray (result )
587
+ return result
563
588
564
589
@copy_metadata (np .ndarray .itemset )
565
590
def itemset (self , * args , ** kwargs ):
566
- return self .inner .itemset (* args , ** kwargs )
591
+ result = self .inner .itemset (* args , ** kwargs )
592
+ if isinstance (result , np .ndarray ):
593
+ result = NadaArray (result )
594
+ return result
567
595
568
596
@copy_metadata (np .ndarray .prod )
569
597
def prod (self , * args , ** kwargs ):
570
- return self .inner .prod (* args , ** kwargs )
598
+ result = self .inner .prod (* args , ** kwargs )
599
+ if isinstance (result , np .ndarray ):
600
+ result = NadaArray (result )
601
+ return result
571
602
572
603
@copy_metadata (np .ndarray .put )
573
604
def put (self , * args , ** kwargs ):
574
- return self .inner .put (* args , ** kwargs )
605
+ result = self .inner .put (* args , ** kwargs )
606
+ if isinstance (result , np .ndarray ):
607
+ result = NadaArray (result )
608
+ return result
575
609
576
610
@copy_metadata (np .ndarray .ravel )
577
611
def ravel (self , * args , ** kwargs ):
578
- return self .inner .ravel (* args , ** kwargs )
612
+ result = self .inner .ravel (* args , ** kwargs )
613
+ if isinstance (result , np .ndarray ):
614
+ result = NadaArray (result )
615
+ return result
579
616
580
617
@copy_metadata (np .ndarray .repeat )
581
618
def repeat (self , * args , ** kwargs ):
582
- return self .inner .repeat (* args , ** kwargs )
619
+ result = self .inner .repeat (* args , ** kwargs )
620
+ if isinstance (result , np .ndarray ):
621
+ result = NadaArray (result )
622
+ return result
583
623
584
624
@copy_metadata (np .ndarray .reshape )
585
625
def reshape (self , * args , ** kwargs ):
586
- return self .inner .reshape (* args , ** kwargs )
626
+ result = self .inner .reshape (* args , ** kwargs )
627
+ if isinstance (result , np .ndarray ):
628
+ result = NadaArray (result )
629
+ return result
587
630
588
631
@copy_metadata (np .ndarray .resize )
589
632
def resize (self , * args , ** kwargs ):
590
- return self .inner .resize (* args , ** kwargs )
633
+ result = self .inner .resize (* args , ** kwargs )
634
+ if isinstance (result , np .ndarray ):
635
+ result = NadaArray (result )
636
+ return result
591
637
592
638
@copy_metadata (np .ndarray .squeeze )
593
639
def squeeze (self , * args , ** kwargs ):
594
- return self .inner .squeeze (* args , ** kwargs )
640
+ result = self .inner .squeeze (* args , ** kwargs )
641
+ if isinstance (result , np .ndarray ):
642
+ result = NadaArray (result )
643
+ return result
595
644
596
645
@copy_metadata (np .ndarray .sum )
597
646
def sum (self , * args , ** kwargs ):
598
- return self .inner .sum (* args , ** kwargs )
647
+ result = self .inner .sum (* args , ** kwargs )
648
+ if isinstance (result , np .ndarray ):
649
+ result = NadaArray (result )
650
+ return result
599
651
600
652
@copy_metadata (np .ndarray .swapaxes )
601
653
def swapaxes (self , * args , ** kwargs ):
602
- return self .inner .swapaxes (* args , ** kwargs )
654
+ result = self .inner .swapaxes (* args , ** kwargs )
655
+ if isinstance (result , np .ndarray ):
656
+ result = NadaArray (result )
657
+ return result
603
658
604
659
@copy_metadata (np .ndarray .take )
605
660
def take (self , * args , ** kwargs ):
606
- return self .inner .take (* args , ** kwargs )
661
+ result = self .inner .take (* args , ** kwargs )
662
+ if isinstance (result , np .ndarray ):
663
+ result = NadaArray (result )
664
+ return result
607
665
608
666
@copy_metadata (np .ndarray .tolist )
609
667
def tolist (self , * args , ** kwargs ):
610
- return self .inner .tolist (* args , ** kwargs )
668
+ result = self .inner .tolist (* args , ** kwargs )
669
+ if isinstance (result , np .ndarray ):
670
+ result = NadaArray (result )
671
+ return result
611
672
612
673
@copy_metadata (np .ndarray .trace )
613
674
def trace (self , * args , ** kwargs ):
614
- return self .inner .trace (* args , ** kwargs )
675
+ result = self .inner .trace (* args , ** kwargs )
676
+ if isinstance (result , np .ndarray ):
677
+ result = NadaArray (result )
678
+ return result
615
679
616
680
@copy_metadata (np .ndarray .transpose )
617
681
def transpose (self , * args , ** kwargs ):
618
- return self .inner .transpose (* args , ** kwargs )
682
+ result = self .inner .transpose (* args , ** kwargs )
683
+ if isinstance (result , np .ndarray ):
684
+ result = NadaArray (result )
685
+ return result
619
686
620
687
@property
621
688
@copy_metadata (np .ndarray .base )
622
689
def base (self ):
623
- return self .inner .base
690
+ result = self .inner .base
691
+ if isinstance (result , np .ndarray ):
692
+ result = NadaArray (result )
693
+ return result
624
694
625
695
@property
626
696
@copy_metadata (np .ndarray .data )
627
697
def data (self ):
628
- return self .inner .data
698
+ result = self .inner .data
699
+ if isinstance (result , np .ndarray ):
700
+ result = NadaArray (result )
701
+ return result
629
702
630
703
@property
631
704
@copy_metadata (np .ndarray .flags )
632
705
def flags (self ):
633
- return self .inner .flags
706
+ result = self .inner .flags
707
+ if isinstance (result , np .ndarray ):
708
+ result = NadaArray (result )
709
+ return result
634
710
635
711
@property
636
712
@copy_metadata (np .ndarray .flat )
637
713
def flat (self ):
638
- return self .inner .flat
714
+ result = self .inner .flat
715
+ if isinstance (result , np .ndarray ):
716
+ result = NadaArray (result )
717
+ return result
639
718
640
719
@property
641
720
@copy_metadata (np .ndarray .itemsize )
642
721
def itemsize (self ):
643
- return self .inner .itemsize
722
+ result = self .inner .itemsize
723
+ if isinstance (result , np .ndarray ):
724
+ result = NadaArray (result )
725
+ return result
644
726
645
727
@property
646
728
@copy_metadata (np .ndarray .nbytes )
647
729
def nbytes (self ):
648
- return self .inner .nbytes
730
+ result = self .inner .nbytes
731
+ if isinstance (result , np .ndarray ):
732
+ result = NadaArray (result )
733
+ return result
649
734
650
735
@property
651
736
@copy_metadata (np .ndarray .ndim )
652
737
def ndim (self ):
653
- return self .inner .ndim
738
+ result = self .inner .ndim
739
+ if isinstance (result , np .ndarray ):
740
+ result = NadaArray (result )
741
+ return result
654
742
655
743
@property
656
744
@copy_metadata (np .ndarray .shape )
657
745
def shape (self ):
658
- return self .inner .shape
746
+ result = self .inner .shape
747
+ if isinstance (result , np .ndarray ):
748
+ result = NadaArray (result )
749
+ return result
659
750
660
751
@property
661
752
@copy_metadata (np .ndarray .size )
662
753
def size (self ):
663
- return self .inner .size
754
+ result = self .inner .size
755
+ if isinstance (result , np .ndarray ):
756
+ result = NadaArray (result )
757
+ return result
664
758
665
759
@property
666
760
@copy_metadata (np .ndarray .strides )
667
761
def strides (self ):
668
- return self .inner .strides
762
+ result = self .inner .strides
763
+ if isinstance (result , np .ndarray ):
764
+ result = NadaArray (result )
765
+ return result
669
766
670
767
@property
671
768
@copy_metadata (np .ndarray .T )
672
769
def T (self ):
673
- return self .inner .T
770
+ result = self .inner .T
771
+ if isinstance (result , np .ndarray ):
772
+ result = NadaArray (result )
773
+ return result
0 commit comments