maleo-foundation 0.1.42__py3-none-any.whl → 0.1.43__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.
@@ -24,6 +24,7 @@ from maleo_foundation.utils.loaders.json import JSONLoader
24
24
  from maleo_foundation.utils.loaders.key import KeyLoader
25
25
  from maleo_foundation.utils.loaders.yaml import YAMLLoader
26
26
  from maleo_foundation.utils.logging import GoogleCloudLogging, ServiceLogger, MiddlewareLogger
27
+ from maleo_foundation.utils.mergers import BaseMergers
27
28
 
28
29
  class LogConfig(BaseModel):
29
30
  logs_dir:str = Field(..., description="Logs directory")
@@ -299,7 +300,8 @@ class ServiceManager:
299
300
  self._static_configs = StaticConfigurations.model_validate(static_configurations)
300
301
  runtime_configurations = YAMLLoader.load(self._settings.RUNTIME_CONFIGURATIONS_PATH)
301
302
  self._runtime_configs = RuntimeConfigurations.model_validate(runtime_configurations)
302
- self._configs = Configurations.model_validate(self._static_configs.model_dump() | self._runtime_configs.model_dump())
303
+ merged_configs = BaseMergers.deep_merge(self._static_configs.model_dump(), self._runtime_configs.model_dump())
304
+ self._configs = Configurations.model_validate(merged_configs)
303
305
 
304
306
  @property
305
307
  def configs(self) -> Configurations:
@@ -3,6 +3,7 @@ from .formatter import BaseFormatter
3
3
  from .exceptions import BaseExceptions
4
4
  from .extractor import BaseExtractors
5
5
  from .loaders import BaseLoaders
6
+ from .mergers import BaseMergers
6
7
  from .controller import BaseControllerUtils
7
8
  from .query import BaseQueryUtils
8
9
 
@@ -11,5 +12,6 @@ class BaseUtils:
11
12
  Exceptions = BaseExceptions
12
13
  Extractors = BaseExtractors
13
14
  Loaders = BaseLoaders
15
+ Mergers = BaseMergers
14
16
  Controller = BaseControllerUtils
15
17
  Query = BaseQueryUtils
@@ -0,0 +1,23 @@
1
+ from collections.abc import Mapping
2
+ from typing import Dict
3
+
4
+ class BaseMergers:
5
+ @staticmethod
6
+ def deep_merge(*obj:Dict) -> Dict:
7
+ def merge_dicts(a:Dict, b:Dict) -> Dict:
8
+ result = dict(a)
9
+ for key, value in b.items():
10
+ if (
11
+ key in result
12
+ and isinstance(result[key], Mapping)
13
+ and isinstance(value, Mapping)
14
+ ):
15
+ result[key] = merge_dicts(result[key], value)
16
+ else:
17
+ result[key] = value
18
+ return result
19
+
20
+ merged = {}
21
+ for ob in obj:
22
+ merged = merge_dicts(merged, ob)
23
+ return merged
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.1.42
3
+ Version: 0.1.43
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=K-njasUsxVg781EtSvDMwF_SevcK1kac1sLtkMwdlN0,22642
16
+ maleo_foundation/managers/service.py,sha256=IqCwAQvemgHIB763kB6myLtzWEueZ-Vt8z0ySsLCTvI,22760
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
@@ -54,11 +54,12 @@ maleo_foundation/models/transfers/results/service/controllers/__init__.py,sha256
54
54
  maleo_foundation/models/transfers/results/service/controllers/rest.py,sha256=wCuFyOTQkuBs2cqjPsWnPy0XIsCfMqGByhrSy57qp7Y,1107
55
55
  maleo_foundation/services/__init__.py,sha256=Ho5zJSA89xdGFKIwOdzjmd8sm23cIuwrqYAxCEBBTIU,120
56
56
  maleo_foundation/services/token.py,sha256=ZqRqOdGUnaSIam6-JHVdAW1UST-2EDtcVN0fpbPmXY4,1638
57
- maleo_foundation/utils/__init__.py,sha256=KoERe8U2ERGZeAKUNBPW_itk7g9YpH7v7_mD9_i050o,461
57
+ maleo_foundation/utils/__init__.py,sha256=SRPEVoqjZoO6W8rtF_Ti8VIangg6Auwm6eHbZMdOthY,520
58
58
  maleo_foundation/utils/controller.py,sha256=ECzPzpw36zBAjKcWcDbUAhIJGbc6UpeypdUUX6ipXBg,6396
59
59
  maleo_foundation/utils/exceptions.py,sha256=LPPcU-6_3NbRIBZg2Nr2Ac5HF1qZJbHbMVnwfIfZg6g,3702
60
60
  maleo_foundation/utils/extractor.py,sha256=SZXVYDHWGaA-Dd1BUydwF2HHdZqexEielS4CjL0Ceng,814
61
61
  maleo_foundation/utils/logging.py,sha256=MwvZmZSA8SIdfq-knEvpYIgqnSpHcyHrZY9TVHWVHJA,9023
62
+ maleo_foundation/utils/mergers.py,sha256=DniUu3Ot4qkYH_YSw4uD1cn9cfirum4S_Opp8fMkQwA,702
62
63
  maleo_foundation/utils/query.py,sha256=ODQ3adOYQNj5E2cRW9ytbjBz56nEDcnfq8mQ6YZbCCM,4375
63
64
  maleo_foundation/utils/formatter/__init__.py,sha256=iKf5YCbEdg1qKnFHyKqqcQbqAqEeRUf8mhI3v3dQoj8,78
64
65
  maleo_foundation/utils/formatter/case.py,sha256=TmvvlfzGdC_omMTB5vAa40TZBxQ3hnr-SYeo0M52Rlg,1352
@@ -66,7 +67,7 @@ maleo_foundation/utils/loaders/__init__.py,sha256=Dnuv7BWyglSddnbsFb96s-b3KaW7UK
66
67
  maleo_foundation/utils/loaders/json.py,sha256=NsXLq3VZSgzmEf99tV1VtrmiudWdQ8Pzh_hI4Rm0cM8,397
67
68
  maleo_foundation/utils/loaders/key.py,sha256=GZ4h1ONfp6Xx8-E8AWoGP4ajAZrwPhZRtidjn_u82Qg,2562
68
69
  maleo_foundation/utils/loaders/yaml.py,sha256=jr8v3BlgmRCMTzdNgKhIYt1tnubaJXcDSSGkKVR8pbw,362
69
- maleo_foundation-0.1.42.dist-info/METADATA,sha256=pccVpYnDrFeZPmFiQxwgbaoGYIhia8KGH_DklWLi_nE,3354
70
- maleo_foundation-0.1.42.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
71
- maleo_foundation-0.1.42.dist-info/top_level.txt,sha256=_iBos3F_bhEOdjOnzeiEYSrCucasc810xXtLBXI8cQc,17
72
- maleo_foundation-0.1.42.dist-info/RECORD,,
70
+ maleo_foundation-0.1.43.dist-info/METADATA,sha256=X3kTX7xwFhAlg7OP6Omx7BX5DLC60Py5lzCjHn0pR8Q,3354
71
+ maleo_foundation-0.1.43.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
72
+ maleo_foundation-0.1.43.dist-info/top_level.txt,sha256=_iBos3F_bhEOdjOnzeiEYSrCucasc810xXtLBXI8cQc,17
73
+ maleo_foundation-0.1.43.dist-info/RECORD,,