forked from pool/python-jsonpickle
Accepting request 1093360 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1093360 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-jsonpickle?expand=0&rev=11
This commit is contained in:
68
pandas2.patch
Normal file
68
pandas2.patch
Normal file
@@ -0,0 +1,68 @@
|
||||
From a24240bfdec6a9d5172c2f25e19654d23ffc61e1 Mon Sep 17 00:00:00 2001
|
||||
From: Theelx <43764914+Theelx@users.noreply.github.com>
|
||||
Date: Fri, 26 May 2023 14:05:05 -0400
|
||||
Subject: [PATCH] Implement compatibility with pandas 2
|
||||
|
||||
---
|
||||
jsonpickle/ext/pandas.py | 7 ++++++-
|
||||
requirements-dev.txt | 2 +-
|
||||
setup.cfg | 2 +-
|
||||
tests/pandas_test.py | 2 +-
|
||||
4 files changed, 9 insertions(+), 4 deletions(-)
|
||||
|
||||
Index: jsonpickle-3.0.1/jsonpickle/ext/pandas.py
|
||||
===================================================================
|
||||
--- jsonpickle-3.0.1.orig/jsonpickle/ext/pandas.py
|
||||
+++ jsonpickle-3.0.1/jsonpickle/ext/pandas.py
|
||||
@@ -62,10 +62,13 @@ def make_read_csv_params(meta, context):
|
||||
parse_dates = []
|
||||
converters = {}
|
||||
timedeltas = []
|
||||
+ # this is only for pandas v2+ due to a backwards-incompatible change
|
||||
+ parse_datetime_v2 = {}
|
||||
dtype = {}
|
||||
for k, v in meta_dtypes.items():
|
||||
if v.startswith('datetime'):
|
||||
parse_dates.append(k)
|
||||
+ parse_datetime_v2[k] = v
|
||||
elif v.startswith('complex'):
|
||||
converters[k] = complex
|
||||
elif v.startswith('timedelta'):
|
||||
@@ -79,6 +82,7 @@ def make_read_csv_params(meta, context):
|
||||
dtype=dtype, header=header, parse_dates=parse_dates, converters=converters
|
||||
),
|
||||
timedeltas,
|
||||
+ parse_datetime_v2,
|
||||
)
|
||||
|
||||
|
||||
@@ -104,7 +108,7 @@ class PandasDfHandler(BaseHandler):
|
||||
|
||||
def restore(self, data):
|
||||
csv, meta = self.pp.restore_pandas(data)
|
||||
- params, timedeltas = make_read_csv_params(meta, self.context)
|
||||
+ params, timedeltas, parse_datetime_v2 = make_read_csv_params(meta, self.context)
|
||||
# None makes it compatible with objects serialized before
|
||||
# column_levels_names has been introduced.
|
||||
column_level_names = meta.get('column_level_names', None)
|
||||
@@ -115,6 +119,7 @@ class PandasDfHandler(BaseHandler):
|
||||
)
|
||||
for col in timedeltas:
|
||||
df[col] = pd.to_timedelta(df[col])
|
||||
+ df = df.astype(parse_datetime_v2)
|
||||
|
||||
df.set_index(decode(meta['index']), inplace=True)
|
||||
# restore the column level(s) name(s)
|
||||
Index: jsonpickle-3.0.1/tests/pandas_test.py
|
||||
===================================================================
|
||||
--- jsonpickle-3.0.1.orig/tests/pandas_test.py
|
||||
+++ jsonpickle-3.0.1/tests/pandas_test.py
|
||||
@@ -62,7 +62,7 @@ def test_dataframe_roundtrip():
|
||||
'an_inf': np.array([np.inf] * 3),
|
||||
'a_str': np.str_('foo'),
|
||||
'a_unicode': np.unicode_('bar'),
|
||||
- 'date': np.array([np.datetime64('2014-01-01')] * 3),
|
||||
+ 'date': np.array([np.datetime64('2014-01-01')] * 3, dtype="datetime64[s]"),
|
||||
'complex': np.complex_([1 - 2j, 2 - 1.2j, 3 - 1.3j]),
|
||||
# TODO: the following dtypes are not currently supported.
|
||||
# 'object': np.object_([{'a': 'b'}]*3),
|
||||
@@ -1,3 +1,14 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 14 10:48:59 UTC 2023 - Markéta Machová <mmachova@suse.com>
|
||||
|
||||
- Add patch pandas2.patch to fix compatibility
|
||||
- Skip flaky test
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 10 17:30:51 UTC 2023 - ecsos <ecsos@opensuse.org>
|
||||
|
||||
- Add %{?sle15_python_module_pythons}
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 21 19:24:29 UTC 2023 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#
|
||||
|
||||
|
||||
%{?sle15_python_module_pythons}
|
||||
Name: python-jsonpickle
|
||||
Version: 3.0.1
|
||||
Release: 0
|
||||
@@ -23,15 +24,14 @@ Summary: Python library for serializing any arbitrary object graph into J
|
||||
License: BSD-3-Clause
|
||||
URL: https://github.com/jsonpickle/jsonpickle
|
||||
Source: https://files.pythonhosted.org/packages/source/j/jsonpickle/jsonpickle-%{version}.tar.gz
|
||||
# PATCH-FIX-UPSTREAM https://github.com/jsonpickle/jsonpickle/commit/a24240bfdec6a9d5172c2f25e19654d23ffc61e1 Implement compatibility with pandas 2
|
||||
Patch: pandas2.patch
|
||||
BuildRequires: %{python_module base >= 3.7}
|
||||
BuildRequires: %{python_module importlib_metadata if %python-base < 3.8}
|
||||
BuildRequires: %{python_module setuptools_scm >= 3.4.1}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
%if 0%{python_version_nodots} < 38
|
||||
Requires: python-importlib_metadata
|
||||
%endif
|
||||
Recommends: python-simplejson
|
||||
Suggests: python-ujson
|
||||
Suggests: python-numpy
|
||||
@@ -68,7 +68,8 @@ sed -i 's/ --cov//' pytest.ini
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
||||
|
||||
%check
|
||||
%pytest -ra
|
||||
# test_multindex_dataframe_roundtrip is flaky on i586
|
||||
%pytest -ra -k "not test_multindex_dataframe_roundtrip"
|
||||
|
||||
%files %{python_files}
|
||||
%license LICENSE
|
||||
|
||||
Reference in New Issue
Block a user