forked from pool/python-recordclass
- Update to 0.24:
* Fix __annotations__ for python 3.14 * Start support of python 3.14 * Fix the bug with PyTuple_GET_SIZE (#13) * Drop appveyor * recordclass requires python >= 3.8 - Drop patch do-not-use-pytuple-get-size.patch, merged upstream. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-recordclass?expand=0&rev=15
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.osc
|
||||
53
do-not-use-pytuple-get-size.patch
Normal file
53
do-not-use-pytuple-get-size.patch
Normal file
@@ -0,0 +1,53 @@
|
||||
From 338044cbf771e5665a744d3b36b5d7edd126d16a Mon Sep 17 00:00:00 2001
|
||||
From: Zaur Shibzukhov <szport@gmail.com>
|
||||
Date: Mon, 31 Mar 2025 10:00:01 +0300
|
||||
Subject: [PATCH] Fix #13 with litelist/litetuple get_subscript routine
|
||||
|
||||
---
|
||||
examples/performance_cgc.ipynb | 32 ++++++++++++++++----------------
|
||||
lib/recordclass/_litelist.c | 4 ++--
|
||||
lib/recordclass/_litetuple.c | 4 ++--
|
||||
3 files changed, 20 insertions(+), 20 deletions(-)
|
||||
|
||||
Index: recordclass-0.22.1/lib/recordclass/_litelist.c
|
||||
===================================================================
|
||||
--- recordclass-0.22.1.orig/lib/recordclass/_litelist.c
|
||||
+++ recordclass-0.22.1/lib/recordclass/_litelist.c
|
||||
@@ -484,13 +484,13 @@ litelist_subscript(PyLiteListObject* sel
|
||||
if (PySlice_Check(item)) {
|
||||
Py_ssize_t start, stop, step, slicelength;
|
||||
|
||||
- if (PySlice_GetIndicesEx(item, (PyTuple_GET_SIZE(self)), &start, &stop, &step, &slicelength) < 0)
|
||||
+ if (PySlice_GetIndicesEx(item, (Py_SIZE(self)), &start, &stop, &step, &slicelength) < 0)
|
||||
return NULL;
|
||||
return litelist_slice(self, start, stop);
|
||||
}
|
||||
else {
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
- "subscript must be integer, slice or string, but not %.200s",
|
||||
+ "subscript must be integer or slice, but not %.200s",
|
||||
Py_TYPE(item)->tp_name);
|
||||
return NULL;
|
||||
}
|
||||
Index: recordclass-0.22.1/lib/recordclass/_litetuple.c
|
||||
===================================================================
|
||||
--- recordclass-0.22.1.orig/lib/recordclass/_litetuple.c
|
||||
+++ recordclass-0.22.1/lib/recordclass/_litetuple.c
|
||||
@@ -32,7 +32,7 @@ static PyTypeObject PyMLiteTuple_Type;
|
||||
|
||||
#define PyLiteTuple_GET_ITEM(op, i) (((PyLiteTupleObject *)(op))->ob_item[i])
|
||||
#define PyLiteTuple_SET_ITEM(op, i, v) (((PyLiteTupleObject *)(op))->ob_item[i] = v)
|
||||
-#define PyLiteTuple_GET_SIZE(seq) PyTuple_GET_SIZE(seq)
|
||||
+#define PyLiteTuple_GET_SIZE(seq) Py_SIZE(seq)
|
||||
|
||||
#define PyLiteTuple_CheckExact(op) (Py_TYPE(op) == &PyLiteTuple_Type || Py_TYPE(op) == &PyMLiteTuple_Type)
|
||||
#define PyLiteTuple_Check(op) (PyLiteTuple_CheckExact(op) || PyObject_IsInstance(op, (PyObject*)&PyLiteTuple_Type) || PyObject_IsInstance(op, (PyObject*)&PyMLiteTuple_Type))
|
||||
@@ -417,7 +417,7 @@ litetuple_subscript(PyLiteTupleObject* s
|
||||
if (PySlice_Check(item)) {
|
||||
Py_ssize_t start, stop, step, slicelength;
|
||||
|
||||
- if (PySlice_GetIndicesEx(item, (PyTuple_GET_SIZE(self)), &start, &stop, &step, &slicelength) < 0)
|
||||
+ if (PySlice_GetIndicesEx(item, (Py_SIZE(self)), &start, &stop, &step, &slicelength) < 0)
|
||||
return NULL;
|
||||
return litetuple_slice(self, start, stop);
|
||||
}
|
||||
73
python-recordclass.changes
Normal file
73
python-recordclass.changes
Normal file
@@ -0,0 +1,73 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 6 03:05:29 UTC 2026 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Update to 0.24:
|
||||
* Fix __annotations__ for python 3.14
|
||||
* Start support of python 3.14
|
||||
* Fix the bug with PyTuple_GET_SIZE (#13)
|
||||
* Drop appveyor
|
||||
* recordclass requires python >= 3.8
|
||||
- Drop patch do-not-use-pytuple-get-size.patch, merged upstream.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 4 00:56:20 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
- Add patch do-not-use-pytuple-get-size.patch:
|
||||
* Use Py_SIZE rather than PyTuple_GET_SIZE to avoid assertion failures.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 5 19:05:39 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 0.22.1:
|
||||
* Add `pyproject.toml`.
|
||||
- update to 0.22.0.3:
|
||||
* Rename examples est_*.py files since they are detected by
|
||||
pytest as a tests.
|
||||
* Fix segfault with litelist after 0.22.0.2.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 2 15:13:24 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 0.22.0.2:
|
||||
* Fix regression with `as_dataclass`.
|
||||
- update to 0.22:
|
||||
* `Recordclass 0.22` started support of `python 3.13`.
|
||||
* Add a base class `datastruct` for subclasses that should
|
||||
behave more like simple datastructures.
|
||||
* Fix bug with `__match_args__` (#6).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 29 09:35:17 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||||
|
||||
- update to 0.21.1:
|
||||
* Allow to specify __match_args__.
|
||||
* Add @as_record adapter for def-style decalarations of
|
||||
dataclasses that are considered as just a struct.
|
||||
* The option fast_new will be removed in 0.22. It will be
|
||||
always as fast_new=True by creation.
|
||||
* Fix issues with `_PyUnicodeWriter` for python 3.13.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 9 18:53:20 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
||||
|
||||
- Update to 0.18.0.1
|
||||
* Exclude test_dataobject_match.py (for testing match statement) for python < 3.10.
|
||||
|
||||
- Update to 0.18
|
||||
* Python 3.11 support.
|
||||
* Adapt data object to take benefit from bytecode specialization in 3.11.
|
||||
* Fix issue for argument with default value in __new__, which havn't __repr__ that can be interpreted as valid python expression for creation of the default value.
|
||||
* Add support for typing.ClassVar.
|
||||
* Add Py_TPFLAGS_SEQUENCE and Py_TPFLAGS_MAPPING.
|
||||
* Add __match_args__ to support match protocol for dataobject-based subclasses.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 7 03:49:55 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
||||
|
||||
- 0.17.5
|
||||
Make to compile, to build and to test successfully for python 3.11.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Jul 31 21:55:59 UTC 2022 - Atri Bhattacharya <badshah400@gmail.com>
|
||||
|
||||
- Initial package.
|
||||
65
python-recordclass.spec
Normal file
65
python-recordclass.spec
Normal file
@@ -0,0 +1,65 @@
|
||||
#
|
||||
# spec file for package python-recordclass
|
||||
#
|
||||
# Copyright (c) 2026 SUSE LLC and contributors
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: python-recordclass
|
||||
Version: 0.24
|
||||
Release: 0
|
||||
Summary: Library implementing a mutable variant of namedtuple
|
||||
License: MIT
|
||||
URL: https://github.com/intellimath/recordclass
|
||||
Source: https://files.pythonhosted.org/packages/source/r/recordclass/recordclass-%{version}.tar.gz
|
||||
BuildRequires: %{python_module devel >= 3.9}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
# SECTION Test requirements
|
||||
BuildRequires: %{python_module psutil}
|
||||
BuildRequires: %{python_module pyperf}
|
||||
# /SECTION
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
Mutable variant of namedtuple -- recordclass, which support assignments, and
|
||||
other memory saving variants.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n recordclass-%{version}
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags}"
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
# do not ship development files
|
||||
%python_expand rm -v %{buildroot}%{$python_sitearch}/recordclass/_*.[ch]
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
|
||||
%check
|
||||
# Crashes when run using pytest
|
||||
%python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} python%{$python_version} test_all.py
|
||||
|
||||
%files %{python_files}
|
||||
%doc README.md
|
||||
%license LICENSE.txt
|
||||
%{python_sitearch}/recordclass/
|
||||
%{python_sitearch}/recordclass-%{version}.dist-info
|
||||
|
||||
%changelog
|
||||
3
recordclass-0.22.1.tar.gz
Normal file
3
recordclass-0.22.1.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:80a4c79270edb8fb55bcb96bec0159a292b485c997e2f33b38fdc9e8d6c0c315
|
||||
size 1333756
|
||||
3
recordclass-0.24.tar.gz
Normal file
3
recordclass-0.24.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dc6e46aec90d5b185576fce40ffc875488b04692a9259265c965fac150630d06
|
||||
size 1340150
|
||||
Reference in New Issue
Block a user