mgraph-ai-service-cache-client 0.1.2__py3-none-any.whl → 0.1.4__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.

Potentially problematic release.


This version of mgraph-ai-service-cache-client might be problematic. Click here for more details.

Files changed (77) hide show
  1. mgraph_ai_service_cache_client/client/Cache__Client.py +6 -0
  2. mgraph_ai_service_cache_client/client/Cache__Client__Config.py +7 -0
  3. mgraph_ai_service_cache_client/client/Cache__Client__Health_Checks.py +25 -0
  4. mgraph_ai_service_cache_client/client/Cache__Client__Requests.py +38 -0
  5. mgraph_ai_service_cache_client/client/__init__.py +0 -0
  6. mgraph_ai_service_cache_client/fast_api/__init__.py +0 -0
  7. mgraph_ai_service_cache_client/fast_api/routes/__init__.py +0 -0
  8. mgraph_ai_service_cache_client/schemas/__init__.py +0 -0
  9. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Binary__Reference.py +23 -0
  10. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Delete__Success.py +15 -0
  11. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Exists__Response.py +14 -0
  12. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Metadata.py +32 -0
  13. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Namespace__Stats.py +21 -0
  14. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Namespaces__List.py +7 -0
  15. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Retrieve__Request.py +11 -0
  16. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Retrieve__Success.py +10 -0
  17. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Stats__Response.py +14 -0
  18. mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Store__Response.py +15 -0
  19. mgraph_ai_service_cache_client/schemas/cache/__init__.py +0 -0
  20. mgraph_ai_service_cache_client/schemas/cache/consts__Cache_Service.py +7 -0
  21. mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Delete__All_Files__Response.py +8 -0
  22. mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Files__List.py +12 -0
  23. mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Retrieve__Request.py +14 -0
  24. mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Retrieve__Response.py +16 -0
  25. mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Store__Request.py +16 -0
  26. mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Store__Response.py +21 -0
  27. mgraph_ai_service_cache_client/schemas/cache/data/__init__.py +0 -0
  28. mgraph_ai_service_cache_client/schemas/cache/enums/Enum__Cache__Data_Type.py +6 -0
  29. mgraph_ai_service_cache_client/schemas/cache/enums/Enum__Cache__File_Type.py +5 -0
  30. mgraph_ai_service_cache_client/schemas/cache/enums/Enum__Cache__Storage_Mode.py +8 -0
  31. mgraph_ai_service_cache_client/schemas/cache/enums/Enum__Cache__Store__Strategy.py +8 -0
  32. mgraph_ai_service_cache_client/schemas/cache/enums/__init__.py +0 -0
  33. mgraph_ai_service_cache_client/schemas/cache/file/Schema__Cache__File__Paths.py +7 -0
  34. mgraph_ai_service_cache_client/schemas/cache/file/Schema__Cache__File__Refs.py +20 -0
  35. mgraph_ai_service_cache_client/schemas/cache/file/__init__.py +0 -0
  36. mgraph_ai_service_cache_client/schemas/cache/store/Schema__Cache__Hash__Entry.py +8 -0
  37. mgraph_ai_service_cache_client/schemas/cache/store/Schema__Cache__Hash__Reference.py +13 -0
  38. mgraph_ai_service_cache_client/schemas/cache/store/Schema__Cache__Store__Metadata.py +20 -0
  39. mgraph_ai_service_cache_client/schemas/cache/store/Schema__Cache__Store__Paths.py +9 -0
  40. mgraph_ai_service_cache_client/schemas/cache/store/Schema__Store__Context.py +32 -0
  41. mgraph_ai_service_cache_client/schemas/cache/store/__init__.py +0 -0
  42. mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Batch__Request.py +15 -0
  43. mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Batch__Response.py +25 -0
  44. mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Operation__Request.py +14 -0
  45. mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Operation__Response.py +20 -0
  46. mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Store__Request.py +13 -0
  47. mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Store__Response.py +24 -0
  48. mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Zip__Batch__Operation.py +14 -0
  49. mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Zip__Operation__Result.py +11 -0
  50. mgraph_ai_service_cache_client/schemas/cache/zip/__init__.py +0 -0
  51. mgraph_ai_service_cache_client/schemas/cache/zip/enums/Enum__Cache__Zip__Condition.py +6 -0
  52. mgraph_ai_service_cache_client/schemas/cache/zip/enums/Enum__Cache__Zip__Operation.py +12 -0
  53. mgraph_ai_service_cache_client/schemas/cache/zip/enums/__init__.py +0 -0
  54. mgraph_ai_service_cache_client/schemas/cache/zip/safe_str/Safe_Str__Cache__Zip__Operation__Message.py +6 -0
  55. mgraph_ai_service_cache_client/schemas/cache/zip/safe_str/Safe_Str__Cache__Zip__Operation__Pattern.py +7 -0
  56. mgraph_ai_service_cache_client/schemas/cache/zip/safe_str/__init__.py +0 -0
  57. mgraph_ai_service_cache_client/schemas/client/Cache__Client__Requests__Result.py +26 -0
  58. mgraph_ai_service_cache_client/schemas/client/health_checks/Cache__Client__Health_Checks__Status.py +11 -0
  59. mgraph_ai_service_cache_client/schemas/consts/__init__.py +0 -0
  60. mgraph_ai_service_cache_client/schemas/consts/const__Fast_API.py +15 -0
  61. mgraph_ai_service_cache_client/schemas/consts/const__Storage.py +4 -0
  62. mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Base.py +13 -0
  63. mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Conflict.py +10 -0
  64. mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Gone.py +12 -0
  65. mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Invalid_Input.py +10 -0
  66. mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Not_Found.py +12 -0
  67. mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Service_Unavailable.py +9 -0
  68. mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Unsupported_Media_Type.py +11 -0
  69. mgraph_ai_service_cache_client/schemas/errors/__init__.py +0 -0
  70. mgraph_ai_service_cache_client/service/__init__.py +0 -0
  71. mgraph_ai_service_cache_client/utils/__init__.py +0 -0
  72. mgraph_ai_service_cache_client/version +1 -1
  73. {mgraph_ai_service_cache_client-0.1.2.dist-info → mgraph_ai_service_cache_client-0.1.4.dist-info}/METADATA +2 -2
  74. mgraph_ai_service_cache_client-0.1.4.dist-info/RECORD +88 -0
  75. mgraph_ai_service_cache_client-0.1.2.dist-info/RECORD +0 -17
  76. {mgraph_ai_service_cache_client-0.1.2.dist-info → mgraph_ai_service_cache_client-0.1.4.dist-info}/LICENSE +0 -0
  77. {mgraph_ai_service_cache_client-0.1.2.dist-info → mgraph_ai_service_cache_client-0.1.4.dist-info}/WHEEL +0 -0
@@ -0,0 +1,6 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from mgraph_ai_service_cache_client.client.Cache__Client__Config import Cache__Client__Config
3
+
4
+
5
+ class Cache__Client(Type_Safe):
6
+ config: Cache__Client__Config
@@ -0,0 +1,7 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.web.safe_str.Safe_Str__Url import Safe_Str__Url
3
+
4
+ URL__TARGET_SERVER__DEV = "https://cache.dev.mgraph.ai"
5
+
6
+ class Cache__Client__Config(Type_Safe):
7
+ target_server : Safe_Str__Url = URL__TARGET_SERVER__DEV
@@ -0,0 +1,25 @@
1
+ from osbot_utils.decorators.methods.cache_on_self import cache_on_self
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.utils.Misc import list_set
4
+ from mgraph_ai_service_cache_client.client.Cache__Client__Config import Cache__Client__Config
5
+ from mgraph_ai_service_cache_client.client.Cache__Client__Requests import Cache__Client__Requests
6
+ from mgraph_ai_service_cache_client.schemas.client.health_checks.Cache__Client__Health_Checks__Status import Cache__Client__Health_Checks__Status
7
+
8
+
9
+ class Cache__Client__Health_Checks(Type_Safe):
10
+ config : Cache__Client__Config
11
+
12
+ @cache_on_self
13
+ def client__requests(self):
14
+ return Cache__Client__Requests(config=self.config)
15
+
16
+ def check__target_server__status(self):
17
+ path = "/openapi.json" # in Fast_API this endpoint has no auth
18
+ result = self.client__requests().get(path)
19
+ openapi_json = result.json
20
+ success = list_set(openapi_json) == ['components', 'info', 'openapi', 'paths']
21
+
22
+ status_kwargs = dict(duration = result.duration ,
23
+ success = success ,
24
+ target_server = self.config.target_server)
25
+ return Cache__Client__Health_Checks__Status(**status_kwargs)
@@ -0,0 +1,38 @@
1
+ import requests
2
+ from osbot_utils.helpers.duration.decorators.capture_duration import capture_duration
3
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
4
+ from osbot_utils.utils.Http import url_join_safe
5
+ from mgraph_ai_service_cache_client.client.Cache__Client__Config import Cache__Client__Config
6
+ from mgraph_ai_service_cache_client.schemas.client.Cache__Client__Requests__Result import Cache__Client__Requests__Result
7
+
8
+
9
+ class Cache__Client__Requests(Type_Safe):
10
+ config: Cache__Client__Config
11
+
12
+ def auth_headers(self):
13
+ return {}
14
+
15
+ def headers(self):
16
+ return { **self.auth_headers() } # location to add more requests headers (if needed)
17
+
18
+ def get(self, path):
19
+ target_server = self.config.target_server
20
+ url = url_join_safe(target_server, path)
21
+ headers = self.auth_headers()
22
+ with capture_duration() as duration:
23
+ response = requests.get(url, headers=headers)
24
+
25
+
26
+ content_type = response.headers.get('content-type')
27
+ result_kwargs = dict(content_type = content_type ,
28
+ duration = duration.seconds ,
29
+ path = path ,
30
+ status_code = response.status_code,
31
+ target_server = target_server )
32
+
33
+ if 'json' in content_type: result_kwargs['json' ] = response.json()
34
+ elif 'text' in content_type: result_kwargs['text' ] = response.text
35
+ else: result_kwargs['content'] = response.content
36
+
37
+ return Cache__Client__Requests__Result(**result_kwargs)
38
+
File without changes
File without changes
File without changes
@@ -0,0 +1,23 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
3
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
4
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
6
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
7
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
8
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Data_Type import Enum__Cache__Data_Type
9
+ from mgraph_ai_service_cache_client.schemas.cache.Schema__Cache__Metadata import Schema__Cache__Metadata
10
+
11
+
12
+ # Response when binary data can't be included in JSON
13
+ class Schema__Cache__Binary__Reference(Type_Safe): # Reference to binary data
14
+ message : Safe_Str__Text # Explanation message
15
+ data_type : Enum__Cache__Data_Type # Always BINARY
16
+ size : Safe_UInt # Size of binary data
17
+ cache_hash : Safe_Str__Cache_Hash # Hash of the data
18
+ cache_id : Random_Guid # ID of the entry
19
+ namespace : Safe_Str__Id # Namespace
20
+ binary_url : Safe_Str__File__Path # URL to retrieve binary data
21
+ metadata : Schema__Cache__Metadata # Full metadata
22
+
23
+
@@ -0,0 +1,15 @@
1
+ from typing import List
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
4
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
5
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
6
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
7
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
8
+
9
+ # Response for delete operations
10
+ class Schema__Cache__Delete__Success(Type_Safe): # Successful deletion
11
+ cache_id : Random_Guid # ID that was deleted
12
+ namespace : Safe_Str__Id # Namespace it was in
13
+ deleted_count : Safe_UInt # Number of files deleted
14
+ deleted_paths : List[Safe_Str__File__Path] # Paths that were deleted
15
+ message : Safe_Str__Text = "Cache entry successfully deleted" # Success message
@@ -0,0 +1,14 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
4
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
5
+ from mgraph_ai_service_cache_client.schemas.cache.Schema__Cache__Metadata import Schema__Cache__Metadata
6
+
7
+ # todo: see refactoring opportunity for creating some base classes that have common fields like cache_id, cache_hash and metadata
8
+ # Response for checking if cache entry exists
9
+ class Schema__Cache__Exists__Response(Type_Safe): # Response for exists check
10
+ exists : bool # Whether entry exists
11
+ cache_hash : Safe_Str__Cache_Hash # Hash that was checked
12
+ namespace : Safe_Str__Id # Namespace checked
13
+ cache_id : Random_Guid = None # ID if it exists
14
+ metadata : Schema__Cache__Metadata = None # Metadata if it exists
@@ -0,0 +1,32 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
3
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
6
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
7
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
8
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Data_Type import Enum__Cache__Data_Type
9
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Store__Strategy import Enum__Cache__Store__Strategy
10
+
11
+
12
+ # Base response metadata that all responses share
13
+ class Schema__Cache__Metadata(Type_Safe): # Metadata about cached entry
14
+ cache_id : Random_Guid = None # Unique ID of this cache entry
15
+ cache_hash : Safe_Str__Cache_Hash = None # Content hash
16
+ cache_key : Safe_Str__Text = None # Optional semantic key
17
+ file_id : Safe_Str__Id = None # Optional file ID
18
+ namespace : Safe_Str__Id = None # Namespace for isolation
19
+ strategy : Enum__Cache__Store__Strategy = None # Storage strategy used
20
+ stored_at : Timestamp_Now = None # When stored (timestamp)
21
+ file_type : Enum__Cache__Data_Type = None # Type of data
22
+ content_encoding : Safe_Str__Id = None # e.g., gzip
23
+ content_size : Safe_UInt = None # Size in bytes
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
@@ -0,0 +1,21 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
3
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
5
+
6
+ # Response for namespace statistics
7
+ class Schema__Cache__Namespace__Stats(Type_Safe): # Namespace statistics
8
+ namespace : Safe_Str__Id # Namespace name
9
+ s3_bucket : Safe_Str__Id # S3 bucket name
10
+ s3_prefix : Safe_Str__Text # S3 prefix path
11
+ ttl_hours : Safe_UInt # TTL configuration
12
+ direct_files : Safe_UInt # Files in direct strategy
13
+ temporal_files : Safe_UInt # Files in temporal strategy
14
+ temporal_latest_files : Safe_UInt # Files in temporal_latest
15
+ temporal_versioned_files : Safe_UInt # Files in temporal_versioned
16
+ refs_hash_files : Safe_UInt # Hash reference files
17
+ refs_id_files : Safe_UInt # ID reference files
18
+ total_files : Safe_UInt # Total file count
19
+
20
+
21
+
@@ -0,0 +1,7 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
3
+
4
+
5
+ class Schema__Cache__Namespaces__List(Type_Safe): # List of namespaces
6
+ namespaces : list # List of namespace names
7
+ count : Safe_UInt # Total count
@@ -0,0 +1,11 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
4
+
5
+
6
+ class Schema__Cache__Retrieve__Request(Type_Safe): # Request schema for retrieving cache data
7
+ cache_hash : Safe_Str__Cache_Hash = None
8
+ cache_id : Random_Guid = None
9
+ include_data : bool = True
10
+ include_metadata: bool = True
11
+ include_config : bool = True
@@ -0,0 +1,10 @@
1
+ from typing import Dict, Any, Optional, Union
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from mgraph_ai_service_cache_client.schemas.cache.Schema__Cache__Metadata import Schema__Cache__Metadata
4
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Data_Type import Enum__Cache__Data_Type
5
+
6
+ # Success response for retrieving data
7
+ class Schema__Cache__Retrieve__Success(Type_Safe): # Successful retrieval with data
8
+ data : Union[dict, str, bytes] # Actual cached content
9
+ metadata : Schema__Cache__Metadata # Cache metadata
10
+ data_type : Enum__Cache__Data_Type # Type of data returned
@@ -0,0 +1,14 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+
3
+
4
+ # todo: see if we need this class
5
+ class Schema__Cache__Stats__Response(Type_Safe): # Response schema for statistics
6
+ total_entries : int
7
+ total_unique_hashes : int
8
+ total_size_bytes : int
9
+ total_versions : int
10
+ storage_used_percent: float
11
+ cache_hit_rate : float
12
+ avg_entry_size : int
13
+ oldest_entry : str = None
14
+ newest_entry : str = None
@@ -0,0 +1,15 @@
1
+ from typing import List, Dict
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
4
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
6
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
7
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
8
+
9
+
10
+ class Schema__Cache__Store__Response(Type_Safe):
11
+ cache_id : Random_Guid
12
+ cache_hash : Safe_Str__Cache_Hash
13
+ namespace : Safe_Str__Id
14
+ paths : Dict[str,List[Safe_Str__File__Path]] # Structured paths
15
+ size : Safe_UInt # Size in bytes
@@ -0,0 +1,7 @@
1
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Store__Strategy import Enum__Cache__Store__Strategy
2
+
3
+ DEFAULT_CACHE__STORE__STRATEGY = Enum__Cache__Store__Strategy.TEMPORAL
4
+ DEFAULT_CACHE__ZIP__STRATEGY = Enum__Cache__Store__Strategy.KEY_BASED
5
+ DEFAULT_CACHE__NAMESPACE = 'default'
6
+
7
+ DEFAULT__HTTP_CODE__FILE_NOT_FOUND = 404
@@ -0,0 +1,8 @@
1
+ from typing import List
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
4
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
5
+
6
+ class Schema__Cache__Data__Delete__All_Files__Response(Type_Safe):
7
+ deleted_count : Safe_UInt
8
+ deleted_files : List[Safe_Str__File__Path]
@@ -0,0 +1,12 @@
1
+ from typing import List
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
6
+
7
+
8
+ class Schema__Cache__Data__Files__List(Type_Safe):
9
+ cache_id : Random_Guid = None
10
+ namespace : Safe_Str__Id = None
11
+ data_key : Safe_Str__File__Path = None
12
+ data_files : List[Safe_Str__File__Path]
@@ -0,0 +1,14 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
5
+ from mgraph_ai_service_cache_client.schemas.cache.consts__Cache_Service import DEFAULT_CACHE__NAMESPACE
6
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Data_Type import Enum__Cache__Data_Type
7
+
8
+
9
+ class Schema__Cache__Data__Retrieve__Request(Type_Safe):
10
+ cache_id : Random_Guid = None
11
+ data_type : Enum__Cache__Data_Type = None # Required: 'string', 'json', or 'binary'
12
+ data_key : Safe_Str__File__Path = None
13
+ data_file_id : Safe_Str__Id = None
14
+ namespace : Safe_Str__Id = DEFAULT_CACHE__NAMESPACE
@@ -0,0 +1,16 @@
1
+ from typing import Union
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
5
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
6
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Data_Type import Enum__Cache__Data_Type
7
+
8
+
9
+ class Schema__Cache__Data__Retrieve__Response(Type_Safe): # Data file with its content
10
+ data : Union[str, dict, bytes] = None # Actual file content
11
+ data_type : Enum__Cache__Data_Type = None # Data type: json, string, binary
12
+ data_file_id : Safe_Str__Id = None # Data file identifier
13
+ data_key : Safe_Str__File__Path = None # Path within data folder
14
+ full_path : Safe_Str__File__Path = None # Full file path
15
+ size : Safe_UInt = None # File size in bytes
16
+ found : bool = False # Indicates if file was found
@@ -0,0 +1,16 @@
1
+ from typing import Union
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
6
+ from mgraph_ai_service_cache_client.schemas.cache.consts__Cache_Service import DEFAULT_CACHE__NAMESPACE
7
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Data_Type import Enum__Cache__Data_Type
8
+
9
+
10
+ class Schema__Cache__Data__Store__Request(Type_Safe):
11
+ cache_id : Random_Guid = None
12
+ data : Union[str, dict, bytes] = None # Data to store as child
13
+ data_type : Enum__Cache__Data_Type = None # Type: 'string', 'json', or 'binary'
14
+ data_key : Safe_Str__File__Path = None
15
+ data_file_id: Safe_Str__Id = None
16
+ namespace : Safe_Str__Id = DEFAULT_CACHE__NAMESPACE
@@ -0,0 +1,21 @@
1
+ from typing import List, Dict
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
4
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
6
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
7
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
8
+
9
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Data_Type import Enum__Cache__Data_Type
10
+
11
+
12
+ class Schema__Cache__Data__Store__Response(Type_Safe):
13
+ cache_id : Random_Guid = None
14
+ data_files_created : List[Safe_Str__File__Path] = None
15
+ data_key : Safe_Str__File__Path = None
16
+ data_type : Enum__Cache__Data_Type = None # Type: 'string', 'json', or 'binary'
17
+ extension : Safe_Str__Id = None
18
+ file_id : Safe_Str__Id = None
19
+ file_size : Safe_UInt = None # Size in bytes
20
+ namespace : Safe_Str__Id = None
21
+ timestamp : Timestamp_Now
@@ -0,0 +1,6 @@
1
+ from enum import Enum
2
+
3
+ class Enum__Cache__Data_Type(str, Enum):
4
+ JSON = "json"
5
+ STRING = "string"
6
+ BINARY = "binary"
@@ -0,0 +1,5 @@
1
+ from enum import Enum
2
+
3
+ class Enum__Cache__File_Type(str, Enum):
4
+ JSON = "json"
5
+ BINARY = "binary"
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class Enum__Cache__Storage_Mode(str, Enum):
4
+ MEMORY = "memory" # Default - no dependencies, fully in-memory
5
+ S3 = "s3" # AWS S3 or S3-compatible storage
6
+ LOCAL_DISK = "local_disk" # Local file system storage
7
+ SQLITE = "sqlite" # SQLite database storage
8
+ ZIP = "zip" # ZIP archive storage
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class Enum__Cache__Store__Strategy(str, Enum):
4
+ DIRECT = "direct"
5
+ TEMPORAL = "temporal"
6
+ TEMPORAL_LATEST = "temporal_latest"
7
+ TEMPORAL_VERSIONED = "temporal_versioned"
8
+ KEY_BASED = "key_based"
@@ -0,0 +1,7 @@
1
+ from typing import List
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
4
+
5
+ class Schema__Cache__File__Paths(Type_Safe):
6
+ content_files: List[Safe_Str__File__Path] # Paths to content files
7
+ data_folders : List[Safe_Str__File__Path] # Paths to data files
@@ -0,0 +1,20 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
5
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
6
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__File_Type import Enum__Cache__File_Type
7
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Store__Strategy import Enum__Cache__Store__Strategy
8
+ from mgraph_ai_service_cache_client.schemas.cache.file.Schema__Cache__File__Paths import Schema__Cache__File__Paths
9
+ from mgraph_ai_service_cache_client.schemas.cache.store.Schema__Cache__Store__Paths import Schema__Cache__Store__Paths
10
+
11
+ # todo: review the field name 'all_paths' (in light of the new file_paths field)
12
+ class Schema__Cache__File__Refs(Type_Safe): # ID-to-hash reference with content paths
13
+ all_paths : Schema__Cache__Store__Paths # All file paths created
14
+ cache_id : Random_Guid # Cache ID
15
+ cache_hash : Safe_Str__Cache_Hash # Hash value
16
+ file_type : Enum__Cache__File_Type # Type of stored data
17
+ namespace : Safe_Str__Id # Namespace
18
+ file_paths : Schema__Cache__File__Paths # Paths to content and data files
19
+ strategy : Enum__Cache__Store__Strategy # Storage strategy
20
+ timestamp : Timestamp_Now # When created
@@ -0,0 +1,8 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
4
+
5
+
6
+ class Schema__Cache__Hash__Entry(Type_Safe): # Individual cache ID entry in hash reference
7
+ cache_id : Random_Guid # Cache ID
8
+ timestamp : Timestamp_Now
@@ -0,0 +1,13 @@
1
+ from typing import List
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
4
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
6
+ from mgraph_ai_service_cache_client.schemas.cache.store.Schema__Cache__Hash__Entry import Schema__Cache__Hash__Entry
7
+
8
+
9
+ class Schema__Cache__Hash__Reference(Type_Safe): # Hash-to-ID reference structure
10
+ cache_hash : Safe_Str__Cache_Hash # The hash value
11
+ cache_ids : List[Schema__Cache__Hash__Entry] # All cache IDs with this hash
12
+ latest_id : Random_Guid # Most recent cache ID
13
+ total_versions : Safe_UInt
@@ -0,0 +1,20 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
6
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
7
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__File_Type import Enum__Cache__File_Type
8
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Store__Strategy import Enum__Cache__Store__Strategy
9
+
10
+
11
+ class Schema__Cache__Store__Metadata(Type_Safe): # Metadata for stored cache entries
12
+ cache_hash : Safe_Str__Cache_Hash = None # Hash of the data
13
+ cache_key : Safe_Str__Text = None # Optional semantic key
14
+ cache_id : Random_Guid = None # Cache entry ID
15
+ content_encoding : Safe_Str__Id = None # Optional encoding
16
+ file_id : Safe_Str__Id = None # File ID used for storage
17
+ stored_at : Timestamp_Now = None # When stored
18
+ strategy : Enum__Cache__Store__Strategy = None # Storage strategy used
19
+ namespace : Safe_Str__Id = None # Namespace
20
+ file_type : Enum__Cache__File_Type = None # Type: 'json' or 'binary'
@@ -0,0 +1,9 @@
1
+ from typing import List
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
4
+
5
+
6
+ class Schema__Cache__Store__Paths(Type_Safe): # Tracks all paths created during storage
7
+ data : List[Safe_Str__File__Path] # Paths to actual data files
8
+ by_hash : List[Safe_Str__File__Path] # Paths to hash reference files
9
+ by_id : List[Safe_Str__File__Path] # Paths to ID reference files
@@ -0,0 +1,32 @@
1
+ from typing import Union, Dict, List
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
4
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
6
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
7
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
8
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Store__Strategy import Enum__Cache__Store__Strategy
9
+ from mgraph_ai_service_cache_client.schemas.cache.file.Schema__Cache__File__Paths import Schema__Cache__File__Paths
10
+ from mgraph_ai_service_cache_client.schemas.cache.store.Schema__Cache__Store__Metadata import Schema__Cache__Store__Metadata
11
+ from mgraph_ai_service_cache_client.schemas.cache.store.Schema__Cache__Store__Paths import Schema__Cache__Store__Paths
12
+ from mgraph_ai_service_cache.service.cache.Cache__Handler import Cache__Handler
13
+
14
+
15
+ class Schema__Store__Context(Type_Safe): # Context object to pass data between store operations
16
+ storage_data : Union[str, Dict, bytes] # Data to be stored (string, dict, or bytes)
17
+ cache_hash : Safe_Str__Cache_Hash = None # Hash of the data or cache key
18
+ cache_id : Random_Guid = None # Unique ID for this cache entry
19
+ cache_key : Safe_Str__File__Path = None # Optional semantic cache key
20
+ file_id : Safe_Str__Id = None # Optional file ID (defaults to cache_id)
21
+ namespace : Safe_Str__Id = None # Namespace for isolation
22
+ strategy : Enum__Cache__Store__Strategy = None # Storage strategy to use
23
+ content_encoding : Safe_Str__Id = None # Optional encoding (e.g., 'gzip')
24
+ handler : Cache__Handler = None # Cache handler for the namespace
25
+
26
+ # Computed during storage process (now using Type_Safe classes)
27
+ file_type : str = None # Determined type: 'json' or 'binary'
28
+ file_size : int = None # Size of stored data in bytes
29
+ all_paths : Schema__Cache__Store__Paths = None # Paths organized by type
30
+ file_paths : Schema__Cache__File__Paths # Paths to actual content files and data folders
31
+ timestamp : Timestamp_Now = None # When the entry was stored
32
+ metadata : Schema__Cache__Store__Metadata = None
@@ -0,0 +1,15 @@
1
+ from typing import List
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
5
+ from mgraph_ai_service_cache_client.schemas.cache.consts__Cache_Service import DEFAULT_CACHE__NAMESPACE
6
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Store__Strategy import Enum__Cache__Store__Strategy
7
+ from mgraph_ai_service_cache_client.schemas.cache.zip.Schema__Zip__Batch__Operation import Schema__Zip__Batch__Operation
8
+
9
+
10
+ class Schema__Cache__Zip__Batch__Request(Type_Safe): # Request for batch zip operations
11
+ atomic : bool = True # All-or-nothing execution
12
+ cache_id : Random_Guid = None # ID of the zip file to operate on
13
+ namespace : Safe_Str__Id = DEFAULT_CACHE__NAMESPACE # Namespace for isolation
14
+ strategy : Enum__Cache__Store__Strategy = None # How to save result
15
+ operations : List[Schema__Zip__Batch__Operation] # List of operations to perform
@@ -0,0 +1,25 @@
1
+ from typing import List
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
4
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
6
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
7
+ from mgraph_ai_service_cache_client.schemas.cache.zip.Schema__Zip__Operation__Result import Schema__Zip__Operation__Result
8
+ from mgraph_ai_service_cache_client.schemas.cache.zip.safe_str.Safe_Str__Cache__Zip__Operation__Message import Safe_Str__Cache__Zip__Operation__Message
9
+
10
+
11
+ class Schema__Cache__Zip__Batch__Response(Type_Safe): # Response from batch operations
12
+ success : bool # Overall success status
13
+ cache_id : Random_Guid = None # Original zip ID
14
+ original_cache_id : Random_Guid = None # Original ID for provenance
15
+ operations_applied : Safe_UInt # Number of successful operations
16
+ operations_failed : Safe_UInt # Number of failed operations
17
+ operation_results : List[Schema__Zip__Operation__Result] # Individual results
18
+ files_added : List[Safe_Str__File__Path] # Files that were added
19
+ files_removed : List[Safe_Str__File__Path] # Files that were removed
20
+ files_modified : List[Safe_Str__File__Path] # Files that were modified
21
+ new_file_count : Safe_UInt # Total files after operations
22
+ new_size : Safe_UInt # Total size after operations
23
+ completed_at : Timestamp_Now # When batch completed
24
+ rollback_performed : bool = False # Whether rollback occurred
25
+ error_message : Safe_Str__Cache__Zip__Operation__Message # Overall error if atomic failed
@@ -0,0 +1,14 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
5
+ from mgraph_ai_service_cache_client.schemas.cache.consts__Cache_Service import DEFAULT_CACHE__NAMESPACE
6
+ from mgraph_ai_service_cache_client.schemas.cache.zip.enums.Enum__Cache__Zip__Operation import Enum__Cache__Zip__Operation
7
+
8
+
9
+ class Schema__Cache__Zip__Operation__Request(Type_Safe): # Request for single zip operation
10
+ cache_id : Random_Guid # ID of the zip file to operate on
11
+ operation : Enum__Cache__Zip__Operation # Operation type
12
+ file_path : Safe_Str__File__Path = None # Path within zip (for get/add/remove/replace)
13
+ file_content: bytes = None # Content for add/replace operations
14
+ namespace : Safe_Str__Id = DEFAULT_CACHE__NAMESPACE # Namespace for isolation
@@ -0,0 +1,20 @@
1
+ from typing import List, Dict, Any, Optional
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
4
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
6
+ from mgraph_ai_service_cache_client.schemas.cache.zip.enums.Enum__Cache__Zip__Operation import Enum__Cache__Zip__Operation
7
+ from mgraph_ai_service_cache_client.schemas.cache.zip.safe_str.Safe_Str__Cache__Zip__Operation__Message import Safe_Str__Cache__Zip__Operation__Message
8
+
9
+
10
+ class Schema__Cache__Zip__Operation__Response(Type_Safe): # Response from zip operation
11
+ success : bool # Whether operation succeeded
12
+ operation : Enum__Cache__Zip__Operation # Operation that was performed
13
+ cache_id : Random_Guid = None # ID of the zip file operated on
14
+ original_cache_id : Optional[Random_Guid] = None
15
+ message : Safe_Str__Cache__Zip__Operation__Message = None # Optional status message
16
+ file_list : List[Safe_Str__File__Path] # For list operation
17
+ file_content : bytes # For get operation
18
+ file_size : Safe_UInt # Size of retrieved file
19
+ files_affected : List[Safe_Str__File__Path] # Files that were changed
20
+ error_details : Safe_Str__Cache__Zip__Operation__Message # Error information if failed
@@ -0,0 +1,13 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
4
+ from mgraph_ai_service_cache_client.schemas.cache.consts__Cache_Service import DEFAULT_CACHE__NAMESPACE
5
+ from mgraph_ai_service_cache_client.schemas.cache.enums.Enum__Cache__Store__Strategy import Enum__Cache__Store__Strategy
6
+
7
+
8
+ class Schema__Cache__Zip__Store__Request(Type_Safe): # Request schema for storing zip files
9
+ zip_bytes : bytes # Raw zip file content
10
+ cache_key : Safe_Str__File__Path = None # Optional semantic key for the zip
11
+ file_id : Safe_Str__Id = None # Optional file ID (defaults to cache_id)
12
+ namespace : Safe_Str__Id = DEFAULT_CACHE__NAMESPACE # Namespace for isolation
13
+ strategy : Enum__Cache__Store__Strategy = Enum__Cache__Store__Strategy.TEMPORAL # Storage strategy
@@ -0,0 +1,24 @@
1
+ from typing import List, Dict, Optional
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
4
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
6
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
7
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
8
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
9
+ from mgraph_ai_service_cache_client.schemas.cache.zip.safe_str.Safe_Str__Cache__Zip__Operation__Message import Safe_Str__Cache__Zip__Operation__Message
10
+
11
+ class Schema__Cache__Zip__Store__Response(Type_Safe): # Response after storing zip file
12
+ cache_id : Optional[Random_Guid] = None # Generated ID for this zip entry
13
+ cache_hash : Optional[Safe_Str__Cache_Hash] = None # Hash of the zip content
14
+ namespace : Safe_Str__Id # Namespace where stored
15
+ paths : Dict[Safe_Str__Id, List[Safe_Str__File__Path]] # Storage paths by type
16
+ size : Safe_UInt # Size in bytes
17
+ file_count : Safe_UInt # Number of files in zip
18
+ stored_at : Timestamp_Now # When stored
19
+ error_type : Optional[Safe_Str__Id] = None # Error classification
20
+ error_message : Optional[Safe_Str__Cache__Zip__Operation__Message] = None # Human-readable error
21
+ success : bool # Operation success status
22
+
23
+
24
+
@@ -0,0 +1,14 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
3
+ from mgraph_ai_service_cache_client.schemas.cache.zip.enums.Enum__Cache__Zip__Condition import Enum__Cache__Zip__Condition
4
+ from mgraph_ai_service_cache_client.schemas.cache.zip.enums.Enum__Cache__Zip__Operation import Enum__Cache__Zip__Operation
5
+ from mgraph_ai_service_cache_client.schemas.cache.zip.safe_str.Safe_Str__Cache__Zip__Operation__Pattern import Safe_Str__Cache__Zip__Operation__Pattern
6
+
7
+
8
+ class Schema__Zip__Batch__Operation(Type_Safe): # Individual operation in batch
9
+ action : Enum__Cache__Zip__Operation # Operation type
10
+ path : Safe_Str__File__Path # File path in zip
11
+ content : bytes = None # Content for add/replace
12
+ new_path : Safe_Str__File__Path = None # New path for rename/move
13
+ condition : Enum__Cache__Zip__Condition = Enum__Cache__Zip__Condition.ALWAYS # Conditional execution
14
+ pattern : Safe_Str__Cache__Zip__Operation__Pattern = None # Pattern for bulk operations (e.g., "*.tmp")
@@ -0,0 +1,11 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
3
+ from mgraph_ai_service_cache_client.schemas.cache.zip.enums.Enum__Cache__Zip__Operation import Enum__Cache__Zip__Operation
4
+ from mgraph_ai_service_cache_client.schemas.cache.zip.safe_str.Safe_Str__Cache__Zip__Operation__Message import Safe_Str__Cache__Zip__Operation__Message
5
+
6
+
7
+ class Schema__Zip__Operation__Result(Type_Safe): # Result of individual operation
8
+ action : Enum__Cache__Zip__Operation # Operation performed
9
+ path : Safe_Str__File__Path # File affected
10
+ success : bool # Whether it succeeded
11
+ error : Safe_Str__Cache__Zip__Operation__Message # Error if failed
@@ -0,0 +1,6 @@
1
+ from enum import Enum
2
+
3
+ class Enum__Cache__Zip__Condition(str, Enum):
4
+ ALWAYS = "always"
5
+ IF_EXISTS = "if_exists"
6
+ IF_NOT_EXISTS = "if_not_exists"
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+ class Enum__Cache__Zip__Operation(str, Enum):
4
+ LIST = "list"
5
+ GET = "get"
6
+ ADD = "add"
7
+ REMOVE = "remove"
8
+ REPLACE = "replace"
9
+ RENAME = "rename"
10
+
11
+ def __str__(self):
12
+ return self.value
@@ -0,0 +1,6 @@
1
+ import re
2
+ from osbot_utils.type_safe.primitives.core.Safe_Str import Safe_Str
3
+
4
+
5
+ class Safe_Str__Cache__Zip__Operation__Message(Safe_Str):
6
+ regex = re.compile(r'[^a-zA-Z0-9:.\'"() ]')
@@ -0,0 +1,7 @@
1
+ import re
2
+
3
+ from osbot_utils.type_safe.primitives.core.Safe_Str import Safe_Str
4
+
5
+
6
+ class Safe_Str__Cache__Zip__Operation__Pattern(Safe_Str):
7
+ regex = re.compile(r'[^a-zA-Z0-9:.*/]')
@@ -0,0 +1,26 @@
1
+ from typing import Dict
2
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
3
+ from osbot_utils.type_safe.primitives.core.Safe_Float import Safe_Float
4
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
5
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
6
+ from osbot_utils.type_safe.primitives.domains.files.safe_str.Safe_Str__File__Path import Safe_Str__File__Path
7
+ from osbot_utils.type_safe.primitives.domains.http.safe_str.Safe_Str__Http__Content_Type import Safe_Str__Http__Content_Type
8
+ from osbot_utils.type_safe.primitives.domains.http.safe_str.Safe_Str__Http__Text import Safe_Str__Http__Text
9
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
10
+ from osbot_utils.type_safe.primitives.domains.web.safe_str.Safe_Str__Url import Safe_Str__Url
11
+
12
+
13
+ class Cache__Client__Requests__Result(Type_Safe):
14
+ content_type : Safe_Str__Http__Content_Type
15
+ content : bytes = None
16
+ duration : Safe_Float
17
+ error : Safe_Str__Text
18
+ json : Dict = None
19
+ path : Safe_Str__File__Path
20
+ status_code : Safe_UInt
21
+ target_server : Safe_Str__Url
22
+ text : Safe_Str__Http__Text = None # this has 1M limit, which should be ok for all use-cases (that return text)
23
+ timestamp : Timestamp_Now
24
+
25
+
26
+
@@ -0,0 +1,11 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.core.Safe_Float import Safe_Float
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
4
+ from osbot_utils.type_safe.primitives.domains.web.safe_str.Safe_Str__Url import Safe_Str__Url
5
+
6
+
7
+ class Cache__Client__Health_Checks__Status(Type_Safe):
8
+ duration : Safe_Float
9
+ success : bool
10
+ target_server: Safe_Str__Url
11
+ timestamp : Timestamp_Now
@@ -0,0 +1,15 @@
1
+ from fastapi import Path
2
+ from mgraph_ai_service_cache_client.schemas.cache.consts__Cache_Service import DEFAULT_CACHE__NAMESPACE, DEFAULT_CACHE__STORE__STRATEGY
3
+
4
+ FAST_API__PARAM__NAMESPACE = Path(..., example=DEFAULT_CACHE__NAMESPACE ) # note: although we get a warning, examples is not currently working
5
+ FAST_API__PARAM__STRATEGY = Path(..., example=DEFAULT_CACHE__STORE__STRATEGY)
6
+ ENV_VAR__CACHE__SERVICE__BUCKET_NAME = 'CACHE__SERVICE__BUCKET_NAME'
7
+ ENV_VAR__CACHE__SERVICE__DEFAULT_TTL_HOURS = 'CACHE__SERVICE__DEFAULT_TTL_HOURS'
8
+
9
+ DEFAULT__CACHE__SERVICE__BUCKET_NAME = "mgraph-ai-cache"
10
+ DEFAULT__CACHE__SERVICE__DEFAULT_TTL_HOURS = 24
11
+
12
+ CACHE__TEST__FIXTURES__BUCKET_NAME = "test-cache-fixtures"
13
+ CACHE__TEST__FIXTURES__NAMESPACE = "fixtures-namespace"
14
+
15
+
@@ -0,0 +1,4 @@
1
+ ENV_VAR__CACHE__SERVICE__STORAGE_MODE = 'CACHE__SERVICE__STORAGE_MODE'
2
+ ENV_VAR__CACHE__SERVICE__LOCAL_DISK_PATH = 'CACHE__SERVICE__LOCAL_DISK_PATH'
3
+ ENV_VAR__CACHE__SERVICE__SQLITE_PATH = 'CACHE__SERVICE__SQLITE_PATH'
4
+ ENV_VAR__CACHE__SERVICE__ZIP_PATH = 'CACHE__SERVICE__ZIP_PATH'
@@ -0,0 +1,13 @@
1
+ from osbot_utils.type_safe.Type_Safe import Type_Safe
2
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
5
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
6
+
7
+
8
+ # todo: should we add here the status_code value?
9
+ class Schema__Cache__Error__Base(Type_Safe): # Base error response schema that all error responses inherit from
10
+ error_type : Safe_Str__Id # Type of error (e.g., NOT_FOUND, INVALID_INPUT)
11
+ message : Safe_Str__Text # Human-readable error message
12
+ timestamp : Timestamp_Now # When the error occurred
13
+ request_id : Random_Guid # Unique ID for this request (for tracing)
@@ -0,0 +1,10 @@
1
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
2
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
3
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
4
+ from mgraph_ai_service_cache_client.schemas.errors.Schema__Cache__Error__Base import Schema__Cache__Error__Base
5
+
6
+
7
+ class Schema__Cache__Error__Conflict(Schema__Cache__Error__Base): # 409 Conflict errors
8
+ conflict_type : Safe_Str__Id # Type of conflict (duplicate, locked, etc.)
9
+ existing_id : Random_Guid = None # Existing entry that conflicts
10
+ cache_hash : Safe_Str__Cache_Hash = None # Hash involved in conflict
@@ -0,0 +1,12 @@
1
+ from osbot_utils.type_safe.primitives.core.Safe_UInt import Safe_UInt
2
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_int.Timestamp_Now import Timestamp_Now
4
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
5
+ from mgraph_ai_service_cache_client.schemas.errors.Schema__Cache__Error__Base import Schema__Cache__Error__Base
6
+
7
+
8
+ class Schema__Cache__Error__Gone(Schema__Cache__Error__Base): # 410 Gone errors (expired entries)
9
+ cache_id : Random_Guid = None # ID that expired
10
+ expired_at : Timestamp_Now = None # When it expired
11
+ ttl_hours : Safe_UInt = None # What the TTL was
12
+ namespace : Safe_Str__Id = None # Namespace of expired entry
@@ -0,0 +1,10 @@
1
+ from typing import Dict, Any, Optional
2
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
3
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
4
+ from mgraph_ai_service_cache_client.schemas.errors.Schema__Cache__Error__Base import Schema__Cache__Error__Base
5
+
6
+ class Schema__Cache__Error__Invalid_Input(Schema__Cache__Error__Base): # 400 Bad Request errors
7
+ field_name : Safe_Str__Id # Which field had invalid input
8
+ field_value : Safe_Str__Text = None # The invalid value (if safe to include)
9
+ expected_type : Safe_Str__Id # What type/format was expected
10
+ constraints : Dict[str, Any] = None # Any constraints that were violated
@@ -0,0 +1,12 @@
1
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
2
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
3
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
4
+ from mgraph_ai_service_cache_client.schemas.errors.Schema__Cache__Error__Base import Schema__Cache__Error__Base
5
+
6
+
7
+ class Schema__Cache__Error__Not_Found(Schema__Cache__Error__Base): # 404 Not Found errors
8
+ resource_type : Safe_Str__Id # Type of resource (cache_entry, namespace, etc.)
9
+ resource_id : Safe_Str__Id = None # ID that wasn't found
10
+ cache_hash : Safe_Str__Cache_Hash = None # Hash that wasn't found (if applicable)
11
+ cache_id : Random_Guid = None # Cache ID that wasn't found (if applicable)
12
+ namespace : Safe_Str__Id = None # Namespace where search occurred
@@ -0,0 +1,9 @@
1
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
2
+ from osbot_utils.type_safe.primitives.domains.identifiers.safe_str.Safe_Str__Id import Safe_Str__Id
3
+ from mgraph_ai_service_cache_client.schemas.errors.Schema__Cache__Error__Base import Schema__Cache__Error__Base
4
+
5
+
6
+ class Schema__Cache__Error__Service_Unavailable(Schema__Cache__Error__Base): # 503 Service Unavailable errors
7
+ service_name : Safe_Str__Id # Which service is unavailable (s3, cache, etc.)
8
+ retry_after : int = None # Seconds to wait before retry
9
+ details : Safe_Str__Text = None # Additional details about the issue
@@ -0,0 +1,11 @@
1
+ from osbot_utils.type_safe.primitives.domains.common.safe_str.Safe_Str__Text import Safe_Str__Text
2
+ from osbot_utils.type_safe.primitives.domains.identifiers.Random_Guid import Random_Guid
3
+ from osbot_utils.type_safe.primitives.domains.cryptography.safe_str.Safe_Str__Cache_Hash import Safe_Str__Cache_Hash
4
+ from mgraph_ai_service_cache_client.schemas.errors.Schema__Cache__Error__Base import Schema__Cache__Error__Base
5
+
6
+
7
+ class Schema__Cache__Error__Unsupported_Media_Type(Schema__Cache__Error__Base): # 415 Unsupported Media Type errors
8
+ requested_type : Safe_Str__Text # Type that was requested
9
+ actual_type : Safe_Str__Text # Actual type of the data
10
+ cache_hash : Safe_Str__Cache_Hash = None # Hash of the entry (if applicable)
11
+ cache_id : Random_Guid = None # ID of the entry (if applicable)
File without changes
File without changes
@@ -1 +1 @@
1
- v0.1.2
1
+ v0.1.4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mgraph_ai_service_cache__client
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: MGraph-AI__Service__Cache__Client
5
5
  Home-page: https://github.com/the-cyber-boardroom/MGraph-AI__Service__Cache__Client
6
6
  License: Apache 2.0
@@ -16,7 +16,7 @@ Description-Content-Type: text/markdown
16
16
 
17
17
  # MGraph AI Service Cache Client
18
18
 
19
- [![Current Release](https://img.shields.io/badge/release-v0.1.2-blue)](https://github.com/the-cyber-boardroom/MGraph-AI__Service__Cache__Client/releases)
19
+ [![Current Release](https://img.shields.io/badge/release-v0.1.4-blue)](https://github.com/the-cyber-boardroom/MGraph-AI__Service__Cache__Client/releases)
20
20
  [![Python](https://img.shields.io/badge/python-3.12-blue)](https://www.python.org/downloads/)
21
21
  [![FastAPI](https://img.shields.io/badge/FastAPI-0.116.1-009688)](https://fastapi.tiangolo.com/)
22
22
  [![AWS Lambda](https://img.shields.io/badge/AWS-Lambda-orange)](https://aws.amazon.com/lambda/)
@@ -0,0 +1,88 @@
1
+ mgraph_ai_service_cache_client/__init__.py,sha256=vV-3_LTA0gOaz_M_rug9AA7UQ6vMFo35MolQSywHS-4,74
2
+ mgraph_ai_service_cache_client/client/Cache__Client.py,sha256=fdfMSe86BzcNMmPIWalAeQUCdWgHa_dho0xEJ4c2tGY,244
3
+ mgraph_ai_service_cache_client/client/Cache__Client__Config.py,sha256=HY9ZwlQUR562l_SMeZSEd3G48TB9M-k4AdN81Nbrtjw,341
4
+ mgraph_ai_service_cache_client/client/Cache__Client__Health_Checks.py,sha256=wjTQltslff3779ONQt68xQxcSLGiak80TeHNbkbjBGo,1597
5
+ mgraph_ai_service_cache_client/client/Cache__Client__Requests.py,sha256=_2scv2ugy0IDFxnl2zuaR4yD8SmAWWW_Vk7b9_ecAzk,1837
6
+ mgraph_ai_service_cache_client/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ mgraph_ai_service_cache_client/config.py,sha256=JmUXxVA2PmuPzv39_0751dswVYyUtrzAjVr1JFnso-s,356
8
+ mgraph_ai_service_cache_client/fast_api/Cache_Client__Fast_API.py,sha256=iYUqCYKemXJPpSVDYJ5VAxcAZEqMIK5Q6CaWZ5uSGPE,526
9
+ mgraph_ai_service_cache_client/fast_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ mgraph_ai_service_cache_client/fast_api/lambda_handler.py,sha256=hqBD4imnlACXdE7mFjUz7Q7OkxOoA1rk4blZ9HqsWaY,1001
11
+ mgraph_ai_service_cache_client/fast_api/routes/Routes__Info.py,sha256=4Qe67YJeS6vAaFPTrefVFRnbBu3XaHDN9joWs49i1_4,1353
12
+ mgraph_ai_service_cache_client/fast_api/routes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ mgraph_ai_service_cache_client/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Binary__Reference.py,sha256=7k4etDRNSXwOzf5KLYC9Ygo5vor8yx_fmc5sJCLF0Dk,1766
15
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Delete__Success.py,sha256=rFatFDk9lbR9Hqe1VQ4zkyleHPVsiKj2Io3TJmV-LXw,1395
16
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Exists__Response.py,sha256=hhylZfJ_UxD4V9Qwo12OYVArGJDZ2arBDTjCfSK34XY,1412
17
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Metadata.py,sha256=2YIv0L9Yok2ygcejDLY3-M0DUSiSVfiq3w5iaR94Plw,2299
18
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Namespace__Stats.py,sha256=54AgnlwZEZM7yhr7exJpckoYKSrihhqa2_sGFVifgl0,1782
19
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Namespaces__List.py,sha256=hVGvkBwp0IPje_KrYLzROgj0Yev7_0mxPpr5Sdz9Pwk,519
20
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Retrieve__Request.py,sha256=NWCeb4r8vAIze7NfICMgPmQicOVmucxgfWz43zPiq6E,674
21
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Retrieve__Success.py,sha256=7_GkzmBRHmEDpf7M73emcJlwlxW15K_55y7rzrI5MEo,824
22
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Stats__Response.py,sha256=cL4rJ87Nz5K-RrYOLpGojBSnGgmaf63vHmaeH77G-OQ,466
23
+ mgraph_ai_service_cache_client/schemas/cache/Schema__Cache__Store__Response.py,sha256=M4LQJuAt86KNHMy4yz7-Yq4aymy2mZMIPLu7ykHH6ac,1121
24
+ mgraph_ai_service_cache_client/schemas/cache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ mgraph_ai_service_cache_client/schemas/cache/consts__Cache_Service.py,sha256=j08S9wQgb1G-L8Z3x1E_kTFx7x0FObQFkAQ3-IdR1Wc,361
26
+ mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Delete__All_Files__Response.py,sha256=9KLSCeA7_KQtIT788A0r_OkYQ3ZurK2Zbv65WC2Ywfg,546
27
+ mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Files__List.py,sha256=C5-RyJ0po2ZKdOzus1eV3cEqLQppApiQSwr_EgwQbvY,765
28
+ mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Retrieve__Request.py,sha256=iE0joWXYfofisJEMwPv9ScIzoJ0fiD426BXxSH6gBu0,1045
29
+ mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Retrieve__Response.py,sha256=aTsnwxPXeN-NzRxvAWmKfU4mush29mG9Z-ST2DCCX0c,1448
30
+ mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Store__Request.py,sha256=X1srTQ6-RDvr0I9qR4_SqoPSDBKdRoWTE8OmDX7ACDg,1257
31
+ mgraph_ai_service_cache_client/schemas/cache/data/Schema__Cache__Data__Store__Response.py,sha256=zoQfnPslkO7B8eRVzUCNtPtKupwVOzb0kwFmkv4qgug,1619
32
+ mgraph_ai_service_cache_client/schemas/cache/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ mgraph_ai_service_cache_client/schemas/cache/enums/Enum__Cache__Data_Type.py,sha256=0j9tpRd5sRpKfUwikMC_phPTo2bxL9yznQj5_0r9O-k,127
34
+ mgraph_ai_service_cache_client/schemas/cache/enums/Enum__Cache__File_Type.py,sha256=tn5RRk7ahe9CTmFFXtpec82rhrSMlkav3RIbxBUEzZg,105
35
+ mgraph_ai_service_cache_client/schemas/cache/enums/Enum__Cache__Storage_Mode.py,sha256=1e5-7PNjuIVDznLnqmtbZIf3vttYti6ysYRPwDFW8hY,376
36
+ mgraph_ai_service_cache_client/schemas/cache/enums/Enum__Cache__Store__Strategy.py,sha256=VlW9LsL7BY7nDzj_Vvphd7nJj3xwtWzF9jve99NQFbY,271
37
+ mgraph_ai_service_cache_client/schemas/cache/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ mgraph_ai_service_cache_client/schemas/cache/file/Schema__Cache__File__Paths.py,sha256=8MuRXyOtcWMcJ1z9SFesB5-vgoACDxkEpgeeR3S5tFU,506
39
+ mgraph_ai_service_cache_client/schemas/cache/file/Schema__Cache__File__Refs.py,sha256=3k2tJPeHcK0dyoBs2HNev-dVAQG4fKPpxMFMff5WImQ,1901
40
+ mgraph_ai_service_cache_client/schemas/cache/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
+ mgraph_ai_service_cache_client/schemas/cache/store/Schema__Cache__Hash__Entry.py,sha256=TZ_X4ZGB0aqhaH7Hrts8raV-q1fJogUheVy_qLrQQo0,514
42
+ mgraph_ai_service_cache_client/schemas/cache/store/Schema__Cache__Hash__Reference.py,sha256=vCoduQezCOJnS9OUPfmHU2IZa4U9qDJPPqo7RsrFlIE,1040
43
+ mgraph_ai_service_cache_client/schemas/cache/store/Schema__Cache__Store__Metadata.py,sha256=P4HufeteFtiPVdOmVWiNDhuiDNRDVMnpe5nRoyo48iE,2070
44
+ mgraph_ai_service_cache_client/schemas/cache/store/Schema__Cache__Store__Paths.py,sha256=oH1CewYuyShdkzKpCoaUQH3qMvwju7Gp7dD04Hf6YWo,666
45
+ mgraph_ai_service_cache_client/schemas/cache/store/Schema__Store__Context.py,sha256=JuzMqATcAjZbjyem7EbZzRNQuW2CY0hasjqE3za9Lbg,3454
46
+ mgraph_ai_service_cache_client/schemas/cache/store/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Batch__Request.py,sha256=a1AfQbZF9ByA6GD3TpGpYQS7TbhwAWzPFgDkeDqClKY,1497
48
+ mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Batch__Response.py,sha256=ibuddxNLSUEespCdwfeBJeJjX16VvqgqH_ZjY8K6g0Q,2723
49
+ mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Operation__Request.py,sha256=k8XHlP2scbYvhh4nROLfdxyg3WGCq4_lKx_Ta_W6VD4,1287
50
+ mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Operation__Response.py,sha256=aKNrFH4AWisu8nDoaStPqrndsWfOBFowODK8y7j8vZ4,2152
51
+ mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Store__Request.py,sha256=SfZiQS0kXTSzsjgZmgeMXOCVa-sY5JmoLYnMLPdoHOA,1281
52
+ mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Cache__Zip__Store__Response.py,sha256=vef6PeMJoy0XshsI3bC3ecKtLQ8obFdgJXC3Ne1WReA,2349
53
+ mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Zip__Batch__Operation.py,sha256=d6RiPufReEbv1NnCg5yrXoSC9GlfwaXaY9FEfk4_OzQ,1530
54
+ mgraph_ai_service_cache_client/schemas/cache/zip/Schema__Zip__Operation__Result.py,sha256=VRI0Gjk6ftbARwND6liRNNlaz7shtMuPvrDX88Ib12E,989
55
+ mgraph_ai_service_cache_client/schemas/cache/zip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ mgraph_ai_service_cache_client/schemas/cache/zip/enums/Enum__Cache__Zip__Condition.py,sha256=X_LMAjPpWRvDR8RjHGOzvRLfa9rpFpJb4s5PVlx1-DM,165
57
+ mgraph_ai_service_cache_client/schemas/cache/zip/enums/Enum__Cache__Zip__Operation.py,sha256=KejjX5rW7-gEvTAUCOGCmLMo9Atl9elkzn35BLfOHGI,249
58
+ mgraph_ai_service_cache_client/schemas/cache/zip/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
+ mgraph_ai_service_cache_client/schemas/cache/zip/safe_str/Safe_Str__Cache__Zip__Operation__Message.py,sha256=-suUNhS4cDSG1yxo3xfIsyEspAi-aCAxe0w5zh9gHfE,186
60
+ mgraph_ai_service_cache_client/schemas/cache/zip/safe_str/Safe_Str__Cache__Zip__Operation__Pattern.py,sha256=f1eRRvKBfb2JWVTWKMZGdhDDh2Kp0XsGcUoYu05165I,183
61
+ mgraph_ai_service_cache_client/schemas/cache/zip/safe_str/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ mgraph_ai_service_cache_client/schemas/client/Cache__Client__Requests__Result.py,sha256=2G40_hgXF1a3qGMoy_iVNOFBngfITyujU5qhtwI39r0,1688
63
+ mgraph_ai_service_cache_client/schemas/client/health_checks/Cache__Client__Health_Checks__Status.py,sha256=mUeBIpClnXIZZf-58_ZtBRyG5wsO_Se7KaPR-5zFMso,578
64
+ mgraph_ai_service_cache_client/schemas/consts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ mgraph_ai_service_cache_client/schemas/consts/const__Fast_API.py,sha256=XMS7VWZJ1gAspr7ZtTS0eIcGG96P6LFyxuqA7skTxfQ,890
66
+ mgraph_ai_service_cache_client/schemas/consts/const__Storage.py,sha256=hZMbog7F2273BuCkG3apFU7U1vuZylThmrUcXHapQG0,302
67
+ mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Base.py,sha256=KLxodtsKWXSgvIaoPoOPYLr8OvuTQjmGN4l7orHBqxE,1060
68
+ mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Conflict.py,sha256=xAv0HfJ0Y6BhGsEPWgzRqulSSni5tBDGnGrQtXRmY68,950
69
+ mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Gone.py,sha256=pj-aeVI_RGMKKY95GRngDKjU1aTL0qZa1N57JzyFcGs,1068
70
+ mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Invalid_Input.py,sha256=cX2RT9yN7TrkOvitLRXbUauRC5ZROP89uIjM3Agw8-A,1035
71
+ mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Not_Found.py,sha256=2wY3q8mmFgBroXVORK90l5TsqD5baTwlrpNBVRHyLPU,1087
72
+ mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Service_Unavailable.py,sha256=702J_ax38PweqZb9LSpy5KjxhjbC7aalPcagpAIYtkY,823
73
+ mgraph_ai_service_cache_client/schemas/errors/Schema__Cache__Error__Unsupported_Media_Type.py,sha256=DMtj63CGMG3UV2nCdcMx0ANDDspRAr8FaDpLDCuSPXU,1073
74
+ mgraph_ai_service_cache_client/schemas/errors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ mgraph_ai_service_cache_client/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ mgraph_ai_service_cache_client/service/info/Service_Info.py,sha256=lTTZcqJ2cKjmtc1nulNKk77A1xz3zQWUG7EQsfh0ApQ,1154
77
+ mgraph_ai_service_cache_client/service/info/schemas/Enum__Service_Environment.py,sha256=x4B6kDwncyklQaEFf0kAGyY5LE0r9Ch3ww_EZmBUDP8,129
78
+ mgraph_ai_service_cache_client/service/info/schemas/Enum__Service_Status.py,sha256=15PehXAEwdvlG-axvTF-p8XYWklscLPucH1Ki2UrwTQ,129
79
+ mgraph_ai_service_cache_client/service/info/schemas/Schema__Server__Versions.py,sha256=SGXNdZT_hrel-QV0AoNBsP4D42vGHgVNijiwb9RmZGw,1384
80
+ mgraph_ai_service_cache_client/service/info/schemas/Schema__Service__Status.py,sha256=jlmwi37c1m_aDnKG7VMFzjoNbeb9AZNX45nVNksROrk,1127
81
+ mgraph_ai_service_cache_client/utils/Version.py,sha256=-iKgWjUzrm9eGMdLFsvKPuxZFckmfNE5Y5bw6vSydhY,797
82
+ mgraph_ai_service_cache_client/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
+ mgraph_ai_service_cache_client/utils/deploy/Deploy__Service.py,sha256=iBqB4km1H3eHPXPfyh7UajjHMKom684S9ACGUa13vw4,816
84
+ mgraph_ai_service_cache_client/version,sha256=RdHCtpq0XxnJ1hnEYircEBXJqJnD3rbZSAU9JWi6NtM,7
85
+ mgraph_ai_service_cache_client-0.1.4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
86
+ mgraph_ai_service_cache_client-0.1.4.dist-info/METADATA,sha256=vrvimMmHW_6MPzH8RhEK38Jz6DjUfRQ-sRJNW_Bq7hg,9846
87
+ mgraph_ai_service_cache_client-0.1.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
88
+ mgraph_ai_service_cache_client-0.1.4.dist-info/RECORD,,
@@ -1,17 +0,0 @@
1
- mgraph_ai_service_cache_client/__init__.py,sha256=vV-3_LTA0gOaz_M_rug9AA7UQ6vMFo35MolQSywHS-4,74
2
- mgraph_ai_service_cache_client/config.py,sha256=JmUXxVA2PmuPzv39_0751dswVYyUtrzAjVr1JFnso-s,356
3
- mgraph_ai_service_cache_client/fast_api/Cache_Client__Fast_API.py,sha256=iYUqCYKemXJPpSVDYJ5VAxcAZEqMIK5Q6CaWZ5uSGPE,526
4
- mgraph_ai_service_cache_client/fast_api/lambda_handler.py,sha256=hqBD4imnlACXdE7mFjUz7Q7OkxOoA1rk4blZ9HqsWaY,1001
5
- mgraph_ai_service_cache_client/fast_api/routes/Routes__Info.py,sha256=4Qe67YJeS6vAaFPTrefVFRnbBu3XaHDN9joWs49i1_4,1353
6
- mgraph_ai_service_cache_client/service/info/Service_Info.py,sha256=lTTZcqJ2cKjmtc1nulNKk77A1xz3zQWUG7EQsfh0ApQ,1154
7
- mgraph_ai_service_cache_client/service/info/schemas/Enum__Service_Environment.py,sha256=x4B6kDwncyklQaEFf0kAGyY5LE0r9Ch3ww_EZmBUDP8,129
8
- mgraph_ai_service_cache_client/service/info/schemas/Enum__Service_Status.py,sha256=15PehXAEwdvlG-axvTF-p8XYWklscLPucH1Ki2UrwTQ,129
9
- mgraph_ai_service_cache_client/service/info/schemas/Schema__Server__Versions.py,sha256=SGXNdZT_hrel-QV0AoNBsP4D42vGHgVNijiwb9RmZGw,1384
10
- mgraph_ai_service_cache_client/service/info/schemas/Schema__Service__Status.py,sha256=jlmwi37c1m_aDnKG7VMFzjoNbeb9AZNX45nVNksROrk,1127
11
- mgraph_ai_service_cache_client/utils/Version.py,sha256=-iKgWjUzrm9eGMdLFsvKPuxZFckmfNE5Y5bw6vSydhY,797
12
- mgraph_ai_service_cache_client/utils/deploy/Deploy__Service.py,sha256=iBqB4km1H3eHPXPfyh7UajjHMKom684S9ACGUa13vw4,816
13
- mgraph_ai_service_cache_client/version,sha256=DbJRHyaaVDZLLGEBuP-r4piScs6LbHtBdjThjRMnVaI,7
14
- mgraph_ai_service_cache_client-0.1.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
15
- mgraph_ai_service_cache_client-0.1.2.dist-info/METADATA,sha256=EcQVBuPW5HmLg27sijBUC0F8HJVS8GUyoOMityVpSK0,9846
16
- mgraph_ai_service_cache_client-0.1.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
17
- mgraph_ai_service_cache_client-0.1.2.dist-info/RECORD,,