maleo-foundation 0.1.38__py3-none-any.whl → 0.1.39__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.
@@ -5,9 +5,9 @@ from fastapi.exceptions import RequestValidationError
5
5
  from starlette.exceptions import HTTPException
6
6
  from starlette.types import Lifespan, AppType
7
7
  from pydantic_settings import BaseSettings
8
- from pydantic import BaseModel, Field
8
+ from pydantic import BaseModel, Field, model_validator
9
9
  from sqlalchemy import MetaData
10
- from typing import Optional, Type
10
+ from typing import Dict, Optional, Type
11
11
  from maleo_foundation.enums import BaseEnums
12
12
  from maleo_foundation.models.transfers.general.token import BaseTokenGeneralTransfers
13
13
  from maleo_foundation.models.transfers.parameters.token import BaseTokenParametersTransfers
@@ -81,11 +81,23 @@ class ServiceConfigurations(BaseModel):
81
81
  class DatabaseConfigurations(BaseModel):
82
82
  username:str = Field("postgres", description="Database user's username")
83
83
  password_env:str = Field("DB_PASSWORD", description="Database user's password .env")
84
- password:str = Field(os.getenv(password_env), description="Database user's password")
84
+ password:str = Field(..., description="Database user's password")
85
85
  host:str = Field(..., description="Database's host")
86
86
  port:int = Field(5432, description="Database's port")
87
87
  database:str = Field(..., description="Database")
88
88
 
89
+ @model_validator(mode='before')
90
+ @classmethod
91
+ def populate_password(cls, values:Dict):
92
+ env_name = values.get("password_env")
93
+ if not env_name:
94
+ raise ValueError("password_env is required to fetch password from environment.")
95
+ env_value = os.getenv(env_name)
96
+ if env_value is None:
97
+ raise ValueError(f"'{env_name}' must be set.")
98
+ values["password"] = env_value
99
+ return values
100
+
89
101
  @property
90
102
  def url(self) -> str:
91
103
  return f"postgresql://{self.username}:{self.password}@{self.host}:{self.port}/{self.database}"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.1.38
3
+ Version: 0.1.39
4
4
  Summary: Foundation package for Maleo
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: MIT
@@ -13,7 +13,7 @@ maleo_foundation/expanded_types/token.py,sha256=4fRTJw6W5MYq71NksNrWNi7qYHQ4_lQw
13
13
  maleo_foundation/managers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  maleo_foundation/managers/db.py,sha256=ZN0b43OgqQtk2WHKMJQ0E2TeaSEyVJ0-l4FEkrSG0Qo,4645
15
15
  maleo_foundation/managers/middleware.py,sha256=7CDXPMb28AR7J72TWOeKFxOlMypKezEtO9mr53a88B0,4032
16
- maleo_foundation/managers/service.py,sha256=UBjpYugx_-NYk4PxOew-5Izrc4qpBIYWkAvkesGZ4N0,20549
16
+ maleo_foundation/managers/service.py,sha256=XTbsV11JEGqfiHJwra5MSJ1l7rqP3IUTvMtLwnJZ5yM,21005
17
17
  maleo_foundation/managers/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  maleo_foundation/managers/client/base.py,sha256=lYREmEoTLShlPPXOKKiAopjefJ8nIWHCi7IvWkXXKeY,1465
19
19
  maleo_foundation/managers/client/maleo.py,sha256=NibYGdiN3EXUw5nx-tL48QAZym14GcA4BDZihGJNQ-g,4254
@@ -66,7 +66,7 @@ maleo_foundation/utils/loaders/__init__.py,sha256=Dnuv7BWyglSddnbsFb96s-b3KaW7UK
66
66
  maleo_foundation/utils/loaders/json.py,sha256=NsXLq3VZSgzmEf99tV1VtrmiudWdQ8Pzh_hI4Rm0cM8,397
67
67
  maleo_foundation/utils/loaders/key.py,sha256=GZ4h1ONfp6Xx8-E8AWoGP4ajAZrwPhZRtidjn_u82Qg,2562
68
68
  maleo_foundation/utils/loaders/yaml.py,sha256=jr8v3BlgmRCMTzdNgKhIYt1tnubaJXcDSSGkKVR8pbw,362
69
- maleo_foundation-0.1.38.dist-info/METADATA,sha256=ZAclk06bycRqWmZNtdMEHcpAN2c7oQSgY4F6GLl2-dU,3190
70
- maleo_foundation-0.1.38.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
71
- maleo_foundation-0.1.38.dist-info/top_level.txt,sha256=_iBos3F_bhEOdjOnzeiEYSrCucasc810xXtLBXI8cQc,17
72
- maleo_foundation-0.1.38.dist-info/RECORD,,
69
+ maleo_foundation-0.1.39.dist-info/METADATA,sha256=DDXV3R3FbXZHl3RgmRVm380Xf4CFog-qdb8Kddf9ndM,3190
70
+ maleo_foundation-0.1.39.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
71
+ maleo_foundation-0.1.39.dist-info/top_level.txt,sha256=_iBos3F_bhEOdjOnzeiEYSrCucasc810xXtLBXI8cQc,17
72
+ maleo_foundation-0.1.39.dist-info/RECORD,,