oe-python-template-example 0.2.13__tar.gz → 0.2.15__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_example-0.2.13 → oe_python_template_example-0.2.15}/PKG-INFO +4 -4
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/pyproject.toml +18 -10
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/src/oe_python_template_example/cli.py +10 -6
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/src/oe_python_template_example/service.py +1 -2
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/.gitignore +0 -0
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/LICENSE +0 -0
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/README.md +0 -0
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/src/oe_python_template_example/__init__.py +0 -0
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/src/oe_python_template_example/api.py +0 -0
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/src/oe_python_template_example/constants.py +0 -0
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/src/oe_python_template_example/models.py +0 -0
- {oe_python_template_example-0.2.13 → oe_python_template_example-0.2.15}/src/oe_python_template_example/settings.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: oe-python-template-example
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.15
|
4
4
|
Summary: 🧠 Example project scaffolded and kept up to date with OE Python Template (oe-python-template).
|
5
5
|
Project-URL: Homepage, https://oe-python-template-example.readthedocs.io/en/latest/
|
6
6
|
Project-URL: Documentation, https://oe-python-template-example.readthedocs.io/en/latest/
|
@@ -50,13 +50,13 @@ Classifier: Typing :: Typed
|
|
50
50
|
Requires-Python: <4.0,>=3.11
|
51
51
|
Requires-Dist: fastapi[all,standard]>=0.115.12
|
52
52
|
Requires-Dist: pydantic-settings>=2.8.1
|
53
|
-
Requires-Dist: pydantic>=2.
|
53
|
+
Requires-Dist: pydantic>=2.11.1
|
54
54
|
Requires-Dist: typer>=0.15.1
|
55
55
|
Provides-Extra: examples
|
56
56
|
Requires-Dist: jinja2>=3.1.6; extra == 'examples'
|
57
57
|
Requires-Dist: jupyter>=1.1.1; extra == 'examples'
|
58
|
-
Requires-Dist: marimo>=0.
|
59
|
-
Requires-Dist: streamlit>=1.44.
|
58
|
+
Requires-Dist: marimo>=0.12.2; extra == 'examples'
|
59
|
+
Requires-Dist: streamlit>=1.44.1; extra == 'examples'
|
60
60
|
Description-Content-Type: text/markdown
|
61
61
|
|
62
62
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "oe-python-template-example"
|
3
|
-
version = "0.2.
|
3
|
+
version = "0.2.15"
|
4
4
|
description = "🧠 Example project scaffolded and kept up to date with OE Python Template (oe-python-template)."
|
5
5
|
readme = "README.md"
|
6
6
|
authors = [
|
@@ -62,10 +62,13 @@ classifiers = [
|
|
62
62
|
requires-python = ">=3.11, <4.0"
|
63
63
|
|
64
64
|
dependencies = [
|
65
|
+
# From Template
|
65
66
|
"fastapi[standard,all]>=0.115.12",
|
66
|
-
"pydantic>=2.
|
67
|
+
"pydantic>=2.11.1",
|
67
68
|
"pydantic-settings>=2.8.1",
|
68
69
|
"typer>=0.15.1",
|
70
|
+
# Custom
|
71
|
+
# Nothing yet
|
69
72
|
]
|
70
73
|
|
71
74
|
[project.scripts]
|
@@ -90,8 +93,8 @@ packages = ["src/oe_python_template_example"]
|
|
90
93
|
|
91
94
|
[project.optional-dependencies]
|
92
95
|
examples = [
|
93
|
-
"streamlit>=1.44.
|
94
|
-
"marimo>=0.
|
96
|
+
"streamlit>=1.44.1",
|
97
|
+
"marimo>=0.12.2",
|
95
98
|
"jupyter>=1.1.1",
|
96
99
|
"jinja2>=3.1.6",
|
97
100
|
]
|
@@ -114,11 +117,12 @@ dev = [
|
|
114
117
|
"pyright>=1.1.398",
|
115
118
|
"pytest>=8.3.5",
|
116
119
|
"pytest-asyncio>=0.26.0",
|
117
|
-
"pytest-cov>=6.
|
120
|
+
"pytest-cov>=6.1.0",
|
118
121
|
"pytest-docker>=3.2.0",
|
119
122
|
"pytest-env>=1.1.5",
|
120
123
|
"pytest-regressions>=2.7.0",
|
121
124
|
"pytest-subprocess>=1.5.3",
|
125
|
+
"pytest-timeout>=2.3.1",
|
122
126
|
"pytest-xdist[psutil]>=3.6.1",
|
123
127
|
"ruff>=0.11.2",
|
124
128
|
"sphinx>=8.2.3",
|
@@ -132,7 +136,7 @@ dev = [
|
|
132
136
|
"sphinxext.opengraph>=0.9.1",
|
133
137
|
"swagger-plugin-for-sphinx>=5.1.0",
|
134
138
|
"tomli>=2.1.0",
|
135
|
-
"types-pyyaml>=6.0.12.
|
139
|
+
"types-pyyaml>=6.0.12.20250402",
|
136
140
|
"watchdog>=6.0.0",
|
137
141
|
]
|
138
142
|
|
@@ -229,22 +233,26 @@ warn_required_dynamic_aliases = true
|
|
229
233
|
warn_untyped_fields = true
|
230
234
|
|
231
235
|
[tool.pytest.ini_options]
|
232
|
-
addopts = "-v --cov=oe_python_template_example --cov-report=term-missing --cov-report=xml:reports/coverage.xml --cov-report=html:reports/coverage_html"
|
236
|
+
addopts = "-v --strict-markers --cov=oe_python_template_example --cov-report=term-missing --cov-report=xml:reports/coverage.xml --cov-report=html:reports/coverage_html"
|
233
237
|
testpaths = ["tests"]
|
234
238
|
python_files = ["*_test.py"]
|
235
239
|
asyncio_mode = "auto"
|
236
240
|
asyncio_default_fixture_loop_scope = "function"
|
237
241
|
env = ["COVERAGE_FILE=.coverage", "COVERAGE_PROCESS_START=pyproject.toml"]
|
238
242
|
markers = [
|
239
|
-
|
243
|
+
# From Template
|
240
244
|
"no_extras: tests that do require no extras installed",
|
245
|
+
"scheduled: tests to run on a schedule",
|
246
|
+
"sequential: exclude from parallel test execution",
|
247
|
+
# Custom
|
248
|
+
# Nothing yet
|
241
249
|
]
|
242
250
|
|
243
251
|
[tool.coverage.run]
|
244
252
|
sigterm = true
|
245
253
|
relative_files = true
|
246
254
|
source = ["src"]
|
247
|
-
omit = [
|
255
|
+
omit = []
|
248
256
|
branch = true
|
249
257
|
parallel = true
|
250
258
|
concurrency = ["thread", "multiprocessing"]
|
@@ -254,7 +262,7 @@ source = ["src/"]
|
|
254
262
|
|
255
263
|
|
256
264
|
[tool.bumpversion]
|
257
|
-
current_version = "0.2.
|
265
|
+
current_version = "0.2.15"
|
258
266
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
259
267
|
serialize = ["{major}.{minor}.{patch}"]
|
260
268
|
search = "{current_version}"
|
@@ -1,7 +1,9 @@
|
|
1
1
|
"""CLI (Command Line Interface) of OE Python Template Example."""
|
2
2
|
|
3
3
|
import os
|
4
|
+
import sys
|
4
5
|
from enum import StrEnum
|
6
|
+
from pathlib import Path
|
5
7
|
from typing import Annotated
|
6
8
|
|
7
9
|
import typer
|
@@ -12,7 +14,7 @@ from rich.console import Console
|
|
12
14
|
from . import Service, Utterance, __version__
|
13
15
|
from .api import api_v1, api_v2
|
14
16
|
|
15
|
-
cli = typer.Typer(
|
17
|
+
cli = typer.Typer(help="Command Line Interface of OE Python Template Example")
|
16
18
|
_service = Service()
|
17
19
|
_console = Console()
|
18
20
|
|
@@ -125,15 +127,17 @@ def openapi(
|
|
125
127
|
case OutputFormat.JSON:
|
126
128
|
_console.print_json(data=schema)
|
127
129
|
case OutputFormat.YAML:
|
128
|
-
_console.print(yaml.dump(schema, default_flow_style=False), end="")
|
130
|
+
_console.print(yaml.dump(schema, width=80, default_flow_style=False), end="")
|
129
131
|
|
130
132
|
|
131
133
|
def _apply_cli_settings(cli: typer.Typer, epilog: str) -> None:
|
132
|
-
"""
|
133
|
-
cli.info.epilog = epilog
|
134
|
+
"""Configure default behavior and add epilog to all typers in the tree."""
|
134
135
|
cli.info.no_args_is_help = True
|
135
|
-
|
136
|
-
|
136
|
+
|
137
|
+
if not any(arg.endswith("typer") for arg in Path(sys.argv[0]).parts):
|
138
|
+
cli.info.epilog = epilog
|
139
|
+
for command in cli.registered_commands:
|
140
|
+
command.epilog = cli.info.epilog
|
137
141
|
|
138
142
|
|
139
143
|
_apply_cli_settings(
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|