@@ -499,6 +499,8 @@ static PyType_Slot b2s_slots[] = {{NPY_METH_resolve_descriptors,
499
499
500
500
static char * b2s_name = "cast_Bool_to_StringDType" ;
501
501
502
+ // casts between string and (u)int dtypes
503
+
502
504
static PyObject *
503
505
string_to_pylong (char * in )
504
506
{
@@ -691,23 +693,7 @@ uint_to_string(unsigned long long in, char *out)
691
693
\
692
694
PyArrayMethod_Spec *typename##ToStringCastSpec = get_cast_spec( \
693
695
shortname##2s_name, NPY_UNSAFE_CASTING, NPY_METH_REQUIRES_PYAPI, \
694
- shortname##2s_dtypes, shortname##2s_slots); \
695
- \
696
- PyArray_DTypeMeta **s2u##shortname##_dtypes = \
697
- get_dtypes(this, &PyArray_U##typename##DType); \
698
- \
699
- PyArrayMethod_Spec *StringToU##typename##CastSpec = \
700
- get_cast_spec(s2u##shortname##_name, NPY_UNSAFE_CASTING, \
701
- NPY_METH_REQUIRES_PYAPI, s2u##shortname##_dtypes, \
702
- s2u##shortname##_slots); \
703
- \
704
- PyArray_DTypeMeta **u##shortname##2s_dtypes = \
705
- get_dtypes(&PyArray_U##typename##DType, this); \
706
- \
707
- PyArrayMethod_Spec *U##typename##ToStringCastSpec = \
708
- get_cast_spec(u##shortname##2s_name, NPY_UNSAFE_CASTING, \
709
- NPY_METH_REQUIRES_PYAPI, u##shortname##2s_dtypes, \
710
- u##shortname##2s_slots);
696
+ shortname##2s_dtypes, shortname##2s_slots);
711
697
712
698
STRING_TO_INT (int8 , int , i8 , NPY_INT8 , lli , npy_longlong )
713
699
INT_TO_STRING (int8 , int , i8 , long long )
@@ -757,17 +743,17 @@ STRING_TO_INT(ulonglong, uint, ulonglong, NPY_ULONGLONG, llu, npy_ulonglong)
757
743
INT_TO_STRING (ulonglong , uint , ulonglong , unsigned long long)
758
744
#endif
759
745
760
- STRING_TO_INT (uint8 , uint , ui8 , NPY_UINT8 , llu , npy_ulonglong )
761
- INT_TO_STRING (uint8 , uint , ui8 , unsigned long long)
746
+ STRING_TO_INT (uint8 , uint , u8 , NPY_UINT8 , llu , npy_ulonglong )
747
+ INT_TO_STRING (uint8 , uint , u8 , unsigned long long)
762
748
763
- STRING_TO_INT (uint16 , uint , ui16 , NPY_UINT16 , llu , npy_ulonglong )
764
- INT_TO_STRING (uint16 , uint , ui16 , unsigned long long)
749
+ STRING_TO_INT (uint16 , uint , u16 , NPY_UINT16 , llu , npy_ulonglong )
750
+ INT_TO_STRING (uint16 , uint , u16 , unsigned long long)
765
751
766
- STRING_TO_INT (uint32 , uint , ui32 , NPY_UINT32 , llu , npy_ulonglong )
767
- INT_TO_STRING (uint32 , uint , ui32 , unsigned long long)
752
+ STRING_TO_INT (uint32 , uint , u32 , NPY_UINT32 , llu , npy_ulonglong )
753
+ INT_TO_STRING (uint32 , uint , u32 , unsigned long long)
768
754
769
- STRING_TO_INT (uint64 , uint , ui64 , NPY_UINT64 , llu , npy_ulonglong )
770
- INT_TO_STRING (uint64 , uint , ui64 , unsigned long long)
755
+ STRING_TO_INT (uint64 , uint , u64 , NPY_UINT64 , llu , npy_ulonglong )
756
+ INT_TO_STRING (uint64 , uint , u64 , unsigned long long)
771
757
772
758
PyArrayMethod_Spec *
773
759
get_cast_spec (const char * name , NPY_CASTING casting ,
@@ -880,17 +866,25 @@ get_casts(PyArray_DTypeMeta *this, PyArray_DTypeMeta *other)
880
866
INT_DTYPES_AND_CAST_SPEC (i16 , Int16 )
881
867
INT_DTYPES_AND_CAST_SPEC (i32 , Int32 )
882
868
INT_DTYPES_AND_CAST_SPEC (i64 , Int64 )
869
+ INT_DTYPES_AND_CAST_SPEC (u8 , UInt8 )
870
+ INT_DTYPES_AND_CAST_SPEC (u16 , UInt16 )
871
+ INT_DTYPES_AND_CAST_SPEC (u32 , UInt32 )
872
+ INT_DTYPES_AND_CAST_SPEC (u64 , UInt64 )
883
873
#if NPY_SIZEOF_BYTE == NPY_SIZEOF_SHORT
884
874
INT_DTYPES_AND_CAST_SPEC (byte , Byte )
875
+ INT_DTYPES_AND_CAST_SPEC (ubyte , UByte )
885
876
#endif
886
877
#if NPY_SIZEOF_SHORT == NPY_SIZEOF_INT
887
878
INT_DTYPES_AND_CAST_SPEC (short , Short )
879
+ INT_DTYPES_AND_CAST_SPEC (ushort , UShort )
888
880
#endif
889
881
#if NPY_SIZEOF_INT == NPY_SIZEOF_LONG
890
882
INT_DTYPES_AND_CAST_SPEC (int , Int )
883
+ INT_DTYPES_AND_CAST_SPEC (uint , UInt )
891
884
#endif
892
885
#if NPY_SIZEOF_LONGLONG == NPY_SIZEOF_LONG
893
886
INT_DTYPES_AND_CAST_SPEC (longlong , LongLong )
887
+ INT_DTYPES_AND_CAST_SPEC (ulonglong , ULongLong )
894
888
#endif
895
889
896
890
PyArrayMethod_Spec * * casts = NULL ;
0 commit comments