diff --git a/.travis.yml b/.travis.yml index 286d460..522c2fc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ jobs: env: PYTHON_VERSION=3.8 - name: "Pandas 1.0.x" python: "3.7" - env: PYTHON_VERSION=3.7 + env: PYTHON_VERSION=3.7.17 env: PANDAS_VERSION=1.0.* - name: "Pandas 1.1.x" python: "3.7" diff --git a/requirements.txt b/requirements.txt index ca74eb7..0070504 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ -numpy>=1.20.3 # For compatibility with recent versions of Pandas -pandas>=1.0.3 +numpy>=1.23.5 # For compatibility with recent versions of Pandas +pandas>=2.2.3 pyarrow>=1.0.0 regex # TODO: The following dependency is to support compatibility with Python 3.6, and should be removed when that version's support is dropped diff --git a/text_extensions_for_pandas/array/tensor.py b/text_extensions_for_pandas/array/tensor.py index 1d017f3..9941f7e 100644 --- a/text_extensions_for_pandas/array/tensor.py +++ b/text_extensions_for_pandas/array/tensor.py @@ -38,8 +38,8 @@ from pandas.core.dtypes.generic import ABCIndexClass as ABCIndex from pandas.core.indexers import check_array_indexer, validate_indices -""" Begin Patching of ExtensionArrayFormatter """ -from pandas.io.formats.format import ExtensionArrayFormatter +""" Begin Patching of _ExtensionArrayFormatter """ +from pandas.io.formats.format import _ExtensionArrayFormatter def _format_strings_patched(self) -> List[str]: @@ -147,14 +147,14 @@ def _format(x): _FORMATTER_ENABLED_KEY = "TEXT_EXTENSIONS_FOR_PANDAS_FORMATTER_ENABLED" if os.getenv(_FORMATTER_ENABLED_KEY, "true").lower() == "true": - ExtensionArrayFormatter._format_strings_orig = \ - ExtensionArrayFormatter._format_strings + _ExtensionArrayFormatter._format_strings_orig = \ + _ExtensionArrayFormatter._format_strings if Version("1.1.0") <= Version(pd.__version__) < Version("1.3.0"): - ExtensionArrayFormatter._format_strings = _format_strings_patched + _ExtensionArrayFormatter._format_strings = _format_strings_patched else: - ExtensionArrayFormatter._format_strings = _format_strings_patched_v1_0_0 - ExtensionArrayFormatter._patched_by_text_extensions_for_pandas = True -""" End Patching of ExtensionArrayFormatter """ + _ExtensionArrayFormatter._format_strings = _format_strings_patched_v1_0_0 + _ExtensionArrayFormatter._patched_by_text_extensions_for_pandas = True +""" End Patching of _ExtensionArrayFormatter """ @pd.api.extensions.register_extension_dtype diff --git a/text_extensions_for_pandas/array/test_tensor.py b/text_extensions_for_pandas/array/test_tensor.py index 87413c4..2260a47 100644 --- a/text_extensions_for_pandas/array/test_tensor.py +++ b/text_extensions_for_pandas/array/test_tensor.py @@ -703,9 +703,9 @@ def test_large_display_numeric(self): def test_numeric_display_3D(self): # Verify using patched method - from pandas.io.formats.format import ExtensionArrayFormatter + from pandas.io.formats.format import _ExtensionArrayFormatter self.assertTrue( - ExtensionArrayFormatter._patched_by_text_extensions_for_pandas) + _ExtensionArrayFormatter._patched_by_text_extensions_for_pandas) # Test integer format 3D values, uses IntArrayFormatter df = pd.DataFrame({"foo": TensorArray([[[1, 1], [2, 2]], @@ -737,9 +737,9 @@ def test_large_display_string(self): # Verify using patched method # Unpatched method doesn't work for Pandas 1.0.x but fixed in later versions - from pandas.io.formats.format import ExtensionArrayFormatter + from pandas.io.formats.format import _ExtensionArrayFormatter self.assertTrue( - ExtensionArrayFormatter._patched_by_text_extensions_for_pandas) + _ExtensionArrayFormatter._patched_by_text_extensions_for_pandas) # Uses the GenericArrayFormatter df = pd.DataFrame({"foo": TensorArray(np.array([["Hello", "world"]] * 100))}) @@ -767,9 +767,9 @@ def test_large_display_string(self): def test_display_time(self): # Verify using patched method - from pandas.io.formats.format import ExtensionArrayFormatter + from pandas.io.formats.format import _ExtensionArrayFormatter self.assertTrue( - ExtensionArrayFormatter._patched_by_text_extensions_for_pandas) + _ExtensionArrayFormatter._patched_by_text_extensions_for_pandas) # datetime64 2D, Uses Datetime64Formatter times = pd.date_range('2018-01-01', periods=5, freq='H').to_numpy() diff --git a/text_extensions_for_pandas/util.py b/text_extensions_for_pandas/util.py index e660a62..f4846fe 100644 --- a/text_extensions_for_pandas/util.py +++ b/text_extensions_for_pandas/util.py @@ -76,4 +76,4 @@ def to_int_array(arr: Any) -> np.ndarray: if isinstance(arr, np.ndarray) and np.issubdtype(arr.dtype, np.integer): return arr # Avoid making a copy even if the input is an unusual integer dtype else: - return np.array(arr, dtype=np.int32, copy=False) \ No newline at end of file + return np.asarray(arr, dtype=np.int32) \ No newline at end of file