python-template-project 0.1.20__tar.gz → 0.2.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.
Files changed (87) hide show
  1. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/workflows/build-macos.yml +8 -1
  2. {python_template_project-0.1.20 → python_template_project-0.2.0}/HISTORY.md +16 -0
  3. {python_template_project-0.1.20 → python_template_project-0.2.0}/Makefile +6 -6
  4. {python_template_project-0.1.20/src/python_template_project.egg-info → python_template_project-0.2.0}/PKG-INFO +129 -13
  5. {python_template_project-0.1.20 → python_template_project-0.2.0}/README.md +126 -12
  6. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/index.md +126 -12
  7. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/usage/cli.md +14 -24
  8. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/usage/config.md +1 -1
  9. {python_template_project-0.1.20 → python_template_project-0.2.0}/pyproject.toml +2 -0
  10. python_template_project-0.2.0/scripts/show_tree.py +175 -0
  11. python_template_project-0.2.0/src/generic_config_cli_gui/cli_generator.py +177 -0
  12. python_template_project-0.2.0/src/generic_config_cli_gui/config_framework.py +362 -0
  13. python_template_project-0.2.0/src/generic_config_cli_gui/gui_generator.py +225 -0
  14. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project/_version.py +2 -2
  15. python_template_project-0.2.0/src/python_template_project/cli/cli.py +132 -0
  16. python_template_project-0.2.0/src/python_template_project/config/config.py +209 -0
  17. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project/core/base.py +183 -72
  18. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project/core/logging.py +9 -9
  19. python_template_project-0.2.0/src/python_template_project/gui/gui.py +542 -0
  20. {python_template_project-0.1.20 → python_template_project-0.2.0/src/python_template_project.egg-info}/PKG-INFO +129 -13
  21. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project.egg-info/SOURCES.txt +5 -1
  22. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project.egg-info/requires.txt +2 -0
  23. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project.egg-info/top_level.txt +1 -0
  24. python_template_project-0.2.0/tests/__init__.py +0 -0
  25. {python_template_project-0.1.20 → python_template_project-0.2.0}/tests/test_generic_cli.py +24 -27
  26. {python_template_project-0.1.20 → python_template_project-0.2.0}/tests/test_gpx.py +6 -6
  27. {python_template_project-0.1.20 → python_template_project-0.2.0}/uv.lock +148 -1
  28. python_template_project-0.1.20/docs/develop/01_getting_started_dev.md +0 -29
  29. python_template_project-0.1.20/src/python_template_project/cli/cli.py +0 -217
  30. python_template_project-0.1.20/src/python_template_project/config/config.py +0 -557
  31. python_template_project-0.1.20/src/python_template_project/gui/gui.py +0 -615
  32. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/FUNDING.yml +0 -0
  33. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  34. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  35. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  36. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/actions/setup-environment/action.yml +0 -0
  37. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/dependabot.yml +0 -0
  38. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/init.sh +0 -0
  39. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/release_message.sh +0 -0
  40. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/rename_project.sh +0 -0
  41. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/template.yml +0 -0
  42. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/workflows/build.yml +0 -0
  43. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/workflows/main.yml +0 -0
  44. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/workflows/release.yml +0 -0
  45. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/workflows/rename_project.yml +0 -0
  46. {python_template_project-0.1.20 → python_template_project-0.2.0}/.github/workflows/update_readme.yml +0 -0
  47. {python_template_project-0.1.20 → python_template_project-0.2.0}/.gitignore +0 -0
  48. {python_template_project-0.1.20 → python_template_project-0.2.0}/.idea/runConfigurations/config_generate.xml +0 -0
  49. {python_template_project-0.1.20 → python_template_project-0.2.0}/.idea/runConfigurations/module_cli.xml +0 -0
  50. {python_template_project-0.1.20 → python_template_project-0.2.0}/.idea/runConfigurations/module_gui.xml +0 -0
  51. {python_template_project-0.1.20 → python_template_project-0.2.0}/.pre-commit-config.yaml +0 -0
  52. {python_template_project-0.1.20 → python_template_project-0.2.0}/.readthedocs.yaml +0 -0
  53. {python_template_project-0.1.20 → python_template_project-0.2.0}/LICENSE +0 -0
  54. {python_template_project-0.1.20 → python_template_project-0.2.0}/config.yaml +0 -0
  55. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/.nav.yml +0 -0
  56. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/_static/img/favicon.png +0 -0
  57. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/_static/img/logo.png +0 -0
  58. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/css/custom.css +0 -0
  59. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/develop/contributing.md +0 -0
  60. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/develop/make_windows.md +0 -0
  61. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/develop/naming_convention.md +0 -0
  62. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/develop/pypi_release.md +0 -0
  63. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/getting-started/install.md +0 -0
  64. {python_template_project-0.1.20 → python_template_project-0.2.0}/docs/getting-started/virtual-environment.md +0 -0
  65. {python_template_project-0.1.20 → python_template_project-0.2.0}/examples/kuhkopfsteig.gpx +0 -0
  66. {python_template_project-0.1.20 → python_template_project-0.2.0}/examples/rother_lilienstein.gpx +0 -0
  67. {python_template_project-0.1.20 → python_template_project-0.2.0}/examples/teneriffa.gpx +0 -0
  68. {python_template_project-0.1.20 → python_template_project-0.2.0}/mkdocs.yml +0 -0
  69. {python_template_project-0.1.20 → python_template_project-0.2.0}/scripts/show_filelist.ps1 +0 -0
  70. {python_template_project-0.1.20 → python_template_project-0.2.0}/scripts/show_tree.ps1 +0 -0
  71. {python_template_project-0.1.20 → python_template_project-0.2.0}/scripts/update_readme.py +0 -0
  72. {python_template_project-0.1.20 → python_template_project-0.2.0}/setup.cfg +0 -0
  73. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/__init__.py +0 -0
  74. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/firewall_handler.py +0 -0
  75. {python_template_project-0.1.20/src/python_template_project → python_template_project-0.2.0/src/generic_config_cli_gui}/__init__.py +0 -0
  76. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/main.py +0 -0
  77. {python_template_project-0.1.20/src/python_template_project/cli → python_template_project-0.2.0/src/python_template_project}/__init__.py +0 -0
  78. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project/__main__.py +0 -0
  79. {python_template_project-0.1.20/src/python_template_project/config → python_template_project-0.2.0/src/python_template_project/cli}/__init__.py +0 -0
  80. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project/cli/__main__.py +0 -0
  81. {python_template_project-0.1.20/src/python_template_project/core → python_template_project-0.2.0/src/python_template_project/config}/__init__.py +0 -0
  82. {python_template_project-0.1.20/src/python_template_project/gui → python_template_project-0.2.0/src/python_template_project/core}/__init__.py +0 -0
  83. {python_template_project-0.1.20/tests → python_template_project-0.2.0/src/python_template_project/gui}/__init__.py +0 -0
  84. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project/gui/__main__.py +0 -0
  85. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project.egg-info/dependency_links.txt +0 -0
  86. {python_template_project-0.1.20 → python_template_project-0.2.0}/src/python_template_project.egg-info/entry_points.txt +0 -0
  87. {python_template_project-0.1.20 → python_template_project-0.2.0}/template.yml.url +0 -0
@@ -30,7 +30,14 @@ jobs:
30
30
  python-version: ${{ matrix.python-version }}
31
31
 
32
32
  - name: Build Unified Executable and App Bundle with PyInstaller
33
- run: make build-macos
33
+ run: |
34
+ make build-macos
35
+
36
+ - name: Prepare ZIP file for release
37
+ run: |
38
+ echo "Create the ZIP archive from the contents of the release folder"
39
+ cd release
40
+ zip -r ../package-macOS.zip .
34
41
 
35
42
  - name: Upload ZIP to GitHub Release
36
43
  uses: softprops/action-gh-release@v2
@@ -4,6 +4,22 @@ Changelog
4
4
 
5
5
  (unreleased)
6
6
  ------------
7
+ - Feat #33: Support kml files for input and display output files as
8
+ clickable links #33. [Paul Magister]
9
+ - Feat #31: move project specific namings into makefile so that it can
10
+ be renamed. [Paul Magister]
11
+
12
+
13
+ 0.1.20 (2025-06-20)
14
+ -------------------
15
+ - Feat #31: move project specific namings into makefile so that it can
16
+ be renamed. [Paul Magister]
17
+ - Feat #31: move project specific namings into makefile so that it can
18
+ be renamed. [Paul Magister]
19
+
20
+
21
+ 0.1.19 (2025-06-20)
22
+ -------------------
7
23
  - Feat #31: move project specific namings into makefile so that it can
8
24
  be renamed. [Paul Magister]
9
25
  - Feat #31: try this renaming automation. [Paul Magister]
@@ -87,10 +87,6 @@ build-macos: ## Build the macOS executable.
87
87
  cp README.md release/
88
88
  echo "Create usage instructions"
89
89
 
90
- echo "Create the ZIP archive from the contents of the release folder"
91
- cd release
92
- zip -r ../package-macOS.zip .
93
-
94
90
  .PHONY: watch
95
91
  watch: ## Run tests on every change.
96
92
  ls **/**.py | entr uv run pytest -s -vvv -l --tb=long --maxfail=1 tests/
@@ -160,11 +156,15 @@ docs: ## Build and sync the documentation.
160
156
 
161
157
  .PHONY: list
162
158
  list: ## Show project file list (excluding ignored folders)
163
- @powershell -NoProfile -ExecutionPolicy Bypass -File ./scripts/show-filelist.ps1
159
+ @powershell -NoProfile -ExecutionPolicy Bypass -File ./scripts/show_filelist.ps1
164
160
 
165
161
  .PHONY: tree
166
162
  tree: ## Show project tree (excluding ignored folders)
167
- @powershell -NoProfile -ExecutionPolicy Bypass -File ./scripts/show-tree.ps1
163
+ @powershell -NoProfile -ExecutionPolicy Bypass -File ./scripts/show_tree.ps1
164
+
165
+ .PHONY: pytree
166
+ pytree: ## Show project tree (excluding ignored folders)
167
+ @uv run ./scripts/show_tree.py
168
168
 
169
169
  .PHONY: init
170
170
  init: ## Initialize the project based on an application template.
@@ -1,14 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-template-project
3
- Version: 0.1.20
3
+ Version: 0.2.0
4
4
  Summary: Feature-rich Python project template designed for robustness and ease of use.
5
5
  Author: pamagister
6
6
  Requires-Python: <3.12,>=3.10
7
7
  Description-Content-Type: text/markdown
8
8
  License-File: LICENSE
9
+ Requires-Dist: fastkml>=1.1.0
9
10
  Requires-Dist: gpxpy>=1.6.2
10
11
  Requires-Dist: pydantic>=2.11.7
11
12
  Requires-Dist: pyyaml>=6.0.2
13
+ Requires-Dist: shapely>=2.1.1
12
14
  Requires-Dist: srtm-py>=0.3.7
13
15
  Provides-Extra: dev
14
16
  Requires-Dist: pytest>=8.4.0; extra == "dev"
@@ -39,30 +41,98 @@ A feature-rich Python project template with with auto-generated CLI, GUI and par
39
41
  [![License](https://img.shields.io/github/license/pamagister/python-template-project)](https://github.com/pamagister/python-template-project/blob/main/LICENSE)
40
42
  [![GitHub issues](https://img.shields.io/github/issues/pamagister/python-template-project)](https://github.com/pamagister/python-template-project/issues)
41
43
  [![PyPI](https://img.shields.io/pypi/v/python-template-project)](https://pypi.org/project/python-template-project/)
44
+ [![Downloads](https://pepy.tech/badge/python-template-project)](https://pepy.tech/project/python-template-project/)
42
45
 
43
46
 
44
47
  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.
45
48
 
46
- ## Installation
49
+ ---
47
50
 
48
- Download from [PyPI](https://pypi.org/).
51
+ ## How to use this template
49
52
 
50
- 💾 For more installation options see [install](getting-started/install.md).
53
+ Getting started on developing your own project based on this template
51
54
 
52
- ```bash
53
- pip install python-template-project
54
- ```
55
+ > **DO NOT FORK**
56
+ > This project is meant to be used from **[Use this template](https://github.com/pamagister/python-template-project/generate)** feature.
55
57
 
56
- Run GUI from command line
58
+ ---
57
59
 
58
- ```bash
59
- python-template-project-gui
60
- ```
60
+ 1. **Create a new repository using GitHub template**
61
+ Click on **[Use this template](https://github.com/pamagister/python-template-project/generate)**.
61
62
 
62
- ## How to use this template
63
+ 2. **Give a name to your project**
64
+ For example: `my-python-project`
65
+ *(Hyphens may ne used as project name; they are converted during renaming internally to underscores for packages.)*
66
+
67
+ 3. **Set write permissions**
68
+ Go to: `Repository -> Settings -> Actions -> General -> Workflow permissions`
69
+ Select: `Read and write permissions`, then click **Save**.
70
+
71
+ 4. **Trigger rename workflow**
72
+ Navigate to `Actions` tab → Select **Rename Action** → Run workflow on the `main` branch.
73
+
74
+ 5. **Wait for the workflow to finish**
75
+
76
+ 6. **Clone the repository**
77
+ Run:
78
+ ```bash
79
+ git clone [your-github-url]
80
+ ```
81
+
82
+ 7. **Open the project in your IDE**
63
83
 
64
- 🐍 For details, see the [Getting Started](develop/01_getting_started_dev.md) guide.
84
+ 8. **Install dependencies and create virtual environment**
85
+ Run:
65
86
 
87
+ ```bash
88
+ make install
89
+ ```
90
+
91
+ 9. **Configure your IDE**
92
+ Set `.venv` as the local Python virtual environment.
93
+
94
+ 10. **Adjust project metadata**
95
+ Modify `pyproject.toml` (e.g., project description, authors, license, etc.)
96
+
97
+ 11. **Clean up template scripts**
98
+ Delete the files:
99
+
100
+ * `rename_project.yml`
101
+ * `rename_project.sh`
102
+
103
+ 12. **Format your codebase**
104
+ Run:
105
+
106
+ ```bash
107
+ make fmt
108
+ ```
109
+
110
+ This will auto-format your files and reorder imports (based on any name changes).
111
+
112
+ 13. **Enable pre-commit hooks**
113
+ Run:
114
+
115
+ ```bash
116
+ uv run pre-commit install
117
+ ```
118
+
119
+ 14. **Add repository to ReadTheDocs**
120
+ Visit: [https://app.readthedocs.org/dashboard/import/](https://app.readthedocs.org/dashboard/import/)
121
+
122
+ 15. **Configure PyPI publishing**
123
+
124
+ * Generate a **PyPI API token** from your PyPI account.
125
+ * Go to **GitHub → Settings → Secrets and variables → Actions**.
126
+ * Add the secret as `PYPI_API_TOKEN`.
127
+
128
+ 16. **Release your first version**
129
+ Run:
130
+
131
+ ```bash
132
+ make release
133
+ ```
134
+
135
+ ---
66
136
 
67
137
  ## Feature overview
68
138
 
@@ -84,3 +154,49 @@ python-template-project-gui
84
154
  * **[setuptools](https://pypi.org/project/setuptools/)** is used to package the project and manage dependencies.
85
155
  * **[setuptools-scm](https://pypi.org/project/setuptools-scm/)** is used to automatically generate the `_version.py` file from the `pyproject.toml` file.
86
156
 
157
+ ---
158
+
159
+ ## Installation
160
+
161
+ Get an impression of how your own project could be installed and look like.
162
+
163
+ Download from [PyPI](https://pypi.org/).
164
+
165
+ 💾 For more installation options see [install](getting-started/install.md).
166
+
167
+ ```bash
168
+ pip install python-template-project
169
+ ```
170
+
171
+ Run GUI from command line
172
+
173
+ ```bash
174
+ python-template-project-gui
175
+ ```
176
+
177
+ Run application from command line using CLI
178
+
179
+ ```bash
180
+ python -m python_template_project.cli [OPTIONS] path/to/file
181
+ ```
182
+
183
+ ```bash
184
+ python-template-project-cli [OPTIONS] path/to/file
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Troubleshooting
190
+
191
+ ### Problems with release pipeline
192
+
193
+ If you get this error below:
194
+ ```bash
195
+ /home/runner/work/_temp/xxxx_xxx.sh: line 1: .github/release_message.sh: Permission denied
196
+ ```
197
+
198
+ You have to run these commands in your IDE Terminal or the git bash and then push the changes.
199
+ ```bash
200
+ git update-index --chmod=+x ./.github/release_message.sh
201
+ ```
202
+
@@ -10,30 +10,98 @@ A feature-rich Python project template with with auto-generated CLI, GUI and par
10
10
  [![License](https://img.shields.io/github/license/pamagister/python-template-project)](https://github.com/pamagister/python-template-project/blob/main/LICENSE)
11
11
  [![GitHub issues](https://img.shields.io/github/issues/pamagister/python-template-project)](https://github.com/pamagister/python-template-project/issues)
12
12
  [![PyPI](https://img.shields.io/pypi/v/python-template-project)](https://pypi.org/project/python-template-project/)
13
+ [![Downloads](https://pepy.tech/badge/python-template-project)](https://pepy.tech/project/python-template-project/)
13
14
 
14
15
 
15
16
  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.
16
17
 
17
- ## Installation
18
+ ---
18
19
 
19
- Download from [PyPI](https://pypi.org/).
20
+ ## How to use this template
20
21
 
21
- 💾 For more installation options see [install](docs/getting-started/install.md).
22
+ Getting started on developing your own project based on this template
22
23
 
23
- ```bash
24
- pip install python-template-project
25
- ```
24
+ > **DO NOT FORK**
25
+ > This project is meant to be used from **[Use this template](https://github.com/pamagister/python-template-project/generate)** feature.
26
26
 
27
- Run GUI from command line
27
+ ---
28
28
 
29
- ```bash
30
- python-template-project-gui
31
- ```
29
+ 1. **Create a new repository using GitHub template**
30
+ Click on **[Use this template](https://github.com/pamagister/python-template-project/generate)**.
32
31
 
33
- ## How to use this template
32
+ 2. **Give a name to your project**
33
+ For example: `my-python-project`
34
+ *(Hyphens may ne used as project name; they are converted during renaming internally to underscores for packages.)*
35
+
36
+ 3. **Set write permissions**
37
+ Go to: `Repository -> Settings -> Actions -> General -> Workflow permissions`
38
+ Select: `Read and write permissions`, then click **Save**.
39
+
40
+ 4. **Trigger rename workflow**
41
+ Navigate to `Actions` tab → Select **Rename Action** → Run workflow on the `main` branch.
42
+
43
+ 5. **Wait for the workflow to finish**
44
+
45
+ 6. **Clone the repository**
46
+ Run:
47
+ ```bash
48
+ git clone [your-github-url]
49
+ ```
50
+
51
+ 7. **Open the project in your IDE**
34
52
 
35
- 🐍 For details, see the [Getting Started](docs/develop/01_getting_started_dev.md) guide.
53
+ 8. **Install dependencies and create virtual environment**
54
+ Run:
36
55
 
56
+ ```bash
57
+ make install
58
+ ```
59
+
60
+ 9. **Configure your IDE**
61
+ Set `.venv` as the local Python virtual environment.
62
+
63
+ 10. **Adjust project metadata**
64
+ Modify `pyproject.toml` (e.g., project description, authors, license, etc.)
65
+
66
+ 11. **Clean up template scripts**
67
+ Delete the files:
68
+
69
+ * `rename_project.yml`
70
+ * `rename_project.sh`
71
+
72
+ 12. **Format your codebase**
73
+ Run:
74
+
75
+ ```bash
76
+ make fmt
77
+ ```
78
+
79
+ This will auto-format your files and reorder imports (based on any name changes).
80
+
81
+ 13. **Enable pre-commit hooks**
82
+ Run:
83
+
84
+ ```bash
85
+ uv run pre-commit install
86
+ ```
87
+
88
+ 14. **Add repository to ReadTheDocs**
89
+ Visit: [https://app.readthedocs.org/dashboard/import/](https://app.readthedocs.org/dashboard/import/)
90
+
91
+ 15. **Configure PyPI publishing**
92
+
93
+ * Generate a **PyPI API token** from your PyPI account.
94
+ * Go to **GitHub → Settings → Secrets and variables → Actions**.
95
+ * Add the secret as `PYPI_API_TOKEN`.
96
+
97
+ 16. **Release your first version**
98
+ Run:
99
+
100
+ ```bash
101
+ make release
102
+ ```
103
+
104
+ ---
37
105
 
38
106
  ## Feature overview
39
107
 
@@ -55,3 +123,49 @@ python-template-project-gui
55
123
  * **[setuptools](https://pypi.org/project/setuptools/)** is used to package the project and manage dependencies.
56
124
  * **[setuptools-scm](https://pypi.org/project/setuptools-scm/)** is used to automatically generate the `_version.py` file from the `pyproject.toml` file.
57
125
 
126
+ ---
127
+
128
+ ## Installation
129
+
130
+ Get an impression of how your own project could be installed and look like.
131
+
132
+ Download from [PyPI](https://pypi.org/).
133
+
134
+ 💾 For more installation options see [install](docs/getting-started/install.md).
135
+
136
+ ```bash
137
+ pip install python-template-project
138
+ ```
139
+
140
+ Run GUI from command line
141
+
142
+ ```bash
143
+ python-template-project-gui
144
+ ```
145
+
146
+ Run application from command line using CLI
147
+
148
+ ```bash
149
+ python -m python_template_project.cli [OPTIONS] path/to/file
150
+ ```
151
+
152
+ ```bash
153
+ python-template-project-cli [OPTIONS] path/to/file
154
+ ```
155
+
156
+ ---
157
+
158
+ ## Troubleshooting
159
+
160
+ ### Problems with release pipeline
161
+
162
+ If you get this error below:
163
+ ```bash
164
+ /home/runner/work/_temp/xxxx_xxx.sh: line 1: .github/release_message.sh: Permission denied
165
+ ```
166
+
167
+ You have to run these commands in your IDE Terminal or the git bash and then push the changes.
168
+ ```bash
169
+ git update-index --chmod=+x ./.github/release_message.sh
170
+ ```
171
+
@@ -8,30 +8,98 @@ A feature-rich Python project template with with auto-generated CLI, GUI and par
8
8
  [![License](https://img.shields.io/github/license/pamagister/python-template-project)](https://github.com/pamagister/python-template-project/blob/main/LICENSE)
9
9
  [![GitHub issues](https://img.shields.io/github/issues/pamagister/python-template-project)](https://github.com/pamagister/python-template-project/issues)
10
10
  [![PyPI](https://img.shields.io/pypi/v/python-template-project)](https://pypi.org/project/python-template-project/)
11
+ [![Downloads](https://pepy.tech/badge/python-template-project)](https://pepy.tech/project/python-template-project/)
11
12
 
12
13
 
13
14
  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.
14
15
 
15
- ## Installation
16
+ ---
16
17
 
17
- Download from [PyPI](https://pypi.org/).
18
+ ## How to use this template
18
19
 
19
- 💾 For more installation options see [install](getting-started/install.md).
20
+ Getting started on developing your own project based on this template
20
21
 
21
- ```bash
22
- pip install python-template-project
23
- ```
22
+ > **DO NOT FORK**
23
+ > This project is meant to be used from **[Use this template](https://github.com/pamagister/python-template-project/generate)** feature.
24
24
 
25
- Run GUI from command line
25
+ ---
26
26
 
27
- ```bash
28
- python-template-project-gui
29
- ```
27
+ 1. **Create a new repository using GitHub template**
28
+ Click on **[Use this template](https://github.com/pamagister/python-template-project/generate)**.
30
29
 
31
- ## How to use this template
30
+ 2. **Give a name to your project**
31
+ For example: `my-python-project`
32
+ *(Hyphens may ne used as project name; they are converted during renaming internally to underscores for packages.)*
33
+
34
+ 3. **Set write permissions**
35
+ Go to: `Repository -> Settings -> Actions -> General -> Workflow permissions`
36
+ Select: `Read and write permissions`, then click **Save**.
37
+
38
+ 4. **Trigger rename workflow**
39
+ Navigate to `Actions` tab → Select **Rename Action** → Run workflow on the `main` branch.
40
+
41
+ 5. **Wait for the workflow to finish**
42
+
43
+ 6. **Clone the repository**
44
+ Run:
45
+ ```bash
46
+ git clone [your-github-url]
47
+ ```
48
+
49
+ 7. **Open the project in your IDE**
32
50
 
33
- 🐍 For details, see the [Getting Started](develop/01_getting_started_dev.md) guide.
51
+ 8. **Install dependencies and create virtual environment**
52
+ Run:
34
53
 
54
+ ```bash
55
+ make install
56
+ ```
57
+
58
+ 9. **Configure your IDE**
59
+ Set `.venv` as the local Python virtual environment.
60
+
61
+ 10. **Adjust project metadata**
62
+ Modify `pyproject.toml` (e.g., project description, authors, license, etc.)
63
+
64
+ 11. **Clean up template scripts**
65
+ Delete the files:
66
+
67
+ * `rename_project.yml`
68
+ * `rename_project.sh`
69
+
70
+ 12. **Format your codebase**
71
+ Run:
72
+
73
+ ```bash
74
+ make fmt
75
+ ```
76
+
77
+ This will auto-format your files and reorder imports (based on any name changes).
78
+
79
+ 13. **Enable pre-commit hooks**
80
+ Run:
81
+
82
+ ```bash
83
+ uv run pre-commit install
84
+ ```
85
+
86
+ 14. **Add repository to ReadTheDocs**
87
+ Visit: [https://app.readthedocs.org/dashboard/import/](https://app.readthedocs.org/dashboard/import/)
88
+
89
+ 15. **Configure PyPI publishing**
90
+
91
+ * Generate a **PyPI API token** from your PyPI account.
92
+ * Go to **GitHub → Settings → Secrets and variables → Actions**.
93
+ * Add the secret as `PYPI_API_TOKEN`.
94
+
95
+ 16. **Release your first version**
96
+ Run:
97
+
98
+ ```bash
99
+ make release
100
+ ```
101
+
102
+ ---
35
103
 
36
104
  ## Feature overview
37
105
 
@@ -53,3 +121,49 @@ python-template-project-gui
53
121
  * **[setuptools](https://pypi.org/project/setuptools/)** is used to package the project and manage dependencies.
54
122
  * **[setuptools-scm](https://pypi.org/project/setuptools-scm/)** is used to automatically generate the `_version.py` file from the `pyproject.toml` file.
55
123
 
124
+ ---
125
+
126
+ ## Installation
127
+
128
+ Get an impression of how your own project could be installed and look like.
129
+
130
+ Download from [PyPI](https://pypi.org/).
131
+
132
+ 💾 For more installation options see [install](getting-started/install.md).
133
+
134
+ ```bash
135
+ pip install python-template-project
136
+ ```
137
+
138
+ Run GUI from command line
139
+
140
+ ```bash
141
+ python-template-project-gui
142
+ ```
143
+
144
+ Run application from command line using CLI
145
+
146
+ ```bash
147
+ python -m python_template_project.cli [OPTIONS] path/to/file
148
+ ```
149
+
150
+ ```bash
151
+ python-template-project-cli [OPTIONS] path/to/file
152
+ ```
153
+
154
+ ---
155
+
156
+ ## Troubleshooting
157
+
158
+ ### Problems with release pipeline
159
+
160
+ If you get this error below:
161
+ ```bash
162
+ /home/runner/work/_temp/xxxx_xxx.sh: line 1: .github/release_message.sh: Permission denied
163
+ ```
164
+
165
+ You have to run these commands in your IDE Terminal or the git bash and then push the changes.
166
+ ```bash
167
+ git update-index --chmod=+x ./.github/release_message.sh
168
+ ```
169
+
@@ -1,55 +1,45 @@
1
- # Command line interface
1
+ # Command Line Interface
2
2
 
3
- Command line options
3
+ Command line options for app
4
4
 
5
5
  ```bash
6
- python -m python_template_project.cli [OPTIONS] path/to/file
6
+ python -m app [OPTIONS] input
7
7
  ```
8
8
 
9
- ---
10
-
11
- ## ⚙️ CLI-Options
9
+ ## Options
12
10
 
13
11
  | Option | Type | Description | Default | Choices |
14
12
  |-----------------------|------|---------------------------------------------------|------------|---------------|
15
- | `path/to/file` | str | Path to input (file or folder) | *required* | - |
13
+ | `input` | str | Path to input (file or folder) | *required* | - |
16
14
  | `--output` | str | Path to output destination | *required* | - |
17
15
  | `--min_dist` | int | Maximum distance between two waypoints | 20 | - |
18
16
  | `--extract_waypoints` | bool | Extract starting points of each track as waypoint | True | [True, False] |
19
17
  | `--elevation` | bool | Include elevation data in waypoints | True | [True, False] |
20
18
 
21
19
 
22
- ## 💡 Examples
23
-
24
- In the example, the following is assumed: `example.input` in the current directory
25
-
20
+ ## Examples
26
21
 
27
- ### 1. Standard version (only required parameter)
28
-
29
- ```bash
30
- python -m python_template_project.cli input
31
- ```
32
22
 
33
- ### 2. With verbose logging
23
+ ### 1. Basic usage
34
24
 
35
25
  ```bash
36
- python -m python_template_project.cli --verbose input
26
+ python -m app input
37
27
  ```
38
28
 
39
- ### 3. With quiet mode
29
+ ### 2. With min_dist parameter
40
30
 
41
31
  ```bash
42
- python -m python_template_project.cli --quiet input
32
+ python -m app --min_dist 20 input
43
33
  ```
44
34
 
45
- ### 4. Example with 1 Parameter(s)
35
+ ### 3. With extract_waypoints parameter
46
36
 
47
37
  ```bash
48
- python -m python_template_project.cli --min_dist 20 input
38
+ python -m app --extract_waypoints True input
49
39
  ```
50
40
 
51
- ### 5. Example with 2 Parameter(s)
41
+ ### 4. With elevation parameter
52
42
 
53
43
  ```bash
54
- python -m python_template_project.cli --min_dist 20 --extract_waypoints True input
44
+ python -m app --elevation True input
55
45
  ```
@@ -1,4 +1,4 @@
1
- # Config parameters
1
+ # Configuration Parameters
2
2
 
3
3
  These parameters are available to configure the behavior of your application.
4
4
  The parameters in the cli category can be accessed via the command line interface.
@@ -8,9 +8,11 @@ authors = [
8
8
  readme = "docs/index.md"
9
9
  requires-python = ">=3.10,<3.12"
10
10
  dependencies = [
11
+ "fastkml>=1.1.0",
11
12
  "gpxpy>=1.6.2",
12
13
  "pydantic>=2.11.7",
13
14
  "pyyaml>=6.0.2",
15
+ "shapely>=2.1.1",
14
16
  "srtm-py>=0.3.7",
15
17
  ]
16
18