oe-python-template 0.13.6__py3-none-any.whl → 0.13.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oe_python_template-0.13.6.dist-info → oe_python_template-0.13.8.dist-info}/METADATA +20 -19
- {oe_python_template-0.13.6.dist-info → oe_python_template-0.13.8.dist-info}/RECORD +5 -5
- {oe_python_template-0.13.6.dist-info → oe_python_template-0.13.8.dist-info}/WHEEL +0 -0
- {oe_python_template-0.13.6.dist-info → oe_python_template-0.13.8.dist-info}/entry_points.txt +0 -0
- {oe_python_template-0.13.6.dist-info → oe_python_template-0.13.8.dist-info}/licenses/LICENSE +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
|
|
@@ -303,15 +307,12 @@ The following examples run from source - clone this repository using
|
|
303
307
|
```python
|
304
308
|
"""Example script demonstrating the usage of the service provided by OE Python Template."""
|
305
309
|
|
306
|
-
from dotenv import load_dotenv
|
307
310
|
from rich.console import Console
|
308
311
|
|
309
312
|
from oe_python_template.hello import Service
|
310
313
|
|
311
314
|
console = Console()
|
312
315
|
|
313
|
-
load_dotenv()
|
314
|
-
|
315
316
|
message = Service.get_hello_world()
|
316
317
|
console.print(f"[blue]{message}[/blue]")
|
317
318
|
```
|
@@ -33,8 +33,8 @@ oe_python_template/utils/_service.py,sha256=atHAejvBucKXjzhsMSdOBBFa7rRD74zcV70P
|
|
33
33
|
oe_python_template/utils/_settings.py,sha256=owFoaHEzJnVD3EVyOWF4rfIY7g6eLnU6rN0m4VHhCbA,2464
|
34
34
|
oe_python_template/utils/boot.py,sha256=Qgq1sjT8d3fcfibnMyx5CVUJ_KKXgFI3ozZUIJbhh4I,2921
|
35
35
|
oe_python_template/utils/.vendored/bottle.py,sha256=kZAZmh3nRzCUf-9IKGpv0yqlMciZMA_DNaaMDdcQmt0,175437
|
36
|
-
oe_python_template-0.13.
|
37
|
-
oe_python_template-0.13.
|
38
|
-
oe_python_template-0.13.
|
39
|
-
oe_python_template-0.13.
|
40
|
-
oe_python_template-0.13.
|
36
|
+
oe_python_template-0.13.8.dist-info/METADATA,sha256=rD7m7LBpMx75o-h6NhIpV_LInlHeqcry7SLvpG5g1o0,34475
|
37
|
+
oe_python_template-0.13.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
38
|
+
oe_python_template-0.13.8.dist-info/entry_points.txt,sha256=IroSSWhLGxus9rxcashkYQda39TTvf7LbUMYtOKXUBE,66
|
39
|
+
oe_python_template-0.13.8.dist-info/licenses/LICENSE,sha256=5H409K6xzz9U5eUaoAHQExNkoWJRlU0LEj6wL2QJ34s,1113
|
40
|
+
oe_python_template-0.13.8.dist-info/RECORD,,
|
File without changes
|
{oe_python_template-0.13.6.dist-info → oe_python_template-0.13.8.dist-info}/entry_points.txt
RENAMED
File without changes
|
{oe_python_template-0.13.6.dist-info → oe_python_template-0.13.8.dist-info}/licenses/LICENSE
RENAMED
File without changes
|