renumerate 2.3.0__tar.gz → 2.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. {renumerate-2.3.0 → renumerate-2.4.2}/CHANGES.rst +8 -0
  2. {renumerate-2.3.0/src/renumerate.egg-info → renumerate-2.4.2}/PKG-INFO +5 -5
  3. {renumerate-2.3.0 → renumerate-2.4.2}/README.rst +1 -1
  4. {renumerate-2.3.0 → renumerate-2.4.2}/noxfile.py +19 -17
  5. {renumerate-2.3.0 → renumerate-2.4.2}/pyproject.toml +17 -15
  6. {renumerate-2.3.0 → renumerate-2.4.2/src/renumerate.egg-info}/PKG-INFO +5 -5
  7. {renumerate-2.3.0 → renumerate-2.4.2}/src/renumerate.egg-info/requires.txt +1 -1
  8. {renumerate-2.3.0 → renumerate-2.4.2}/LICENSE +0 -0
  9. {renumerate-2.3.0 → renumerate-2.4.2}/MANIFEST.in +0 -0
  10. {renumerate-2.3.0 → renumerate-2.4.2}/docs/CHANGES.rst +0 -0
  11. {renumerate-2.3.0 → renumerate-2.4.2}/docs/README.rst +0 -0
  12. {renumerate-2.3.0 → renumerate-2.4.2}/docs/_static/.keep +0 -0
  13. {renumerate-2.3.0 → renumerate-2.4.2}/docs/_templates/.keep +0 -0
  14. {renumerate-2.3.0 → renumerate-2.4.2}/docs/conf.py +0 -0
  15. {renumerate-2.3.0 → renumerate-2.4.2}/docs/index.rst +0 -0
  16. {renumerate-2.3.0 → renumerate-2.4.2}/setup.cfg +0 -0
  17. {renumerate-2.3.0 → renumerate-2.4.2}/src/renumerate/__about__.py +0 -0
  18. {renumerate-2.3.0 → renumerate-2.4.2}/src/renumerate/__init__.py +0 -0
  19. {renumerate-2.3.0 → renumerate-2.4.2}/src/renumerate/_renumerate.py +0 -0
  20. {renumerate-2.3.0 → renumerate-2.4.2}/src/renumerate/py.typed +0 -0
  21. {renumerate-2.3.0 → renumerate-2.4.2}/src/renumerate.egg-info/SOURCES.txt +0 -0
  22. {renumerate-2.3.0 → renumerate-2.4.2}/src/renumerate.egg-info/dependency_links.txt +0 -0
  23. {renumerate-2.3.0 → renumerate-2.4.2}/src/renumerate.egg-info/top_level.txt +0 -0
  24. {renumerate-2.3.0 → renumerate-2.4.2}/src/renumerate.egg-info/zip-safe +0 -0
  25. {renumerate-2.3.0 → renumerate-2.4.2}/tests/__init__.py +0 -0
  26. {renumerate-2.3.0 → renumerate-2.4.2}/tests/__main__.py +0 -0
  27. {renumerate-2.3.0 → renumerate-2.4.2}/tests/data/.keep +0 -0
  28. {renumerate-2.3.0 → renumerate-2.4.2}/tests/test_main.py +0 -0
@@ -1,6 +1,14 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ 2.4.2 (2026-05-17)
5
+ ------------------
6
+ - Added support for GraalPy 3.12
7
+ - Full support for Python 3.15
8
+ - Dropped support for Python 3.10 (due to compatibility issues).
9
+ - Fix for nox 'lint' session.
10
+ - Setup update, fixes and improvement.
11
+
4
12
  2.3.0 (2026-03-30)
5
13
  ------------------
6
14
  - Setup update and improvement.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: renumerate
3
- Version: 2.3.0
3
+ Version: 2.4.2
4
4
  Summary: Reverse enumerate.
5
5
  Author-email: Adam Karpierz <adam@karpierz.net>
6
6
  Maintainer-email: Adam Karpierz <adam@karpierz.net>
@@ -20,7 +20,6 @@ Classifier: Natural Language :: Polish
20
20
  Classifier: Operating System :: OS Independent
21
21
  Classifier: Programming Language :: Python
22
22
  Classifier: Programming Language :: Python :: 3 :: Only
23
- Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
@@ -28,13 +27,14 @@ Classifier: Programming Language :: Python :: 3.14
28
27
  Classifier: Programming Language :: Python :: 3.15
29
28
  Classifier: Programming Language :: Python :: Implementation :: CPython
30
29
  Classifier: Programming Language :: Python :: Implementation :: PyPy
30
+ Classifier: Programming Language :: Python :: Implementation :: GraalPy
31
31
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
32
32
  Classifier: Typing :: Typed
33
- Requires-Python: <4.0.0,>=3.10.0
33
+ Requires-Python: <4.0.0,>=3.11.0
34
34
  Description-Content-Type: text/x-rst; charset=UTF-8
35
35
  License-File: LICENSE
36
36
  Requires-Dist: typing-extensions>=4.15.0
37
- Requires-Dist: pkg-about>=2.3.0
37
+ Requires-Dist: pkg-about>=2.4.0
38
38
  Dynamic: license-file
39
39
 
40
40
  renumerate
@@ -94,7 +94,7 @@ Installation
94
94
 
95
95
  Prerequisites:
96
96
 
97
- + Python 3.10 or higher
97
+ + Python 3.11 or higher
98
98
 
99
99
  * https://www.python.org/
100
100
 
@@ -55,7 +55,7 @@ Installation
55
55
 
56
56
  Prerequisites:
57
57
 
58
- + Python 3.10 or higher
58
+ + Python 3.11 or higher
59
59
 
60
60
  * https://www.python.org/
61
61
 
@@ -2,7 +2,7 @@
2
2
  # SPDX-License-Identifier: Zlib
3
3
 
4
4
  # /// script
5
- # dependencies = ["nox>=2026.2.9", "nox_ext", "nox_lib"]
5
+ # dependencies = ["nox>=2026.4.10", "nox_ext", "nox_lib"]
6
6
  # ///
7
7
 
8
8
  from __future__ import annotations
@@ -47,14 +47,15 @@ rmtree = partial(shutil.rmtree, ignore_errors=True)
47
47
  def prepare(session: nox.Session) -> None:
48
48
  """Preparing the repository"""
49
49
  cmd = here/".aprep.cmd"
50
- if cmd.is_file(): subprocess.run([cmd])
50
+ if cmd.is_file(): session.run(cmd, external=True)
51
51
 
52
52
  @nox.session(python=[PY_DEFAULT], default=False)
53
53
  def cleanup(session: nox.Session) -> None:
54
54
  """Cleaning the repository"""
55
- #no_package = true
55
+ # no_package = true
56
56
  cmd = here/".clean.cmd"
57
- if cmd.is_file(): subprocess.run([cmd], stderr=subprocess.DEVNULL)
57
+ if cmd.is_file():
58
+ session.run(cmd, stderr=subprocess.DEVNULL, external=True)
58
59
  rmtree(here/"build")
59
60
  rmtree(here/"dist")
60
61
  for item in here.glob("src/*.egg-info"): rmtree(item)
@@ -63,7 +64,7 @@ def cleanup(session: nox.Session) -> None:
63
64
  rmtree(here/".tox")
64
65
  rmtree(here/".nox")
65
66
 
66
- @nox.session(python=[*PY_VERSIONS, "pypy3.10", "pypy3.11"])
67
+ @nox.session(python=[*PY_VERSIONS, "pypy3.11", "graalpy3.12"])
67
68
  def tests(session: nox.Session) -> None:
68
69
  """Running tests"""
69
70
  session.install(".", "--group=test")
@@ -76,7 +77,7 @@ def coverage(session: nox.Session) -> None:
76
77
  session.install(".", "--group=coverage")
77
78
  env_dir = Path(session.virtualenv.location)
78
79
  data_file = env_dir/".coverage"
79
- html_dir = env_dir/'.coverage.html'
80
+ html_dir = env_dir/".coverage_html"
80
81
  session.py("-m", "coverage", "erase", f"--data-file={data_file}")
81
82
  session.py("-m", "coverage", "run", f"--data-file={data_file}", "-m", "tests",
82
83
  *session.posargs, success_codes=range(0, 256))
@@ -91,8 +92,8 @@ def docs(session: nox.Session) -> None:
91
92
  html_dir = here/"build/docs/html"
92
93
  session.py("-m", "sphinxlint", "-i", "#arch", "-i", ".nox", "-i", ".tox",
93
94
  "-i", "build", "-i", "dist", "-i", ".mypy_cache")
94
- #session.run("python","-m", "sphinx.apidoc", "-f", *[session.site_packages/f"{item}/"
95
- # for item in PKG.TOP_LEVELS])
95
+ # session.py("-m", "sphinx.apidoc", "-f", *[session.site_packages/f"{item}/"
96
+ # for item in PKG.TOP_LEVELS])
96
97
  session.py("-m", "sphinx.cmd.build", "-W", "-a", "-b", "html", "-E", here/"docs", html_dir)
97
98
  session.py("-m", "sphinx.cmd.build", "-W", "-a", "-b", "doctest", here/"docs", html_dir)
98
99
  session.py("-m", "sphinx.cmd.build", "-W", "-a", "-b", "linkcheck", here/"docs", html_dir)
@@ -119,9 +120,9 @@ def publish(session: nox.Session) -> None:
119
120
  env_dir = Path(session.virtualenv.location)
120
121
  gh_pages_dir = env_dir/"gh-pages"
121
122
  rmtree(gh_pages_dir)
122
- session.run("git", "worktree", "prune")
123
- #session.run("git", "worktree", "add", gh_pages_dir, "gh-pages")
124
- session.run("git", "worktree", "add", "-B", "gh-pages", gh_pages_dir)
123
+ session.git("worktree", "prune")
124
+ # session.git("worktree", "add", gh_pages_dir, "gh-pages")
125
+ session.git("worktree", "add", "-B", "gh-pages", gh_pages_dir)
125
126
  # clean old docs
126
127
  (gh_pages_dir/".nojekyll").touch()
127
128
  for fpath in gh_pages_dir.iterdir():
@@ -133,23 +134,24 @@ def publish(session: nox.Session) -> None:
133
134
  # copy new docs
134
135
  copytree(here/"build/docs/html", gh_pages_dir, dirs_exist_ok=True)
135
136
  # commit + push
136
- session.run("git", "-C", gh_pages_dir, "add", ".")
137
- session.run("git", "-C", gh_pages_dir, "commit", "-m", "Update documentation")
138
- session.run("git", "-C", gh_pages_dir, "push", "--force", "origin", "gh-pages")
137
+ session.git("-C", gh_pages_dir, "add", ".")
138
+ session.git("-C", gh_pages_dir, "commit", "-m", "Update documentation")
139
+ session.git("-C", gh_pages_dir, "push", "--force", "origin", "gh-pages")
139
140
  # remove worktree
140
- session.run("git", "worktree", "remove", "--force", gh_pages_dir)
141
+ session.git("worktree", "remove", "--force", gh_pages_dir)
141
142
  rmtree(gh_pages_dir)
142
- session.run("git", "worktree", "prune")
143
+ session.git("worktree", "prune")
143
144
 
144
145
  @nox.session(python=[PY_DEFAULT])
145
146
  def typing(session: nox.Session) -> None:
146
147
  """Static type checking"""
147
- session.install(".", "--group=type")
148
+ session.install(".", "--group=typing")
148
149
  session.py("-m", "mypy")
149
150
 
150
151
  @nox.session(python=[PY_DEFAULT])
151
152
  def lint(session: nox.Session) -> None:
152
153
  """Checking code style and quality"""
153
154
  session.install(".", "--group=lint")
155
+ env_dir = Path(session.virtualenv.location)
154
156
  out_file = env_dir/"flake8out.txt"
155
157
  session.py("-m", "flake8", "--output-file", out_file, here/"src/")
@@ -3,11 +3,11 @@
3
3
 
4
4
  [build-system]
5
5
  build-backend = "setuptools.build_meta"
6
- requires = [ "setuptools>=81.0.0", "packaging>=26.0.0" ]
6
+ requires = [ "setuptools>=81.0.0", "packaging>=26.2.0" ]
7
7
 
8
8
  [project]
9
9
  name = "renumerate"
10
- version = "2.3.0"
10
+ version = "2.4.2"
11
11
  description = "Reverse enumerate."
12
12
  keywords = [ "renumerate", "enumerate" ]
13
13
  license = "Zlib"
@@ -25,7 +25,7 @@ urls.Download = "https://pypi.org/project/renumerate/"
25
25
  urls.Repository = "https://github.com/karpierz/renumerate"
26
26
  urls.Tracker = "https://github.com/karpierz/renumerate/issues"
27
27
  urls.Sponsoring = "https://www.paypal.com/donate/?hosted_button_id=FX8L7CJUGLW7S"
28
- requires-python = ">=3.10.0,<4.0.0"
28
+ requires-python = ">=3.11.0,<4.0.0"
29
29
  classifiers = [
30
30
  "Development Status :: 5 - Production/Stable",
31
31
  "Intended Audience :: Developers",
@@ -33,7 +33,6 @@ classifiers = [
33
33
  "Operating System :: OS Independent",
34
34
  "Programming Language :: Python",
35
35
  "Programming Language :: Python :: 3 :: Only",
36
- "Programming Language :: Python :: 3.10",
37
36
  "Programming Language :: Python :: 3.11",
38
37
  "Programming Language :: Python :: 3.12",
39
38
  "Programming Language :: Python :: 3.13",
@@ -41,6 +40,7 @@ classifiers = [
41
40
  "Programming Language :: Python :: 3.15",
42
41
  "Programming Language :: Python :: Implementation :: CPython",
43
42
  "Programming Language :: Python :: Implementation :: PyPy",
43
+ "Programming Language :: Python :: Implementation :: GraalPy",
44
44
  "Topic :: Software Development :: Libraries :: Python Modules",
45
45
  "Typing :: Typed",
46
46
  ]
@@ -51,32 +51,34 @@ dynamic = [ "readme" ]
51
51
  dependencies = [
52
52
  # mandatory
53
53
  "typing-extensions>=4.15.0",
54
- "pkg-about>=2.3.0",
54
+ "pkg-about>=2.4.0",
55
55
  # others
56
56
  ]
57
57
 
58
58
  [dependency-groups]
59
59
  base = [
60
- "pip>=26.0.1",
60
+ "pip>=26.1.1; platform_python_implementation!='GraalVM'",
61
+ "pip>=24.3.1; platform_python_implementation=='GraalVM'",
61
62
  "setuptools>=81.0.0",
62
63
  ]
63
64
  test = [
64
65
  { include-group = "base" },
65
- "deepdiff>=9.0.0",
66
- "rich>=14.3.3",
66
+ "deepdiff>=9.1.0; python_version<'3.15' and platform_python_implementation!='GraalVM'",
67
+ "deepdiff<=9.0.0; python_version>='3.15' or platform_python_implementation=='GraalVM'",
68
+ "rich>=15.0.0",
67
69
  ]
68
70
  coverage = [
69
71
  { include-group = "test" },
70
- "coverage>=7.13.5",
72
+ "coverage>=7.14.0",
71
73
  "covdefaults>=2.3.0",
72
74
  "diff-cover>=10.2.0",
73
75
  ]
74
76
  docs = [
75
77
  { include-group = "base" },
76
- "sphinx>=8.1.3",
78
+ "sphinx>=9.0.4",
77
79
  "pygments_ansi_color>=0.3.0", # fix sphinx load error
78
80
  "roman_numerals>=4.1.0", # -||-
79
- "sphinx-autodoc-typehints>=3.0.1",
81
+ "sphinx-autodoc-typehints>=3.6.1",
80
82
  "sphinx-toolbox>=4.1.2",
81
83
  "sphinx-tabs>=3.4.5", # Do not change - sphinx-toolbox requires <3.4.7
82
84
  "sphinx-copybutton>=0.5.2",
@@ -88,15 +90,15 @@ docs = [
88
90
  build = [
89
91
  { include-group = "test" },
90
92
  "check-manifest>=0.51",
91
- "build>=1.4.2",
93
+ "build>=1.5.0",
92
94
  "twine>=6.2.0",
93
95
  ]
94
96
  publish = [
95
97
  "twine>=6.2.0",
96
98
  ]
97
- type = [
99
+ typing = [
98
100
  { include-group = "base" },
99
- "mypy>=1.19.1",
101
+ "mypy>=2.1.0",
100
102
  "mypy_extensions>=1.1.0",
101
103
  "types-setuptools>=81.0.0.20260209",
102
104
  ]
@@ -212,7 +214,7 @@ ignore = [
212
214
  count = true
213
215
 
214
216
  [tool.mypy]
215
- python_version = "3.10"
217
+ python_version = "3.11"
216
218
  strict = true
217
219
  sqlite_cache = true
218
220
  warn_unused_configs = true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: renumerate
3
- Version: 2.3.0
3
+ Version: 2.4.2
4
4
  Summary: Reverse enumerate.
5
5
  Author-email: Adam Karpierz <adam@karpierz.net>
6
6
  Maintainer-email: Adam Karpierz <adam@karpierz.net>
@@ -20,7 +20,6 @@ Classifier: Natural Language :: Polish
20
20
  Classifier: Operating System :: OS Independent
21
21
  Classifier: Programming Language :: Python
22
22
  Classifier: Programming Language :: Python :: 3 :: Only
23
- Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
@@ -28,13 +27,14 @@ Classifier: Programming Language :: Python :: 3.14
28
27
  Classifier: Programming Language :: Python :: 3.15
29
28
  Classifier: Programming Language :: Python :: Implementation :: CPython
30
29
  Classifier: Programming Language :: Python :: Implementation :: PyPy
30
+ Classifier: Programming Language :: Python :: Implementation :: GraalPy
31
31
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
32
32
  Classifier: Typing :: Typed
33
- Requires-Python: <4.0.0,>=3.10.0
33
+ Requires-Python: <4.0.0,>=3.11.0
34
34
  Description-Content-Type: text/x-rst; charset=UTF-8
35
35
  License-File: LICENSE
36
36
  Requires-Dist: typing-extensions>=4.15.0
37
- Requires-Dist: pkg-about>=2.3.0
37
+ Requires-Dist: pkg-about>=2.4.0
38
38
  Dynamic: license-file
39
39
 
40
40
  renumerate
@@ -94,7 +94,7 @@ Installation
94
94
 
95
95
  Prerequisites:
96
96
 
97
- + Python 3.10 or higher
97
+ + Python 3.11 or higher
98
98
 
99
99
  * https://www.python.org/
100
100
 
@@ -1,2 +1,2 @@
1
1
  typing-extensions>=4.15.0
2
- pkg-about>=2.3.0
2
+ pkg-about>=2.4.0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes