From 221dc6c2996452a07c0cf47f427702eb3a61d30f Mon Sep 17 00:00:00 2001 From: Vaibhav Vishal Date: Fri, 19 Apr 2019 13:54:57 +0530 Subject: [PATCH 1/4] remove the module from mypy.ini --- mypy.ini | 3 --- 1 file changed, 3 deletions(-) diff --git a/mypy.ini b/mypy.ini index 80c34260acdd1..c05f7754dec8a 100644 --- a/mypy.ini +++ b/mypy.ini @@ -14,9 +14,6 @@ ignore_errors=True [mypy-pandas.core.accessor] ignore_errors=True -[mypy-pandas.core.api] -ignore_errors=True - [mypy-pandas.core.apply] ignore_errors=True From b4922814fe615d4e0b8f417fe4011eccf3efc9d6 Mon Sep 17 00:00:00 2001 From: Vaibhav Vishal Date: Sat, 11 May 2019 19:08:15 +0530 Subject: [PATCH 2/4] remove the module from mypy.ini --- mypy.ini | 3 --- 1 file changed, 3 deletions(-) diff --git a/mypy.ini b/mypy.ini index c7a8b59c455b2..54b2c59e1ba33 100644 --- a/mypy.ini +++ b/mypy.ini @@ -5,9 +5,6 @@ follow_imports=silent [mypy-pandas.conftest,pandas.tests.*] ignore_errors=True -; [mypy-pandas.core.api] -; ignore_errors=True - [mypy-pandas.core.indexes.base] ignore_errors=True From b12281681bcad05eefb19eaf81d89b64afff3de3 Mon Sep 17 00:00:00 2001 From: Vaibhav Vishal Date: Sat, 11 May 2019 19:09:25 +0530 Subject: [PATCH 3/4] explicitly expose all integer types as part of the module pandas.arrays.integer --- pandas/core/arrays/integer.py | 93 ++++++++++++++++++++++++++++------- 1 file changed, 74 insertions(+), 19 deletions(-) diff --git a/pandas/core/arrays/integer.py b/pandas/core/arrays/integer.py index 3f0a3590e24a3..ef30fad94b533 100644 --- a/pandas/core/arrays/integer.py +++ b/pandas/core/arrays/integer.py @@ -696,22 +696,77 @@ def integer_arithmetic_method(self, other): """ # create the Dtype -_dtypes = {} -for dtype in ['int8', 'int16', 'int32', 'int64', - 'uint8', 'uint16', 'uint32', 'uint64']: - - if dtype.startswith('u'): - name = "U{}".format(dtype[1:].capitalize()) - else: - name = dtype.capitalize() - classname = "{}Dtype".format(name) - numpy_dtype = getattr(np, dtype) - attributes_dict = {'type': numpy_dtype, - 'name': name, - '__doc__': _dtype_docstring.format(dtype=dtype)} - dtype_type = register_extension_dtype( - type(classname, (_IntegerDtype, ), attributes_dict) - ) - setattr(module, classname, dtype_type) - - _dtypes[dtype] = dtype_type() +Int8Dtype = register_extension_dtype( + type('Int8Dtype', (_IntegerDtype, ), { + 'type': getattr(np, 'int8'), + 'name': 'Int8', + '__doc__': _dtype_docstring.format(dtype='int8') + }) +) + +Int16Dtype = register_extension_dtype( + type('Int16Dtype', (_IntegerDtype, ), { + 'type': getattr(np, 'int16'), + 'name': 'Int16', + '__doc__': _dtype_docstring.format(dtype='int16') + }) +) + +Int32Dtype = register_extension_dtype( + type('Int32Dtype', (_IntegerDtype, ), { + 'type': getattr(np, 'int32'), + 'name': 'Int32', + '__doc__': _dtype_docstring.format(dtype='int32') + }) +) + +Int64Dtype = register_extension_dtype( + type('Int64Dtype', (_IntegerDtype, ), { + 'type': getattr(np, 'int64'), + 'name': 'Int64', + '__doc__': _dtype_docstring.format(dtype='int64') + }) +) + +UInt8Dtype = register_extension_dtype( + type('UInt8Dtype', (_IntegerDtype, ), { + 'type': getattr(np, 'uint8'), + 'name': 'UInt8', + '__doc__': _dtype_docstring.format(dtype='uint8') + }) +) + +UInt16Dtype = register_extension_dtype( + type('UInt16Dtype', (_IntegerDtype, ), { + 'type': getattr(np, 'uint16'), + 'name': 'UInt16', + '__doc__': _dtype_docstring.format(dtype='uint16') + }) +) + +UInt32Dtype = register_extension_dtype( + type('UInt32Dtype', (_IntegerDtype, ), { + 'type': getattr(np, 'uint8'), + 'name': 'UInt32', + '__doc__': _dtype_docstring.format(dtype='uint32') + }) +) + +UInt64Dtype = register_extension_dtype( + type('UInt64Dtype', (_IntegerDtype, ), { + 'type': getattr(np, 'uint64'), + 'name': 'UInt64', + '__doc__': _dtype_docstring.format(dtype='uint64') + }) +) + +_dtypes = { + 'int8': Int8Dtype(), + 'int16': Int16Dtype(), + 'int32': Int32Dtype(), + 'int64': Int64Dtype(), + 'uint8': UInt8Dtype(), + 'uint16': UInt16Dtype(), + 'uint32': UInt32Dtype(), + 'uint64': UInt64Dtype(), +} From 2c22772b4c71b7652cd642cd2bae9aa592b26082 Mon Sep 17 00:00:00 2001 From: Vaibhav Vishal Date: Sat, 11 May 2019 22:06:27 +0530 Subject: [PATCH 4/4] remove unnecessary getattr and fix a typo --- pandas/core/arrays/integer.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pandas/core/arrays/integer.py b/pandas/core/arrays/integer.py index ef30fad94b533..8e81066de71cb 100644 --- a/pandas/core/arrays/integer.py +++ b/pandas/core/arrays/integer.py @@ -698,7 +698,7 @@ def integer_arithmetic_method(self, other): # create the Dtype Int8Dtype = register_extension_dtype( type('Int8Dtype', (_IntegerDtype, ), { - 'type': getattr(np, 'int8'), + 'type': np.int8, 'name': 'Int8', '__doc__': _dtype_docstring.format(dtype='int8') }) @@ -706,7 +706,7 @@ def integer_arithmetic_method(self, other): Int16Dtype = register_extension_dtype( type('Int16Dtype', (_IntegerDtype, ), { - 'type': getattr(np, 'int16'), + 'type': np.int16, 'name': 'Int16', '__doc__': _dtype_docstring.format(dtype='int16') }) @@ -714,7 +714,7 @@ def integer_arithmetic_method(self, other): Int32Dtype = register_extension_dtype( type('Int32Dtype', (_IntegerDtype, ), { - 'type': getattr(np, 'int32'), + 'type': np.int32, 'name': 'Int32', '__doc__': _dtype_docstring.format(dtype='int32') }) @@ -722,7 +722,7 @@ def integer_arithmetic_method(self, other): Int64Dtype = register_extension_dtype( type('Int64Dtype', (_IntegerDtype, ), { - 'type': getattr(np, 'int64'), + 'type': np.int64, 'name': 'Int64', '__doc__': _dtype_docstring.format(dtype='int64') }) @@ -730,7 +730,7 @@ def integer_arithmetic_method(self, other): UInt8Dtype = register_extension_dtype( type('UInt8Dtype', (_IntegerDtype, ), { - 'type': getattr(np, 'uint8'), + 'type': np.uint8, 'name': 'UInt8', '__doc__': _dtype_docstring.format(dtype='uint8') }) @@ -738,7 +738,7 @@ def integer_arithmetic_method(self, other): UInt16Dtype = register_extension_dtype( type('UInt16Dtype', (_IntegerDtype, ), { - 'type': getattr(np, 'uint16'), + 'type': np.uint16, 'name': 'UInt16', '__doc__': _dtype_docstring.format(dtype='uint16') }) @@ -746,7 +746,7 @@ def integer_arithmetic_method(self, other): UInt32Dtype = register_extension_dtype( type('UInt32Dtype', (_IntegerDtype, ), { - 'type': getattr(np, 'uint8'), + 'type': np.uint32, 'name': 'UInt32', '__doc__': _dtype_docstring.format(dtype='uint32') }) @@ -754,7 +754,7 @@ def integer_arithmetic_method(self, other): UInt64Dtype = register_extension_dtype( type('UInt64Dtype', (_IntegerDtype, ), { - 'type': getattr(np, 'uint64'), + 'type': np.uint64, 'name': 'UInt64', '__doc__': _dtype_docstring.format(dtype='uint64') })