@@ -27,6 +27,7 @@ from numpy._typing import (
27
27
_ArrayLikeStr_co as U_co ,
28
28
_ArrayLikeBytes_co as S_co ,
29
29
_ArrayLikeString_co as T_co ,
30
+ _ArrayLikeAnyString_co as UST_co ,
30
31
_ArrayLikeInt_co as i_co ,
31
32
_ArrayLikeBool_co as b_co ,
32
33
)
@@ -96,6 +97,8 @@ _CharDType_co = TypeVar(
96
97
)
97
98
_CharArray : TypeAlias = chararray [tuple [int , ...], dtype [_SCT ]]
98
99
100
+ AR_T : TypeAlias = np .ndarray [_Shape , np .dtypes .StringDType ]
101
+
99
102
class chararray (ndarray [_ShapeType_co , _CharDType_co ]):
100
103
@overload
101
104
def __new__ (
@@ -561,35 +564,35 @@ def add(x1: U_co, x2: U_co) -> NDArray[np.str_]: ...
561
564
@overload
562
565
def add (x1 : S_co , x2 : S_co ) -> NDArray [np .bytes_ ]: ...
563
566
@overload
564
- def add (x1 : T_co , x2 : T_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
567
+ def add (x1 : T_co , x2 : T_co ) -> AR_T : ...
565
568
566
569
@overload
567
570
def multiply (a : U_co , i : i_co ) -> NDArray [np .str_ ]: ...
568
571
@overload
569
572
def multiply (a : S_co , i : i_co ) -> NDArray [np .bytes_ ]: ...
570
573
@overload
571
- def multiply (a : T_co , i : i_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
574
+ def multiply (a : T_co , i : i_co ) -> AR_T : ...
572
575
573
576
@overload
574
577
def mod (a : U_co , value : Any ) -> NDArray [np .str_ ]: ...
575
578
@overload
576
579
def mod (a : S_co , value : Any ) -> NDArray [np .bytes_ ]: ...
577
580
@overload
578
- def mod (a : T_co , value : Any ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
581
+ def mod (a : T_co , value : Any ) -> AR_T : ...
579
582
580
583
@overload
581
584
def capitalize (a : U_co ) -> NDArray [str_ ]: ...
582
585
@overload
583
586
def capitalize (a : S_co ) -> NDArray [bytes_ ]: ...
584
587
@overload
585
- def capitalize (a : T_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
588
+ def capitalize (a : T_co ) -> AR_T : ...
586
589
587
590
@overload
588
591
def center (a : U_co , width : i_co , fillchar : U_co = ...) -> NDArray [str_ ]: ...
589
592
@overload
590
593
def center (a : S_co , width : i_co , fillchar : S_co = ...) -> NDArray [bytes_ ]: ...
591
594
@overload
592
- def center (a : T_co , width : i_co , fillchar : T_co = ...) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
595
+ def center (a : T_co , width : i_co , fillchar : T_co = ...) -> AR_T : ...
593
596
594
597
def decode (
595
598
a : S_co ,
@@ -607,42 +610,42 @@ def expandtabs(a: U_co, tabsize: i_co = ...) -> NDArray[str_]: ...
607
610
@overload
608
611
def expandtabs (a : S_co , tabsize : i_co = ...) -> NDArray [bytes_ ]: ...
609
612
@overload
610
- def expandtabs (a : T_co , tabsize : i_co = ...) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
613
+ def expandtabs (a : T_co , tabsize : i_co = ...) -> AR_T : ...
611
614
612
615
@overload
613
616
def join (sep : U_co , seq : U_co ) -> NDArray [str_ ]: ...
614
617
@overload
615
618
def join (sep : S_co , seq : S_co ) -> NDArray [bytes_ ]: ...
616
619
@overload
617
- def join (sep : T_co , seq : T_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
620
+ def join (sep : T_co , seq : T_co ) -> AR_T : ...
618
621
619
622
@overload
620
623
def ljust (a : U_co , width : i_co , fillchar : U_co = ...) -> NDArray [str_ ]: ...
621
624
@overload
622
625
def ljust (a : S_co , width : i_co , fillchar : S_co = ...) -> NDArray [bytes_ ]: ...
623
626
@overload
624
- def ljust (a : T_co , width : i_co , fillchar : T_co = ...) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
627
+ def ljust (a : T_co , width : i_co , fillchar : T_co = ...) -> AR_T : ...
625
628
626
629
@overload
627
630
def lower (a : U_co ) -> NDArray [str_ ]: ...
628
631
@overload
629
632
def lower (a : S_co ) -> NDArray [bytes_ ]: ...
630
633
@overload
631
- def lower (a : T_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
634
+ def lower (a : T_co ) -> AR_T : ...
632
635
633
636
@overload
634
637
def lstrip (a : U_co , chars : None | U_co = ...) -> NDArray [str_ ]: ...
635
638
@overload
636
639
def lstrip (a : S_co , chars : None | S_co = ...) -> NDArray [bytes_ ]: ...
637
640
@overload
638
- def lstrip (a : T_co , chars : None | T_co = ...) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
641
+ def lstrip (a : T_co , chars : None | T_co = ...) -> AR_T : ...
639
642
640
643
@overload
641
644
def partition (a : U_co , sep : U_co ) -> NDArray [str_ ]: ...
642
645
@overload
643
646
def partition (a : S_co , sep : S_co ) -> NDArray [bytes_ ]: ...
644
647
@overload
645
- def partition (a : T_co , sep : T_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
648
+ def partition (a : T_co , sep : T_co ) -> AR_T : ...
646
649
647
650
@overload
648
651
def replace (
@@ -664,7 +667,7 @@ def replace(
664
667
old : T_co ,
665
668
new : T_co ,
666
669
count : i_co = ...,
667
- ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
670
+ ) -> AR_T : ...
668
671
669
672
@overload
670
673
def rjust (
@@ -683,14 +686,14 @@ def rjust(
683
686
a : T_co ,
684
687
width : i_co ,
685
688
fillchar : T_co = ...,
686
- ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
689
+ ) -> AR_T : ...
687
690
688
691
@overload
689
692
def rpartition (a : U_co , sep : U_co ) -> NDArray [str_ ]: ...
690
693
@overload
691
694
def rpartition (a : S_co , sep : S_co ) -> NDArray [bytes_ ]: ...
692
695
@overload
693
- def rpartition (a : T_co , sep : T_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
696
+ def rpartition (a : T_co , sep : T_co ) -> AR_T : ...
694
697
695
698
@overload
696
699
def rsplit (
@@ -709,14 +712,14 @@ def rsplit(
709
712
a : T_co ,
710
713
sep : None | T_co = ...,
711
714
maxsplit : None | i_co = ...,
712
- ) -> NDArray [np . object_ ]: ...
715
+ ) -> NDArray [object_ ]: ...
713
716
714
717
@overload
715
718
def rstrip (a : U_co , chars : None | U_co = ...) -> NDArray [str_ ]: ...
716
719
@overload
717
720
def rstrip (a : S_co , chars : None | S_co = ...) -> NDArray [bytes_ ]: ...
718
721
@overload
719
- def rstrip (a : T_co , chars : None | T_co = ...) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
722
+ def rstrip (a : T_co , chars : None | T_co = ...) -> AR_T : ...
720
723
721
724
@overload
722
725
def split (
@@ -735,64 +738,64 @@ def split(
735
738
a : T_co ,
736
739
sep : None | T_co = ...,
737
740
maxsplit : None | i_co = ...,
738
- ) -> NDArray [np . object_ ]: ...
741
+ ) -> NDArray [object_ ]: ...
739
742
740
743
@overload
741
- def splitlines (a : U_co | S_co | T_co , keepends : None | b_co = ...) -> NDArray [np .object_ ]: ...
744
+ def splitlines (a : UST_co , keepends : None | b_co = ...) -> NDArray [np .object_ ]: ...
742
745
743
746
@overload
744
747
def strip (a : U_co , chars : None | U_co = ...) -> NDArray [str_ ]: ...
745
748
@overload
746
749
def strip (a : S_co , chars : None | S_co = ...) -> NDArray [bytes_ ]: ...
747
750
@overload
748
- def strip (a : T_co , chars : None | T_co = ...) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
751
+ def strip (a : T_co , chars : None | T_co = ...) -> AR_T : ...
749
752
750
753
@overload
751
754
def swapcase (a : U_co ) -> NDArray [str_ ]: ...
752
755
@overload
753
756
def swapcase (a : S_co ) -> NDArray [bytes_ ]: ...
754
757
@overload
755
- def swapcase (a : T_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
758
+ def swapcase (a : T_co ) -> AR_T : ...
756
759
757
760
@overload
758
761
def title (a : U_co ) -> NDArray [str_ ]: ...
759
762
@overload
760
763
def title (a : S_co ) -> NDArray [bytes_ ]: ...
761
764
@overload
762
- def title (a : T_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
765
+ def title (a : T_co ) -> AR_T : ...
763
766
764
767
@overload
765
768
def translate (
766
769
a : U_co ,
767
- table : U_co ,
768
- deletechars : None | U_co = ...,
770
+ table : str ,
771
+ deletechars : None | str = ...,
769
772
) -> NDArray [str_ ]: ...
770
773
@overload
771
774
def translate (
772
775
a : S_co ,
773
- table : S_co ,
774
- deletechars : None | S_co = ...,
776
+ table : str ,
777
+ deletechars : None | str = ...,
775
778
) -> NDArray [bytes_ ]: ...
776
779
@overload
777
780
def translate (
778
781
a : T_co ,
779
- table : T_co ,
780
- deletechars : None | T_co = ...,
781
- ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
782
+ table : str ,
783
+ deletechars : None | str = ...,
784
+ ) -> AR_T : ...
782
785
783
786
@overload
784
787
def upper (a : U_co ) -> NDArray [str_ ]: ...
785
788
@overload
786
789
def upper (a : S_co ) -> NDArray [bytes_ ]: ...
787
790
@overload
788
- def upper (a : T_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
791
+ def upper (a : T_co ) -> AR_T : ...
789
792
790
793
@overload
791
794
def zfill (a : U_co , width : i_co ) -> NDArray [str_ ]: ...
792
795
@overload
793
796
def zfill (a : S_co , width : i_co ) -> NDArray [bytes_ ]: ...
794
797
@overload
795
- def zfill (a : T_co , width : i_co ) -> np . ndarray [ _Shape , np . dtypes . StringDType ] : ...
798
+ def zfill (a : T_co , width : i_co ) -> AR_T : ...
796
799
797
800
# String information
798
801
@overload
@@ -883,15 +886,15 @@ def index(
883
886
end : i_co | None = ...,
884
887
) -> NDArray [np .int_ ]: ...
885
888
886
- def isalpha (a : U_co | S_co | T_co ) -> NDArray [np .bool ]: ...
887
- def isalnum (a : U_co | S_co | T_co ) -> NDArray [np .bool ]: ...
889
+ def isalpha (a : UST_co ) -> NDArray [np .bool ]: ...
890
+ def isalnum (a : UST_co ) -> NDArray [np .bool ]: ...
888
891
def isdecimal (a : U_co | T_co ) -> NDArray [np .bool ]: ...
889
- def isdigit (a : U_co | S_co | T_co ) -> NDArray [np .bool ]: ...
890
- def islower (a : U_co | S_co | T_co ) -> NDArray [np .bool ]: ...
892
+ def isdigit (a : UST_co ) -> NDArray [np .bool ]: ...
893
+ def islower (a : UST_co ) -> NDArray [np .bool ]: ...
891
894
def isnumeric (a : U_co | T_co ) -> NDArray [np .bool ]: ...
892
- def isspace (a : U_co | S_co | T_co ) -> NDArray [np .bool ]: ...
893
- def istitle (a : U_co | S_co | T_co ) -> NDArray [np .bool ]: ...
894
- def isupper (a : U_co | S_co | T_co ) -> NDArray [np .bool ]: ...
895
+ def isspace (a : UST_co ) -> NDArray [np .bool ]: ...
896
+ def istitle (a : UST_co ) -> NDArray [np .bool ]: ...
897
+ def isupper (a : UST_co ) -> NDArray [np .bool ]: ...
895
898
896
899
@overload
897
900
def rfind (
@@ -959,7 +962,7 @@ def startswith(
959
962
end : i_co | None = ...,
960
963
) -> NDArray [np .bool ]: ...
961
964
962
- def str_len (A : U_co | S_co | T_co ) -> NDArray [int_ ]: ...
965
+ def str_len (A : UST_co ) -> NDArray [int_ ]: ...
963
966
964
967
# Overload 1 and 2: str- or bytes-based array-likes
965
968
# overload 3: arbitrary object with unicode=False (-> bytes_)
0 commit comments