maleo-database 0.0.8__tar.gz → 0.0.10__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 (31) hide show
  1. {maleo_database-0.0.8 → maleo_database-0.0.10}/PKG-INFO +6 -6
  2. {maleo_database-0.0.8 → maleo_database-0.0.10}/maleo_database.egg-info/PKG-INFO +6 -6
  3. {maleo_database-0.0.8 → maleo_database-0.0.10}/maleo_database.egg-info/requires.txt +5 -5
  4. {maleo_database-0.0.8 → maleo_database-0.0.10}/pyproject.toml +6 -6
  5. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/config/additional.py +16 -18
  6. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/managers/client.py +23 -2
  7. {maleo_database-0.0.8 → maleo_database-0.0.10}/LICENSE +0 -0
  8. {maleo_database-0.0.8 → maleo_database-0.0.10}/README.md +0 -0
  9. {maleo_database-0.0.8 → maleo_database-0.0.10}/maleo_database.egg-info/SOURCES.txt +0 -0
  10. {maleo_database-0.0.8 → maleo_database-0.0.10}/maleo_database.egg-info/dependency_links.txt +0 -0
  11. {maleo_database-0.0.8 → maleo_database-0.0.10}/maleo_database.egg-info/top_level.txt +0 -0
  12. {maleo_database-0.0.8 → maleo_database-0.0.10}/setup.cfg +0 -0
  13. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/__init__.py +0 -0
  14. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/config/__init__.py +0 -0
  15. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/config/connection.py +0 -0
  16. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/config/identifier.py +0 -0
  17. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/config/pooling.py +0 -0
  18. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/dtos.py +0 -0
  19. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/enums.py +0 -0
  20. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/managers/__init__.py +0 -0
  21. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/managers/engine.py +0 -0
  22. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/managers/session.py +0 -0
  23. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/orm/__init__.py +0 -0
  24. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/orm/base.py +0 -0
  25. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/orm/models/__init__.py +0 -0
  26. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/orm/models/mixins/__init__.py +0 -0
  27. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/orm/models/mixins/identifier.py +0 -0
  28. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/orm/models/mixins/status.py +0 -0
  29. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/orm/models/mixins/timestamp.py +0 -0
  30. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/orm/models/table.py +0 -0
  31. {maleo_database-0.0.8 → maleo_database-0.0.10}/src/orm/queries.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo-database
3
- Version: 0.0.8
3
+ Version: 0.0.10
4
4
  Summary: Database package for MaleoSuite
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: Proprietary
@@ -44,16 +44,16 @@ Requires-Dist: identify>=2.6.13
44
44
  Requires-Dist: idna>=3.10
45
45
  Requires-Dist: importlib_metadata>=8.7.0
46
46
  Requires-Dist: maleo-constants>=0.0.6
47
- Requires-Dist: maleo-dtos>=0.0.12
47
+ Requires-Dist: maleo-dtos>=0.0.15
48
48
  Requires-Dist: maleo-enums>=0.0.6
49
- Requires-Dist: maleo-exceptions>=0.0.14
50
- Requires-Dist: maleo-logging>=0.0.6
49
+ Requires-Dist: maleo-exceptions>=0.0.16
50
+ Requires-Dist: maleo-logging>=0.0.7
51
51
  Requires-Dist: maleo-mixins>=0.0.13
52
- Requires-Dist: maleo-schemas>=0.0.16
52
+ Requires-Dist: maleo-schemas>=0.0.18
53
53
  Requires-Dist: maleo-types-base>=0.0.2
54
54
  Requires-Dist: maleo-types-controllers>=0.0.1
55
55
  Requires-Dist: maleo-types-enums>=0.0.4
56
- Requires-Dist: maleo-utils>=0.0.4
56
+ Requires-Dist: maleo-utils>=0.0.5
57
57
  Requires-Dist: motor>=3.7.1
58
58
  Requires-Dist: mypy_extensions>=1.1.0
59
59
  Requires-Dist: nodeenv>=1.9.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo-database
3
- Version: 0.0.8
3
+ Version: 0.0.10
4
4
  Summary: Database package for MaleoSuite
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: Proprietary
@@ -44,16 +44,16 @@ Requires-Dist: identify>=2.6.13
44
44
  Requires-Dist: idna>=3.10
45
45
  Requires-Dist: importlib_metadata>=8.7.0
46
46
  Requires-Dist: maleo-constants>=0.0.6
47
- Requires-Dist: maleo-dtos>=0.0.12
47
+ Requires-Dist: maleo-dtos>=0.0.15
48
48
  Requires-Dist: maleo-enums>=0.0.6
49
- Requires-Dist: maleo-exceptions>=0.0.14
50
- Requires-Dist: maleo-logging>=0.0.6
49
+ Requires-Dist: maleo-exceptions>=0.0.16
50
+ Requires-Dist: maleo-logging>=0.0.7
51
51
  Requires-Dist: maleo-mixins>=0.0.13
52
- Requires-Dist: maleo-schemas>=0.0.16
52
+ Requires-Dist: maleo-schemas>=0.0.18
53
53
  Requires-Dist: maleo-types-base>=0.0.2
54
54
  Requires-Dist: maleo-types-controllers>=0.0.1
55
55
  Requires-Dist: maleo-types-enums>=0.0.4
56
- Requires-Dist: maleo-utils>=0.0.4
56
+ Requires-Dist: maleo-utils>=0.0.5
57
57
  Requires-Dist: motor>=3.7.1
58
58
  Requires-Dist: mypy_extensions>=1.1.0
59
59
  Requires-Dist: nodeenv>=1.9.1
@@ -35,16 +35,16 @@ identify>=2.6.13
35
35
  idna>=3.10
36
36
  importlib_metadata>=8.7.0
37
37
  maleo-constants>=0.0.6
38
- maleo-dtos>=0.0.12
38
+ maleo-dtos>=0.0.15
39
39
  maleo-enums>=0.0.6
40
- maleo-exceptions>=0.0.14
41
- maleo-logging>=0.0.6
40
+ maleo-exceptions>=0.0.16
41
+ maleo-logging>=0.0.7
42
42
  maleo-mixins>=0.0.13
43
- maleo-schemas>=0.0.16
43
+ maleo-schemas>=0.0.18
44
44
  maleo-types-base>=0.0.2
45
45
  maleo-types-controllers>=0.0.1
46
46
  maleo-types-enums>=0.0.4
47
- maleo-utils>=0.0.4
47
+ maleo-utils>=0.0.5
48
48
  motor>=3.7.1
49
49
  mypy_extensions>=1.1.0
50
50
  nodeenv>=1.9.1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "maleo-database"
7
- version = "0.0.8"
7
+ version = "0.0.10"
8
8
  description = "Database package for MaleoSuite"
9
9
  authors = [
10
10
  { name = "Agra Bima Yuda", email = "agra@nexmedis.com" }
@@ -50,16 +50,16 @@ dependencies = [
50
50
  "idna>=3.10",
51
51
  "importlib_metadata>=8.7.0",
52
52
  "maleo-constants>=0.0.6",
53
- "maleo-dtos>=0.0.12",
53
+ "maleo-dtos>=0.0.15",
54
54
  "maleo-enums>=0.0.6",
55
- "maleo-exceptions>=0.0.14",
56
- "maleo-logging>=0.0.6",
55
+ "maleo-exceptions>=0.0.16",
56
+ "maleo-logging>=0.0.7",
57
57
  "maleo-mixins>=0.0.13",
58
- "maleo-schemas>=0.0.16",
58
+ "maleo-schemas>=0.0.18",
59
59
  "maleo-types-base>=0.0.2",
60
60
  "maleo-types-controllers>=0.0.1",
61
61
  "maleo-types-enums>=0.0.4",
62
- "maleo-utils>=0.0.4",
62
+ "maleo-utils>=0.0.5",
63
63
  "motor>=3.7.1",
64
64
  "mypy_extensions>=1.1.0",
65
65
  "nodeenv>=1.9.1",
@@ -3,21 +3,7 @@ from typing import Optional, TypeVar, Union
3
3
  from maleo.enums.cache import Origin, Layer
4
4
  from maleo.enums.expiration import Expiration
5
5
  from maleo.types.base.string import OptionalString
6
-
7
-
8
- class RedisCacheNamespaces(BaseModel):
9
- base: str = Field(..., description="Base Redis's namespace")
10
-
11
- def create(
12
- self,
13
- *ext: str,
14
- origin: Origin,
15
- layer: Layer,
16
- base_override: OptionalString = None,
17
- ) -> str:
18
- return ":".join(
19
- [self.base if base_override is None else base_override, origin, layer, *ext]
20
- )
6
+ from maleo.utils.cache import build_namespace as build_namespace_utils
21
7
 
22
8
 
23
9
  class BaseAdditionalConfig(BaseModel):
@@ -31,6 +17,18 @@ class RedisAdditionalConfig(BaseAdditionalConfig):
31
17
  ttl: Union[float, int] = Field(
32
18
  Expiration.EXP_15MN.value, description="Time to live"
33
19
  )
34
- namespaces: RedisCacheNamespaces = Field(
35
- ..., description="Redis cache's namepsaces"
36
- )
20
+ base_namespace: str = Field(..., description="Base namespace")
21
+
22
+ def build_namespace(
23
+ self,
24
+ *ext: str,
25
+ base: OptionalString = None,
26
+ client: OptionalString = None,
27
+ origin: Origin,
28
+ layer: Layer,
29
+ sep: str = ":",
30
+ ) -> str:
31
+ base = base or self.base_namespace
32
+ return build_namespace_utils(
33
+ *ext, base=base, client=client, origin=origin, layer=layer, sep=sep
34
+ )
@@ -3,7 +3,8 @@ from motor.motor_asyncio import AsyncIOMotorClient
3
3
  from pymongo import MongoClient
4
4
  from redis.asyncio import Redis as AsyncRedis
5
5
  from redis import Redis as SyncRedis
6
- from typing import Generic, Literal, Tuple, TypeVar, Union, overload
6
+ from typing import Generic, Literal, Optional, Tuple, TypeVar, Union, overload
7
+ from maleo.types.base.string import ListOfStrings
7
8
  from ..config import (
8
9
  ElasticsearchDatabaseConfig,
9
10
  MongoDBDatabaseConfig,
@@ -71,7 +72,27 @@ class MongoDBClientManager(
71
72
 
72
73
 
73
74
  class RedisClientManager(ClientManager[RedisDatabaseConfig, AsyncRedis, SyncRedis]):
74
- pass
75
+ async def async_clear(self, prefixes: Optional[Union[ListOfStrings, str]] = None):
76
+ if prefixes is None:
77
+ prefixes = [self._config.additional.base_namespace]
78
+
79
+ if isinstance(prefixes, str):
80
+ prefixes = [prefixes]
81
+
82
+ for prefix in prefixes:
83
+ async for key in self._async_client.scan_iter(f"{prefix}*"):
84
+ await self._async_client.delete(key)
85
+
86
+ def sync_clear(self, prefixes: Optional[Union[ListOfStrings, str]] = None):
87
+ if prefixes is None:
88
+ prefixes = [self._config.additional.base_namespace]
89
+
90
+ if isinstance(prefixes, str):
91
+ prefixes = [prefixes]
92
+
93
+ for prefix in prefixes:
94
+ for key in self._sync_client.scan_iter(f"{prefix}*"):
95
+ self._sync_client.delete(key)
75
96
 
76
97
 
77
98
  ClientManagerT = TypeVar(
File without changes