oe-python-template 0.14.1__py3-none-any.whl → 0.14.2__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/utils/__init__.py +2 -0
- oe_python_template/utils/_constants.py +8 -0
- oe_python_template/utils/_log.py +6 -3
- {oe_python_template-0.14.1.dist-info → oe_python_template-0.14.2.dist-info}/METADATA +1 -1
- {oe_python_template-0.14.1.dist-info → oe_python_template-0.14.2.dist-info}/RECORD +8 -8
- {oe_python_template-0.14.1.dist-info → oe_python_template-0.14.2.dist-info}/WHEEL +0 -0
- {oe_python_template-0.14.1.dist-info → oe_python_template-0.14.2.dist-info}/entry_points.txt +0 -0
- {oe_python_template-0.14.1.dist-info → oe_python_template-0.14.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -12,6 +12,7 @@ from ._constants import (
|
|
|
12
12
|
__env_file__,
|
|
13
13
|
__is_development_mode__,
|
|
14
14
|
__is_running_in_container__,
|
|
15
|
+
__is_running_in_read_only_environment__,
|
|
15
16
|
__project_name__,
|
|
16
17
|
__project_path__,
|
|
17
18
|
__repository_url__,
|
|
@@ -46,6 +47,7 @@ __all__ = [
|
|
|
46
47
|
"__env_file__",
|
|
47
48
|
"__is_development_mode__",
|
|
48
49
|
"__is_running_in_container__",
|
|
50
|
+
"__is_running_in_read_only_environment__",
|
|
49
51
|
"__project_name__",
|
|
50
52
|
"__project_path__",
|
|
51
53
|
"__repository_url__",
|
|
@@ -15,6 +15,14 @@ __version__ = metadata.version(__project_name__)
|
|
|
15
15
|
__is_development_mode__ = "uvx" not in sys.argv[0].lower()
|
|
16
16
|
__is_running_in_container__ = os.getenv(f"{__project_name__.upper()}_RUNNING_IN_CONTAINER")
|
|
17
17
|
|
|
18
|
+
# Determine if we're running in a read-only runtime environment
|
|
19
|
+
READ_ONLY_ENV_INDICATORS = [
|
|
20
|
+
f"{__project_name__.upper()}_RUNNING_IN_CONTAINER",
|
|
21
|
+
"VERCEL_ENV",
|
|
22
|
+
"RAILWAY_ENVIRONMENT",
|
|
23
|
+
]
|
|
24
|
+
__is_running_in_read_only_environment__ = any(os.getenv(env_var) is not None for env_var in READ_ONLY_ENV_INDICATORS)
|
|
25
|
+
|
|
18
26
|
# Determine environment we are deployed on
|
|
19
27
|
ENV_VAR_MAPPINGS = {
|
|
20
28
|
"ENV": lambda env: env,
|
oe_python_template/utils/_log.py
CHANGED
|
@@ -14,7 +14,7 @@ from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
14
14
|
from rich.console import Console
|
|
15
15
|
from rich.logging import RichHandler
|
|
16
16
|
|
|
17
|
-
from ._constants import __env_file__, __project_name__
|
|
17
|
+
from ._constants import __env_file__, __is_running_in_read_only_environment__, __project_name__
|
|
18
18
|
from ._settings import load_settings
|
|
19
19
|
|
|
20
20
|
|
|
@@ -62,7 +62,7 @@ def _validate_file_name(file_name: str | None) -> str | None:
|
|
|
62
62
|
raise ValueError(message)
|
|
63
63
|
else:
|
|
64
64
|
try:
|
|
65
|
-
file_path.touch(exist_ok=
|
|
65
|
+
file_path.touch(exist_ok=True)
|
|
66
66
|
file_path.unlink()
|
|
67
67
|
except OSError as e:
|
|
68
68
|
message = f"File {file_path.absolute()} cannot be created: {e}"
|
|
@@ -92,7 +92,10 @@ class LogSettings(BaseSettings):
|
|
|
92
92
|
file_name: Annotated[
|
|
93
93
|
str,
|
|
94
94
|
AfterValidator(_validate_file_name),
|
|
95
|
-
Field(
|
|
95
|
+
Field(
|
|
96
|
+
description="Name of the log file",
|
|
97
|
+
default="/dev/stdout" if __is_running_in_read_only_environment__ else f"{__project_name__}.log",
|
|
98
|
+
),
|
|
96
99
|
]
|
|
97
100
|
console_enabled: Annotated[
|
|
98
101
|
bool,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: oe-python-template
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.2
|
|
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/
|
|
@@ -16,15 +16,15 @@ oe_python_template/system/_cli.py,sha256=0cGwSicK0j7P53SMm9nSyQqj0WYpHKvFvkISCcj
|
|
|
16
16
|
oe_python_template/system/_gui.py,sha256=uKI-tlBSJXMaxY79wgdYtMttEyu8BLQC1UQLEPOcoZg,653
|
|
17
17
|
oe_python_template/system/_service.py,sha256=f-EtWEAanajo4S2KeGm26K9_RezYgPza1qVqPRBOFvY,6376
|
|
18
18
|
oe_python_template/system/_settings.py,sha256=MwMAJYifJ6jGImeSh4e9shmIXmiUSuQGHXz_Ts0mSdk,901
|
|
19
|
-
oe_python_template/utils/__init__.py,sha256=
|
|
19
|
+
oe_python_template/utils/__init__.py,sha256=jYGR60l2tiT2OZHVwrN6e2bJhCFOCeUT-I68h0pZkao,2016
|
|
20
20
|
oe_python_template/utils/_api.py,sha256=w3hPQK1pL2gBI4_1qNWNa2b4S_oH-8mY-ckRX0KrCWM,617
|
|
21
21
|
oe_python_template/utils/_cli.py,sha256=J_mFtXZ1gGeovGrE5i3wlokTOBfiTTKEz5magiRP7GA,2091
|
|
22
22
|
oe_python_template/utils/_console.py,sha256=u0-utcdRmVu4rabrYUyNOx8yPxLhxB3E92m22kSCwPQ,293
|
|
23
|
-
oe_python_template/utils/_constants.py,sha256=
|
|
23
|
+
oe_python_template/utils/_constants.py,sha256=fPS1leVqg7NRo_FFE3Xs3QI7un5_YRrY8cKQAfThwgg,3247
|
|
24
24
|
oe_python_template/utils/_di.py,sha256=KdjiD4xZ_QSfbddkKWwsPJmG5YrIg6dzuBrlsd-FhxA,2189
|
|
25
25
|
oe_python_template/utils/_gui.py,sha256=PmMTSmUOxbf6pmYCIgKrK5wNheh35aGd90I12y3L7Uc,5720
|
|
26
26
|
oe_python_template/utils/_health.py,sha256=35QOWe2r5InrEpGtuVMym9dI5aRHS0HWf4BHBRAUIj0,4102
|
|
27
|
-
oe_python_template/utils/_log.py,sha256=
|
|
27
|
+
oe_python_template/utils/_log.py,sha256=9aalm3FzkIgx38Em4a49m5SrXvg0DiTzodTPTICUNuc,5042
|
|
28
28
|
oe_python_template/utils/_logfire.py,sha256=wZYNVowQx7kh3XJoJ59FjUKdrta7tp6cXOJRUT6lDU8,2128
|
|
29
29
|
oe_python_template/utils/_notebook.py,sha256=oBQw9IBcXjuhzd1ECfOEPN4WJHGOm9xiPtrs11GtWG4,1777
|
|
30
30
|
oe_python_template/utils/_process.py,sha256=40R0NZMqJUn0iUPERzohSUpJgU1HcJApIg1HipIxFCw,941
|
|
@@ -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.14.
|
|
37
|
-
oe_python_template-0.14.
|
|
38
|
-
oe_python_template-0.14.
|
|
39
|
-
oe_python_template-0.14.
|
|
40
|
-
oe_python_template-0.14.
|
|
36
|
+
oe_python_template-0.14.2.dist-info/METADATA,sha256=9jHC5kAbcOQZFBHDluyrDeo2y35pPuUX7JCfJBPqtiY,34475
|
|
37
|
+
oe_python_template-0.14.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
38
|
+
oe_python_template-0.14.2.dist-info/entry_points.txt,sha256=IroSSWhLGxus9rxcashkYQda39TTvf7LbUMYtOKXUBE,66
|
|
39
|
+
oe_python_template-0.14.2.dist-info/licenses/LICENSE,sha256=5H409K6xzz9U5eUaoAHQExNkoWJRlU0LEj6wL2QJ34s,1113
|
|
40
|
+
oe_python_template-0.14.2.dist-info/RECORD,,
|
|
File without changes
|
{oe_python_template-0.14.1.dist-info → oe_python_template-0.14.2.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{oe_python_template-0.14.1.dist-info → oe_python_template-0.14.2.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|