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.
@@ -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
+ [![Github CI Status](https://github.com/pamagister/python-template-project/actions/workflows/main.yml/badge.svg)](https://github.com/pamagister/python-template-project/actions)
36
+ [![GitHub release](https://img.shields.io/github/v/release/pamagister/python-template-project)](https://github.com/pamagister/python-template-project/releases)
37
+ [![Read the Docs](https://readthedocs.org/projects/python-template-project/badge/?version=stable)](https://python-template-project.readthedocs.io/en/stable/)
38
+ [![License](https://img.shields.io/github/license/pamagister/python-template-project)](https://github.com/pamagister/python-template-project/blob/main/LICENSE)
39
+ [![GitHub issues](https://img.shields.io/github/issues/pamagister/python-template-project)](https://github.com/pamagister/python-template-project/issues)
40
+ [![PyPI](https://img.shields.io/pypi/v/python-template-project)](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,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.27.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ python-template-project = python_template_project.cli.cli:main
3
+ python-template-project-gui = python_template_project.gui.gui:main
@@ -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>