oe-python-template-example 0.4.2__tar.gz → 0.4.3__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.4.2 → oe_python_template_example-0.4.3}/PKG-INFO +5 -5
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/README.md +2 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/pyproject.toml +6 -6
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/cli.py +1 -1
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/hello/_gui.py +11 -7
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/system/_service.py +1 -0
- oe_python_template_example-0.4.3/src/oe_python_template_example/utils/.vendored/bottle.py +4563 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/boot.py +6 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/.gitignore +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/LICENSE +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/__init__.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/api.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/constants.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/hello/__init__.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/hello/_api.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/hello/_cli.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/hello/_constants.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/hello/_models.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/hello/_service.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/hello/_settings.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/system/__init__.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/system/_api.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/system/_cli.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/system/_gui.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/system/_settings.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/__init__.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_api.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_cli.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_console.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_constants.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_di.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_gui.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_health.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_log.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_logfire.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_notebook.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_process.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_sentry.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_service.py +0 -0
- {oe_python_template_example-0.4.2 → oe_python_template_example-0.4.3}/src/oe_python_template_example/utils/_settings.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: oe-python-template-example
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.3
|
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,6 +50,7 @@ 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: logfire[system-metrics]>=3.13.1
|
53
|
+
Requires-Dist: nicegui[native]>=2.15.0
|
53
54
|
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.53b0
|
54
55
|
Requires-Dist: opentelemetry-instrumentation-httpx>=0.53b0
|
55
56
|
Requires-Dist: opentelemetry-instrumentation-jinja2>=0.53b0
|
@@ -60,17 +61,14 @@ Requires-Dist: opentelemetry-instrumentation-urllib3>=0.53b0
|
|
60
61
|
Requires-Dist: opentelemetry-instrumentation-urllib>=0.53b0
|
61
62
|
Requires-Dist: psutil>=7.0.0
|
62
63
|
Requires-Dist: pydantic-settings>=2.9.1
|
63
|
-
Requires-Dist: pydantic>=2.11.3
|
64
64
|
Requires-Dist: sentry-sdk>=2.26.1
|
65
65
|
Requires-Dist: typer>=0.15.1
|
66
66
|
Requires-Dist: uptime>=3.0.1
|
67
|
-
Provides-Extra: app
|
68
|
-
Requires-Dist: nicegui>=2.15.0; extra == 'app'
|
69
|
-
Requires-Dist: pywebview>=5.4; extra == 'app'
|
70
67
|
Provides-Extra: examples
|
71
68
|
Requires-Dist: jinja2>=3.1.6; extra == 'examples'
|
72
69
|
Requires-Dist: jupyter>=1.1.1; extra == 'examples'
|
73
70
|
Requires-Dist: marimo>=0.13.0; extra == 'examples'
|
71
|
+
Requires-Dist: matplotlib>=3.10.1; extra == 'examples'
|
74
72
|
Requires-Dist: streamlit>=1.44.1; extra == 'examples'
|
75
73
|
Description-Content-Type: text/markdown
|
76
74
|
|
@@ -253,6 +251,7 @@ Executing the command line interface (CLI) in an isolated Python environment is
|
|
253
251
|
uvx oe-python-template-example hello world # prints "Hello, world! [..]"
|
254
252
|
uvx oe-python-template-example hello echo "Lorem Ipsum" # echos "Lorem Ipsum"
|
255
253
|
uvx oe-python-template-example gui # opens the graphical user interface (GUI)
|
254
|
+
uvx --with "oe-python-template-example[examples]" oe-python-template-example gui # opens the graphical user interface (GUI) with support for scientific computing
|
256
255
|
uvx oe-python-template-example system serve # serves web API
|
257
256
|
uvx oe-python-template-example system serve --port=4711 # serves web API on port 4711
|
258
257
|
uvx oe-python-template-example system openapi # serves web API on port 4711
|
@@ -401,6 +400,7 @@ uvx oe-python-template-example hello echo --help
|
|
401
400
|
uvx oe-python-template-example hello echo "Lorem"
|
402
401
|
uvx oe-python-template-example hello echo "Lorem" --json
|
403
402
|
uvx oe-python-template-example gui
|
403
|
+
uvx --with "oe-python-template-example[examples]" oe-python-template-example gui # opens the graphical user interface (GUI) with support for scientific computing
|
404
404
|
uvx oe-python-template-example system info
|
405
405
|
uvx oe-python-template-example system health
|
406
406
|
uvx oe-python-template-example system openapi
|
@@ -177,6 +177,7 @@ Executing the command line interface (CLI) in an isolated Python environment is
|
|
177
177
|
uvx oe-python-template-example hello world # prints "Hello, world! [..]"
|
178
178
|
uvx oe-python-template-example hello echo "Lorem Ipsum" # echos "Lorem Ipsum"
|
179
179
|
uvx oe-python-template-example gui # opens the graphical user interface (GUI)
|
180
|
+
uvx --with "oe-python-template-example[examples]" oe-python-template-example gui # opens the graphical user interface (GUI) with support for scientific computing
|
180
181
|
uvx oe-python-template-example system serve # serves web API
|
181
182
|
uvx oe-python-template-example system serve --port=4711 # serves web API on port 4711
|
182
183
|
uvx oe-python-template-example system openapi # serves web API on port 4711
|
@@ -325,6 +326,7 @@ uvx oe-python-template-example hello echo --help
|
|
325
326
|
uvx oe-python-template-example hello echo "Lorem"
|
326
327
|
uvx oe-python-template-example hello echo "Lorem" --json
|
327
328
|
uvx oe-python-template-example gui
|
329
|
+
uvx --with "oe-python-template-example[examples]" oe-python-template-example gui # opens the graphical user interface (GUI) with support for scientific computing
|
328
330
|
uvx oe-python-template-example system info
|
329
331
|
uvx oe-python-template-example system health
|
330
332
|
uvx oe-python-template-example system openapi
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "oe-python-template-example"
|
3
|
-
version = "0.4.
|
3
|
+
version = "0.4.3"
|
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 = [
|
@@ -65,6 +65,7 @@ dependencies = [
|
|
65
65
|
# From Template
|
66
66
|
"fastapi[standard,all]>=0.115.12",
|
67
67
|
"logfire[system-metrics]>=3.13.1",
|
68
|
+
"nicegui[native]>=2.15.0",
|
68
69
|
"opentelemetry-instrumentation-fastapi>=0.53b0",
|
69
70
|
"opentelemetry-instrumentation-httpx>=0.53b0",
|
70
71
|
"opentelemetry-instrumentation-jinja2>=0.53b0",
|
@@ -74,7 +75,6 @@ dependencies = [
|
|
74
75
|
"opentelemetry-instrumentation-urllib>=0.53b0",
|
75
76
|
"opentelemetry-instrumentation-urllib3>=0.53b0",
|
76
77
|
"psutil>=7.0.0",
|
77
|
-
"pydantic>=2.11.3",
|
78
78
|
"pydantic-settings>=2.9.1",
|
79
79
|
"sentry-sdk>=2.26.1",
|
80
80
|
"typer>=0.15.1",
|
@@ -89,8 +89,8 @@ examples = [
|
|
89
89
|
"marimo>=0.13.0",
|
90
90
|
"jupyter>=1.1.1",
|
91
91
|
"jinja2>=3.1.6",
|
92
|
+
"matplotlib>=3.10.1",
|
92
93
|
]
|
93
|
-
app = ["nicegui>=2.15.0", "pywebview>=5.4"]
|
94
94
|
|
95
95
|
[dependency-groups]
|
96
96
|
dev = [
|
@@ -161,13 +161,12 @@ override-dependencies = [ # https://github.com/astral-sh/uv/issues/4422
|
|
161
161
|
"rfc3987; sys_platform == 'never'", # GPLv3
|
162
162
|
]
|
163
163
|
|
164
|
-
|
165
164
|
[tool.ruff]
|
166
165
|
target-version = "py311"
|
167
166
|
preview = true
|
168
167
|
fix = true
|
169
168
|
line-length = 120
|
170
|
-
extend-exclude = [".fixme", "notebook.py", "template/*.py"]
|
169
|
+
extend-exclude = [".fixme", "notebook.py", "template/*.py", "bottle.py"]
|
171
170
|
|
172
171
|
[tool.ruff.lint]
|
173
172
|
select = ["ALL"]
|
@@ -230,6 +229,7 @@ docstring-code-format = true
|
|
230
229
|
convention = "google"
|
231
230
|
|
232
231
|
[tool.mypy] # https://mypy.readthedocs.io/en/latest/config_file.html
|
232
|
+
exclude = ["bottle.py"]
|
233
233
|
junit_xml = "reports/mypy_junit.xml"
|
234
234
|
plugins = "pydantic.mypy"
|
235
235
|
strict = true
|
@@ -281,7 +281,7 @@ source = ["src/"]
|
|
281
281
|
|
282
282
|
|
283
283
|
[tool.bumpversion]
|
284
|
-
current_version = "0.4.
|
284
|
+
current_version = "0.4.3"
|
285
285
|
parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
|
286
286
|
serialize = ["{major}.{minor}.{patch}"]
|
287
287
|
search = "{current_version}"
|
@@ -15,7 +15,7 @@ cli = typer.Typer(help="Command Line Interface of OE Python Template Example")
|
|
15
15
|
prepare_cli(cli, f"🧠 OE Python Template Example v{__version__} - built with love in Berlin 🐻")
|
16
16
|
|
17
17
|
|
18
|
-
if find_spec("nicegui"):
|
18
|
+
if find_spec("nicegui") and find_spec("webview"):
|
19
19
|
|
20
20
|
@cli.command()
|
21
21
|
def gui() -> None:
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
from pathlib import Path
|
4
4
|
|
5
|
-
import numpy as np
|
6
5
|
from nicegui import ui
|
7
6
|
|
8
7
|
from oe_python_template_example.utils import BasePageBuilder, GUILocalFilePicker
|
@@ -30,11 +29,16 @@ class PageBuilder(BasePageBuilder):
|
|
30
29
|
"BUTTON_CLICK_ME"
|
31
30
|
)
|
32
31
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
32
|
+
from importlib.util import find_spec # noqa: PLC0415
|
33
|
+
|
34
|
+
if find_spec("matplotlib") and find_spec("numpy"):
|
35
|
+
import numpy as np # noqa: PLC0415
|
36
|
+
|
37
|
+
with ui.card().tight().mark("CARD_PLOT"): # noqa: SIM117
|
38
|
+
with ui.matplotlib(figsize=(4, 3)).figure as fig:
|
39
|
+
x = np.linspace(0.0, 5.0)
|
40
|
+
y = np.cos(2 * np.pi * x) * np.exp(-x)
|
41
|
+
ax = fig.gca()
|
42
|
+
ax.plot(x, y, "-")
|
39
43
|
|
40
44
|
ui.link("Info", "/info").mark("LINK_INFO")
|
@@ -108,6 +108,7 @@ class Service(BaseService):
|
|
108
108
|
"version": platform.python_version(),
|
109
109
|
"compiler": platform.python_compiler(),
|
110
110
|
"implementation": platform.python_implementation(),
|
111
|
+
"sys.path": sys.path,
|
111
112
|
},
|
112
113
|
"interpreter_path": sys.executable,
|
113
114
|
"command_line": " ".join(sys.argv),
|