nlbone 0.1.25__tar.gz → 0.1.26__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.
Files changed (58) hide show
  1. {nlbone-0.1.25 → nlbone-0.1.26}/PKG-INFO +2 -1
  2. {nlbone-0.1.25 → nlbone-0.1.26}/pyproject.toml +2 -1
  3. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/config/settings.py +20 -4
  4. {nlbone-0.1.25 → nlbone-0.1.26}/.gitignore +0 -0
  5. {nlbone-0.1.25 → nlbone-0.1.26}/LICENSE +0 -0
  6. {nlbone-0.1.25 → nlbone-0.1.26}/README.md +0 -0
  7. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/__init__.py +0 -0
  8. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/__init__.py +0 -0
  9. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/auth/__init__.py +0 -0
  10. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/auth/keycloak.py +0 -0
  11. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/__init__.py +0 -0
  12. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/memory.py +0 -0
  13. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/postgres.py +0 -0
  14. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/query_builder.py +0 -0
  15. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/sqlalchemy/__init__.py +0 -0
  16. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/sqlalchemy/engine.py +0 -0
  17. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/sqlalchemy/query/__init__.py +0 -0
  18. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/sqlalchemy/query/builder.py +0 -0
  19. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/sqlalchemy/query/coercion.py +0 -0
  20. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/sqlalchemy/query/filters.py +0 -0
  21. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/sqlalchemy/query/ordering.py +0 -0
  22. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/db/sqlalchemy/query/types.py +0 -0
  23. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/http_clients/__init__.py +0 -0
  24. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/http_clients/email_gateway.py +0 -0
  25. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/messaging/__init__.py +0 -0
  26. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/adapters/messaging/redis.py +0 -0
  27. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/config/__init__.py +0 -0
  28. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/config/logging.py +0 -0
  29. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/__init__.py +0 -0
  30. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/application/__init__.py +0 -0
  31. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/application/services.py +0 -0
  32. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/application/use_cases/__init__.py +0 -0
  33. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/application/use_cases/register_user.py +0 -0
  34. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/domain/__init__.py +0 -0
  35. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/domain/events.py +0 -0
  36. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/domain/models.py +0 -0
  37. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/ports/__init__.py +0 -0
  38. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/ports/auth.py +0 -0
  39. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/ports/messaging.py +0 -0
  40. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/ports/repo.py +0 -0
  41. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/core/{__init__.py} +0 -0
  42. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/di/__init__.py +0 -0
  43. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/di/container.py +0 -0
  44. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/__init__.py +0 -0
  45. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/api/__init__.py +0 -0
  46. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/api/dependencies.py +0 -0
  47. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/api/exceptions.py +0 -0
  48. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/api/pagination/__init__.py +0 -0
  49. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/api/pagination/offset_base.py +0 -0
  50. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/api/routers.py +0 -0
  51. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/api/schemas.py +0 -0
  52. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/cli/__init__.py +0 -0
  53. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/cli/main.py +0 -0
  54. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/jobs/__init__.py +0 -0
  55. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/interfaces/jobs/sync_tokens.py +0 -0
  56. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/types.py +0 -0
  57. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/utils/__init__.py +0 -0
  58. {nlbone-0.1.25 → nlbone-0.1.26}/src/nlbone/utils/time.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nlbone
3
- Version: 0.1.25
3
+ Version: 0.1.26
4
4
  Summary: Backbone package for interfaces and infrastructure in Python projects
5
5
  Author-email: Amir Hosein Kahkbazzadeh <a.khakbazzadeh@gmail.com>
6
6
  License: MIT
@@ -9,6 +9,7 @@ Requires-Python: >=3.10
9
9
  Requires-Dist: anyio>=4.0
10
10
  Requires-Dist: fastapi>=0.116
11
11
  Requires-Dist: httpx>=0.27
12
+ Requires-Dist: psycopg>=3.2.9
12
13
  Requires-Dist: pydantic-settings>=2.0
13
14
  Requires-Dist: pydantic>=2.0
14
15
  Requires-Dist: python-keycloak==5.8.1
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "nlbone"
7
- version = "0.1.25"
7
+ version = "0.1.26"
8
8
  description = "Backbone package for interfaces and infrastructure in Python projects"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -21,6 +21,7 @@ dependencies = [
21
21
  "starlette>=0.47",
22
22
  "uvicorn>=0.35",
23
23
  "sqlalchemy>=2.0",
24
+ "psycopg>=3.2.9"
24
25
  ]
25
26
 
26
27
  [project.optional-dependencies]
@@ -1,9 +1,24 @@
1
+ import os
1
2
  from functools import lru_cache
3
+ from pathlib import Path
2
4
  from typing import Literal
3
-
4
5
  from pydantic import AnyHttpUrl, Field, SecretStr
5
6
  from pydantic_settings import BaseSettings, SettingsConfigDict
6
7
 
8
+ def _guess_env_file() -> str | None:
9
+ explicit = os.getenv("NLBONE_ENV_FILE")
10
+ if explicit:
11
+ return explicit
12
+
13
+ cwd_env = Path.cwd() / ".env"
14
+ if cwd_env.exists():
15
+ return str(cwd_env)
16
+
17
+ for p in (Path(__file__).resolve().parents[3], Path(__file__).resolve().parents[2], Path(__file__).resolve().parents[1]):
18
+ f = p / ".env"
19
+ if f.exists():
20
+ return str(f)
21
+
7
22
 
8
23
  class Settings(BaseSettings):
9
24
  # ---------------------------
@@ -39,18 +54,19 @@ class Settings(BaseSettings):
39
54
 
40
55
  model_config = SettingsConfigDict(
41
56
  env_prefix="NLBONE_",
42
- env_file=".env",
57
+ env_file=None,
43
58
  env_file_encoding="utf-8",
44
59
  extra="ignore",
45
60
  )
46
61
 
47
62
 
48
- @lru_cache(maxsize=1)
49
- def get_settings() -> Settings:
63
+ @lru_cache(maxsize=4)
64
+ def get_settings(env_file: str | None = None) -> Settings:
50
65
  """
51
66
  Cached settings for fast access across the app.
52
67
  Usage:
53
68
  from nlbone.config.settings import get_settings
54
69
  settings = get_settings()
55
70
  """
71
+ env_file = env_file or _guess_env_file()
56
72
  return Settings()
File without changes
File without changes
File without changes
File without changes
File without changes