maleo-foundation 0.1.5__tar.gz → 0.1.7__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.
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/PKG-INFO +1 -1
- maleo_foundation-0.1.7/maleo_foundation/clients/utils/logger.py +54 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/maleo.py +7 -7
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation.egg-info/PKG-INFO +1 -1
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/pyproject.toml +1 -1
- maleo_foundation-0.1.5/maleo_foundation/clients/utils/logger.py +0 -54
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/README.md +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/general/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/general/http.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/base.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/base.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/logging.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/secret.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/storage.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/secret.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/storage.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/utils/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/constants.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/db/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/db/engine.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/db/manager.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/db/session.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/db/table.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/enums.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/expanded_types/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/expanded_types/client.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/expanded_types/general.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/expanded_types/query.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/expanded_types/service.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/expanded_types/token.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/extended_types.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/base.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/google/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/google/base.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/google/secret.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/google/storage.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/http.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/db.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/service.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/middlewares/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/middlewares/base.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/middlewares/cors.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/responses.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/schemas/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/schemas/general.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/schemas/parameter.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/schemas/result.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/schemas/token.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/general/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/general/token.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/parameters/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/parameters/client.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/parameters/general.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/parameters/service.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/parameters/token.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/client/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/client/controllers/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/client/controllers/http.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/client/service.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/service/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/service/controllers/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/service/controllers/rest.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/service/general.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/service/query.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/token.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/services/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/services/token.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/types.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/controller.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/exceptions.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/formatter/__init__.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/formatter/case.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/keyloader.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/logger.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/logging.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/query.py +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation.egg-info/SOURCES.txt +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation.egg-info/dependency_links.txt +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation.egg-info/requires.txt +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation.egg-info/top_level.txt +0 -0
- {maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/setup.cfg +0 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
from typing import Dict
|
2
|
+
from maleo_foundation.enums import BaseEnums
|
3
|
+
from maleo_foundation.types import BaseTypes
|
4
|
+
from maleo_foundation.utils.logger import BaseLogger
|
5
|
+
|
6
|
+
class ClientLoggerManager:
|
7
|
+
_loggers:Dict[type, BaseLogger] = {}
|
8
|
+
|
9
|
+
@classmethod
|
10
|
+
def initialize(
|
11
|
+
cls,
|
12
|
+
base_dir:str,
|
13
|
+
client_name:str,
|
14
|
+
service_name:BaseTypes.OptionalString = None,
|
15
|
+
level:BaseEnums.LoggerLevel = BaseEnums.LoggerLevel.INFO
|
16
|
+
) -> BaseLogger:
|
17
|
+
"""Initialize client logger if not already initialized."""
|
18
|
+
if cls not in cls._loggers:
|
19
|
+
cls._loggers[cls] = BaseLogger(
|
20
|
+
base_dir=base_dir,
|
21
|
+
type=BaseEnums.LoggerType.CLIENT,
|
22
|
+
service_name=service_name,
|
23
|
+
client_name=client_name,
|
24
|
+
level=level
|
25
|
+
)
|
26
|
+
return cls._loggers[cls]
|
27
|
+
|
28
|
+
@classmethod
|
29
|
+
def get(cls) -> BaseLogger:
|
30
|
+
"""Return client logger (if exist) or raise Runtime Error"""
|
31
|
+
if cls not in cls._loggers:
|
32
|
+
raise RuntimeError("Logger has not been initialized. Call 'initialize' first.")
|
33
|
+
return cls._loggers[cls]
|
34
|
+
|
35
|
+
class MaleoFoundationLoggerManager(ClientLoggerManager):
|
36
|
+
@classmethod
|
37
|
+
def initialize(
|
38
|
+
cls,
|
39
|
+
base_dir:str,
|
40
|
+
service_name:BaseTypes.OptionalString = None,
|
41
|
+
level:BaseEnums.LoggerLevel = BaseEnums.LoggerLevel.INFO
|
42
|
+
) -> BaseLogger:
|
43
|
+
"""Initialize MaleoFoundation's client logger if not already initialized."""
|
44
|
+
return super().initialize(
|
45
|
+
base_dir=base_dir,
|
46
|
+
client_name="MaleoFoundation",
|
47
|
+
service_name=service_name,
|
48
|
+
level=level
|
49
|
+
)
|
50
|
+
|
51
|
+
@classmethod
|
52
|
+
def get(cls) -> BaseLogger:
|
53
|
+
"""Return client logger (if exist) or raise Runtime Error"""
|
54
|
+
return super().get()
|
@@ -13,7 +13,7 @@ class URL(BaseModel):
|
|
13
13
|
def api(self) -> str:
|
14
14
|
return f"{self.base}/api"
|
15
15
|
|
16
|
-
class
|
16
|
+
class ClientHTTPControllerManager:
|
17
17
|
def __init__(self, base_url:str) -> None:
|
18
18
|
self._client = httpx.AsyncClient()
|
19
19
|
self._url = URL(base=base_url)
|
@@ -43,21 +43,21 @@ class HTTPClientControllerManager:
|
|
43
43
|
return self._url
|
44
44
|
|
45
45
|
class ClientControllerManagers(BaseModel):
|
46
|
-
http:
|
46
|
+
http:ClientHTTPControllerManager = Field(..., description="HTTP Client Controller")
|
47
47
|
|
48
48
|
class Config:
|
49
49
|
arbitrary_types_allowed=True
|
50
50
|
|
51
|
-
class
|
52
|
-
def __init__(self, manager:
|
51
|
+
class ClientHTTPController:
|
52
|
+
def __init__(self, manager:ClientHTTPControllerManager):
|
53
53
|
self._manager = manager
|
54
54
|
|
55
55
|
@property
|
56
|
-
def manager(self) ->
|
56
|
+
def manager(self) -> ClientHTTPControllerManager:
|
57
57
|
return self._manager
|
58
58
|
|
59
59
|
class ClientServiceControllers(BaseModel):
|
60
|
-
http:
|
60
|
+
http:ClientHTTPController = Field(..., description="HTTP Client Controller")
|
61
61
|
|
62
62
|
class Config:
|
63
63
|
arbitrary_types_allowed=True
|
@@ -92,7 +92,7 @@ class MaleoClientManager(ClientManager):
|
|
92
92
|
|
93
93
|
def _initialize_controllers(self) -> None:
|
94
94
|
#* Initialize managers
|
95
|
-
http_controller_manager =
|
95
|
+
http_controller_manager = ClientHTTPControllerManager(base_url=self._base_url)
|
96
96
|
self._controller_managers = ClientControllerManagers(http=http_controller_manager)
|
97
97
|
#* Initialize controllers
|
98
98
|
#! This initialied an empty controllers. Extend this function in the actual class to initialize all controllers.
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# from typing import Dict
|
2
|
-
# from maleo_foundation.enums import BaseEnums
|
3
|
-
# from maleo_foundation.types import BaseTypes
|
4
|
-
# from maleo_foundation.utils.logger import BaseLogger
|
5
|
-
|
6
|
-
# class ClientLoggerManager:
|
7
|
-
# _loggers:Dict[type, BaseLogger] = {}
|
8
|
-
|
9
|
-
# @classmethod
|
10
|
-
# def initialize(
|
11
|
-
# cls,
|
12
|
-
# base_dir:str,
|
13
|
-
# client_name:str,
|
14
|
-
# service_name:BaseTypes.OptionalString = None,
|
15
|
-
# level:BaseEnums.LoggerLevel = BaseEnums.LoggerLevel.INFO
|
16
|
-
# ) -> BaseLogger:
|
17
|
-
# """Initialize client logger if not already initialized."""
|
18
|
-
# if cls not in cls._loggers:
|
19
|
-
# cls._loggers[cls] = BaseLogger(
|
20
|
-
# base_dir=base_dir,
|
21
|
-
# type=BaseEnums.LoggerType.CLIENT,
|
22
|
-
# service_name=service_name,
|
23
|
-
# client_name=client_name,
|
24
|
-
# level=level
|
25
|
-
# )
|
26
|
-
# return cls._loggers[cls]
|
27
|
-
|
28
|
-
# @classmethod
|
29
|
-
# def get(cls) -> BaseLogger:
|
30
|
-
# """Return client logger (if exist) or raise Runtime Error"""
|
31
|
-
# if cls not in cls._loggers:
|
32
|
-
# raise RuntimeError("Logger has not been initialized. Call 'initialize' first.")
|
33
|
-
# return cls._loggers[cls]
|
34
|
-
|
35
|
-
# class MaleoFoundationLoggerManager(ClientLoggerManager):
|
36
|
-
# @classmethod
|
37
|
-
# def initialize(
|
38
|
-
# cls,
|
39
|
-
# base_dir:str,
|
40
|
-
# service_name:BaseTypes.OptionalString = None,
|
41
|
-
# level:BaseEnums.LoggerLevel = BaseEnums.LoggerLevel.INFO
|
42
|
-
# ) -> BaseLogger:
|
43
|
-
# """Initialize MaleoFoundation's client logger if not already initialized."""
|
44
|
-
# return super().initialize(
|
45
|
-
# base_dir=base_dir,
|
46
|
-
# client_name="MaleoFoundation",
|
47
|
-
# service_name=service_name,
|
48
|
-
# level=level
|
49
|
-
# )
|
50
|
-
|
51
|
-
# @classmethod
|
52
|
-
# def get(cls) -> BaseLogger:
|
53
|
-
# """Return client logger (if exist) or raise Runtime Error"""
|
54
|
-
# return super().get()
|
File without changes
|
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/general/__init__.py
RENAMED
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/__init__.py
RENAMED
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/__init__.py
RENAMED
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/base.py
RENAMED
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/logging.py
RENAMED
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/secret.py
RENAMED
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/cloud/storage.py
RENAMED
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/google/storage.py
RENAMED
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/clients/utils/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/expanded_types/__init__.py
RENAMED
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/expanded_types/general.py
RENAMED
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/expanded_types/service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/google/base.py
RENAMED
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/google/secret.py
RENAMED
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/managers/client/google/storage.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/schemas/__init__.py
RENAMED
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/schemas/general.py
RENAMED
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/schemas/parameter.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/__init__.py
RENAMED
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/general/token.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/models/transfers/results/token.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation/utils/formatter/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{maleo_foundation-0.1.5 → maleo_foundation-0.1.7}/maleo_foundation.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|