def-main 0.10.0__tar.gz → 0.12.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.
@@ -0,0 +1 @@
1
+ tom@bolt.local.43612:1768061500
@@ -0,0 +1,129 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pipenv
85
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
86
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
87
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
88
+ # install all needed dependencies.
89
+ #Pipfile.lock
90
+
91
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
92
+ __pypackages__/
93
+
94
+ # Celery stuff
95
+ celerybeat-schedule
96
+ celerybeat.pid
97
+
98
+ # SageMath parsed files
99
+ *.sage.py
100
+
101
+ # Environments
102
+ .env
103
+ .venv
104
+ env/
105
+ venv/
106
+ ENV/
107
+ env.bak/
108
+ venv.bak/
109
+
110
+ # Spyder project settings
111
+ .spyderproject
112
+ .spyproject
113
+
114
+ # Rope project settings
115
+ .ropeproject
116
+
117
+ # mkdocs documentation
118
+ site/
119
+
120
+ # mypy
121
+ .mypy_cache/
122
+ .dmypy.json
123
+ dmypy.json
124
+
125
+ # Pyre type checker
126
+ .pyre/
127
+
128
+ # direnv
129
+ .direnv/
@@ -0,0 +1 @@
1
+ 3.10
@@ -0,0 +1 @@
1
+ github: rec
@@ -0,0 +1,72 @@
1
+ Metadata-Version: 2.4
2
+ Name: def-main
3
+ Version: 0.12.0
4
+ Summary: 🗣 A decorator for main 🗣
5
+ Author-email: Tom Ritchford <tom@swirly.com>
6
+ License-Expression: MIT
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Python :: 3.14
13
+ Requires-Python: >=3.10
14
+ Requires-Dist: xmod<2,>=1.3.2
15
+ Description-Content-Type: text/markdown
16
+
17
+ # `def_main`: a tiny decorator to define main
18
+
19
+ Define the main function in one step.
20
+
21
+ For any non-trivial projects, use typer and dtyper instead!
22
+
23
+ ## Usage example
24
+
25
+ ### Without an return code
26
+
27
+ ``` python
28
+ import def_main
29
+
30
+ @def_main
31
+ def main(*argv):
32
+ print('hello,', *argv)
33
+ ```
34
+
35
+ means precisely the same as:
36
+
37
+ ``` python
38
+ def main(*argv):
39
+ print('hello,', *argv)
40
+
41
+
42
+ if __name__ == '__main__':
43
+ import sys
44
+
45
+ main(sys.argv[1:])
46
+ ```
47
+
48
+ ### With a return code
49
+
50
+ ``` python
51
+ import def_main
52
+
53
+ @def_main
54
+ def main(*argv):
55
+ print('hello,', *argv)
56
+ return argv
57
+ ```
58
+
59
+ means precisely the same as:
60
+
61
+ ``` python
62
+ def main(*argv):
63
+ print('hello,', *argv)
64
+ return argv
65
+
66
+
67
+ if __name__ == '__main__':
68
+ import sys
69
+
70
+ returncode = main(sys.argv[1:])
71
+ sys.exit(returncode)
72
+ ```
@@ -0,0 +1,56 @@
1
+ # `def_main`: a tiny decorator to define main
2
+
3
+ Define the main function in one step.
4
+
5
+ For any non-trivial projects, use typer and dtyper instead!
6
+
7
+ ## Usage example
8
+
9
+ ### Without an return code
10
+
11
+ ``` python
12
+ import def_main
13
+
14
+ @def_main
15
+ def main(*argv):
16
+ print('hello,', *argv)
17
+ ```
18
+
19
+ means precisely the same as:
20
+
21
+ ``` python
22
+ def main(*argv):
23
+ print('hello,', *argv)
24
+
25
+
26
+ if __name__ == '__main__':
27
+ import sys
28
+
29
+ main(sys.argv[1:])
30
+ ```
31
+
32
+ ### With a return code
33
+
34
+ ``` python
35
+ import def_main
36
+
37
+ @def_main
38
+ def main(*argv):
39
+ print('hello,', *argv)
40
+ return argv
41
+ ```
42
+
43
+ means precisely the same as:
44
+
45
+ ``` python
46
+ def main(*argv):
47
+ print('hello,', *argv)
48
+ return argv
49
+
50
+
51
+ if __name__ == '__main__':
52
+ import sys
53
+
54
+ returncode = main(sys.argv[1:])
55
+ sys.exit(returncode)
56
+ ```
@@ -1,10 +1,18 @@
1
- from typing import Callable
1
+ import inspect
2
2
  import sys
3
+ from collections.abc import Callable
4
+
5
+ MAINS = []
3
6
 
4
7
 
5
8
  def def_main(f: Callable) -> Callable:
9
+ s = inspect.stack()[1]
10
+ MAINS.append((f, s.filename, s.lineno))
11
+
6
12
  if f.__module__ == '__main__':
7
- f(*sys.argv[1:])
13
+ result = f(*sys.argv[1:])
14
+ if result:
15
+ sys.exit(result)
8
16
 
9
17
  return f
10
18
 
@@ -0,0 +1,3 @@
1
+ .md-typeset h1 {
2
+ font-size: 28px;
3
+ }
@@ -0,0 +1,9 @@
1
+ # 🗣: `def_main`: A decorator for main 🗣
2
+
3
+ ::: def_main
4
+
5
+ ## More info
6
+
7
+ * [ Code ]( https://github.com/rec/def_main )
8
+ * [ Me ]( https://github.com/rec )
9
+ * [ Sponsors ]( https://github.com/sponsors/rec )
@@ -0,0 +1,19 @@
1
+ site_name: '🗣: `def_main`: A decorator for main 🗣'
2
+
3
+ theme:
4
+ name: material
5
+
6
+ palette:
7
+ primary:
8
+ 'orange'
9
+
10
+ font:
11
+ text:
12
+ Roboto
13
+ code:
14
+ Roboto Mono
15
+
16
+ extra_css: [extra.css]
17
+
18
+ plugins:
19
+ - mkdocstrings
@@ -0,0 +1,31 @@
1
+ [project]
2
+ name = "def-main"
3
+ version = "0.12.0"
4
+ description = "🗣 A decorator for main 🗣"
5
+ authors = [{ name = "Tom Ritchford", email = "tom@swirly.com" }]
6
+ requires-python = ">=3.10"
7
+ readme = "README.md"
8
+ license = "MIT"
9
+ classifiers = ["Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14"]
10
+ dependencies = ["xmod>=1.3.2,<2"]
11
+
12
+ [tool.doks]
13
+ auto = true
14
+
15
+ [tool.coverage]
16
+
17
+ [tool.ruff.format]
18
+ quote-style = "single"
19
+ [dependency-groups]
20
+ dev = [
21
+ "coverage>=6.5.0,<7",
22
+ "pytest>=7.2.0,<8",
23
+ "pyupgrade>=3.21.2",
24
+ "ruff>=0.14.14",
25
+ "ty>=0.0.14",
26
+ ]
27
+
28
+ [build-system]
29
+ requires = ["hatchling"]
30
+ build-backend = "hatchling.build"
31
+
@@ -0,0 +1,18 @@
1
+ import def_main
2
+
3
+
4
+ @def_main
5
+ def main(message='you!', *rest):
6
+ print('test_main says hello!, to', message, *rest)
7
+
8
+
9
+ @def_main
10
+ def error(*argv):
11
+ print('error!')
12
+ return 1
13
+
14
+
15
+ @def_main
16
+ def never_reached(*argv):
17
+ print('This is never reached')
18
+ return 0
@@ -0,0 +1,225 @@
1
+ version = 1
2
+ revision = 3
3
+ requires-python = ">=3.10"
4
+
5
+ [[package]]
6
+ name = "colorama"
7
+ version = "0.4.6"
8
+ source = { registry = "https://pypi.org/simple" }
9
+ sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" }
10
+ wheels = [
11
+ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" },
12
+ ]
13
+
14
+ [[package]]
15
+ name = "coverage"
16
+ version = "6.5.0"
17
+ source = { registry = "https://pypi.org/simple" }
18
+ sdist = { url = "https://files.pythonhosted.org/packages/5c/66/38d1870cb7cf62da49add1d6803fdbcdef632b2808b5c80bcac35b7634d8/coverage-6.5.0.tar.gz", hash = "sha256:f642e90754ee3e06b0e7e51bce3379590e76b7f76b708e1a71ff043f87025c84", size = 775224, upload-time = "2022-09-29T20:05:58.509Z" }
19
+ wheels = [
20
+ { url = "https://files.pythonhosted.org/packages/c4/8d/5ec7d08f4601d2d792563fe31db5e9322c306848fec1e65ec8885927f739/coverage-6.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef8674b0ee8cc11e2d574e3e2998aea5df5ab242e012286824ea3c6970580e53", size = 185264, upload-time = "2022-09-29T20:04:39.481Z" },
21
+ { url = "https://files.pythonhosted.org/packages/89/a2/cbf599e50bb4be416e0408c4cf523c354c51d7da39935461a9687e039481/coverage-6.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:784f53ebc9f3fd0e2a3f6a78b2be1bd1f5575d7863e10c6e12504f240fd06660", size = 185482, upload-time = "2022-09-29T20:04:41.703Z" },
22
+ { url = "https://files.pythonhosted.org/packages/15/b0/3639d84ee8a900da0cf6450ab46e22517e4688b6cec0ba8ab6f8166103a2/coverage-6.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4a5be1748d538a710f87542f22c2cad22f80545a847ad91ce45e77417293eb4", size = 214083, upload-time = "2022-09-29T20:04:43.294Z" },
23
+ { url = "https://files.pythonhosted.org/packages/13/f3/c6025ba30f2ce21d20d5332c3819880fe8afdfc008c2e2f9c075c7b67543/coverage-6.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83516205e254a0cb77d2d7bb3632ee019d93d9f4005de31dca0a8c3667d5bc04", size = 212396, upload-time = "2022-09-29T20:04:44.809Z" },
24
+ { url = "https://files.pythonhosted.org/packages/3c/7d/d5211ea782b193ab8064b06dc0cc042cf1a4ca9c93a530071459172c550f/coverage-6.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af4fffaffc4067232253715065e30c5a7ec6faac36f8fc8d6f64263b15f74db0", size = 213270, upload-time = "2022-09-29T20:04:46.291Z" },
25
+ { url = "https://files.pythonhosted.org/packages/10/9e/68e384940179713640743a010ac7f7c813d1087c8730a9c0bdfa73bdffd7/coverage-6.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:97117225cdd992a9c2a5515db1f66b59db634f59d0679ca1fa3fe8da32749cae", size = 219188, upload-time = "2022-09-29T20:04:47.728Z" },
26
+ { url = "https://files.pythonhosted.org/packages/2f/8b/ca3fe3cfbd66d63181f6e6a06b8b494bb327ba8222d2fa628b392b9ad08a/coverage-6.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a1170fa54185845505fbfa672f1c1ab175446c887cce8212c44149581cf2d466", size = 217430, upload-time = "2022-09-29T20:04:49.098Z" },
27
+ { url = "https://files.pythonhosted.org/packages/c0/18/2a0a9b3c29376ce04ceb7ca2948559dad76409a2c9b3f664756581101e16/coverage-6.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:11b990d520ea75e7ee8dcab5bc908072aaada194a794db9f6d7d5cfd19661e5a", size = 218646, upload-time = "2022-09-29T20:04:50.582Z" },
28
+ { url = "https://files.pythonhosted.org/packages/11/9e/7afba355bdabc550b3b2669e3432e71aec87d79400372d7686c09aab0acf/coverage-6.5.0-cp310-cp310-win32.whl", hash = "sha256:5dbec3b9095749390c09ab7c89d314727f18800060d8d24e87f01fb9cfb40b32", size = 187602, upload-time = "2022-09-29T20:04:52.509Z" },
29
+ { url = "https://files.pythonhosted.org/packages/ae/a3/f45cb5d32de0751863945d22083c15eb8854bb53681b2e792f2066c629b9/coverage-6.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:59f53f1dc5b656cafb1badd0feb428c1e7bc19b867479ff72f7a9dd9b479f10e", size = 188510, upload-time = "2022-09-29T20:04:54.421Z" },
30
+ { url = "https://files.pythonhosted.org/packages/50/cf/455930004231fa87efe8be06d13512f34e070ddfee8b8bf5a050cdc47ab3/coverage-6.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4a5375e28c5191ac38cca59b38edd33ef4cc914732c916f2929029b4bfb50795", size = 185433, upload-time = "2022-09-29T20:04:55.856Z" },
31
+ { url = "https://files.pythonhosted.org/packages/36/f3/5cbd79cf4cd059c80b59104aca33b8d05af4ad5bf5b1547645ecee716378/coverage-6.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4ed2820d919351f4167e52425e096af41bfabacb1857186c1ea32ff9983ed75", size = 217736, upload-time = "2022-09-29T20:04:57.242Z" },
32
+ { url = "https://files.pythonhosted.org/packages/89/58/5ec19b43a6511288511f64fc4763d95af8403f5926e7e4556e6b29b03a26/coverage-6.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:33a7da4376d5977fbf0a8ed91c4dffaaa8dbf0ddbf4c8eea500a2486d8bc4d7b", size = 215313, upload-time = "2022-09-29T20:04:58.661Z" },
33
+ { url = "https://files.pythonhosted.org/packages/6a/63/8e82513b7e4a1b8d887b4e85c1c2b6c9b754a581b187c0b084f3330ac479/coverage-6.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8fb6cf131ac4070c9c5a3e21de0f7dc5a0fbe8bc77c9456ced896c12fcdad91", size = 217115, upload-time = "2022-09-29T20:05:00.194Z" },
34
+ { url = "https://files.pythonhosted.org/packages/ac/bc/c9d4fd6b3494d2cc1e26f4b98eb19206b92a59094617ad02d5689ac9d3c4/coverage-6.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a6b7d95969b8845250586f269e81e5dfdd8ff828ddeb8567a4a2eaa7313460c4", size = 226072, upload-time = "2022-09-29T20:05:01.635Z" },
35
+ { url = "https://files.pythonhosted.org/packages/78/98/253ce0cfcc3b352d3072940940ed44a035614f2abe781477f77038d21d9f/coverage-6.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1ef221513e6f68b69ee9e159506d583d31aa3567e0ae84eaad9d6ec1107dddaa", size = 224486, upload-time = "2022-09-29T20:05:03.158Z" },
36
+ { url = "https://files.pythonhosted.org/packages/4b/66/6e588f5dfc93ccedd06d6785c8143f17bb92b89247d50128d8789e9588d0/coverage-6.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cca4435eebea7962a52bdb216dec27215d0df64cf27fc1dd538415f5d2b9da6b", size = 225537, upload-time = "2022-09-29T20:05:04.646Z" },
37
+ { url = "https://files.pythonhosted.org/packages/ff/27/339089b558672f04e62d0cd2d49b9280270bad3bc95de24e7eb03deb4638/coverage-6.5.0-cp311-cp311-win32.whl", hash = "sha256:98e8a10b7a314f454d9eff4216a9a94d143a7ee65018dd12442e898ee2310578", size = 187586, upload-time = "2022-09-29T20:05:06.22Z" },
38
+ { url = "https://files.pythonhosted.org/packages/e6/24/7fe8ededb4060dd8c3f1d86cb624fcb3452f66fbef5051ed7fab126c5c0c/coverage-6.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:bc8ef5e043a2af066fa8cbfc6e708d58017024dc4345a1f9757b329a249f041b", size = 188604, upload-time = "2022-09-29T20:05:09.007Z" },
39
+ ]
40
+
41
+ [[package]]
42
+ name = "def-main"
43
+ version = "0.12.0"
44
+ source = { editable = "." }
45
+ dependencies = [
46
+ { name = "xmod" },
47
+ ]
48
+
49
+ [package.dev-dependencies]
50
+ dev = [
51
+ { name = "coverage" },
52
+ { name = "pytest" },
53
+ { name = "pyupgrade" },
54
+ { name = "ruff" },
55
+ { name = "ty" },
56
+ ]
57
+
58
+ [package.metadata]
59
+ requires-dist = [{ name = "xmod", specifier = ">=1.3.2,<2" }]
60
+
61
+ [package.metadata.requires-dev]
62
+ dev = [
63
+ { name = "coverage", specifier = ">=6.5.0,<7" },
64
+ { name = "pytest", specifier = ">=7.2.0,<8" },
65
+ { name = "pyupgrade", specifier = ">=3.21.2" },
66
+ { name = "ruff", specifier = ">=0.14.14" },
67
+ { name = "ty", specifier = ">=0.0.14" },
68
+ ]
69
+
70
+ [[package]]
71
+ name = "dek"
72
+ version = "1.1.0"
73
+ source = { registry = "https://pypi.org/simple" }
74
+ dependencies = [
75
+ { name = "xmod" },
76
+ ]
77
+ sdist = { url = "https://files.pythonhosted.org/packages/b0/ce/a08e4bf916a756eb7c7329956ee9af06f0550320cee79a084a5f219487ea/dek-1.1.0.tar.gz", hash = "sha256:c4660d885ebfd0437a83bb66bed9adf10215b43a3426119328880829f5687331", size = 5193, upload-time = "2023-02-25T15:01:56.755Z" }
78
+ wheels = [
79
+ { url = "https://files.pythonhosted.org/packages/09/cd/f8bbf875d5304f5d8096b0428fd715dcdb0e48adc4aa5d3cdeed1bf6fe47/dek-1.1.0-py3-none-any.whl", hash = "sha256:ffa4fe9cbd44124d9c64e29f0e2105514c4c06ce9c0f9c1e499a953b69a8f35d", size = 6126, upload-time = "2023-02-25T15:01:55.621Z" },
80
+ ]
81
+
82
+ [[package]]
83
+ name = "exceptiongroup"
84
+ version = "1.2.0"
85
+ source = { registry = "https://pypi.org/simple" }
86
+ sdist = { url = "https://files.pythonhosted.org/packages/8e/1c/beef724eaf5b01bb44b6338c8c3494eff7cab376fab4904cfbbc3585dc79/exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68", size = 26264, upload-time = "2023-11-21T08:42:17.407Z" }
87
+ wheels = [
88
+ { url = "https://files.pythonhosted.org/packages/b8/9a/5028fd52db10e600f1c4674441b968cf2ea4959085bfb5b99fb1250e5f68/exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14", size = 16210, upload-time = "2023-11-21T08:42:15.525Z" },
89
+ ]
90
+
91
+ [[package]]
92
+ name = "iniconfig"
93
+ version = "2.0.0"
94
+ source = { registry = "https://pypi.org/simple" }
95
+ sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646, upload-time = "2023-01-07T11:08:11.254Z" }
96
+ wheels = [
97
+ { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892, upload-time = "2023-01-07T11:08:09.864Z" },
98
+ ]
99
+
100
+ [[package]]
101
+ name = "packaging"
102
+ version = "23.2"
103
+ source = { registry = "https://pypi.org/simple" }
104
+ sdist = { url = "https://files.pythonhosted.org/packages/fb/2b/9b9c33ffed44ee921d0967086d653047286054117d584f1b1a7c22ceaf7b/packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", size = 146714, upload-time = "2023-10-01T13:50:05.279Z" }
105
+ wheels = [
106
+ { url = "https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7", size = 53011, upload-time = "2023-10-01T13:50:03.745Z" },
107
+ ]
108
+
109
+ [[package]]
110
+ name = "pluggy"
111
+ version = "1.2.0"
112
+ source = { registry = "https://pypi.org/simple" }
113
+ sdist = { url = "https://files.pythonhosted.org/packages/8a/42/8f2833655a29c4e9cb52ee8a2be04ceac61bcff4a680fb338cbd3d1e322d/pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3", size = 61613, upload-time = "2023-06-21T09:12:28.745Z" }
114
+ wheels = [
115
+ { url = "https://files.pythonhosted.org/packages/51/32/4a79112b8b87b21450b066e102d6608907f4c885ed7b04c3fdb085d4d6ae/pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849", size = 17695, upload-time = "2023-06-21T09:12:27.397Z" },
116
+ ]
117
+
118
+ [[package]]
119
+ name = "pytest"
120
+ version = "7.4.4"
121
+ source = { registry = "https://pypi.org/simple" }
122
+ dependencies = [
123
+ { name = "colorama", marker = "sys_platform == 'win32'" },
124
+ { name = "exceptiongroup", marker = "python_full_version < '3.11'" },
125
+ { name = "iniconfig" },
126
+ { name = "packaging" },
127
+ { name = "pluggy" },
128
+ { name = "tomli", marker = "python_full_version < '3.11'" },
129
+ ]
130
+ sdist = { url = "https://files.pythonhosted.org/packages/80/1f/9d8e98e4133ffb16c90f3b405c43e38d3abb715bb5d7a63a5a684f7e46a3/pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280", size = 1357116, upload-time = "2023-12-31T12:00:18.035Z" }
131
+ wheels = [
132
+ { url = "https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8", size = 325287, upload-time = "2023-12-31T12:00:13.963Z" },
133
+ ]
134
+
135
+ [[package]]
136
+ name = "pyupgrade"
137
+ version = "3.21.2"
138
+ source = { registry = "https://pypi.org/simple" }
139
+ dependencies = [
140
+ { name = "tokenize-rt" },
141
+ ]
142
+ sdist = { url = "https://files.pythonhosted.org/packages/7f/a1/dc63caaeed232b1c58eae1b7a75f262d64ab8435882f696ffa9b58c0c415/pyupgrade-3.21.2.tar.gz", hash = "sha256:1a361bea39deda78d1460f65d9dd548d3a36ff8171d2482298539b9dc11c9c06", size = 45455, upload-time = "2025-11-19T00:39:48.012Z" }
143
+ wheels = [
144
+ { url = "https://files.pythonhosted.org/packages/16/8c/433dac11910989a90c40b10149d07ef7224232236971a562d3976790ec53/pyupgrade-3.21.2-py2.py3-none-any.whl", hash = "sha256:2ac7b95cbd176475041e4dfe8ef81298bd4654a244f957167bd68af37d52be9f", size = 62814, upload-time = "2025-11-19T00:39:46.958Z" },
145
+ ]
146
+
147
+ [[package]]
148
+ name = "ruff"
149
+ version = "0.14.14"
150
+ source = { registry = "https://pypi.org/simple" }
151
+ sdist = { url = "https://files.pythonhosted.org/packages/2e/06/f71e3a86b2df0dfa2d2f72195941cd09b44f87711cb7fa5193732cb9a5fc/ruff-0.14.14.tar.gz", hash = "sha256:2d0f819c9a90205f3a867dbbd0be083bee9912e170fd7d9704cc8ae45824896b", size = 4515732, upload-time = "2026-01-22T22:30:17.527Z" }
152
+ wheels = [
153
+ { url = "https://files.pythonhosted.org/packages/d2/89/20a12e97bc6b9f9f68343952da08a8099c57237aef953a56b82711d55edd/ruff-0.14.14-py3-none-linux_armv6l.whl", hash = "sha256:7cfe36b56e8489dee8fbc777c61959f60ec0f1f11817e8f2415f429552846aed", size = 10467650, upload-time = "2026-01-22T22:30:08.578Z" },
154
+ { url = "https://files.pythonhosted.org/packages/a3/b1/c5de3fd2d5a831fcae21beda5e3589c0ba67eec8202e992388e4b17a6040/ruff-0.14.14-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6006a0082336e7920b9573ef8a7f52eec837add1265cc74e04ea8a4368cd704c", size = 10883245, upload-time = "2026-01-22T22:30:04.155Z" },
155
+ { url = "https://files.pythonhosted.org/packages/b8/7c/3c1db59a10e7490f8f6f8559d1db8636cbb13dccebf18686f4e3c9d7c772/ruff-0.14.14-py3-none-macosx_11_0_arm64.whl", hash = "sha256:026c1d25996818f0bf498636686199d9bd0d9d6341c9c2c3b62e2a0198b758de", size = 10231273, upload-time = "2026-01-22T22:30:34.642Z" },
156
+ { url = "https://files.pythonhosted.org/packages/a1/6e/5e0e0d9674be0f8581d1f5e0f0a04761203affce3232c1a1189d0e3b4dad/ruff-0.14.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f666445819d31210b71e0a6d1c01e24447a20b85458eea25a25fe8142210ae0e", size = 10585753, upload-time = "2026-01-22T22:30:31.781Z" },
157
+ { url = "https://files.pythonhosted.org/packages/23/09/754ab09f46ff1884d422dc26d59ba18b4e5d355be147721bb2518aa2a014/ruff-0.14.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c0f18b922c6d2ff9a5e6c3ee16259adc513ca775bcf82c67ebab7cbd9da5bc8", size = 10286052, upload-time = "2026-01-22T22:30:24.827Z" },
158
+ { url = "https://files.pythonhosted.org/packages/c8/cc/e71f88dd2a12afb5f50733851729d6b571a7c3a35bfdb16c3035132675a0/ruff-0.14.14-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1629e67489c2dea43e8658c3dba659edbfd87361624b4040d1df04c9740ae906", size = 11043637, upload-time = "2026-01-22T22:30:13.239Z" },
159
+ { url = "https://files.pythonhosted.org/packages/67/b2/397245026352494497dac935d7f00f1468c03a23a0c5db6ad8fc49ca3fb2/ruff-0.14.14-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:27493a2131ea0f899057d49d303e4292b2cae2bb57253c1ed1f256fbcd1da480", size = 12194761, upload-time = "2026-01-22T22:30:22.542Z" },
160
+ { url = "https://files.pythonhosted.org/packages/5b/06/06ef271459f778323112c51b7587ce85230785cd64e91772034ddb88f200/ruff-0.14.14-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:01ff589aab3f5b539e35db38425da31a57521efd1e4ad1ae08fc34dbe30bd7df", size = 12005701, upload-time = "2026-01-22T22:30:20.499Z" },
161
+ { url = "https://files.pythonhosted.org/packages/41/d6/99364514541cf811ccc5ac44362f88df66373e9fec1b9d1c4cc830593fe7/ruff-0.14.14-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cc12d74eef0f29f51775f5b755913eb523546b88e2d733e1d701fe65144e89b", size = 11282455, upload-time = "2026-01-22T22:29:59.679Z" },
162
+ { url = "https://files.pythonhosted.org/packages/ca/71/37daa46f89475f8582b7762ecd2722492df26421714a33e72ccc9a84d7a5/ruff-0.14.14-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb8481604b7a9e75eff53772496201690ce2687067e038b3cc31aaf16aa0b974", size = 11215882, upload-time = "2026-01-22T22:29:57.032Z" },
163
+ { url = "https://files.pythonhosted.org/packages/2c/10/a31f86169ec91c0705e618443ee74ede0bdd94da0a57b28e72db68b2dbac/ruff-0.14.14-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:14649acb1cf7b5d2d283ebd2f58d56b75836ed8c6f329664fa91cdea19e76e66", size = 11180549, upload-time = "2026-01-22T22:30:27.175Z" },
164
+ { url = "https://files.pythonhosted.org/packages/fd/1e/c723f20536b5163adf79bdd10c5f093414293cdf567eed9bdb7b83940f3f/ruff-0.14.14-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e8058d2145566510790eab4e2fad186002e288dec5e0d343a92fe7b0bc1b3e13", size = 10543416, upload-time = "2026-01-22T22:30:01.964Z" },
165
+ { url = "https://files.pythonhosted.org/packages/3e/34/8a84cea7e42c2d94ba5bde1d7a4fae164d6318f13f933d92da6d7c2041ff/ruff-0.14.14-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e651e977a79e4c758eb807f0481d673a67ffe53cfa92209781dfa3a996cf8412", size = 10285491, upload-time = "2026-01-22T22:30:29.51Z" },
166
+ { url = "https://files.pythonhosted.org/packages/55/ef/b7c5ea0be82518906c978e365e56a77f8de7678c8bb6651ccfbdc178c29f/ruff-0.14.14-py3-none-musllinux_1_2_i686.whl", hash = "sha256:cc8b22da8d9d6fdd844a68ae937e2a0adf9b16514e9a97cc60355e2d4b219fc3", size = 10733525, upload-time = "2026-01-22T22:30:06.499Z" },
167
+ { url = "https://files.pythonhosted.org/packages/6a/5b/aaf1dfbcc53a2811f6cc0a1759de24e4b03e02ba8762daabd9b6bd8c59e3/ruff-0.14.14-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:16bc890fb4cc9781bb05beb5ab4cd51be9e7cb376bf1dd3580512b24eb3fda2b", size = 11315626, upload-time = "2026-01-22T22:30:36.848Z" },
168
+ { url = "https://files.pythonhosted.org/packages/2c/aa/9f89c719c467dfaf8ad799b9bae0df494513fb21d31a6059cb5870e57e74/ruff-0.14.14-py3-none-win32.whl", hash = "sha256:b530c191970b143375b6a68e6f743800b2b786bbcf03a7965b06c4bf04568167", size = 10502442, upload-time = "2026-01-22T22:30:38.93Z" },
169
+ { url = "https://files.pythonhosted.org/packages/87/44/90fa543014c45560cae1fffc63ea059fb3575ee6e1cb654562197e5d16fb/ruff-0.14.14-py3-none-win_amd64.whl", hash = "sha256:3dde1435e6b6fe5b66506c1dff67a421d0b7f6488d466f651c07f4cab3bf20fd", size = 11630486, upload-time = "2026-01-22T22:30:10.852Z" },
170
+ { url = "https://files.pythonhosted.org/packages/9e/6a/40fee331a52339926a92e17ae748827270b288a35ef4a15c9c8f2ec54715/ruff-0.14.14-py3-none-win_arm64.whl", hash = "sha256:56e6981a98b13a32236a72a8da421d7839221fa308b223b9283312312e5ac76c", size = 10920448, upload-time = "2026-01-22T22:30:15.417Z" },
171
+ ]
172
+
173
+ [[package]]
174
+ name = "tokenize-rt"
175
+ version = "6.2.0"
176
+ source = { registry = "https://pypi.org/simple" }
177
+ sdist = { url = "https://files.pythonhosted.org/packages/69/ed/8f07e893132d5051d86a553e749d5c89b2a4776eb3a579b72ed61f8559ca/tokenize_rt-6.2.0.tar.gz", hash = "sha256:8439c042b330c553fdbe1758e4a05c0ed460dbbbb24a606f11f0dee75da4cad6", size = 5476, upload-time = "2025-05-23T23:48:00.035Z" }
178
+ wheels = [
179
+ { url = "https://files.pythonhosted.org/packages/33/f0/3fe8c6e69135a845f4106f2ff8b6805638d4e85c264e70114e8126689587/tokenize_rt-6.2.0-py2.py3-none-any.whl", hash = "sha256:a152bf4f249c847a66497a4a95f63376ed68ac6abf092a2f7cfb29d044ecff44", size = 6004, upload-time = "2025-05-23T23:47:58.812Z" },
180
+ ]
181
+
182
+ [[package]]
183
+ name = "tomli"
184
+ version = "2.0.1"
185
+ source = { registry = "https://pypi.org/simple" }
186
+ sdist = { url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f", size = 15164, upload-time = "2022-02-08T10:54:04.006Z" }
187
+ wheels = [
188
+ { url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", size = 12757, upload-time = "2022-02-08T10:54:02.017Z" },
189
+ ]
190
+
191
+ [[package]]
192
+ name = "ty"
193
+ version = "0.0.14"
194
+ source = { registry = "https://pypi.org/simple" }
195
+ sdist = { url = "https://files.pythonhosted.org/packages/af/57/22c3d6bf95c2229120c49ffc2f0da8d9e8823755a1c3194da56e51f1cc31/ty-0.0.14.tar.gz", hash = "sha256:a691010565f59dd7f15cf324cdcd1d9065e010c77a04f887e1ea070ba34a7de2", size = 5036573, upload-time = "2026-01-27T00:57:31.427Z" }
196
+ wheels = [
197
+ { url = "https://files.pythonhosted.org/packages/99/cb/cc6d1d8de59beb17a41f9a614585f884ec2d95450306c173b3b7cc090d2e/ty-0.0.14-py3-none-linux_armv6l.whl", hash = "sha256:32cf2a7596e693094621d3ae568d7ee16707dce28c34d1762947874060fdddaa", size = 10034228, upload-time = "2026-01-27T00:57:53.133Z" },
198
+ { url = "https://files.pythonhosted.org/packages/f3/96/dd42816a2075a8f31542296ae687483a8d047f86a6538dfba573223eaf9a/ty-0.0.14-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f971bf9805f49ce8c0968ad53e29624d80b970b9eb597b7cbaba25d8a18ce9a2", size = 9939162, upload-time = "2026-01-27T00:57:43.857Z" },
199
+ { url = "https://files.pythonhosted.org/packages/ff/b4/73c4859004e0f0a9eead9ecb67021438b2e8e5fdd8d03e7f5aca77623992/ty-0.0.14-py3-none-macosx_11_0_arm64.whl", hash = "sha256:45448b9e4806423523268bc15e9208c4f3f2ead7c344f615549d2e2354d6e924", size = 9418661, upload-time = "2026-01-27T00:58:03.411Z" },
200
+ { url = "https://files.pythonhosted.org/packages/58/35/839c4551b94613db4afa20ee555dd4f33bfa7352d5da74c5fa416ffa0fd2/ty-0.0.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee94a9b747ff40114085206bdb3205a631ef19a4d3fb89e302a88754cbbae54c", size = 9837872, upload-time = "2026-01-27T00:57:23.718Z" },
201
+ { url = "https://files.pythonhosted.org/packages/41/2b/bbecf7e2faa20c04bebd35fc478668953ca50ee5847ce23e08acf20ea119/ty-0.0.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6756715a3c33182e9ab8ffca2bb314d3c99b9c410b171736e145773ee0ae41c3", size = 9848819, upload-time = "2026-01-27T00:57:58.501Z" },
202
+ { url = "https://files.pythonhosted.org/packages/be/60/3c0ba0f19c0f647ad9d2b5b5ac68c0f0b4dc899001bd53b3a7537fb247a2/ty-0.0.14-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89d0038a2f698ba8b6fec5cf216a4e44e2f95e4a5095a8c0f57fe549f87087c2", size = 10324371, upload-time = "2026-01-27T00:57:29.291Z" },
203
+ { url = "https://files.pythonhosted.org/packages/24/32/99d0a0b37d0397b0a989ffc2682493286aa3bc252b24004a6714368c2c3d/ty-0.0.14-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2c64a83a2d669b77f50a4957039ca1450626fb474619f18f6f8a3eb885bf7544", size = 10865898, upload-time = "2026-01-27T00:57:33.542Z" },
204
+ { url = "https://files.pythonhosted.org/packages/1a/88/30b583a9e0311bb474269cfa91db53350557ebec09002bfc3fb3fc364e8c/ty-0.0.14-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:242488bfb547ef080199f6fd81369ab9cb638a778bb161511d091ffd49c12129", size = 10555777, upload-time = "2026-01-27T00:58:05.853Z" },
205
+ { url = "https://files.pythonhosted.org/packages/cd/a2/cb53fb6325dcf3d40f2b1d0457a25d55bfbae633c8e337bde8ec01a190eb/ty-0.0.14-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4790c3866f6c83a4f424fc7d09ebdb225c1f1131647ba8bdc6fcdc28f09ed0ff", size = 10412913, upload-time = "2026-01-27T00:57:38.834Z" },
206
+ { url = "https://files.pythonhosted.org/packages/42/8f/f2f5202d725ed1e6a4e5ffaa32b190a1fe70c0b1a2503d38515da4130b4c/ty-0.0.14-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:950f320437f96d4ea9a2332bbfb5b68f1c1acd269ebfa4c09b6970cc1565bd9d", size = 9837608, upload-time = "2026-01-27T00:57:55.898Z" },
207
+ { url = "https://files.pythonhosted.org/packages/f7/ba/59a2a0521640c489dafa2c546ae1f8465f92956fede18660653cce73b4c5/ty-0.0.14-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4a0ec3ee70d83887f86925bbc1c56f4628bd58a0f47f6f32ddfe04e1f05466df", size = 9884324, upload-time = "2026-01-27T00:57:46.786Z" },
208
+ { url = "https://files.pythonhosted.org/packages/03/95/8d2a49880f47b638743212f011088552ecc454dd7a665ddcbdabea25772a/ty-0.0.14-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a1a4e6b6da0c58b34415955279eff754d6206b35af56a18bb70eb519d8d139ef", size = 10033537, upload-time = "2026-01-27T00:58:01.149Z" },
209
+ { url = "https://files.pythonhosted.org/packages/e9/40/4523b36f2ce69f92ccf783855a9e0ebbbd0f0bb5cdce6211ee1737159ed3/ty-0.0.14-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:dc04384e874c5de4c5d743369c277c8aa73d1edea3c7fc646b2064b637db4db3", size = 10495910, upload-time = "2026-01-27T00:57:26.691Z" },
210
+ { url = "https://files.pythonhosted.org/packages/08/d5/655beb51224d1bfd4f9ddc0bb209659bfe71ff141bcf05c418ab670698f0/ty-0.0.14-py3-none-win32.whl", hash = "sha256:b20e22cf54c66b3e37e87377635da412d9a552c9bf4ad9fc449fed8b2e19dad2", size = 9507626, upload-time = "2026-01-27T00:57:41.43Z" },
211
+ { url = "https://files.pythonhosted.org/packages/b6/d9/c569c9961760e20e0a4bc008eeb1415754564304fd53997a371b7cf3f864/ty-0.0.14-py3-none-win_amd64.whl", hash = "sha256:e312ff9475522d1a33186657fe74d1ec98e4a13e016d66f5758a452c90ff6409", size = 10437980, upload-time = "2026-01-27T00:57:36.422Z" },
212
+ { url = "https://files.pythonhosted.org/packages/ad/0c/186829654f5bfd9a028f6648e9caeb11271960a61de97484627d24443f91/ty-0.0.14-py3-none-win_arm64.whl", hash = "sha256:b6facdbe9b740cb2c15293a1d178e22ffc600653646452632541d01c36d5e378", size = 9885831, upload-time = "2026-01-27T00:57:49.747Z" },
213
+ ]
214
+
215
+ [[package]]
216
+ name = "xmod"
217
+ version = "1.4.0"
218
+ source = { registry = "https://pypi.org/simple" }
219
+ dependencies = [
220
+ { name = "dek" },
221
+ ]
222
+ sdist = { url = "https://files.pythonhosted.org/packages/96/ef/ddfc9926e0e5a6e2b8a0bb08ac0e9f976ce53712f0d59fa673e7031dd00f/xmod-1.4.0.tar.gz", hash = "sha256:b434653134f8954c194abb6b8c180b52465012951a679a868f8704c5ecca0392", size = 4063, upload-time = "2023-02-25T15:01:38.862Z" }
223
+ wheels = [
224
+ { url = "https://files.pythonhosted.org/packages/69/93/e69f1de61c1c2e11a6a54bd58fbd4dd3e13ea2e27634ebe8a304ea70e841/xmod-1.4.0-py3-none-any.whl", hash = "sha256:dce91e65c5e645628d90ce0c366c387ccd039146592da3a5d6aa76d24a35a13f", size = 4392, upload-time = "2023-02-25T15:01:37.664Z" },
225
+ ]
def_main-0.10.0/PKG-INFO DELETED
@@ -1,64 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: def_main
3
- Version: 0.10.0
4
- Summary: A simple definition of main
5
- Home-page: https://github.com/rec/def_main
6
- Author: Tom Ritchford
7
- Author-email: tom@swirly.com
8
- License: MIT
9
- Keywords: main function
10
- Classifier: Development Status :: 4 - Beta
11
- Classifier: Programming Language :: Python :: 3.7
12
- Classifier: Programming Language :: Python :: 3.8
13
- Classifier: Programming Language :: Python :: 3.9
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Intended Audience :: Developers
16
- Classifier: License :: OSI Approved :: MIT License
17
- Classifier: Topic :: Utilities
18
-
19
- ========================================================
20
- ``def_main``: a tiny decorator to define main
21
- ========================================================
22
-
23
- Define a Python main function in one step - no more `__main__`!
24
-
25
- For any non-trivial projects, use typer and dtyper instead.
26
-
27
- Why?
28
- =================
29
-
30
- 1. Less typing
31
- 2. Avoid the foolish ``== '__main_'`` and other mistakes
32
-
33
- How to install
34
- ==================
35
-
36
- Use ``pip``:
37
-
38
- .. code-block:: bash
39
-
40
- pip install def_main
41
-
42
- Usage example
43
- ==================
44
-
45
- .. code-block:: python
46
-
47
- import def_main
48
-
49
- @def_main
50
- def main(*argv):
51
- print('hello,', *argv)
52
-
53
-
54
- means precisely the same as:
55
-
56
- .. code-block:: python
57
-
58
- def main(*argv):
59
- print('hello,', *argv)
60
-
61
- if __name__ == '__main__':
62
- import sys
63
-
64
- main(sys.argv[1:])
@@ -1,46 +0,0 @@
1
- ========================================================
2
- ``def_main``: a tiny decorator to define main
3
- ========================================================
4
-
5
- Define a Python main function in one step - no more `__main__`!
6
-
7
- For any non-trivial projects, use typer and dtyper instead.
8
-
9
- Why?
10
- =================
11
-
12
- 1. Less typing
13
- 2. Avoid the foolish ``== '__main_'`` and other mistakes
14
-
15
- How to install
16
- ==================
17
-
18
- Use ``pip``:
19
-
20
- .. code-block:: bash
21
-
22
- pip install def_main
23
-
24
- Usage example
25
- ==================
26
-
27
- .. code-block:: python
28
-
29
- import def_main
30
-
31
- @def_main
32
- def main(*argv):
33
- print('hello,', *argv)
34
-
35
-
36
- means precisely the same as:
37
-
38
- .. code-block:: python
39
-
40
- def main(*argv):
41
- print('hello,', *argv)
42
-
43
- if __name__ == '__main__':
44
- import sys
45
-
46
- main(sys.argv[1:])
@@ -1,64 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: def-main
3
- Version: 0.10.0
4
- Summary: A simple definition of main
5
- Home-page: https://github.com/rec/def_main
6
- Author: Tom Ritchford
7
- Author-email: tom@swirly.com
8
- License: MIT
9
- Keywords: main function
10
- Classifier: Development Status :: 4 - Beta
11
- Classifier: Programming Language :: Python :: 3.7
12
- Classifier: Programming Language :: Python :: 3.8
13
- Classifier: Programming Language :: Python :: 3.9
14
- Classifier: Programming Language :: Python :: 3.10
15
- Classifier: Intended Audience :: Developers
16
- Classifier: License :: OSI Approved :: MIT License
17
- Classifier: Topic :: Utilities
18
-
19
- ========================================================
20
- ``def_main``: a tiny decorator to define main
21
- ========================================================
22
-
23
- Define a Python main function in one step - no more `__main__`!
24
-
25
- For any non-trivial projects, use typer and dtyper instead.
26
-
27
- Why?
28
- =================
29
-
30
- 1. Less typing
31
- 2. Avoid the foolish ``== '__main_'`` and other mistakes
32
-
33
- How to install
34
- ==================
35
-
36
- Use ``pip``:
37
-
38
- .. code-block:: bash
39
-
40
- pip install def_main
41
-
42
- Usage example
43
- ==================
44
-
45
- .. code-block:: python
46
-
47
- import def_main
48
-
49
- @def_main
50
- def main(*argv):
51
- print('hello,', *argv)
52
-
53
-
54
- means precisely the same as:
55
-
56
- .. code-block:: python
57
-
58
- def main(*argv):
59
- print('hello,', *argv)
60
-
61
- if __name__ == '__main__':
62
- import sys
63
-
64
- main(sys.argv[1:])
@@ -1,9 +0,0 @@
1
- README.rst
2
- def_main.py
3
- pyproject.toml
4
- setup.cfg
5
- setup.py
6
- def_main.egg-info/PKG-INFO
7
- def_main.egg-info/SOURCES.txt
8
- def_main.egg-info/dependency_links.txt
9
- def_main.egg-info/top_level.txt
@@ -1 +0,0 @@
1
- def_main
@@ -1,7 +0,0 @@
1
- [tool.black]
2
- line-length = 79
3
- skip-string-normalization = true
4
- target-version = ['py37']
5
-
6
- [tool.doks]
7
- auto = true
def_main-0.10.0/setup.cfg DELETED
@@ -1,7 +0,0 @@
1
- [metadata]
2
- description-file = README.md
3
-
4
- [egg_info]
5
- tag_build =
6
- tag_date = 0
7
-
def_main-0.10.0/setup.py DELETED
@@ -1,30 +0,0 @@
1
- SETUP_DESC = {
2
- 'name': 'def_main',
3
- 'author': 'Tom Ritchford',
4
- 'author_email': 'tom@swirly.com',
5
- 'classifiers': [
6
- 'Development Status :: 4 - Beta',
7
- 'Programming Language :: Python :: 3.7',
8
- 'Programming Language :: Python :: 3.8',
9
- 'Programming Language :: Python :: 3.9',
10
- 'Programming Language :: Python :: 3.10',
11
- 'Intended Audience :: Developers',
12
- 'License :: OSI Approved :: MIT License',
13
- 'Topic :: Utilities',
14
- ],
15
- 'description': 'A simple definition of main',
16
- 'keywords': ['main function'],
17
- 'license': 'MIT',
18
- 'long_description': open('README.rst').read(),
19
- 'py_modules': ['def_main'],
20
- 'url': 'https://github.com/rec/def_main',
21
- }
22
-
23
- if __name__ == '__main__':
24
- from setuptools import setup
25
- import def_main
26
-
27
- setup(
28
- version=def_main.__version__,
29
- **SETUP_DESC
30
- )