annotate 2.1.1__tar.gz → 2.3.0__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.
- {annotate-2.1.1 → annotate-2.3.0}/CHANGES.rst +9 -0
- {annotate-2.1.1/src/annotate.egg-info → annotate-2.3.0}/PKG-INFO +5 -5
- {annotate-2.1.1 → annotate-2.3.0}/noxfile.py +15 -9
- annotate-2.3.0/pyproject.toml +226 -0
- {annotate-2.1.1 → annotate-2.3.0/src/annotate.egg-info}/PKG-INFO +5 -5
- {annotate-2.1.1 → annotate-2.3.0}/src/annotate.egg-info/requires.txt +1 -1
- {annotate-2.1.1 → annotate-2.3.0}/tests/__init__.py +1 -1
- {annotate-2.1.1 → annotate-2.3.0}/tests/__main__.py +3 -2
- annotate-2.1.1/pyproject.toml +0 -205
- {annotate-2.1.1 → annotate-2.3.0}/LICENSE +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/MANIFEST.in +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/README.rst +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/docs/CHANGES.rst +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/docs/README.rst +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/docs/_static/.keep +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/docs/_templates/.keep +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/docs/conf.py +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/docs/index.rst +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/setup.cfg +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/src/annotate/__about__.py +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/src/annotate/__init__.py +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/src/annotate/_annotate.py +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/src/annotate/py.typed +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/src/annotate.egg-info/SOURCES.txt +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/src/annotate.egg-info/dependency_links.txt +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/src/annotate.egg-info/top_level.txt +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/src/annotate.egg-info/zip-safe +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/tests/data/.keep +0 -0
- {annotate-2.1.1 → annotate-2.3.0}/tests/test_main.py +0 -0
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
+
2.3.0 (2026-03-30)
|
|
5
|
+
------------------
|
|
6
|
+
- Setup update and improvement.
|
|
7
|
+
|
|
8
|
+
2.2.0 (2026-02-13)
|
|
9
|
+
------------------
|
|
10
|
+
- Added support for Python 3.15
|
|
11
|
+
- Setup update (mainly dependencies).
|
|
12
|
+
|
|
4
13
|
2.1.1 (2026-01-26)
|
|
5
14
|
------------------
|
|
6
15
|
- Marked the package as typed.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: annotate
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Decorator to set a function's __annotations__ like Py3.
|
|
5
5
|
Author-email: Adam Karpierz <adam@karpierz.net>
|
|
6
6
|
Maintainer-email: Adam Karpierz <adam@karpierz.net>
|
|
@@ -16,16 +16,16 @@ Keywords: annotate,typing,decorator
|
|
|
16
16
|
Platform: any
|
|
17
17
|
Classifier: Development Status :: 5 - Production/Stable
|
|
18
18
|
Classifier: Intended Audience :: Developers
|
|
19
|
-
Classifier: Operating System :: OS Independent
|
|
20
19
|
Classifier: Natural Language :: Polish
|
|
20
|
+
Classifier: Operating System :: OS Independent
|
|
21
21
|
Classifier: Programming Language :: Python
|
|
22
|
-
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.10
|
|
24
24
|
Classifier: Programming Language :: Python :: 3.11
|
|
25
25
|
Classifier: Programming Language :: Python :: 3.12
|
|
26
26
|
Classifier: Programming Language :: Python :: 3.13
|
|
27
27
|
Classifier: Programming Language :: Python :: 3.14
|
|
28
|
-
Classifier: Programming Language :: Python :: 3
|
|
28
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
29
29
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
30
30
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
31
31
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
@@ -34,7 +34,7 @@ Requires-Python: <4.0.0,>=3.10.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.
|
|
37
|
+
Requires-Dist: pkg-about>=2.3.0
|
|
38
38
|
Dynamic: license-file
|
|
39
39
|
|
|
40
40
|
annotate
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2026 Adam Karpierz
|
|
2
2
|
# SPDX-License-Identifier: Zlib
|
|
3
3
|
|
|
4
4
|
# /// script
|
|
5
|
-
# dependencies = ["nox>=
|
|
5
|
+
# dependencies = ["nox>=2026.2.9", "nox_ext", "nox_lib"]
|
|
6
6
|
# ///
|
|
7
7
|
|
|
8
8
|
from __future__ import annotations
|
|
@@ -56,7 +56,7 @@ def cleanup(session: nox.Session) -> None:
|
|
|
56
56
|
cmd = here/".clean.cmd"
|
|
57
57
|
if cmd.is_file(): subprocess.run([cmd], stderr=subprocess.DEVNULL)
|
|
58
58
|
rmtree(here/"build")
|
|
59
|
-
rmtree(here/"dist")
|
|
59
|
+
rmtree(here/"dist")
|
|
60
60
|
for item in here.glob("src/*.egg-info"): rmtree(item)
|
|
61
61
|
for item in here.glob("**/__pycache__"): rmtree(item)
|
|
62
62
|
for item in here.glob("**/.mypy_cache"): rmtree(item)
|
|
@@ -74,10 +74,15 @@ def tests(session: nox.Session) -> None:
|
|
|
74
74
|
def coverage(session: nox.Session) -> None:
|
|
75
75
|
"""Running code coverage analysis"""
|
|
76
76
|
session.install(".", "--group=coverage")
|
|
77
|
-
session.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
session.py("-m", "coverage", "
|
|
77
|
+
env_dir = Path(session.virtualenv.location)
|
|
78
|
+
data_file = env_dir/".coverage"
|
|
79
|
+
html_dir = env_dir/'.coverage.html'
|
|
80
|
+
session.py("-m", "coverage", "erase", f"--data-file={data_file}")
|
|
81
|
+
session.py("-m", "coverage", "run", f"--data-file={data_file}", "-m", "tests",
|
|
82
|
+
*session.posargs, success_codes=range(0, 256))
|
|
83
|
+
session.py("-m", "coverage", "html", f"--data-file={data_file}", f"--directory={html_dir}",
|
|
84
|
+
success_codes=range(0, 256))
|
|
85
|
+
session.py("-m", "coverage", "report", f"--data-file={data_file}")
|
|
81
86
|
|
|
82
87
|
@nox.session(python=[PY_DEFAULT])
|
|
83
88
|
def docs(session: nox.Session) -> None:
|
|
@@ -139,11 +144,12 @@ def publish(session: nox.Session) -> None:
|
|
|
139
144
|
@nox.session(python=[PY_DEFAULT])
|
|
140
145
|
def typing(session: nox.Session) -> None:
|
|
141
146
|
"""Static type checking"""
|
|
142
|
-
session.install(".", "--group=
|
|
147
|
+
session.install(".", "--group=type")
|
|
143
148
|
session.py("-m", "mypy")
|
|
144
149
|
|
|
145
150
|
@nox.session(python=[PY_DEFAULT])
|
|
146
151
|
def lint(session: nox.Session) -> None:
|
|
147
152
|
"""Checking code style and quality"""
|
|
148
153
|
session.install(".", "--group=lint")
|
|
149
|
-
|
|
154
|
+
out_file = env_dir/"flake8out.txt"
|
|
155
|
+
session.py("-m", "flake8", "--output-file", out_file, here/"src/")
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# Copyright (c) 2012 Adam Karpierz
|
|
2
|
+
# SPDX-License-Identifier: Zlib
|
|
3
|
+
|
|
4
|
+
[build-system]
|
|
5
|
+
build-backend = "setuptools.build_meta"
|
|
6
|
+
requires = [ "setuptools>=81.0.0", "packaging>=26.0.0" ]
|
|
7
|
+
|
|
8
|
+
[project]
|
|
9
|
+
name = "annotate"
|
|
10
|
+
version = "2.3.0"
|
|
11
|
+
description = "Decorator to set a function's __annotations__ like Py3."
|
|
12
|
+
keywords = [ "annotate", "typing", "decorator" ]
|
|
13
|
+
license = "Zlib"
|
|
14
|
+
license-files = [ "LICENSE" ]
|
|
15
|
+
authors = [
|
|
16
|
+
{ name = "Adam Karpierz", email = "adam@karpierz.net" },
|
|
17
|
+
]
|
|
18
|
+
maintainers = [
|
|
19
|
+
{ name = "Adam Karpierz", email = "adam@karpierz.net" },
|
|
20
|
+
]
|
|
21
|
+
urls.Homepage = "https://pypi.org/project/annotate/"
|
|
22
|
+
urls.Documentation = "https://karpierz.github.io/annotate/"
|
|
23
|
+
urls.History = "https://karpierz.github.io/annotate/CHANGES.html"
|
|
24
|
+
urls.Download = "https://pypi.org/project/annotate/"
|
|
25
|
+
urls.Repository = "https://github.com/karpierz/annotate"
|
|
26
|
+
urls.Tracker = "https://github.com/karpierz/annotate/issues"
|
|
27
|
+
urls.Sponsoring = "https://www.paypal.com/donate/?hosted_button_id=FX8L7CJUGLW7S"
|
|
28
|
+
requires-python = ">=3.10.0,<4.0.0"
|
|
29
|
+
classifiers = [
|
|
30
|
+
"Development Status :: 5 - Production/Stable",
|
|
31
|
+
"Intended Audience :: Developers",
|
|
32
|
+
"Natural Language :: Polish",
|
|
33
|
+
"Operating System :: OS Independent",
|
|
34
|
+
"Programming Language :: Python",
|
|
35
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
36
|
+
"Programming Language :: Python :: 3.10",
|
|
37
|
+
"Programming Language :: Python :: 3.11",
|
|
38
|
+
"Programming Language :: Python :: 3.12",
|
|
39
|
+
"Programming Language :: Python :: 3.13",
|
|
40
|
+
"Programming Language :: Python :: 3.14",
|
|
41
|
+
"Programming Language :: Python :: 3.15",
|
|
42
|
+
"Programming Language :: Python :: Implementation :: CPython",
|
|
43
|
+
"Programming Language :: Python :: Implementation :: PyPy",
|
|
44
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
45
|
+
"Typing :: Typed",
|
|
46
|
+
]
|
|
47
|
+
dynamic = [ "readme" ]
|
|
48
|
+
# scripts.annotate = "annotate.__main__:main"
|
|
49
|
+
# gui-scripts.annotate-gui = "annotate:main_gui"
|
|
50
|
+
# entry-points.annotate.magical.epoint = "annotate:main_epoint"
|
|
51
|
+
dependencies = [
|
|
52
|
+
# mandatory
|
|
53
|
+
"typing-extensions>=4.15.0",
|
|
54
|
+
"pkg-about>=2.3.0",
|
|
55
|
+
# others
|
|
56
|
+
]
|
|
57
|
+
|
|
58
|
+
[dependency-groups]
|
|
59
|
+
base = [
|
|
60
|
+
"pip>=26.0.1",
|
|
61
|
+
"setuptools>=81.0.0",
|
|
62
|
+
]
|
|
63
|
+
test = [
|
|
64
|
+
{ include-group = "base" },
|
|
65
|
+
"deepdiff>=9.0.0",
|
|
66
|
+
"rich>=14.3.3",
|
|
67
|
+
]
|
|
68
|
+
coverage = [
|
|
69
|
+
{ include-group = "test" },
|
|
70
|
+
"coverage>=7.13.5",
|
|
71
|
+
"covdefaults>=2.3.0",
|
|
72
|
+
"diff-cover>=10.2.0",
|
|
73
|
+
]
|
|
74
|
+
docs = [
|
|
75
|
+
{ include-group = "base" },
|
|
76
|
+
"sphinx>=8.1.3",
|
|
77
|
+
"pygments_ansi_color>=0.3.0", # fix sphinx load error
|
|
78
|
+
"roman_numerals>=4.1.0", # -||-
|
|
79
|
+
"sphinx-autodoc-typehints>=3.0.1",
|
|
80
|
+
"sphinx-toolbox>=4.1.2",
|
|
81
|
+
"sphinx-tabs>=3.4.5", # Do not change - sphinx-toolbox requires <3.4.7
|
|
82
|
+
"sphinx-copybutton>=0.5.2",
|
|
83
|
+
"sphinxcontrib-spelling>=8.0.2",
|
|
84
|
+
"sphinx-lint>=1.0.2",
|
|
85
|
+
"restructuredtext-lint>=2.0.2",
|
|
86
|
+
"nbsphinx>=0.9.8",
|
|
87
|
+
]
|
|
88
|
+
build = [
|
|
89
|
+
{ include-group = "test" },
|
|
90
|
+
"check-manifest>=0.51",
|
|
91
|
+
"build>=1.4.2",
|
|
92
|
+
"twine>=6.2.0",
|
|
93
|
+
]
|
|
94
|
+
publish = [
|
|
95
|
+
"twine>=6.2.0",
|
|
96
|
+
]
|
|
97
|
+
type = [
|
|
98
|
+
{ include-group = "base" },
|
|
99
|
+
"mypy>=1.19.1",
|
|
100
|
+
"mypy_extensions>=1.1.0",
|
|
101
|
+
"types-setuptools>=81.0.0.20260209",
|
|
102
|
+
]
|
|
103
|
+
lint = [
|
|
104
|
+
{ include-group = "test" },
|
|
105
|
+
"flake8>=7.3.0",
|
|
106
|
+
"flake8-in-file-ignores>=0.3.0",
|
|
107
|
+
"flake8-pyproject>=1.2.4",
|
|
108
|
+
"flake8-docstrings>=1.7.0",
|
|
109
|
+
"pep8-naming>=0.15.1",
|
|
110
|
+
"flake8-builtins>=3.1.0",
|
|
111
|
+
"flake8-deprecated>=2.3.0",
|
|
112
|
+
]
|
|
113
|
+
|
|
114
|
+
[tool.setuptools]
|
|
115
|
+
dynamic.readme = { file = [ "README.rst" ], content-type = "text/x-rst; charset=UTF-8" }
|
|
116
|
+
include-package-data = true
|
|
117
|
+
platforms = [ "any" ]
|
|
118
|
+
zip-safe = true
|
|
119
|
+
packages.find.namespaces = false
|
|
120
|
+
packages.find.where = [ "src" ]
|
|
121
|
+
package-dir."" = "src"
|
|
122
|
+
# package-dir."annotate.tests" = "tests"
|
|
123
|
+
package-data.annotate = [
|
|
124
|
+
]
|
|
125
|
+
exclude-package-data."*" = [
|
|
126
|
+
"*.c", "*.h",
|
|
127
|
+
"*.cpp", "*.hpp",
|
|
128
|
+
"*.cxx", "*.hxx",
|
|
129
|
+
"*.pyx", "*.pxd",
|
|
130
|
+
]
|
|
131
|
+
exclude-package-data.annotate = [
|
|
132
|
+
]
|
|
133
|
+
|
|
134
|
+
[tool.coverage]
|
|
135
|
+
# run
|
|
136
|
+
run.source = [
|
|
137
|
+
"annotate",
|
|
138
|
+
"tests",
|
|
139
|
+
]
|
|
140
|
+
run.omit = [
|
|
141
|
+
"**/tests/tman_*.py",
|
|
142
|
+
]
|
|
143
|
+
run.branch = true
|
|
144
|
+
run.plugins = [ "covdefaults" ]
|
|
145
|
+
# report
|
|
146
|
+
report.exclude_also = [
|
|
147
|
+
# Regexes
|
|
148
|
+
# Have to re-enable the standard pragma
|
|
149
|
+
'^\s*if\s+self\.debug\s*:',
|
|
150
|
+
'^\s*if\s+__debug__\s*:',
|
|
151
|
+
'^\s*if\s+(0|False|None)\s*:',
|
|
152
|
+
'''if\s+__name__.*\s*==\s*['"]__main__['"]\s*:''',
|
|
153
|
+
'^\s*@unittest\.skip\s*\(',
|
|
154
|
+
'''^\s*@unittest\.skipIf\s*\(\s*sys\.platform\.startswith\s*\(\s*['"]win['"]\s*\)''',
|
|
155
|
+
'^\s*@unittest\.skipIf\s*\(\s*is_windows\s*,',
|
|
156
|
+
'^\s*@unittest\.skipIf\s*\(\s*is_cpython\s*,',
|
|
157
|
+
'\s*if\s+typing\.TYPE_CHECKING\s*:',
|
|
158
|
+
]
|
|
159
|
+
report.omit = [
|
|
160
|
+
"tests/run.py",
|
|
161
|
+
]
|
|
162
|
+
report.skip_covered = false
|
|
163
|
+
|
|
164
|
+
[tool.flake8]
|
|
165
|
+
filename = [ "*.py", "*.pyx" ]
|
|
166
|
+
# include = [ "tests" ]
|
|
167
|
+
# exclude = [ ".nox", ".tox", "*.egg", ".git", "__pycache__",
|
|
168
|
+
# "build", "_build", "docs/_build", "dist" ]
|
|
169
|
+
exclude = [ "_vendor" ]
|
|
170
|
+
max-line-length = 99
|
|
171
|
+
ignore = [
|
|
172
|
+
# pycodestyle error and warning codes
|
|
173
|
+
"E126", # Continuation line over-indented for hanging indent
|
|
174
|
+
"E203", # Whitespace before ",", ";", or ":"
|
|
175
|
+
"E221", # Multiple spaces before operator
|
|
176
|
+
"E251", # Unexpected spaces around keyword / parameter equals
|
|
177
|
+
"E302", # Expected 2 blank lines, found 0
|
|
178
|
+
"E701", # Multiple statements on one line (colon)
|
|
179
|
+
"E702", # Multiple statements on one line (semicolon)
|
|
180
|
+
"E731", # Do not assign a lambda expression, use a def
|
|
181
|
+
"E122", # Continuation line missing indentation or outdented
|
|
182
|
+
"E127", # Continuation line over-indented for visual indent
|
|
183
|
+
"E128", # Continuation line under-indented for visual indent
|
|
184
|
+
"E222", # Multiple spaces after operator
|
|
185
|
+
"E272", # Multiple spaces before keyword
|
|
186
|
+
"E241", # Multiple spaces after ","
|
|
187
|
+
"E266", # Too many leading "#" for block comment
|
|
188
|
+
"E226", # Missing whitespace around arithmetic operator
|
|
189
|
+
"W503", # Line break occurred before a binary operator
|
|
190
|
+
# pydocstyle error and warning codes
|
|
191
|
+
"D100", # Missing docstring in public module
|
|
192
|
+
"D101", # Missing docstring in public class
|
|
193
|
+
"D102", # Missing docstring in public method
|
|
194
|
+
"D103", # Missing docstring in public function
|
|
195
|
+
"D104", # Missing docstring in public package
|
|
196
|
+
"D202", # No blank lines allowed after function docstring
|
|
197
|
+
"D400", # First line should end with a period
|
|
198
|
+
"D401", # First line should be in imperative mood; try rephrasing
|
|
199
|
+
# pep8-naming error and warning codes
|
|
200
|
+
"N801", # Class names should use CapWords convention (class names)
|
|
201
|
+
"N802", # Function name should be lowercase (function names)
|
|
202
|
+
"N803", # Argument name should be lowercase (function arguments)
|
|
203
|
+
"N806", # Variable in function should be lowercase
|
|
204
|
+
# Other error and warning codes
|
|
205
|
+
"I100", # Your import statements are in the wrong order
|
|
206
|
+
]
|
|
207
|
+
# (e.g. "E4", "W") default: "E121", "E123", "126", "226", "E24", "704"
|
|
208
|
+
# select = [ "E", "W", "F", "N", "I" ]
|
|
209
|
+
# show-source = true
|
|
210
|
+
# verbose = false
|
|
211
|
+
# quiet = true
|
|
212
|
+
count = true
|
|
213
|
+
|
|
214
|
+
[tool.mypy]
|
|
215
|
+
python_version = "3.10"
|
|
216
|
+
strict = true
|
|
217
|
+
sqlite_cache = true
|
|
218
|
+
warn_unused_configs = true
|
|
219
|
+
exclude_gitignore = true
|
|
220
|
+
install_types = true
|
|
221
|
+
non_interactive = true
|
|
222
|
+
pretty = true
|
|
223
|
+
check_untyped_defs = true
|
|
224
|
+
# ignore_missing_imports = true
|
|
225
|
+
files = [ "src" ]
|
|
226
|
+
# exclude = [ "docs/", "tests/" ]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: annotate
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Decorator to set a function's __annotations__ like Py3.
|
|
5
5
|
Author-email: Adam Karpierz <adam@karpierz.net>
|
|
6
6
|
Maintainer-email: Adam Karpierz <adam@karpierz.net>
|
|
@@ -16,16 +16,16 @@ Keywords: annotate,typing,decorator
|
|
|
16
16
|
Platform: any
|
|
17
17
|
Classifier: Development Status :: 5 - Production/Stable
|
|
18
18
|
Classifier: Intended Audience :: Developers
|
|
19
|
-
Classifier: Operating System :: OS Independent
|
|
20
19
|
Classifier: Natural Language :: Polish
|
|
20
|
+
Classifier: Operating System :: OS Independent
|
|
21
21
|
Classifier: Programming Language :: Python
|
|
22
|
-
Classifier: Programming Language :: Python :: 3
|
|
22
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.10
|
|
24
24
|
Classifier: Programming Language :: Python :: 3.11
|
|
25
25
|
Classifier: Programming Language :: Python :: 3.12
|
|
26
26
|
Classifier: Programming Language :: Python :: 3.13
|
|
27
27
|
Classifier: Programming Language :: Python :: 3.14
|
|
28
|
-
Classifier: Programming Language :: Python :: 3
|
|
28
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
29
29
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
30
30
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
31
31
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
@@ -34,7 +34,7 @@ Requires-Python: <4.0.0,>=3.10.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.
|
|
37
|
+
Requires-Dist: pkg-about>=2.3.0
|
|
38
38
|
Dynamic: license-file
|
|
39
39
|
|
|
40
40
|
annotate
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
typing-extensions>=4.15.0
|
|
2
|
-
pkg-about>=2.
|
|
2
|
+
pkg-about>=2.3.0
|
|
@@ -10,14 +10,15 @@ from . import test_dir
|
|
|
10
10
|
log = logging.getLogger(__name__)
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
def test_suite(names=None,
|
|
13
|
+
def test_suite(names=None, include=(), exclude=()):
|
|
14
14
|
from . import __name__ as pkg_name
|
|
15
15
|
from . import __path__ as pkg_path
|
|
16
16
|
import unittest
|
|
17
17
|
import pkgutil
|
|
18
18
|
if names is None:
|
|
19
19
|
names = [name for _, name, _ in pkgutil.iter_modules(pkg_path)
|
|
20
|
-
if name.startswith("test_")
|
|
20
|
+
if (name.startswith("test_") or name in include)
|
|
21
|
+
and name not in exclude]
|
|
21
22
|
names = [".".join((pkg_name, name)) for name in names]
|
|
22
23
|
tests = unittest.defaultTestLoader.loadTestsFromNames(names)
|
|
23
24
|
return tests
|
annotate-2.1.1/pyproject.toml
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2012 Adam Karpierz
|
|
2
|
-
# SPDX-License-Identifier: Zlib
|
|
3
|
-
|
|
4
|
-
[build-system]
|
|
5
|
-
requires = ['setuptools>=80.10.2', 'packaging>=26.0.0']
|
|
6
|
-
build-backend = 'setuptools.build_meta'
|
|
7
|
-
|
|
8
|
-
[project]
|
|
9
|
-
name = 'annotate'
|
|
10
|
-
version = '2.1.1'
|
|
11
|
-
description = '''Decorator to set a function's __annotations__ like Py3.'''
|
|
12
|
-
authors = [
|
|
13
|
-
{ name = 'Adam Karpierz', email = 'adam@karpierz.net' },
|
|
14
|
-
]
|
|
15
|
-
maintainers = [
|
|
16
|
-
{ name = 'Adam Karpierz', email = 'adam@karpierz.net' },
|
|
17
|
-
]
|
|
18
|
-
license = 'Zlib'
|
|
19
|
-
license-files = ['LICENSE']
|
|
20
|
-
urls.Homepage = 'https://pypi.org/project/annotate/'
|
|
21
|
-
urls.Documentation = 'https://karpierz.github.io/annotate/'
|
|
22
|
-
urls.History = 'https://karpierz.github.io/annotate/CHANGES.html'
|
|
23
|
-
urls.Download = 'https://pypi.org/project/annotate/'
|
|
24
|
-
urls.Repository = 'https://github.com/karpierz/annotate'
|
|
25
|
-
urls.Tracker = 'https://github.com/karpierz/annotate/issues'
|
|
26
|
-
urls.Sponsoring = 'https://www.paypal.com/donate/?hosted_button_id=FX8L7CJUGLW7S'
|
|
27
|
-
keywords = ['annotate', 'typing', 'decorator']
|
|
28
|
-
classifiers = [
|
|
29
|
-
'Development Status :: 5 - Production/Stable',
|
|
30
|
-
'Intended Audience :: Developers',
|
|
31
|
-
'Operating System :: OS Independent',
|
|
32
|
-
'Natural Language :: Polish',
|
|
33
|
-
'Programming Language :: Python',
|
|
34
|
-
'Programming Language :: Python :: 3',
|
|
35
|
-
'Programming Language :: Python :: 3.10',
|
|
36
|
-
'Programming Language :: Python :: 3.11',
|
|
37
|
-
'Programming Language :: Python :: 3.12',
|
|
38
|
-
'Programming Language :: Python :: 3.13',
|
|
39
|
-
'Programming Language :: Python :: 3.14',
|
|
40
|
-
'Programming Language :: Python :: 3 :: Only',
|
|
41
|
-
'Programming Language :: Python :: Implementation :: CPython',
|
|
42
|
-
'Programming Language :: Python :: Implementation :: PyPy',
|
|
43
|
-
'Topic :: Software Development :: Libraries :: Python Modules',
|
|
44
|
-
'Typing :: Typed',
|
|
45
|
-
]
|
|
46
|
-
requires-python = '>=3.10.0,<4.0.0'
|
|
47
|
-
dependencies = [
|
|
48
|
-
# mandatory
|
|
49
|
-
'typing-extensions>=4.15.0',
|
|
50
|
-
'pkg-about>=2.1.0',
|
|
51
|
-
# others
|
|
52
|
-
]
|
|
53
|
-
dynamic = ['readme']
|
|
54
|
-
#scripts.'annotate' = 'annotate.__main__:main'
|
|
55
|
-
#gui-scripts.'annotate-gui' = 'annotate:main_gui'
|
|
56
|
-
#entry-points.'annotate.magical'.epoint = 'annotate:main_epoint'
|
|
57
|
-
|
|
58
|
-
[dependency-groups]
|
|
59
|
-
base = [
|
|
60
|
-
'pip>=25.3',
|
|
61
|
-
'setuptools>=80.10.2',
|
|
62
|
-
]
|
|
63
|
-
test = [
|
|
64
|
-
{ include-group = 'base' },
|
|
65
|
-
'deepdiff>=8.6.1',
|
|
66
|
-
'rich>=14.3.1',
|
|
67
|
-
]
|
|
68
|
-
coverage = [
|
|
69
|
-
{ include-group = 'test' },
|
|
70
|
-
'coverage>=7.13.2',
|
|
71
|
-
'covdefaults>=2.3.0',
|
|
72
|
-
'diff-cover>=10.2.0',
|
|
73
|
-
]
|
|
74
|
-
docs = [
|
|
75
|
-
{ include-group = 'base' },
|
|
76
|
-
'sphinx>=8.1.3',
|
|
77
|
-
'pygments_ansi_color>=0.3.0', # fix sphinx load error
|
|
78
|
-
'roman_numerals>=4.1.0', # -||-
|
|
79
|
-
'sphinx-autodoc-typehints>=3.0.1',
|
|
80
|
-
'sphinx-toolbox>=4.1.2',
|
|
81
|
-
'sphinx-tabs>=3.4.5', # Do not change - sphinx-toolbox requires <3.4.7
|
|
82
|
-
'sphinx-copybutton>=0.5.2',
|
|
83
|
-
'sphinxcontrib-spelling>=8.0.2',
|
|
84
|
-
'sphinx-lint>=1.0.2',
|
|
85
|
-
'restructuredtext-lint>=2.0.2',
|
|
86
|
-
'nbsphinx>=0.9.8',
|
|
87
|
-
]
|
|
88
|
-
build = [
|
|
89
|
-
{ include-group = 'test' },
|
|
90
|
-
'check-manifest>=0.51',
|
|
91
|
-
'build>=1.4.0',
|
|
92
|
-
'twine>=6.2.0',
|
|
93
|
-
]
|
|
94
|
-
publish = [
|
|
95
|
-
'twine>=6.2.0',
|
|
96
|
-
]
|
|
97
|
-
typing = [
|
|
98
|
-
{ include-group = 'base' },
|
|
99
|
-
'mypy>=1.19.1',
|
|
100
|
-
'mypy_extensions>=1.1.0',
|
|
101
|
-
'types-setuptools>=80.10.0.20260124',
|
|
102
|
-
]
|
|
103
|
-
lint = [
|
|
104
|
-
{ include-group = 'test' },
|
|
105
|
-
'flake8>=7.3.0',
|
|
106
|
-
'flake8-in-file-ignores>=0.3.0',
|
|
107
|
-
'flake8-pyproject>=1.2.4',
|
|
108
|
-
'flake8-docstrings>=1.7.0',
|
|
109
|
-
'pep8-naming>=0.15.1',
|
|
110
|
-
'flake8-builtins>=3.1.0',
|
|
111
|
-
'flake8-deprecated>=2.3.0',
|
|
112
|
-
]
|
|
113
|
-
|
|
114
|
-
[tool.setuptools.dynamic]
|
|
115
|
-
readme = { file = ['README.rst'], content-type = 'text/x-rst; charset=UTF-8' }
|
|
116
|
-
|
|
117
|
-
[tool.setuptools]
|
|
118
|
-
include-package-data = true
|
|
119
|
-
platforms = ['any']
|
|
120
|
-
zip-safe = true
|
|
121
|
-
|
|
122
|
-
[tool.setuptools.packages.find]
|
|
123
|
-
namespaces = false
|
|
124
|
-
where = ['src']
|
|
125
|
-
|
|
126
|
-
[tool.setuptools.package-dir]
|
|
127
|
-
'' = 'src'
|
|
128
|
-
#'annotate.tests' = 'tests'
|
|
129
|
-
|
|
130
|
-
[tool.setuptools.package-data]
|
|
131
|
-
annotate = [
|
|
132
|
-
]
|
|
133
|
-
|
|
134
|
-
[tool.setuptools.exclude-package-data]
|
|
135
|
-
'*' = ['*.c','*.h','*.cpp','*.hpp','*.cxx','*.hxx','*.pyx','*.pxd']
|
|
136
|
-
annotate = [
|
|
137
|
-
]
|
|
138
|
-
|
|
139
|
-
[tool.coverage]
|
|
140
|
-
# run
|
|
141
|
-
run.source = [
|
|
142
|
-
'annotate',
|
|
143
|
-
'tests',
|
|
144
|
-
]
|
|
145
|
-
run.omit = [
|
|
146
|
-
'**/tests/tman_*.py',
|
|
147
|
-
]
|
|
148
|
-
run.branch = true
|
|
149
|
-
run.data_file = '.nox/coverage/.coverage'
|
|
150
|
-
run.plugins = ['covdefaults']
|
|
151
|
-
# report
|
|
152
|
-
report.exclude_also = [
|
|
153
|
-
# Regexes
|
|
154
|
-
# Have to re-enable the standard pragma
|
|
155
|
-
'^\s*if\s+self\.debug\s*:',
|
|
156
|
-
'^\s*if\s+__debug__\s*:',
|
|
157
|
-
'^\s*if\s+(0|False)\s*:',
|
|
158
|
-
'''if\s+__name__.*\s*==\s*['"]__main__['"]\s*:''',
|
|
159
|
-
'^\s*@unittest\.skip\(',
|
|
160
|
-
'^\s*@unittest\.skipIf\(sys\.platform\.startswith\("win"\)',
|
|
161
|
-
'^\s*@unittest\.skipIf\(is_windows,',
|
|
162
|
-
'^\s*@unittest\.skipIf\(is_cpython,',
|
|
163
|
-
'if typing.TYPE_CHECKING:',
|
|
164
|
-
]
|
|
165
|
-
report.omit = [
|
|
166
|
-
'tests/run.py',
|
|
167
|
-
]
|
|
168
|
-
report.skip_covered = false
|
|
169
|
-
# html report
|
|
170
|
-
html.directory = '.nox/coverage/.coverage.html'
|
|
171
|
-
|
|
172
|
-
[tool.flake8]
|
|
173
|
-
filename = ['*.py','*.pyx']
|
|
174
|
-
#include = ['tests']
|
|
175
|
-
#exclude = ['.nox','.tox','*.egg','.git','__pycache__','build','_build','docs/_build','dist']
|
|
176
|
-
exclude = ['_vendor']
|
|
177
|
-
max-line-length = 99
|
|
178
|
-
ignore = ['E126','E203','E221','E251','E302','E701','E702','E731',
|
|
179
|
-
'E122','E127','E128','E222','E272','E241','E266','E226',
|
|
180
|
-
'D100','D101','D102','D103','D104','D400','D401','D202',
|
|
181
|
-
'N806','N802','N803','N801',
|
|
182
|
-
'I100','W503']
|
|
183
|
-
# (e.g. 'E4','W') default: 'E121','E123','126','226','E24','704'
|
|
184
|
-
#select =
|
|
185
|
-
#select = ['E','W','F','N','I']
|
|
186
|
-
output-file = '.nox/lint/flake8out.txt'
|
|
187
|
-
count = true
|
|
188
|
-
#show-pep8,
|
|
189
|
-
#show-source
|
|
190
|
-
#verbose
|
|
191
|
-
#quiet
|
|
192
|
-
|
|
193
|
-
[tool.mypy]
|
|
194
|
-
python_version = '3.10'
|
|
195
|
-
strict = true
|
|
196
|
-
sqlite_cache = true
|
|
197
|
-
warn_unused_configs = true
|
|
198
|
-
exclude_gitignore = true
|
|
199
|
-
install_types = true
|
|
200
|
-
non_interactive = true
|
|
201
|
-
pretty = true
|
|
202
|
-
check_untyped_defs = true
|
|
203
|
-
#ignore_missing_imports = true
|
|
204
|
-
files = ['src']
|
|
205
|
-
#exclude = ['docs/', 'tests/']
|
|
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
|
|
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
|