python-template-project 0.1.0__py3-none-any.whl
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.
- python_template_project/__init__.py +0 -0
- python_template_project/__main__.py +8 -0
- python_template_project/cli/__init__.py +0 -0
- python_template_project/cli/__main__.py +8 -0
- python_template_project/cli/cli.py +217 -0
- python_template_project/config/__init__.py +0 -0
- python_template_project/config/config.py +557 -0
- python_template_project/core/__init__.py +0 -0
- python_template_project/core/base.py +397 -0
- python_template_project/core/logging.py +219 -0
- python_template_project/gui/__init__.py +0 -0
- python_template_project/gui/__main__.py +8 -0
- python_template_project/gui/gui.py +615 -0
- python_template_project-0.1.0.dist-info/METADATA +92 -0
- python_template_project-0.1.0.dist-info/RECORD +18 -0
- python_template_project-0.1.0.dist-info/WHEEL +4 -0
- python_template_project-0.1.0.dist-info/entry_points.txt +3 -0
- python_template_project-0.1.0.dist-info/licenses/LICENSE +24 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: python-template-project
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Feature-rich Python project template designed for robustness and ease of use.
|
|
5
|
+
Author: pamagister
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Requires-Python: <3.12,>=3.10
|
|
8
|
+
Requires-Dist: gpxpy>=1.6.2
|
|
9
|
+
Requires-Dist: pydantic>=2.11.7
|
|
10
|
+
Requires-Dist: pyyaml>=6.0.2
|
|
11
|
+
Requires-Dist: srtm-py>=0.3.7
|
|
12
|
+
Provides-Extra: dev
|
|
13
|
+
Requires-Dist: black>=25.1.0; extra == 'dev'
|
|
14
|
+
Requires-Dist: coverage>=7.8.2; extra == 'dev'
|
|
15
|
+
Requires-Dist: flake8>=7.2.0; extra == 'dev'
|
|
16
|
+
Requires-Dist: gitchangelog>=3.0.4; extra == 'dev'
|
|
17
|
+
Requires-Dist: isort>=6.0.1; extra == 'dev'
|
|
18
|
+
Requires-Dist: mypy>=1.16.0; extra == 'dev'
|
|
19
|
+
Requires-Dist: pre-commit>=4.2.0; extra == 'dev'
|
|
20
|
+
Requires-Dist: pyinstaller>=5.8; extra == 'dev'
|
|
21
|
+
Requires-Dist: pytest-cov>=6.1.1; extra == 'dev'
|
|
22
|
+
Requires-Dist: pytest-mock>=3.14.1; extra == 'dev'
|
|
23
|
+
Requires-Dist: pytest>=8.4.0; extra == 'dev'
|
|
24
|
+
Requires-Dist: ruff>=0.11.13; extra == 'dev'
|
|
25
|
+
Provides-Extra: docs
|
|
26
|
+
Requires-Dist: mkdocs-awesome-nav>=2.6.1; extra == 'docs'
|
|
27
|
+
Requires-Dist: mkdocs>=1.6.1; extra == 'docs'
|
|
28
|
+
Requires-Dist: pygments>=2.19.1; extra == 'docs'
|
|
29
|
+
Description-Content-Type: text/markdown
|
|
30
|
+
|
|
31
|
+
# Welcome to python-template-project
|
|
32
|
+
|
|
33
|
+
A feature-rich Python project template with with auto-generated CLI, GUI and parameterized configuration.
|
|
34
|
+
|
|
35
|
+
[](https://github.com/pamagister/python-template-project/actions)
|
|
36
|
+
[](https://github.com/pamagister/python-template-project/releases)
|
|
37
|
+
[](https://python-template-project.readthedocs.io/en/stable/)
|
|
38
|
+
[](https://github.com/pamagister/python-template-project/blob/main/LICENSE)
|
|
39
|
+
[](https://github.com/pamagister/python-template-project/issues)
|
|
40
|
+
[](https://pypi.org/project/python-template-project/)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
This template provides a solid foundation for your next Python project, incorporating best practices for testing, automation, and distribution. It streamlines the development process with a comprehensive set of pre-configured tools and workflows, allowing you to focus on writing code.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## Feature overview
|
|
47
|
+
|
|
48
|
+
* **Testing:** Unit testing setup with `pytest`.
|
|
49
|
+
* **CI/CD:** GitHub Actions for automated builds (Windows, macOS), unit tests, and code checks.
|
|
50
|
+
* **Code Formatting:** Pre-commit hook with the *black* auto-formatter to ensure consistent code style.
|
|
51
|
+
* **Automated Builds:** GitHub pipeline for automatically building a Windows executable and a macOS installer.
|
|
52
|
+
* **Package Management:** Utilizes *uv*, an extremely fast Python package manager, with dependencies managed in `pyproject.toml`.
|
|
53
|
+
* **Parameter-Driven Automation:**
|
|
54
|
+
* Automatic generation of a configuration file from parameter definitions.
|
|
55
|
+
* Automatic generation of a Command-Line Interface (CLI) from the same parameters.
|
|
56
|
+
* Automatic generation of CLI API documentation.
|
|
57
|
+
* **Documentation:** Configuration for publishing documentation on Read the Docs.
|
|
58
|
+
* **Workflow Automation:** A `Makefile` is included to simplify and automate common development tasks.
|
|
59
|
+
* **Minimalist GUI:** Comes with a basic GUI based on [tkinker](https://tkdocs.com/tutorial/index.html) that includes an auto-generated settings menu based on your defined parameters.
|
|
60
|
+
|
|
61
|
+
## Getting started
|
|
62
|
+
|
|
63
|
+
1. **Create** a new [github repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository).
|
|
64
|
+
2. **Clone** [github repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) the into your local file system.
|
|
65
|
+
```bash
|
|
66
|
+
git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
|
|
67
|
+
```
|
|
68
|
+
4. **Install** [uv package and project manager](https://docs.astral.sh/uv/getting-started/installation/)
|
|
69
|
+
```bash
|
|
70
|
+
pip install uv
|
|
71
|
+
```
|
|
72
|
+
5. **Generate** [a sample project](https://docs.astral.sh/uv/guides/projects/#creating-a-new-project) with uv
|
|
73
|
+
6. Add and **push** the artifacts to your github repository
|
|
74
|
+
```bash
|
|
75
|
+
git push
|
|
76
|
+
```
|
|
77
|
+
8. Copy the content of this repository into your repository
|
|
78
|
+
|
|
79
|
+
## Troubleshooting
|
|
80
|
+
|
|
81
|
+
### Problems with release pipeline
|
|
82
|
+
|
|
83
|
+
If you get this error below:
|
|
84
|
+
```bash
|
|
85
|
+
/home/runner/work/_temp/xxxx_xxx.sh: line 1: .github/release_message.sh: Permission denied
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
You have to run these commands in your IDE Terminal or the git bash and then push the changes.
|
|
89
|
+
```bash
|
|
90
|
+
git update-index --chmod=+x ./.github/release_message.sh
|
|
91
|
+
```
|
|
92
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
python_template_project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
python_template_project/__main__.py,sha256=JS28LiHoU9Xo4c_RvyLBTDKHqdZRRytJLj6qyrg26mQ,195
|
|
3
|
+
python_template_project/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
python_template_project/cli/__main__.py,sha256=qnGkoNNbhnvLTA24X8YTEDxRqDbNEAzgjp9Ki_JYIhs,184
|
|
5
|
+
python_template_project/cli/cli.py,sha256=RvoYKJDjP-PYlX4m5xFnUsuHVJw_3-AgpQwOxhPAH5g,6974
|
|
6
|
+
python_template_project/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
python_template_project/config/config.py,sha256=bVqFIY8oScfhv2LpjcNoyiGqrIyVz5Ri3VjVnem1ZPA,17924
|
|
8
|
+
python_template_project/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
python_template_project/core/base.py,sha256=0qLUlpc9zhbBgo_PGH-KsGHoNcmGbNPKIuLNpa9mMGI,15196
|
|
10
|
+
python_template_project/core/logging.py,sha256=D99ZAXY9KZvmV7oVlAy3S3fuDf9G7vHvIk277xB7068,6944
|
|
11
|
+
python_template_project/gui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
+
python_template_project/gui/__main__.py,sha256=5AaiBxNCAKWcuSQFcQ_lsEQfEsXm6BA5-i5MScdf30c,184
|
|
13
|
+
python_template_project/gui/gui.py,sha256=qJ9SawFywwT7ffPndTzhuLEu2KkzjBspmSccAXgUC2k,21725
|
|
14
|
+
python_template_project-0.1.0.dist-info/METADATA,sha256=8bZTpByUoxmOQKW8XyTedN137uHRkBkZe4j6EtQUQZA,4808
|
|
15
|
+
python_template_project-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
16
|
+
python_template_project-0.1.0.dist-info/entry_points.txt,sha256=LmgMiqxIVRdD7gkktVBBR0CR4AhkugqlgifuglkPhtI,148
|
|
17
|
+
python_template_project-0.1.0.dist-info/licenses/LICENSE,sha256=awOCsWJ58m_2kBQwBUGWejVqZm6wuRtCL2hi9rfa0X4,1211
|
|
18
|
+
python_template_project-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
This is free and unencumbered software released into the public domain.
|
|
2
|
+
|
|
3
|
+
Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
4
|
+
distribute this software, either in source code form or as a compiled
|
|
5
|
+
binary, for any purpose, commercial or non-commercial, and by any
|
|
6
|
+
means.
|
|
7
|
+
|
|
8
|
+
In jurisdictions that recognize copyright laws, the author or authors
|
|
9
|
+
of this software dedicate any and all copyright interest in the
|
|
10
|
+
software to the public domain. We make this dedication for the benefit
|
|
11
|
+
of the public at large and to the detriment of our heirs and
|
|
12
|
+
successors. We intend this dedication to be an overt act of
|
|
13
|
+
relinquishment in perpetuity of all present and future rights to this
|
|
14
|
+
software under copyright law.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
20
|
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
21
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
|
|
24
|
+
For more information, please refer to <https://unlicense.org>
|