modernpackage 0.0.1.dev1__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,160 @@
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
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
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
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/#use-with-ide
110
+ .pdm.toml
111
+
112
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113
+ __pypackages__/
114
+
115
+ # Celery stuff
116
+ celerybeat-schedule
117
+ celerybeat.pid
118
+
119
+ # SageMath parsed files
120
+ *.sage.py
121
+
122
+ # Environments
123
+ .env
124
+ .venv
125
+ env/
126
+ venv/
127
+ ENV/
128
+ env.bak/
129
+ venv.bak/
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # Cython debug symbols
153
+ cython_debug/
154
+
155
+ # PyCharm
156
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
159
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160
+ #.idea/
@@ -0,0 +1,47 @@
1
+ Metadata-Version: 2.3
2
+ Name: modernpackage
3
+ Version: 0.0.1.dev1
4
+ Summary: Example package configuration using bleeding edge toolset
5
+ Project-URL: homepage, https://github.com/albertas/modernpackage
6
+ Author-email: Albertas Gimbutas <albertasgim@gmail.com>
7
+ Classifier: Development Status :: 3 - Alpha
8
+ Classifier: License :: OSI Approved :: MIT License
9
+ Classifier: Natural Language :: English
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Requires-Python: >=3.11
14
+ Provides-Extra: test
15
+ Requires-Dist: deadcode; extra == 'test'
16
+ Requires-Dist: hatch; extra == 'test'
17
+ Requires-Dist: mypy; extra == 'test'
18
+ Requires-Dist: pip-audit; extra == 'test'
19
+ Requires-Dist: pytest; extra == 'test'
20
+ Requires-Dist: pytest-cov; extra == 'test'
21
+ Requires-Dist: ruff; extra == 'test'
22
+ Description-Content-Type: text/markdown
23
+
24
+ # package
25
+ This package is configured using bleeding edge toolset and serves as an
26
+ example/starting point for another new packages.
27
+
28
+ ## Development
29
+ Commonly used commands for package development:
30
+ `make check` - run unit tests and linters.
31
+ `make fix` - format code and fix detected fixable issues.
32
+ `make publish` - publishes current package version to pypi.org.
33
+ `make compile` - bump and freeze dependency versions in requirements*.txt files
34
+ `make sync` - upgrade installed dependencies in Virtual Environment (executed after `make compile`)
35
+
36
+ ## Toolset
37
+ This package uses these cutting edge tools:
38
+ - ruff - for linting and code formatting
39
+ - mypy - for type checking
40
+ - pip-audit - for known vulnerability detection in dependencies
41
+ - deadcode - for unused code detection
42
+ - pytest - for collecting and running unit tests
43
+ - coverage - for code coverage by unit tests
44
+ - hatch - for publishing package to pypi.org
45
+ - uv - for Python virtual environment and dependency management
46
+ - pyproject.toml - configuration file for all tools
47
+ - Makefile - aliases for commonly used command line commands
@@ -0,0 +1,24 @@
1
+ # package
2
+ This package is configured using bleeding edge toolset and serves as an
3
+ example/starting point for another new packages.
4
+
5
+ ## Development
6
+ Commonly used commands for package development:
7
+ `make check` - run unit tests and linters.
8
+ `make fix` - format code and fix detected fixable issues.
9
+ `make publish` - publishes current package version to pypi.org.
10
+ `make compile` - bump and freeze dependency versions in requirements*.txt files
11
+ `make sync` - upgrade installed dependencies in Virtual Environment (executed after `make compile`)
12
+
13
+ ## Toolset
14
+ This package uses these cutting edge tools:
15
+ - ruff - for linting and code formatting
16
+ - mypy - for type checking
17
+ - pip-audit - for known vulnerability detection in dependencies
18
+ - deadcode - for unused code detection
19
+ - pytest - for collecting and running unit tests
20
+ - coverage - for code coverage by unit tests
21
+ - hatch - for publishing package to pypi.org
22
+ - uv - for Python virtual environment and dependency management
23
+ - pyproject.toml - configuration file for all tools
24
+ - Makefile - aliases for commonly used command line commands
@@ -0,0 +1,86 @@
1
+ [project]
2
+ name = "modernpackage"
3
+ version = "0.0.1.dev1"
4
+ authors = [
5
+ {name = "Albertas Gimbutas", email = "albertasgim@gmail.com"},
6
+ ]
7
+ description = "Example package configuration using bleeding edge toolset"
8
+ readme = "README.md"
9
+ requires-python = ">= 3.11"
10
+ classifiers = [
11
+ "Development Status :: 3 - Alpha",
12
+ "License :: OSI Approved :: MIT License",
13
+ "Natural Language :: English",
14
+ "Operating System :: OS Independent",
15
+ "Programming Language :: Python",
16
+ "Programming Language :: Python :: 3.11",
17
+ ]
18
+ dependencies = [
19
+ ]
20
+
21
+
22
+ [project.urls]
23
+ homepage = "https://github.com/albertas/modernpackage"
24
+
25
+ [project.optional-dependencies]
26
+ test = [
27
+ "hatch",
28
+ "ruff",
29
+ "mypy",
30
+ "pip-audit",
31
+ "deadcode",
32
+ "pytest",
33
+ "pytest-cov",
34
+ ]
35
+
36
+
37
+ [build-system]
38
+ requires = ["hatchling"]
39
+ build-backend = "hatchling.build"
40
+
41
+ [tool.hatch.build]
42
+ include = ["**/*.py"]
43
+ exclude = ["tests/**"]
44
+
45
+
46
+ [tool.ruff] # https://docs.astral.sh/ruff/settings/
47
+ line-length = 88
48
+
49
+ [tool.ruff.lint.flake8-quotes]
50
+ inline-quotes = "single"
51
+
52
+ [tool.ruff.format]
53
+ quote-style = "single"
54
+ docstring-code-format = true
55
+
56
+ [tool.ruff.lint]
57
+ select = ["ALL"]
58
+ ignore = [
59
+ "D203", # one-blank-line-before-class
60
+ "D213", # multi-line-summary-second-line
61
+ "COM812", # missing-trailing-comma
62
+ "ISC001", # single-line-implicit-string-concatenation
63
+ "ANN101", # deprecated self annotation
64
+ ]
65
+
66
+ [tool.ruff.lint.per-file-ignores]
67
+ "tests/*" = ["S101", "D"] # allow asserts and no docs in tests
68
+
69
+ [tool.mypy]
70
+ exclude = ["build", "dist", ".venv", "tests"]
71
+ python_version = "3.11"
72
+ strict = true
73
+ pretty = true
74
+ color_output = true
75
+ show_error_codes = true
76
+ warn_return_any = true
77
+ warn_unused_configs = true
78
+
79
+ [tool.pytest.ini_options]
80
+ addopts = "--cov=. --no-cov-on-fail --cov-fail-under=90.0"
81
+
82
+ [tool.deadcode]
83
+ ignore_names = [
84
+ "main",
85
+ ]
86
+ exclude = ["tests"]
@@ -0,0 +1 @@
1
+ """Example package configuration using bleeding edge toolset."""
@@ -0,0 +1,6 @@
1
+ """Example package configuration using bleeding edge toolset."""
2
+
3
+
4
+ def main() -> str:
5
+ """Return 'Hello world'."""
6
+ return 'Hello world'