oe-python-template 0.13.7__tar.gz → 0.13.8__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.
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/PKG-INFO +20 -16
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/README.md +19 -15
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/pyproject.toml +2 -2
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/.gitignore +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/LICENSE +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/__init__.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/api.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/cli.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/constants.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/__init__.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_api.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_cli.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_constants.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_gui.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_models.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_service.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_settings.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/__init__.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_api.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_cli.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_gui.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_service.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_settings.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/.vendored/bottle.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/__init__.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_api.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_cli.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_console.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_constants.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_di.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_gui.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_health.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_log.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_logfire.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_notebook.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_process.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_sentry.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_service.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_settings.py +0 -0
- {oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/boot.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: oe-python-template
|
3
|
-
Version: 0.13.
|
3
|
+
Version: 0.13.8
|
4
4
|
Summary: 🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling.
|
5
5
|
Project-URL: Homepage, https://oe-python-template.readthedocs.io/en/latest/
|
6
6
|
Project-URL: Documentation, https://oe-python-template.readthedocs.io/en/latest/
|
@@ -152,35 +152,39 @@ Projects generated with this template come with a comprehensive development tool
|
|
152
152
|
20. Documentation including dynamic badges, setup instructions, contribution guide and security policy
|
153
153
|
21. Interactive OpenAPI specification with [Swagger](https://swagger.io/)
|
154
154
|
22. Python package published to [PyPI](https://pypi.org/)
|
155
|
-
23. Multi-stage build of fat and slim (no
|
156
|
-
24.
|
155
|
+
23. Multi-stage build of fat (all extras) and slim (no extras) multi-arch (arm64 and amd64) Docker images, running non-root within immutable container
|
156
|
+
24. Docker images published to [Docker.io](https://hub.docker.com/) and [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) with [artifact attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds)
|
157
157
|
25. One-click development environments with [Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) and [GitHub Codespaces](https://github.com/features/codespaces)
|
158
158
|
26. Settings for use with [VSCode](https://code.visualstudio.com/)
|
159
159
|
27. Settings and custom instructions for use with [GitHub Copilot](https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot)
|
160
160
|
28. API deployed as serverless function to [Vercel](https://vercel.com/) (optional)
|
161
161
|
|
162
|
-
### Application Features
|
162
|
+
### Multi-head Application Features
|
163
163
|
|
164
|
-
Beyond development tooling, projects generated with this template include the code, documentation, and configuration of a fully functioning
|
164
|
+
Beyond development tooling, projects generated with this template include the code, documentation, and configuration of a fully functioning service and multi-head application. This reference implementation serves as a starting point for your own business logic with modern patterns and enterprise practices already in place:
|
165
165
|
|
166
166
|
1. Usable as library with "Hello" module exposing a simple service that can say "Hello, world!" and echo utterances.
|
167
|
-
2.
|
168
|
-
|
169
|
-
3. Comfortable command-line interface (CLI) with
|
170
|
-
[Typer](https://typer.tiangolo.com/)
|
167
|
+
2. Comfortable command-line interface (CLI) with [Typer](https://typer.tiangolo.com/)
|
168
|
+
3. Versioned webservice API with [FastAPI](https://fastapi.tiangolo.com/)
|
171
169
|
4. Cross-platform Graphical User Interface (GUI) with
|
172
|
-
[NiceGUI](https://nicegui.io/) running in native window
|
170
|
+
[NiceGUI](https://nicegui.io/) running in a browser or native window
|
173
171
|
5. [Interactive Jupyter notebook](https://jupyter.org/) and [reactive Marimo notebook](https://marimo.io/)
|
174
172
|
6. Simple Web UI with [Streamlit](https://streamlit.io/)
|
175
|
-
7.
|
176
|
-
8.
|
177
|
-
9.
|
178
|
-
10.
|
179
|
-
11.
|
173
|
+
7. Modular architecture auto-discovers and registers services, CLI commands, API routes and GUI pages exposed by domain modules
|
174
|
+
8. Validation and settings management with [pydantic](https://docs.pydantic.dev/)
|
175
|
+
9. System module providing aggregate health and info to the runtime, compiled settings, and further info provided by domain modules
|
176
|
+
10. Health and Info available via command, webservice API (info passsword protected) and GUI
|
177
|
+
11. Flexible logging and instrumentation, including support for [Sentry](https://sentry.io/) and [Logfire](https://logfire.dev/)
|
180
178
|
12. Hello service demonstrates use of custom real time metrics collected via Logfire
|
181
179
|
13. Configuration to run the CLI and API in a Docker container including setup for [Docker Compose](https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-docker-compose/)
|
182
180
|
|
183
|
-
Explore [here](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example) for what's generated out of the box.
|
181
|
+
Explore [here](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example) for what's generated out of the box. While this template comes with multiple application interfaces ("heads") - Library, CLI, API, GUI, notebooks, and Streamlit; running native and within Docker - they're included to demonstrate capabilities and provide implementation patterns. You're expected to use this as a foundation, keeping only the interfaces relevant to your project's requirements. The modular architecture makes it easy to:
|
182
|
+
|
183
|
+
1. Remove unnecessary interfaces to simplify your codebase
|
184
|
+
2. Adapt existing interfaces to your specific use cases
|
185
|
+
3. Focus on your core business logic without reimplementing infrastructure
|
186
|
+
4. Add new interfaces while leveraging the existing patterns
|
187
|
+
|
184
188
|
|
185
189
|
## Generate a new project
|
186
190
|
|
@@ -78,35 +78,39 @@ Projects generated with this template come with a comprehensive development tool
|
|
78
78
|
20. Documentation including dynamic badges, setup instructions, contribution guide and security policy
|
79
79
|
21. Interactive OpenAPI specification with [Swagger](https://swagger.io/)
|
80
80
|
22. Python package published to [PyPI](https://pypi.org/)
|
81
|
-
23. Multi-stage build of fat and slim (no
|
82
|
-
24.
|
81
|
+
23. Multi-stage build of fat (all extras) and slim (no extras) multi-arch (arm64 and amd64) Docker images, running non-root within immutable container
|
82
|
+
24. Docker images published to [Docker.io](https://hub.docker.com/) and [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry) with [artifact attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds)
|
83
83
|
25. One-click development environments with [Dev Containers](https://code.visualstudio.com/docs/devcontainers/containers) and [GitHub Codespaces](https://github.com/features/codespaces)
|
84
84
|
26. Settings for use with [VSCode](https://code.visualstudio.com/)
|
85
85
|
27. Settings and custom instructions for use with [GitHub Copilot](https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot)
|
86
86
|
28. API deployed as serverless function to [Vercel](https://vercel.com/) (optional)
|
87
87
|
|
88
|
-
### Application Features
|
88
|
+
### Multi-head Application Features
|
89
89
|
|
90
|
-
Beyond development tooling, projects generated with this template include the code, documentation, and configuration of a fully functioning
|
90
|
+
Beyond development tooling, projects generated with this template include the code, documentation, and configuration of a fully functioning service and multi-head application. This reference implementation serves as a starting point for your own business logic with modern patterns and enterprise practices already in place:
|
91
91
|
|
92
92
|
1. Usable as library with "Hello" module exposing a simple service that can say "Hello, world!" and echo utterances.
|
93
|
-
2.
|
94
|
-
|
95
|
-
3. Comfortable command-line interface (CLI) with
|
96
|
-
[Typer](https://typer.tiangolo.com/)
|
93
|
+
2. Comfortable command-line interface (CLI) with [Typer](https://typer.tiangolo.com/)
|
94
|
+
3. Versioned webservice API with [FastAPI](https://fastapi.tiangolo.com/)
|
97
95
|
4. Cross-platform Graphical User Interface (GUI) with
|
98
|
-
[NiceGUI](https://nicegui.io/) running in native window
|
96
|
+
[NiceGUI](https://nicegui.io/) running in a browser or native window
|
99
97
|
5. [Interactive Jupyter notebook](https://jupyter.org/) and [reactive Marimo notebook](https://marimo.io/)
|
100
98
|
6. Simple Web UI with [Streamlit](https://streamlit.io/)
|
101
|
-
7.
|
102
|
-
8.
|
103
|
-
9.
|
104
|
-
10.
|
105
|
-
11.
|
99
|
+
7. Modular architecture auto-discovers and registers services, CLI commands, API routes and GUI pages exposed by domain modules
|
100
|
+
8. Validation and settings management with [pydantic](https://docs.pydantic.dev/)
|
101
|
+
9. System module providing aggregate health and info to the runtime, compiled settings, and further info provided by domain modules
|
102
|
+
10. Health and Info available via command, webservice API (info passsword protected) and GUI
|
103
|
+
11. Flexible logging and instrumentation, including support for [Sentry](https://sentry.io/) and [Logfire](https://logfire.dev/)
|
106
104
|
12. Hello service demonstrates use of custom real time metrics collected via Logfire
|
107
105
|
13. Configuration to run the CLI and API in a Docker container including setup for [Docker Compose](https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-docker-compose/)
|
108
106
|
|
109
|
-
Explore [here](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example) for what's generated out of the box.
|
107
|
+
Explore [here](https://github.com/helmut-hoffer-von-ankershoffen/oe-python-template-example) for what's generated out of the box. While this template comes with multiple application interfaces ("heads") - Library, CLI, API, GUI, notebooks, and Streamlit; running native and within Docker - they're included to demonstrate capabilities and provide implementation patterns. You're expected to use this as a foundation, keeping only the interfaces relevant to your project's requirements. The modular architecture makes it easy to:
|
108
|
+
|
109
|
+
1. Remove unnecessary interfaces to simplify your codebase
|
110
|
+
2. Adapt existing interfaces to your specific use cases
|
111
|
+
3. Focus on your core business logic without reimplementing infrastructure
|
112
|
+
4. Add new interfaces while leveraging the existing patterns
|
113
|
+
|
110
114
|
|
111
115
|
## Generate a new project
|
112
116
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "oe-python-template"
|
3
|
-
version = "0.13.
|
3
|
+
version = "0.13.8"
|
4
4
|
description = "🧠 Copier template to scaffold Python projects compliant with best practices and modern tooling."
|
5
5
|
readme = "README.md"
|
6
6
|
authors = [{ name = "Helmut Hoffer von Ankershoffen", email = "helmuthva@gmail.com" }]
|
@@ -279,7 +279,7 @@ source = ["src/"]
|
|
279
279
|
|
280
280
|
|
281
281
|
[tool.bumpversion]
|
282
|
-
current_version = "0.13.
|
282
|
+
current_version = "0.13.8"
|
283
283
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
284
284
|
serialize = ["{major}.{minor}.{patch}"]
|
285
285
|
search = "{current_version}"
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/__init__.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_api.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_cli.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_constants.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_gui.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_models.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_service.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/hello/_settings.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/__init__.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_api.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_cli.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_gui.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_service.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/system/_settings.py
RENAMED
File without changes
|
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/__init__.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_api.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_cli.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_console.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_constants.py
RENAMED
File without changes
|
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_gui.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_health.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_log.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_logfire.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_notebook.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_process.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_sentry.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_service.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/_settings.py
RENAMED
File without changes
|
{oe_python_template-0.13.7 → oe_python_template-0.13.8}/src/oe_python_template/utils/boot.py
RENAMED
File without changes
|