python-template-project 0.2.4__tar.gz → 0.2.5__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 (88) hide show
  1. {python_template_project-0.2.4 → python_template_project-0.2.5}/.readthedocs.yaml +3 -3
  2. {python_template_project-0.2.4 → python_template_project-0.2.5}/HISTORY.md +14 -0
  3. {python_template_project-0.2.4 → python_template_project-0.2.5}/Makefile +12 -6
  4. {python_template_project-0.2.4/src/python_template_project.egg-info → python_template_project-0.2.5}/PKG-INFO +2 -19
  5. {python_template_project-0.2.4 → python_template_project-0.2.5}/README.md +0 -1
  6. python_template_project-0.2.5/config.yaml +41 -0
  7. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/usage/cli.md +28 -12
  8. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/usage/config.md +19 -10
  9. {python_template_project-0.2.4 → python_template_project-0.2.5}/pyproject.toml +4 -5
  10. {python_template_project-0.2.4 → python_template_project-0.2.5}/scripts/generate_config_docs.py +2 -2
  11. python_template_project-0.2.5/src/python_template_project/_version.py +24 -0
  12. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/config/config.py +5 -1
  13. {python_template_project-0.2.4 → python_template_project-0.2.5/src/python_template_project.egg-info}/PKG-INFO +2 -19
  14. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project.egg-info/SOURCES.txt +2 -0
  15. python_template_project-0.2.5/src/python_template_project.egg-info/requires.txt +6 -0
  16. python_template_project-0.2.5/src/python_template_project.egg-info/scm_file_list.json +78 -0
  17. python_template_project-0.2.5/src/python_template_project.egg-info/scm_version.json +8 -0
  18. {python_template_project-0.2.4 → python_template_project-0.2.5}/uv.lock +71 -21
  19. python_template_project-0.2.4/config.yaml +0 -41
  20. python_template_project-0.2.4/src/python_template_project/_version.py +0 -34
  21. python_template_project-0.2.4/src/python_template_project.egg-info/requires.txt +0 -25
  22. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/FUNDING.yml +0 -0
  23. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  24. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  25. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  26. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/actions/setup-environment/action.yml +0 -0
  27. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/dependabot.yml +0 -0
  28. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/init.sh +0 -0
  29. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/release_message.sh +0 -0
  30. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/rename_project.sh +0 -0
  31. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/template.yml +0 -0
  32. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/update_funding.py +0 -0
  33. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/workflows/build-linux.yml +0 -0
  34. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/workflows/build-macos.yml +0 -0
  35. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/workflows/build-windows.yml +0 -0
  36. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/workflows/main.yml +0 -0
  37. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/workflows/release.yml +0 -0
  38. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/workflows/rename_project.yml +0 -0
  39. {python_template_project-0.2.4 → python_template_project-0.2.5}/.github/workflows/update_readme.yml +0 -0
  40. {python_template_project-0.2.4 → python_template_project-0.2.5}/.gitignore +0 -0
  41. {python_template_project-0.2.4 → python_template_project-0.2.5}/.idea/runConfigurations/config_generate.xml +0 -0
  42. {python_template_project-0.2.4 → python_template_project-0.2.5}/.idea/runConfigurations/module_cli.xml +0 -0
  43. {python_template_project-0.2.4 → python_template_project-0.2.5}/.idea/runConfigurations/module_gui.xml +0 -0
  44. {python_template_project-0.2.4 → python_template_project-0.2.5}/.pre-commit-config-linux.yaml +0 -0
  45. {python_template_project-0.2.4 → python_template_project-0.2.5}/.pre-commit-config.yaml +0 -0
  46. {python_template_project-0.2.4 → python_template_project-0.2.5}/LICENSE +0 -0
  47. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/.nav.yml +0 -0
  48. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/_static/img/favicon.png +0 -0
  49. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/_static/img/logo.png +0 -0
  50. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/css/custom.css +0 -0
  51. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/develop/contributing.md +0 -0
  52. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/develop/make_windows.md +0 -0
  53. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/develop/naming_convention.md +0 -0
  54. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/develop/pypi_release.md +0 -0
  55. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/funding/funding.md +0 -0
  56. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/getting-started/install.md +0 -0
  57. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/getting-started/virtual-environment.md +0 -0
  58. {python_template_project-0.2.4 → python_template_project-0.2.5}/docs/index.md +0 -0
  59. {python_template_project-0.2.4 → python_template_project-0.2.5}/examples/kuhkopfsteig.gpx +0 -0
  60. {python_template_project-0.2.4 → python_template_project-0.2.5}/examples/rother_lilienstein.gpx +0 -0
  61. {python_template_project-0.2.4 → python_template_project-0.2.5}/examples/teneriffa.gpx +0 -0
  62. {python_template_project-0.2.4 → python_template_project-0.2.5}/mkdocs.yml +0 -0
  63. {python_template_project-0.2.4 → python_template_project-0.2.5}/pytest.ini +0 -0
  64. {python_template_project-0.2.4 → python_template_project-0.2.5}/scripts/show_filelist.py +0 -0
  65. {python_template_project-0.2.4 → python_template_project-0.2.5}/scripts/show_tree.py +0 -0
  66. {python_template_project-0.2.4 → python_template_project-0.2.5}/scripts/update_readme.py +0 -0
  67. {python_template_project-0.2.4 → python_template_project-0.2.5}/setup.cfg +0 -0
  68. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/__init__.py +0 -0
  69. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/firewall_handler.py +0 -0
  70. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/main.py +0 -0
  71. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/__init__.py +0 -0
  72. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/__main__.py +0 -0
  73. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/cli/__init__.py +0 -0
  74. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/cli/__main__.py +0 -0
  75. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/cli/cli.py +0 -0
  76. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/config/__init__.py +0 -0
  77. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/core/__init__.py +0 -0
  78. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/core/base.py +0 -0
  79. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/core/logging.py +0 -0
  80. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/gui/__init__.py +0 -0
  81. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/gui/__main__.py +0 -0
  82. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project/gui/gui.py +0 -0
  83. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project.egg-info/dependency_links.txt +0 -0
  84. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project.egg-info/entry_points.txt +0 -0
  85. {python_template_project-0.2.4 → python_template_project-0.2.5}/src/python_template_project.egg-info/top_level.txt +0 -0
  86. {python_template_project-0.2.4 → python_template_project-0.2.5}/template.yml.url +0 -0
  87. {python_template_project-0.2.4 → python_template_project-0.2.5}/tests/__init__.py +0 -0
  88. {python_template_project-0.2.4 → python_template_project-0.2.5}/tests/test_gpx.py +0 -0
@@ -11,9 +11,9 @@ build:
11
11
 
12
12
  python:
13
13
  install:
14
- - method: pip
15
- path: .
16
- extra_requirements:
14
+ - method: uv
15
+ command: sync
16
+ groups:
17
17
  - docs
18
18
 
19
19
  mkdocs:
@@ -4,6 +4,20 @@ Changelog
4
4
 
5
5
  (unreleased)
6
6
  ------------
7
+ - Ich habe .readthedocs.yaml auf Read the Docs’ uv-Integration mit der
8
+ Gruppe docs umgestellt. Hinweis: uv sync wählt standardmäßig auch die
9
+ dev-Gruppe aus. [Paul Magister]
10
+ - Updated pyproject.toml to remove Deptry’s deprecated setting, which
11
+ pointed at optional-dependency groups that this project doesn’t use.
12
+ Added a targeted exception for lxml, an intentional dependency that
13
+ Deptry otherwise flags as unused. [Paul Magister]
14
+ - Bump version of config-cli-gui to latest version. [Paul Magister]
15
+ - Improve makefile. [Paul Magister]
16
+
17
+
18
+ 0.2.4 (2025-11-30)
19
+ ------------------
20
+ - Docs: Update HISTORY.md for release 0.2.4. [Paul Magister]
7
21
  - Add linux build workflow. [Paul Magister]
8
22
  - Avoid warning by adding lxml package. [Paul Magister]
9
23
  - Fix format. [Paul Magister]
@@ -18,8 +18,7 @@ show: ## Show the current environment.
18
18
  .PHONY: install
19
19
  install: ## Install the project in dev mode.
20
20
  $(MAKE) lock
21
- $(MAKE) virtualenv
22
- uv pip install -e .[dev,docs]
21
+ uv sync --all-groups
23
22
 
24
23
  .PHONY: lock
25
24
  lock: ## builds the uv.make lock file and syncs the packages
@@ -40,6 +39,7 @@ fmt: ## Format code using black & isort.
40
39
  uv run ruff format tests/
41
40
  uv run ruff check src/ --fix
42
41
  uv run ruff check tests/ --fix
42
+ $(MAKE) syncdocs
43
43
 
44
44
  .PHONY: lint
45
45
  lint: ## Run pep8, black, mypy linters.
@@ -74,6 +74,7 @@ build-linux: ## Build the Linux executable.
74
74
  mkdir release
75
75
  cp dist/python-template-project release
76
76
  cp config.yaml release
77
+ cp README.md release
77
78
 
78
79
 
79
80
  .PHONY: build-macos
@@ -158,15 +159,20 @@ release: ## Create a new tag for release.
158
159
  echo "GitHub Actions will detect the new tag and trigger the release workflows."
159
160
  echo "Add modified files to commit and push them to main"
160
161
 
161
- .PHONY: docs
162
- docs: ## Build and sync the documentation.
162
+ .PHONY: syncdocs
163
+ syncdocs: ## Sync the documentation.
163
164
  @echo "sync documentation ..."
164
165
  @uv run ./scripts/generate_config_docs.py
165
166
  @uv run ./scripts/update_readme.py
166
167
  @uv run ./.github/update_funding.py
168
+
169
+ .PHONY: docs
170
+ docs: ## Build and sync the documentation.
171
+ ## run syncdocs
172
+ $(MAKE) syncdocs
167
173
  @echo "building documentation ..."
168
- @uv run mkdocs build
169
- @uv run mkdocs serve
174
+ @uv run --group docs mkdocs build
175
+ @uv run --group docs mkdocs serve
170
176
 
171
177
  .PHONY: tree
172
178
  tree: ## Show project tree (excluding ignored folders)
@@ -1,34 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-template-project
3
- Version: 0.2.4
3
+ Version: 0.2.5
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: config-cli-gui>=0.2.2
9
+ Requires-Dist: config-cli-gui>=0.3.9
10
10
  Requires-Dist: fastkml>=1.1.0
11
11
  Requires-Dist: gpxpy>=1.6.2
12
12
  Requires-Dist: lxml>=6.0.2
13
13
  Requires-Dist: shapely>=2.1.1
14
14
  Requires-Dist: srtm-py>=0.3.7
15
- Provides-Extra: dev
16
- Requires-Dist: pytest>=8.4.0; extra == "dev"
17
- Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
18
- Requires-Dist: coverage>=7.8.2; extra == "dev"
19
- Requires-Dist: flake8>=7.2.0; extra == "dev"
20
- Requires-Dist: black>=25.1.0; extra == "dev"
21
- Requires-Dist: isort>=6.0.1; extra == "dev"
22
- Requires-Dist: pytest-cov>=6.1.1; extra == "dev"
23
- Requires-Dist: mypy>=1.16.0; extra == "dev"
24
- Requires-Dist: gitchangelog>=3.0.4; extra == "dev"
25
- Requires-Dist: pyinstaller>=5.8; extra == "dev"
26
- Requires-Dist: pre-commit>=4.2.0; extra == "dev"
27
- Requires-Dist: ruff>=0.11.13; extra == "dev"
28
- Provides-Extra: docs
29
- Requires-Dist: mkdocs>=1.6.1; extra == "docs"
30
- Requires-Dist: mkdocs-awesome-nav>=2.6.1; extra == "docs"
31
- Requires-Dist: pygments>=2.19.1; extra == "docs"
32
15
  Dynamic: license-file
33
16
 
34
17
  # Welcome to python-template-project
@@ -93,7 +93,6 @@ Getting started on developing your own project based on this template
93
93
  * Generate a **PyPI API token** from your PyPI account.
94
94
  * Go to **GitHub → Settings → Secrets and variables → Actions**.
95
95
  * Add the secret as `PYPI_API_TOKEN`.
96
- * The token probably starts with "pypi-..."
97
96
 
98
97
  16. **Release your first version**
99
98
  Run:
@@ -0,0 +1,41 @@
1
+ app:
2
+ # Date format to use | type=str
3
+ date_format: '%Y-%m-%d'
4
+ # Logging level for the application | type=str | choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL']
5
+ log_level: INFO
6
+ # Maximum log file size in MB before rotation | type=int
7
+ log_file_max_size: 10
8
+ # Number of backup log files to keep | type=int
9
+ log_backup_count: 5
10
+ # Log message format style | type=str | choices=['simple', 'detailed', 'json']
11
+ log_format: detailed
12
+ # Maximum number of worker threads | type=int
13
+ max_workers: 4
14
+ # Enable logging to file | type=bool | choices=[True, False]
15
+ enable_file_logging: true
16
+ # Enable logging to console | type=bool | choices=[True, False]
17
+ enable_console_logging: true
18
+ cli:
19
+ # Path to input (file or folder) | type=str | [CLI]
20
+ input: ''
21
+ # Path to output destination | type=str | [CLI]
22
+ output: ''
23
+ # Maximum distance between two waypoints | type=int | [CLI]
24
+ min_dist: 25
25
+ # Extract starting points of each track as waypoint | type=bool | [CLI] | choices=[True, False]
26
+ extract_waypoints: true
27
+ # Include elevation data in waypoints | type=bool | [CLI] | choices=[True, False]
28
+ elevation: true
29
+ gui:
30
+ # GUI theme setting | type=str | choices=['light', 'dark', 'auto']
31
+ theme: light
32
+ # Default window width | type=int
33
+ window_width: 800
34
+ # Default window height | type=int
35
+ window_height: 600
36
+ # Height of the log window in pixels | type=int
37
+ log_window_height: 200
38
+ # Automatically scroll to the newest log entries | type=bool | choices=[True, False]
39
+ auto_scroll_log: true
40
+ # Maximum number of log lines to keep in GUI | type=int
41
+ max_log_lines: 1000
@@ -3,13 +3,22 @@
3
3
  Command line options for python_template_project
4
4
 
5
5
  ```bash
6
- python -m python_template_project [OPTIONS] input
6
+ python-template-project [OPTIONS] <input>
7
+ ```
8
+
9
+ For development from a source checkout, the equivalent module invocation is:
10
+
11
+ ```bash
12
+ python -m python_template_project [OPTIONS] <input>
7
13
  ```
8
14
 
9
15
  ## Options
10
16
 
11
17
  | Option | Type | Description | Default | Choices |
12
18
  |-----------------------|------|---------------------------------------------------|------------|---------------|
19
+ | --config | str | Path to configuration file | - | - |
20
+ | -v, --verbose | bool | Enable debug logging | False | [True, False] |
21
+ | -q, --quiet | bool | Show warnings and errors only | False | [True, False] |
13
22
  | `input` | str | Path to input (file or folder) | *required* | - |
14
23
  | `--output` | str | Path to output destination | *required* | - |
15
24
  | `--min_dist` | int | Maximum distance between two waypoints | 25 | - |
@@ -23,37 +32,44 @@ python -m python_template_project [OPTIONS] input
23
32
  ### 1. Basic usage
24
33
 
25
34
  ```bash
26
- python -m python_template_project input
35
+ python-template-project input
27
36
  ```
28
37
 
29
38
  ### 2. With verbose logging
30
39
 
31
40
  ```bash
32
- python -m python_template_project -v input
33
- python -m python_template_project --verbose input
41
+ python-template-project -v input
42
+ python-template-project --verbose input
34
43
  ```
35
44
 
36
45
  ### 3. With quiet mode
37
46
 
38
47
  ```bash
39
- python -m python_template_project -q input
40
- python -m python_template_project --quiet input
48
+ python-template-project -q input
49
+ python-template-project --quiet input
41
50
  ```
42
51
 
43
- ### 4. With min_dist parameter
52
+ ### 4. With output parameter
44
53
 
45
54
  ```bash
46
- python -m python_template_project --min_dist 25 input
55
+ python-template-project --output input
47
56
  ```
48
57
 
49
- ### 5. With extract_waypoints parameter
58
+ ### 5. With min_dist parameter
50
59
 
51
60
  ```bash
52
- python -m python_template_project --extract_waypoints True input
61
+ python-template-project --min_dist 25 input
53
62
  ```
54
63
 
55
- ### 6. With elevation parameter
64
+ ### 6. With extract_waypoints parameter
56
65
 
57
66
  ```bash
58
- python -m python_template_project --elevation True input
67
+ python-template-project --extract_waypoints True input
68
+ ```
69
+
70
+ ### Developer usage
71
+
72
+ ```bash
73
+ python -m python_template_project --help
74
+ python -m python_template_project input
59
75
  ```
@@ -3,17 +3,16 @@
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.
5
5
 
6
- ## Category "cli"
6
+ ## Configuration File Reference
7
7
 
8
- | Name | Type | Description | Default | Choices |
9
- |-------------------|------|---------------------------------------------------|---------|---------------|
10
- | input | str | Path to input (file or folder) | '' | - |
11
- | output | str | Path to output destination | '' | - |
12
- | min_dist | int | Maximum distance between two waypoints | 25 | - |
13
- | extract_waypoints | bool | Extract starting points of each track as waypoint | True | [True, False] |
14
- | elevation | bool | Include elevation data in waypoints | True | [True, False] |
8
+ The actual configuration is stored in [`config.yaml`](../../config.yaml). You can:
15
9
 
16
- ## Category "app"
10
+ - Edit the configuration file directly using your text editor
11
+ - Use the `--config` command-line option to specify a custom config file
12
+ - Place a `config.yaml` in your application's config
13
+ directory (typically `~/.config/config-cli-gui/`)
14
+
15
+ ## Category "app" {#app}
17
16
 
18
17
  | Name | Type | Description | Default | Choices |
19
18
  |------------------------|------|---------------------------------------------|------------|---------------------------------------------------|
@@ -26,7 +25,17 @@ The parameters in the cli category can be accessed via the command line interfac
26
25
  | enable_file_logging | bool | Enable logging to file | True | [True, False] |
27
26
  | enable_console_logging | bool | Enable logging to console | True | [True, False] |
28
27
 
29
- ## Category "gui"
28
+ ## Category "cli" {#cli}
29
+
30
+ | Name | Type | Description | Default | Choices |
31
+ |-------------------|------|---------------------------------------------------|---------|---------------|
32
+ | input | str | Path to input (file or folder) | '' | - |
33
+ | output | str | Path to output destination | '' | - |
34
+ | min_dist | int | Maximum distance between two waypoints | 25 | - |
35
+ | extract_waypoints | bool | Extract starting points of each track as waypoint | True | [True, False] |
36
+ | elevation | bool | Include elevation data in waypoints | True | [True, False] |
37
+
38
+ ## Category "gui" {#gui}
30
39
 
31
40
  | Name | Type | Description | Default | Choices |
32
41
  |-------------------|------|------------------------------------------------|---------|---------------------------|
@@ -8,7 +8,7 @@ authors = [
8
8
  readme = "docs/index.md"
9
9
  requires-python = ">=3.10,<3.12"
10
10
  dependencies = [
11
- "config-cli-gui>=0.2.2",
11
+ "config-cli-gui>=0.3.9",
12
12
  "fastkml>=1.1.0",
13
13
  "gpxpy>=1.6.2",
14
14
  "lxml>=6.0.2",
@@ -16,8 +16,7 @@ dependencies = [
16
16
  "srtm-py>=0.3.7",
17
17
  ]
18
18
 
19
- # Dev dependencies as optional dependencies
20
- [project.optional-dependencies]
19
+ [dependency-groups]
21
20
  dev = [
22
21
  "pytest>=8.4.0",
23
22
  "pytest-mock>=3.14.1",
@@ -50,8 +49,8 @@ build-backend = "setuptools.build_meta"
50
49
  [tool.setuptools_scm]
51
50
  write_to = "src/python_template_project/_version.py"
52
51
 
53
- [tool.deptry]
54
- pep621_dev_dependency_groups = ["dev", "docs"]
52
+ [tool.deptry.per_rule_ignores]
53
+ DEP002 = ["lxml"]
55
54
 
56
55
  [tool.ruff]
57
56
  line-length = 100
@@ -1,4 +1,4 @@
1
- from config_cli_gui.docs_generator import DocumentationGenerator
1
+ from config_cli_gui.docs import DocumentationGenerator
2
2
 
3
3
  from python_template_project.config.config import ConfigParameterManager
4
4
 
@@ -18,5 +18,5 @@ print(f"Generated: {default_config}")
18
18
  docGen.generate_config_markdown_doc(output_file=default_config_doc)
19
19
  print(f"Generated: {default_config_doc}")
20
20
 
21
- docGen.generate_cli_markdown_doc(output_file=default_cli_doc)
21
+ docGen.generate_cli_markdown_doc(output_file=default_cli_doc, app_name=config_manager.get_app_name())
22
22
  print(f"Generated: {default_cli_doc}")
@@ -0,0 +1,24 @@
1
+ # file generated by vcs-versioning
2
+ # don't change, don't track in version control
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "__version__",
7
+ "__version_tuple__",
8
+ "version",
9
+ "version_tuple",
10
+ "__commit_id__",
11
+ "commit_id",
12
+ ]
13
+
14
+ version: str
15
+ __version__: str
16
+ __version_tuple__: tuple[int | str, ...]
17
+ version_tuple: tuple[int | str, ...]
18
+ commit_id: str | None
19
+ __commit_id__: str | None
20
+
21
+ __version__ = version = '0.2.5'
22
+ __version_tuple__ = version_tuple = (0, 2, 5)
23
+
24
+ __commit_id__ = commit_id = 'g911e64e2d'
@@ -167,14 +167,18 @@ class ConfigParameterManager(ConfigManager): # Inherit from ConfigManager
167
167
  categories = (CliConfig(), AppConfig(), GuiConfig())
168
168
  super().__init__(categories, config_file, **kwargs)
169
169
 
170
+ @staticmethod
171
+ def get_app_name() -> str:
172
+ return "python_template_project"
173
+
170
174
 
171
175
  def main():
172
176
  """Main function to generate config file and documentation."""
173
177
  default_config: str = "config.yaml"
174
178
  default_cli_doc: str = "docs/usage/cli.md"
175
179
  default_config_doc: str = "docs/usage/config.md"
176
- app_name = "python_template_project"
177
180
  config_manager = ConfigParameterManager()
181
+ app_name = config_manager.get_app_name()
178
182
  doc_gen = DocumentationGenerator(config_manager)
179
183
  doc_gen.generate_default_config_file(output_file=default_config)
180
184
  print(f"Generated: {default_config}")
@@ -1,34 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-template-project
3
- Version: 0.2.4
3
+ Version: 0.2.5
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: config-cli-gui>=0.2.2
9
+ Requires-Dist: config-cli-gui>=0.3.9
10
10
  Requires-Dist: fastkml>=1.1.0
11
11
  Requires-Dist: gpxpy>=1.6.2
12
12
  Requires-Dist: lxml>=6.0.2
13
13
  Requires-Dist: shapely>=2.1.1
14
14
  Requires-Dist: srtm-py>=0.3.7
15
- Provides-Extra: dev
16
- Requires-Dist: pytest>=8.4.0; extra == "dev"
17
- Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
18
- Requires-Dist: coverage>=7.8.2; extra == "dev"
19
- Requires-Dist: flake8>=7.2.0; extra == "dev"
20
- Requires-Dist: black>=25.1.0; extra == "dev"
21
- Requires-Dist: isort>=6.0.1; extra == "dev"
22
- Requires-Dist: pytest-cov>=6.1.1; extra == "dev"
23
- Requires-Dist: mypy>=1.16.0; extra == "dev"
24
- Requires-Dist: gitchangelog>=3.0.4; extra == "dev"
25
- Requires-Dist: pyinstaller>=5.8; extra == "dev"
26
- Requires-Dist: pre-commit>=4.2.0; extra == "dev"
27
- Requires-Dist: ruff>=0.11.13; extra == "dev"
28
- Provides-Extra: docs
29
- Requires-Dist: mkdocs>=1.6.1; extra == "docs"
30
- Requires-Dist: mkdocs-awesome-nav>=2.6.1; extra == "docs"
31
- Requires-Dist: pygments>=2.19.1; extra == "docs"
32
15
  Dynamic: license-file
33
16
 
34
17
  # Welcome to python-template-project
@@ -65,6 +65,8 @@ src/python_template_project.egg-info/SOURCES.txt
65
65
  src/python_template_project.egg-info/dependency_links.txt
66
66
  src/python_template_project.egg-info/entry_points.txt
67
67
  src/python_template_project.egg-info/requires.txt
68
+ src/python_template_project.egg-info/scm_file_list.json
69
+ src/python_template_project.egg-info/scm_version.json
68
70
  src/python_template_project.egg-info/top_level.txt
69
71
  src/python_template_project/cli/__init__.py
70
72
  src/python_template_project/cli/__main__.py
@@ -0,0 +1,6 @@
1
+ config-cli-gui>=0.3.9
2
+ fastkml>=1.1.0
3
+ gpxpy>=1.6.2
4
+ lxml>=6.0.2
5
+ shapely>=2.1.1
6
+ srtm-py>=0.3.7
@@ -0,0 +1,78 @@
1
+ {
2
+ "files": [
3
+ ".github/FUNDING.yml",
4
+ ".github/ISSUE_TEMPLATE/bug_report.md",
5
+ ".github/ISSUE_TEMPLATE/feature_request.md",
6
+ ".github/PULL_REQUEST_TEMPLATE.md",
7
+ ".github/actions/setup-environment/action.yml",
8
+ ".github/dependabot.yml",
9
+ ".github/init.sh",
10
+ ".github/release_message.sh",
11
+ ".github/rename_project.sh",
12
+ ".github/template.yml",
13
+ ".github/update_funding.py",
14
+ ".github/workflows/build-linux.yml",
15
+ ".github/workflows/build-macos.yml",
16
+ ".github/workflows/build-windows.yml",
17
+ ".github/workflows/main.yml",
18
+ ".github/workflows/release.yml",
19
+ ".github/workflows/rename_project.yml",
20
+ ".github/workflows/update_readme.yml",
21
+ ".gitignore",
22
+ ".idea/runConfigurations/config_generate.xml",
23
+ ".idea/runConfigurations/module_cli.xml",
24
+ ".idea/runConfigurations/module_gui.xml",
25
+ ".pre-commit-config-linux.yaml",
26
+ ".pre-commit-config.yaml",
27
+ ".readthedocs.yaml",
28
+ "HISTORY.md",
29
+ "LICENSE",
30
+ "Makefile",
31
+ "README.md",
32
+ "config.yaml",
33
+ "docs/.nav.yml",
34
+ "docs/_static/img/favicon.png",
35
+ "docs/_static/img/logo.png",
36
+ "docs/css/custom.css",
37
+ "docs/develop/contributing.md",
38
+ "docs/develop/make_windows.md",
39
+ "docs/develop/naming_convention.md",
40
+ "docs/develop/pypi_release.md",
41
+ "docs/funding/funding.md",
42
+ "docs/getting-started/install.md",
43
+ "docs/getting-started/virtual-environment.md",
44
+ "docs/index.md",
45
+ "docs/usage/cli.md",
46
+ "docs/usage/config.md",
47
+ "examples/kuhkopfsteig.gpx",
48
+ "examples/rother_lilienstein.gpx",
49
+ "examples/teneriffa.gpx",
50
+ "mkdocs.yml",
51
+ "pyproject.toml",
52
+ "pytest.ini",
53
+ "scripts/generate_config_docs.py",
54
+ "scripts/show_filelist.py",
55
+ "scripts/show_tree.py",
56
+ "scripts/update_readme.py",
57
+ "src/__init__.py",
58
+ "src/firewall_handler.py",
59
+ "src/main.py",
60
+ "src/python_template_project/__init__.py",
61
+ "src/python_template_project/__main__.py",
62
+ "src/python_template_project/cli/__init__.py",
63
+ "src/python_template_project/cli/__main__.py",
64
+ "src/python_template_project/cli/cli.py",
65
+ "src/python_template_project/config/__init__.py",
66
+ "src/python_template_project/config/config.py",
67
+ "src/python_template_project/core/__init__.py",
68
+ "src/python_template_project/core/base.py",
69
+ "src/python_template_project/core/logging.py",
70
+ "src/python_template_project/gui/__init__.py",
71
+ "src/python_template_project/gui/__main__.py",
72
+ "src/python_template_project/gui/gui.py",
73
+ "template.yml.url",
74
+ "tests/__init__.py",
75
+ "tests/test_gpx.py",
76
+ "uv.lock"
77
+ ]
78
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.2.5",
3
+ "distance": 0,
4
+ "node": "g911e64e2d2f7506f68aad5aeb2ef7f98992e9cf3",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-07"
8
+ }
@@ -148,15 +148,17 @@ wheels = [
148
148
 
149
149
  [[package]]
150
150
  name = "config-cli-gui"
151
- version = "0.2.2"
151
+ version = "0.3.9"
152
152
  source = { registry = "https://pypi.org/simple" }
153
153
  dependencies = [
154
+ { name = "pillow" },
154
155
  { name = "pydantic" },
155
156
  { name = "pyyaml" },
157
+ { name = "ttkbootstrap" },
156
158
  ]
157
- sdist = { url = "https://files.pythonhosted.org/packages/66/45/3e723a140449dc05de9587ed335a93a5def3540de51822da5b977c5badc8/config_cli_gui-0.2.2.tar.gz", hash = "sha256:de8c4af7fad13e85ec4ace0665212a72dbe4639d1be0b7b3c6155a631673ae74", size = 134050, upload-time = "2025-11-14T14:51:54.384Z" }
159
+ sdist = { url = "https://files.pythonhosted.org/packages/14/ea/b663de4e2940b635dc1a7de2cf938eee107414dd717038a685097ffd85fe/config_cli_gui-0.3.9.tar.gz", hash = "sha256:6e5b31d7028af2eaed566542d6323f77ff32eb37629131ac0e50ced1b85ef0d6", size = 250493, upload-time = "2026-10-02T13:50:14.2Z" }
158
160
  wheels = [
159
- { url = "https://files.pythonhosted.org/packages/8b/91/8a28d11d08d6c0e2022f4a77fec0d45e9af5c7aae2f80db4c8527fec7a73/config_cli_gui-0.2.2-py3-none-any.whl", hash = "sha256:198ca3874d772871cc6275af1d6d5e0794df618babd62b9e0911f8fd189dd196", size = 17213, upload-time = "2025-11-14T14:51:53.129Z" },
161
+ { url = "https://files.pythonhosted.org/packages/8f/08/c33b6d667483e5254458991b99d4e3173db4be1f3db956b422bd77c4396a/config_cli_gui-0.3.9-py3-none-any.whl", hash = "sha256:10d9c917419b423c2f6e5ecf10cab8d94de9186f5eba7f4a9ebb82279edbaeae", size = 28335, upload-time = "2026-10-02T13:50:12.942Z" },
160
162
  ]
161
163
 
162
164
  [[package]]
@@ -647,6 +649,37 @@ wheels = [
647
649
  { url = "https://files.pythonhosted.org/packages/55/26/d0ad8b448476d0a1e8d3ea5622dc77b916db84c6aa3cb1e1c0965af948fc/pefile-2023.2.7-py3-none-any.whl", hash = "sha256:da185cd2af68c08a6cd4481f7325ed600a88f6a813bad9dea07ab3ef73d8d8d6", size = 71791, upload-time = "2023-02-07T12:28:36.678Z" },
648
650
  ]
649
651
 
652
+ [[package]]
653
+ name = "pillow"
654
+ version = "12.3.0"
655
+ source = { registry = "https://pypi.org/simple" }
656
+ sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce", size = 47025035, upload-time = "2026-07-01T11:56:38.965Z" }
657
+ wheels = [
658
+ { url = "https://files.pythonhosted.org/packages/25/c2/669d88644cddb1485bd9534e63e8cf476c8e51cb3c3a1297677023505c0e/pillow-12.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:6c0016e7b354317c4e9e525b937ac8596c38d2d232b419529b9cd7a1cd46e39a", size = 5392418, upload-time = "2026-07-01T11:53:27.808Z" },
659
+ { url = "https://files.pythonhosted.org/packages/6b/ba/3762f376a2948e3036488d773a146e0ae6ecc2ca03ac20e2615bd0b2ba02/pillow-12.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:bcc33feacfaefce60c12fd500a277533bdc02b10a19f7f6d348763d8140bbba7", size = 4785287, upload-time = "2026-07-01T11:53:29.761Z" },
660
+ { url = "https://files.pythonhosted.org/packages/07/50/b5d688cc9c52d4482f3d5bcab6ce20bc2a74a85d2343841c907444a3be2c/pillow-12.3.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5594fc43d548a7ed94949d139aa1341b270f1863f11cfd37f5a6c8b778a6b67f", size = 6253754, upload-time = "2026-07-01T11:53:32.298Z" },
661
+ { url = "https://files.pythonhosted.org/packages/4e/89/36f4cd76cf4baf05c50ababb976249153f18c959171c7f6ba09a6f217260/pillow-12.3.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0606c8bf2cdefea14a43530f7657cbbb7ecf1c4222512492ef4a4434a9501ec", size = 6925605, upload-time = "2026-07-01T11:53:34.487Z" },
662
+ { url = "https://files.pythonhosted.org/packages/eb/c0/4de58cf6633b9e3a6061ef4be6fb91fc3c90b812ece886f531e3c523d777/pillow-12.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:85f998ea1848bc6757289e739cfbdda3a04adfd58b02fc018ce54d754a5ce468", size = 6327788, upload-time = "2026-07-01T11:53:36.433Z" },
663
+ { url = "https://files.pythonhosted.org/packages/87/3c/14d53682a19550dbbaf3b598f807d5457646c510805a44c7d7891cd1cd1a/pillow-12.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:25b9b82bb22e6e2b3cd07b39c68b7b862001226cb3dff7130d1cb914121b39ed", size = 7036288, upload-time = "2026-07-01T11:53:38.712Z" },
664
+ { url = "https://files.pythonhosted.org/packages/38/1d/36279e3c77efe034e4cc2b0393ee74ffdb5a62391dacbf9b916154f5f0b8/pillow-12.3.0-cp310-cp310-win32.whl", hash = "sha256:37dc8f7bbb66efe481bb60defacef820c950c24713fb44962ed6aa2a50966de1", size = 6472396, upload-time = "2026-07-01T11:53:40.781Z" },
665
+ { url = "https://files.pythonhosted.org/packages/48/7c/8fa0039574c476d7c6fa57dd7c32a130436877c6ec1e5ce1cc8ec44878c1/pillow-12.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:300557495eb45ebb8aec96c2da9c4be642fbf7cd937278b4013ba894ea8eb0eb", size = 7226887, upload-time = "2026-07-01T11:53:42.764Z" },
666
+ { url = "https://files.pythonhosted.org/packages/fa/17/e324be141d173c1c919428066c3259f21c1b8982e564e01a4a81e96dbdcf/pillow-12.3.0-cp310-cp310-win_arm64.whl", hash = "sha256:514435a37670e3e5e08f3945b68718b6ed329bb84367777e16f9f4dfe1e61a0f", size = 2568039, upload-time = "2026-07-01T11:53:45.372Z" },
667
+ { url = "https://files.pythonhosted.org/packages/fb/c8/0a78b0e02d7ac54bc03e5321c9220da52f0c2ea83b21f7c40e7f3169c502/pillow-12.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:00808c5e14ef63ac5161091d242999076604ff74b883423a11e5d7bbb38bf756", size = 5392415, upload-time = "2026-07-01T11:53:47.162Z" },
668
+ { url = "https://files.pythonhosted.org/packages/b2/5b/a02d30018abd97ced9f5a6c63d28597694a00d066516b9c1c6de45859fc9/pillow-12.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37d6d0a00072fd2948eb22bce7e1475f34569d90c87c59f7a2ec59541b77f7a6", size = 4785266, upload-time = "2026-07-01T11:53:49.079Z" },
669
+ { url = "https://files.pythonhosted.org/packages/c8/98/766667a4be768150a202836acd9fad19c06824ca86c4286d3cf6b274964e/pillow-12.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcb46e2f9feff8d06323983bd83ed00c201fdcab3d74973e7072a889b3979fcd", size = 6263814, upload-time = "2026-07-01T11:53:51.32Z" },
670
+ { url = "https://files.pythonhosted.org/packages/3b/2d/ede717bc1144f63886c21fd349bb95860b0d1a21149ff16f2bb362b612b6/pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23d27a3e0307ec2244cc51e7287b919aa68d097504ebe19df4e76a98a3eea5bd", size = 6934408, upload-time = "2026-07-01T11:53:53.487Z" },
671
+ { url = "https://files.pythonhosted.org/packages/a3/48/9c58b685e69d49c31af6c8eb9012055fab7e665785165c84796e2c73ce72/pillow-12.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4f883547d4b7f0495ebe7056b0cc2aea76094e7a4abc8e933540f3271df27d9c", size = 6337160, upload-time = "2026-07-01T11:53:55.457Z" },
672
+ { url = "https://files.pythonhosted.org/packages/ff/fa/dc2a5c0ba6df93f67c31d34b808b7ce440b40cdbf96f0b81cde1d1e6fa93/pillow-12.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:236ff70b9312fb68943c703aa842ca6a758abfa45ac187a5e7c1452e96ef72b5", size = 7045172, upload-time = "2026-07-01T11:53:57.736Z" },
673
+ { url = "https://files.pythonhosted.org/packages/86/a5/444817a4d4c4c2417df00513086ca196f388d8f9ef40c2e4ccd1ad1af54b/pillow-12.3.0-cp311-cp311-win32.whl", hash = "sha256:10e41f0fbf1eec8cfd234b8fe17a4caac7c9d0db4c204d3c173a8f9f6ef3232b", size = 6472232, upload-time = "2026-07-01T11:53:59.767Z" },
674
+ { url = "https://files.pythonhosted.org/packages/63/c6/4bad1b18d132a50b27e1365e1ab163616f7a5bb56d330f66f9d1d9d4f9d4/pillow-12.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e95e1385e4998ae9694eeaa4730ba5457ff61185b3a55e2e7bea0880aef452a", size = 7233653, upload-time = "2026-07-01T11:54:02.066Z" },
675
+ { url = "https://files.pythonhosted.org/packages/fd/16/00f91ab7760dc842f5aad55217e80fc4a7067a0604535249bc8a2d6d9870/pillow-12.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:ebaea975e03d3141d9d3a507df75c9b3ec90fa9d2ffd07567b3a978d9d790b26", size = 2568195, upload-time = "2026-07-01T11:54:04.622Z" },
676
+ { url = "https://files.pythonhosted.org/packages/75/18/2e8b40223153ccbc60df07f9e8928dc0c76202aa4e55ae9f53962b6510d6/pillow-12.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b3c777e849237620b022f7f297dd67705f9f5cf1685f09f02e46f93e92725468", size = 5302510, upload-time = "2026-07-01T11:56:25.736Z" },
677
+ { url = "https://files.pythonhosted.org/packages/46/3e/51fabf59d5ab801ceab709453d3ab6b180083496579549de4c45ced6528a/pillow-12.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b343699e8308bdc51978310e1c959c584e7869cc8c40780058c87da7781a1e94", size = 4736058, upload-time = "2026-07-01T11:56:28.041Z" },
678
+ { url = "https://files.pythonhosted.org/packages/bf/20/22fe9384b7949e25fb1293bcfc84fb82590ff4ea6b37c95b24d26d793d86/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbd139c8447d25dd750ab79ee274cc5e1fe80fc56340ab10b18a195e1b6eca3e", size = 5237776, upload-time = "2026-07-01T11:56:30.263Z" },
679
+ { url = "https://files.pythonhosted.org/packages/08/14/f6ba68107680ffa74b39985f3f30884e41318fbc4250caa423c79b4788bb/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7e480451b9fa137494bccd3a7d69adbe8ac65a87d97be61e11f1b1050a5bac3", size = 5860358, upload-time = "2026-07-01T11:56:32.68Z" },
680
+ { url = "https://files.pythonhosted.org/packages/36/54/0169bc772ec491108b62f644f8ecf1fe5d8ae5ebafde2ee2142210166903/pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a", size = 7231786, upload-time = "2026-07-01T11:56:35.046Z" },
681
+ ]
682
+
650
683
  [[package]]
651
684
  name = "platformdirs"
652
685
  version = "4.3.8"
@@ -900,7 +933,7 @@ dependencies = [
900
933
  { name = "srtm-py" },
901
934
  ]
902
935
 
903
- [package.optional-dependencies]
936
+ [package.dev-dependencies]
904
937
  dev = [
905
938
  { name = "black" },
906
939
  { name = "coverage" },
@@ -923,29 +956,34 @@ docs = [
923
956
 
924
957
  [package.metadata]
925
958
  requires-dist = [
926
- { name = "black", marker = "extra == 'dev'", specifier = ">=25.1.0" },
927
- { name = "config-cli-gui", specifier = ">=0.2.2" },
928
- { name = "coverage", marker = "extra == 'dev'", specifier = ">=7.8.2" },
959
+ { name = "config-cli-gui", specifier = ">=0.3.9" },
929
960
  { name = "fastkml", specifier = ">=1.1.0" },
930
- { name = "flake8", marker = "extra == 'dev'", specifier = ">=7.2.0" },
931
- { name = "gitchangelog", marker = "extra == 'dev'", specifier = ">=3.0.4" },
932
961
  { name = "gpxpy", specifier = ">=1.6.2" },
933
- { name = "isort", marker = "extra == 'dev'", specifier = ">=6.0.1" },
934
962
  { name = "lxml", specifier = ">=6.0.2" },
935
- { name = "mkdocs", marker = "extra == 'docs'", specifier = ">=1.6.1" },
936
- { name = "mkdocs-awesome-nav", marker = "extra == 'docs'", specifier = ">=2.6.1" },
937
- { name = "mypy", marker = "extra == 'dev'", specifier = ">=1.16.0" },
938
- { name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.2.0" },
939
- { name = "pygments", marker = "extra == 'docs'", specifier = ">=2.19.1" },
940
- { name = "pyinstaller", marker = "extra == 'dev'", specifier = ">=5.8" },
941
- { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4.0" },
942
- { name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=6.1.1" },
943
- { name = "pytest-mock", marker = "extra == 'dev'", specifier = ">=3.14.1" },
944
- { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.11.13" },
945
963
  { name = "shapely", specifier = ">=2.1.1" },
946
964
  { name = "srtm-py", specifier = ">=0.3.7" },
947
965
  ]
948
- provides-extras = ["dev", "docs"]
966
+
967
+ [package.metadata.requires-dev]
968
+ dev = [
969
+ { name = "black", specifier = ">=25.1.0" },
970
+ { name = "coverage", specifier = ">=7.8.2" },
971
+ { name = "flake8", specifier = ">=7.2.0" },
972
+ { name = "gitchangelog", specifier = ">=3.0.4" },
973
+ { name = "isort", specifier = ">=6.0.1" },
974
+ { name = "mypy", specifier = ">=1.16.0" },
975
+ { name = "pre-commit", specifier = ">=4.2.0" },
976
+ { name = "pyinstaller", specifier = ">=5.8" },
977
+ { name = "pytest", specifier = ">=8.4.0" },
978
+ { name = "pytest-cov", specifier = ">=6.1.1" },
979
+ { name = "pytest-mock", specifier = ">=3.14.1" },
980
+ { name = "ruff", specifier = ">=0.11.13" },
981
+ ]
982
+ docs = [
983
+ { name = "mkdocs", specifier = ">=1.6.1" },
984
+ { name = "mkdocs-awesome-nav", specifier = ">=2.6.1" },
985
+ { name = "pygments", specifier = ">=2.19.1" },
986
+ ]
949
987
 
950
988
  [[package]]
951
989
  name = "pywin32-ctypes"
@@ -1108,6 +1146,18 @@ wheels = [
1108
1146
  { url = "https://files.pythonhosted.org/packages/6e/c2/61d3e0f47e2b74ef40a68b9e6ad5984f6241a942f7cd3bbfbdbd03861ea9/tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc", size = 14257, upload-time = "2024-11-27T22:38:35.385Z" },
1109
1147
  ]
1110
1148
 
1149
+ [[package]]
1150
+ name = "ttkbootstrap"
1151
+ version = "2.2.3"
1152
+ source = { registry = "https://pypi.org/simple" }
1153
+ dependencies = [
1154
+ { name = "pillow" },
1155
+ ]
1156
+ sdist = { url = "https://files.pythonhosted.org/packages/7b/36/c90cc09fc6d5b33f8b8a0cbe6d83e1e58b3df743189777245e1f18eb055a/ttkbootstrap-2.2.3.tar.gz", hash = "sha256:31b71ca273e2cd2fc354f9f736498bb334209703aea22a0abc076b6231dcfc0f", size = 604551, upload-time = "2026-09-12T20:01:25.975Z" }
1157
+ wheels = [
1158
+ { url = "https://files.pythonhosted.org/packages/9e/cd/45eeaabad8d1a162fd300813da4be4669dd7b531ae14b24ee840e99bfbf3/ttkbootstrap-2.2.3-py3-none-any.whl", hash = "sha256:00db93ee9d064d2d7bcac2158ca2d852f2844277d0da0a526163077ca9623417", size = 553505, upload-time = "2026-09-12T20:01:21.517Z" },
1159
+ ]
1160
+
1111
1161
  [[package]]
1112
1162
  name = "types-python-dateutil"
1113
1163
  version = "2.9.0.20250516"
@@ -1,41 +0,0 @@
1
- app:
2
- # Date format to use | type=str, default=%Y-%m-%d
3
- date_format: '%Y-%m-%d'
4
- # Enable logging to console | type=bool, default=True
5
- enable_console_logging: true
6
- # Enable logging to file | type=bool, default=True
7
- enable_file_logging: true
8
- # Number of backup log files to keep | type=int, default=5
9
- log_backup_count: 5
10
- # Maximum log file size in MB before rotation | type=int, default=10
11
- log_file_max_size: 10
12
- # Log message format style | type=str, default=detailed
13
- log_format: detailed
14
- # Logging level for the application | type=str, default=INFO
15
- log_level: INFO
16
- # Maximum number of worker threads | type=int, default=4
17
- max_workers: 4
18
- cli:
19
- # Include elevation data in waypoints | type=bool, default=True [CLI]
20
- elevation: true
21
- # Extract starting points of each track as waypoint | type=bool, default=True [CLI]
22
- extract_waypoints: true
23
- # Path to input (file or folder) | type=str, default= [CLI]
24
- input: ''
25
- # Maximum distance between two waypoints | type=int, default=25 [CLI]
26
- min_dist: 25
27
- # Path to output destination | type=str, default= [CLI]
28
- output: ''
29
- gui:
30
- # Automatically scroll to the newest log entries | type=bool, default=True
31
- auto_scroll_log: true
32
- # Height of the log window in pixels | type=int, default=200
33
- log_window_height: 200
34
- # Maximum number of log lines to keep in GUI | type=int, default=1000
35
- max_log_lines: 1000
36
- # GUI theme setting | type=str, default=light
37
- theme: light
38
- # Default window height | type=int, default=600
39
- window_height: 600
40
- # Default window width | type=int, default=800
41
- window_width: 800
@@ -1,34 +0,0 @@
1
- # file generated by setuptools-scm
2
- # don't change, don't track in version control
3
-
4
- __all__ = [
5
- "__version__",
6
- "__version_tuple__",
7
- "version",
8
- "version_tuple",
9
- "__commit_id__",
10
- "commit_id",
11
- ]
12
-
13
- TYPE_CHECKING = False
14
- if TYPE_CHECKING:
15
- from typing import Tuple
16
- from typing import Union
17
-
18
- VERSION_TUPLE = Tuple[Union[int, str], ...]
19
- COMMIT_ID = Union[str, None]
20
- else:
21
- VERSION_TUPLE = object
22
- COMMIT_ID = object
23
-
24
- version: str
25
- __version__: str
26
- __version_tuple__: VERSION_TUPLE
27
- version_tuple: VERSION_TUPLE
28
- commit_id: COMMIT_ID
29
- __commit_id__: COMMIT_ID
30
-
31
- __version__ = version = '0.2.4'
32
- __version_tuple__ = version_tuple = (0, 2, 4)
33
-
34
- __commit_id__ = commit_id = 'gff1b8a26d'
@@ -1,25 +0,0 @@
1
- config-cli-gui>=0.2.2
2
- fastkml>=1.1.0
3
- gpxpy>=1.6.2
4
- lxml>=6.0.2
5
- shapely>=2.1.1
6
- srtm-py>=0.3.7
7
-
8
- [dev]
9
- pytest>=8.4.0
10
- pytest-mock>=3.14.1
11
- coverage>=7.8.2
12
- flake8>=7.2.0
13
- black>=25.1.0
14
- isort>=6.0.1
15
- pytest-cov>=6.1.1
16
- mypy>=1.16.0
17
- gitchangelog>=3.0.4
18
- pyinstaller>=5.8
19
- pre-commit>=4.2.0
20
- ruff>=0.11.13
21
-
22
- [docs]
23
- mkdocs>=1.6.1
24
- mkdocs-awesome-nav>=2.6.1
25
- pygments>=2.19.1