maleo-foundation 0.0.99__tar.gz → 0.1.1__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 (89) hide show
  1. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/PKG-INFO +1 -1
  2. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/client/google/secret.py +2 -0
  3. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/client/google/storage.py +2 -0
  4. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/db.py +10 -4
  5. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/service.py +13 -3
  6. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/utils/logging.py +24 -1
  7. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation.egg-info/PKG-INFO +1 -1
  8. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/pyproject.toml +1 -1
  9. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/README.md +0 -0
  10. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/__init__.py +0 -0
  11. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/__init__.py +0 -0
  12. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/general/__init__.py +0 -0
  13. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/general/http.py +0 -0
  14. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/google/__init__.py +0 -0
  15. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/google/base.py +0 -0
  16. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/google/cloud/__init__.py +0 -0
  17. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/google/cloud/base.py +0 -0
  18. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/google/cloud/logging.py +0 -0
  19. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/google/cloud/secret.py +0 -0
  20. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/google/cloud/storage.py +0 -0
  21. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/google/secret.py +0 -0
  22. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/google/storage.py +0 -0
  23. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/utils/__init__.py +0 -0
  24. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/clients/utils/logger.py +0 -0
  25. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/constants.py +0 -0
  26. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/db/__init__.py +0 -0
  27. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/db/engine.py +0 -0
  28. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/db/manager.py +0 -0
  29. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/db/session.py +0 -0
  30. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/db/table.py +0 -0
  31. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/enums.py +0 -0
  32. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/expanded_types/__init__.py +0 -0
  33. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/expanded_types/client.py +0 -0
  34. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/expanded_types/general.py +0 -0
  35. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/expanded_types/query.py +0 -0
  36. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/expanded_types/service.py +0 -0
  37. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/expanded_types/token.py +0 -0
  38. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/extended_types.py +0 -0
  39. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/__init__.py +0 -0
  40. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/client/__init__.py +0 -0
  41. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/client/base.py +0 -0
  42. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/client/google/__init__.py +0 -0
  43. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/client/google/base.py +0 -0
  44. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/managers/client/http.py +0 -0
  45. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/middlewares/__init__.py +0 -0
  46. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/middlewares/base.py +0 -0
  47. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/middlewares/cors.py +0 -0
  48. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/__init__.py +0 -0
  49. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/responses.py +0 -0
  50. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/schemas/__init__.py +0 -0
  51. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/schemas/general.py +0 -0
  52. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/schemas/parameter.py +0 -0
  53. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/schemas/result.py +0 -0
  54. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/schemas/token.py +0 -0
  55. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/__init__.py +0 -0
  56. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/general/__init__.py +0 -0
  57. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/general/token.py +0 -0
  58. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/parameters/__init__.py +0 -0
  59. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/parameters/client.py +0 -0
  60. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/parameters/general.py +0 -0
  61. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/parameters/service.py +0 -0
  62. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/parameters/token.py +0 -0
  63. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/__init__.py +0 -0
  64. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/client/__init__.py +0 -0
  65. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/client/controllers/__init__.py +0 -0
  66. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/client/controllers/http.py +0 -0
  67. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/client/service.py +0 -0
  68. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/service/__init__.py +0 -0
  69. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/service/controllers/__init__.py +0 -0
  70. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/service/controllers/rest.py +0 -0
  71. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/service/general.py +0 -0
  72. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/service/query.py +0 -0
  73. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/models/transfers/results/token.py +0 -0
  74. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/services/__init__.py +0 -0
  75. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/services/token.py +0 -0
  76. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/types.py +0 -0
  77. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/utils/__init__.py +0 -0
  78. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/utils/controller.py +0 -0
  79. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/utils/exceptions.py +0 -0
  80. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/utils/formatter/__init__.py +0 -0
  81. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/utils/formatter/case.py +0 -0
  82. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/utils/keyloader.py +0 -0
  83. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/utils/logger.py +0 -0
  84. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation/utils/query.py +0 -0
  85. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation.egg-info/SOURCES.txt +0 -0
  86. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation.egg-info/dependency_links.txt +0 -0
  87. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation.egg-info/requires.txt +0 -0
  88. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/maleo_foundation.egg-info/top_level.txt +0 -0
  89. {maleo_foundation-0.0.99 → maleo_foundation-0.1.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.0.99
3
+ Version: 0.1.1
4
4
  Summary: Foundation package for Maleo
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: MIT
@@ -23,7 +23,9 @@ class GoogleSecretManager(GoogleClientManager):
23
23
 
24
24
  def dispose(self) -> None:
25
25
  if self._client is not None:
26
+ self._logger.info("Disposing Google Secret Manager (GSM) client manager")
26
27
  self._client = None
28
+ self._logger.info("Google Secret Manager (GCS) client manager disposed successfully")
27
29
 
28
30
  @retry.Retry(predicate=retry.if_exception_type(Exception), timeout=5)
29
31
  def get(self, name:str, version:str = "latest") -> Optional[str]:
@@ -35,8 +35,10 @@ class GoogleCloudStorage(GoogleClientManager):
35
35
 
36
36
  def dispose(self) -> None:
37
37
  if self._client is not None:
38
+ self._logger.info("Disposing Google Cloud Storage (GCS) client manager")
38
39
  self._client.close()
39
40
  self._client = None
41
+ self._logger.info("Google Cloud Storage (GCS) client manager disposed successfully")
40
42
 
41
43
  def generate_signed_url(self, location:str) -> str:
42
44
  """
@@ -101,16 +101,22 @@ class DatabaseManager:
101
101
  def dispose(self) -> None:
102
102
  #* Dispose session
103
103
  if self._session is not None:
104
+ self._logger.info("Disposing Session Manager")
104
105
  self._session.dispose()
105
106
  self._session = None
106
107
  #* Dispose engine
107
108
  if self._engine is not None:
109
+ self._logger.info("Disposing Engine Manager")
108
110
  self._engine.dispose()
109
111
  self._engine = None
112
+ self._logger.info("Engine Manager disposed successfully")
113
+ #* Dispose metadata
114
+ if self._metadata is not None:
115
+ self._logger.info("Disposing DB Metadata")
116
+ self._metadata = None
117
+ self._logger.info("DB Metadata diposed succesfully")
110
118
  #* Dispose logger
111
119
  if self._logger is not None:
120
+ self._logger.info("Disposing database's logger")
112
121
  self._logger.dispose()
113
- self._logger = None
114
- #* Dispose metadata
115
- if self._metadata is not None:
116
- self._metadata = None
122
+ self._logger = None
@@ -15,7 +15,7 @@ from maleo_foundation.managers.db import DatabaseManager
15
15
  from maleo_foundation.services.token import BaseTokenService
16
16
  from maleo_foundation.types import BaseTypes
17
17
  from maleo_foundation.utils.keyloader import load_key
18
- from maleo_foundation.utils.logging import GoogleCloudLogging, ServiceLogger
18
+ from maleo_foundation.utils.logging import GoogleCloudLogging, ServiceLogger, ClientLoggerManager
19
19
 
20
20
  class Settings(BaseSettings):
21
21
  GOOGLE_CREDENTIALS_PATH:str = Field("/creds/maleo-google-service-account.json", description="Internal credential's file path")
@@ -84,10 +84,13 @@ class Configurations(BaseModel):
84
84
  class Config:
85
85
  arbitrary_types_allowed=True
86
86
 
87
+ ClientLoggerManagers = Dict[str, ClientLoggerManager]
88
+
87
89
  class Loggers(BaseModel):
88
90
  application:ServiceLogger = Field(..., description="Application logger")
89
91
  database:ServiceLogger = Field(..., description="Database logger")
90
92
  middleware:ServiceLogger = Field(..., description="Middleware logger")
93
+ client:ClientLoggerManagers = Field(default_factory=dict, description="Client logger manager")
91
94
 
92
95
  class Config:
93
96
  arbitrary_types_allowed=True
@@ -112,7 +115,8 @@ class ServiceManager:
112
115
  db_metadata:MetaData,
113
116
  base_dir:BaseTypes.OptionalString = None,
114
117
  settings:Optional[Settings] = None,
115
- google_cloud_logging:Optional[GoogleCloudLogging] = None
118
+ google_cloud_logging:Optional[GoogleCloudLogging] = None,
119
+ client_logger_managers:ClientLoggerManagers = {}
116
120
  ):
117
121
  self._db_metadata = db_metadata
118
122
 
@@ -138,6 +142,7 @@ class ServiceManager:
138
142
  else:
139
143
  self._google_cloud_logging = google_cloud_logging
140
144
 
145
+ self._client_logger_managers = client_logger_managers
141
146
  self._initialize_loggers()
142
147
  self._load_credentials()
143
148
  self._parse_keys()
@@ -169,7 +174,11 @@ class ServiceManager:
169
174
  application = ServiceLogger(logs_dir=self._logs_dir, type=BaseEnums.LoggerType.APPLICATION, google_cloud_logging=self._google_cloud_logging)
170
175
  database = ServiceLogger(logs_dir=self._logs_dir, type=BaseEnums.LoggerType.DATABASE, google_cloud_logging=self._google_cloud_logging)
171
176
  middleware = ServiceLogger(logs_dir=self._logs_dir, type=BaseEnums.LoggerType.MIDDLEWARE, google_cloud_logging=self._google_cloud_logging)
172
- self._loggers = Loggers(application=application, database=database, middleware=middleware)
177
+ client = self._client_logger_managers
178
+ for key, logger_manager in client.items():
179
+ application.info(f"Initializing logger manager for client '{key}'")
180
+ logger_manager.initialize()
181
+ self._loggers = Loggers(application=application, database=database, middleware=middleware, client=client)
173
182
 
174
183
  @property
175
184
  def loggers(self) -> Loggers:
@@ -258,6 +267,7 @@ class ServiceManager:
258
267
  return result.data.token
259
268
 
260
269
  async def dispose(self) -> None:
270
+ self._loggers.application.info("Disposing service manager")
261
271
  if self._database is not None:
262
272
  self._database.dispose()
263
273
  self._database = None
@@ -179,4 +179,27 @@ class ClientLogger(BaseLogger):
179
179
  client_key=client_key,
180
180
  level=level,
181
181
  google_cloud_logging=google_cloud_logging
182
- )
182
+ )
183
+
184
+ class ClientLoggerManager:
185
+ _logger:Optional[ClientLogger] = None
186
+
187
+ @classmethod
188
+ def initialize(
189
+ cls,
190
+ logs_dir:str,
191
+ client_key:str,
192
+ service_key:BaseTypes.OptionalString = None,
193
+ level:BaseEnums.LoggerLevel = BaseEnums.LoggerLevel.INFO,
194
+ google_cloud_logging:Optional[GoogleCloudLogging] = None
195
+ ) -> None:
196
+ """Initialize client logger if not already initialized."""
197
+ if cls._logger is None:
198
+ cls.logger = ClientLogger(logs_dir=logs_dir, client_key=client_key, service_key=service_key, level=level, google_cloud_logging=google_cloud_logging)
199
+
200
+ @classmethod
201
+ def get(cls) -> ClientLogger:
202
+ """Return client logger (if exist) or raise Runtime Error"""
203
+ if cls._logger is None:
204
+ raise RuntimeError("Logger has not been initialized. Initialize it first.")
205
+ return cls._logger
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.0.99
3
+ Version: 0.1.1
4
4
  Summary: Foundation package for Maleo
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "maleo_foundation"
7
- version = "0.0.99"
7
+ version = "0.1.1"
8
8
  description = "Foundation package for Maleo"
9
9
  authors = [
10
10
  { name = "Agra Bima Yuda", email = "agra@nexmedis.com" }