agently 4.0.6.9__py3-none-any.whl → 4.0.6.11__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.
@@ -12,12 +12,14 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ import re
15
16
  import datetime
16
17
  import warnings
17
18
  from typing import (
18
19
  Any,
19
20
  Literal,
20
21
  Mapping,
22
+ Sequence,
21
23
  Union,
22
24
  get_origin,
23
25
  get_args,
@@ -29,9 +31,12 @@ from pydantic import BaseModel
29
31
 
30
32
  if TYPE_CHECKING:
31
33
  from agently.types.data import SerializableValue, KwargsType
34
+ from re import Pattern
32
35
 
33
36
  T = TypeVar("T")
34
37
 
38
+ DEFAULT_PLACEHOLDER_PATTERN = re.compile(r"\$\{\s*([^}]+?)\s*\}")
39
+
35
40
 
36
41
  class DataFormatter:
37
42
  @staticmethod
@@ -246,3 +251,75 @@ class DataFormatter:
246
251
  return kwargs_format or None
247
252
 
248
253
  return None
254
+
255
+ @staticmethod
256
+ def substitute_placeholder(
257
+ obj: T,
258
+ variable_mappings: dict[str, Any],
259
+ *,
260
+ placeholder_pattern: "Pattern | None" = None,
261
+ ) -> T | Any:
262
+ if placeholder_pattern is None:
263
+ placeholder_pattern = DEFAULT_PLACEHOLDER_PATTERN
264
+
265
+ if not isinstance(variable_mappings, dict):
266
+ raise TypeError(f"Variable mappings require a dictionary but got: { variable_mappings }")
267
+
268
+ if isinstance(obj, str):
269
+ full_match = placeholder_pattern.fullmatch(obj)
270
+ if full_match:
271
+ key = full_match.group(1).strip()
272
+ return variable_mappings.get(key, obj)
273
+ else:
274
+
275
+ def replacer(match):
276
+ key = match.group(1).strip()
277
+ return str(variable_mappings.get(key, match.group(0)))
278
+
279
+ return placeholder_pattern.sub(replacer, obj)
280
+
281
+ if isinstance(obj, Mapping):
282
+ return {
283
+ DataFormatter.substitute_placeholder(
284
+ key,
285
+ variable_mappings,
286
+ placeholder_pattern=placeholder_pattern,
287
+ ): DataFormatter.substitute_placeholder(
288
+ value,
289
+ variable_mappings,
290
+ placeholder_pattern=placeholder_pattern,
291
+ )
292
+ for key, value in obj.items()
293
+ }
294
+
295
+ if isinstance(obj, Sequence) and not isinstance(obj, (str, bytes, bytearray)):
296
+ if isinstance(obj, tuple):
297
+ return tuple(
298
+ DataFormatter.substitute_placeholder(
299
+ value,
300
+ variable_mappings,
301
+ placeholder_pattern=placeholder_pattern,
302
+ )
303
+ for value in obj
304
+ )
305
+ else:
306
+ return [
307
+ DataFormatter.substitute_placeholder(
308
+ value,
309
+ variable_mappings,
310
+ placeholder_pattern=placeholder_pattern,
311
+ )
312
+ for value in obj
313
+ ]
314
+
315
+ if isinstance(obj, set):
316
+ return {
317
+ DataFormatter.substitute_placeholder(
318
+ value,
319
+ variable_mappings,
320
+ placeholder_pattern=placeholder_pattern,
321
+ )
322
+ for value in obj
323
+ }
324
+
325
+ return obj
@@ -0,0 +1,101 @@
1
+ # Copyright 2023-2025 AgentEra(Agently.Tech)
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ from types import MappingProxyType
17
+ from typing import Any
18
+
19
+ SAFE_BUILTINS = {
20
+ "abs": abs,
21
+ "min": min,
22
+ "max": max,
23
+ "sum": sum,
24
+ "len": len,
25
+ "range": range,
26
+ "enumerate": enumerate,
27
+ "list": list,
28
+ "dict": dict,
29
+ "set": set,
30
+ "tuple": tuple,
31
+ "print": print,
32
+ "sorted": sorted,
33
+ "str": str,
34
+ "int": int,
35
+ "float": float,
36
+ "list": list,
37
+ "dict": dict,
38
+ "bool": bool,
39
+ }
40
+
41
+ SAFE_TYPES = [int, float, str, list, dict, set, tuple, bool, type(None)]
42
+
43
+
44
+ class PythonSandbox:
45
+ def __init__(
46
+ self,
47
+ preset_objects: dict[str, object] | None = None,
48
+ base_vars: dict[str, Any] | None = None,
49
+ allowed_return_types: list[type] = SAFE_TYPES,
50
+ ):
51
+ self.preset_objects = preset_objects or {}
52
+ self.base_vars = base_vars or {}
53
+ self.allowed_return_types = allowed_return_types
54
+
55
+ self.safe_globals = MappingProxyType(
56
+ {
57
+ "__builtins__": SAFE_BUILTINS,
58
+ **self.preset_objects,
59
+ **self.base_vars,
60
+ }
61
+ )
62
+
63
+ def _check_safe_value(self, value):
64
+ if isinstance(value, tuple(self.allowed_return_types)):
65
+ return value
66
+ raise ValueError(f"Type of return '{ type(value) }' can not be used in Python Sandbox.")
67
+
68
+ def _wrap_obj(self, obj):
69
+ sandbox = self
70
+
71
+ class ObjectWrapper:
72
+ def __init__(self, obj):
73
+ self._obj = obj
74
+
75
+ def __getattr__(self, name):
76
+ if name.startswith("_"):
77
+ raise AttributeError(f"Can not access private attribute '{name}'.")
78
+ attr = getattr(self._obj, name)
79
+ if callable(attr):
80
+
81
+ def method(*args, **kwargs):
82
+ result = attr(*args, **kwargs)
83
+ return sandbox._check_safe_value(result)
84
+
85
+ return method
86
+ return sandbox._check_safe_value(attr)
87
+
88
+ self.allowed_return_types.append(ObjectWrapper)
89
+
90
+ return ObjectWrapper(obj)
91
+
92
+ def run(self, code: str):
93
+ safe_objects = {k: self._wrap_obj(v) for k, v in self.preset_objects.items()}
94
+ globals_dict = dict(self.safe_globals)
95
+ globals_dict.update(safe_objects)
96
+
97
+ local_vars = {}
98
+ exec(code, globals_dict, local_vars)
99
+ for k, v in local_vars.items():
100
+ self._check_safe_value(v)
101
+ return local_vars
agently/utils/Settings.py CHANGED
@@ -12,11 +12,14 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ import re
15
16
  import json
16
17
  import yaml
17
18
  import toml
18
19
  from typing import TYPE_CHECKING, Literal, cast
19
- from agently.utils import SerializableRuntimeData, SerializableRuntimeDataNamespace
20
+ from .SerializableRuntimeData import SerializableRuntimeData, SerializableRuntimeDataNamespace
21
+ from .LazyImport import LazyImport
22
+ from .DataFormatter import DataFormatter
20
23
 
21
24
  if TYPE_CHECKING:
22
25
  from agently.types.data import SerializableData, SerializableValue
@@ -114,7 +117,21 @@ class Settings(SerializableRuntimeData):
114
117
  else:
115
118
  raise TypeError(f"[Agently Settings] Cannot load parsed data, expect dictionary type, got: { type(data) }")
116
119
 
117
- def set_settings(self, key: str, value: "SerializableValue"):
120
+ def set_settings(self, key: str, value: "SerializableValue", *, auto_load_env: bool = False):
121
+ if auto_load_env:
122
+ import os
123
+
124
+ LazyImport.import_package("dotenv")
125
+ from dotenv import load_dotenv, find_dotenv
126
+
127
+ load_dotenv(find_dotenv())
128
+
129
+ environ = dict(os.environ)
130
+ value = DataFormatter.substitute_placeholder(
131
+ value,
132
+ environ,
133
+ placeholder_pattern=re.compile(r"\$\{\s*ENV\.([^}]+?)\s*\}"),
134
+ )
118
135
  if key in self._path_mappings:
119
136
  self.update({str(self._path_mappings[key]): value})
120
137
  return self
agently/utils/__init__.py CHANGED
@@ -27,3 +27,4 @@ from .DataLocator import DataLocator
27
27
  from .GeneratorConsumer import GeneratorConsumer
28
28
  from .StreamingJSONCompleter import StreamingJSONCompleter
29
29
  from .StreamingJSONParser import StreamingJSONParser
30
+ from .PythonSandbox import PythonSandbox
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agently
3
- Version: 4.0.6.9
3
+ Version: 4.0.6.11
4
4
  Summary:
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,61 +1,61 @@
1
1
  agently/__init__.py,sha256=Gf0LL7Czqeuf6hfvHfEGlACLg0d0osQupyMATB0EBlc,884
2
2
  agently/_default_init.py,sha256=AhYwzZYOxqDeIoVb8cvPjJ2BjE5V7wxeuH7R-MNZWyg,2057
3
3
  agently/_default_settings.yaml,sha256=6woqJ2tjg_jl6kwSOwmTMETfVraHidort2smf0Is_qQ,1357
4
- agently/base.py,sha256=PY-HgIQesv3_oBsU25Fwe96C35C4GgpaFdxLBUwh-AA,4692
4
+ agently/base.py,sha256=U92SWzoU7h7Gl92r8bEv-7wsGUPrUlxXyDohLX-2qCo,4629
5
5
  agently/builtins/agent_extensions/AutoFuncExtension.py,sha256=TmwMazwPzb5WXfDqfedY5yZOOMTFIHqaB9Bte29adUc,2433
6
6
  agently/builtins/agent_extensions/ChatSessionExtension.py,sha256=Y6mvnsfAY0rykKtfp-tApwJy5O4SS-YEt2-jaWr83uc,12034
7
- agently/builtins/agent_extensions/ConfigurePromptExtension.py,sha256=vURsWcy5UnKppBNOAy0ZnY03yMY3QqH7j3ZeixS8VOo,10230
7
+ agently/builtins/agent_extensions/ConfigurePromptExtension.py,sha256=9wy2zHIDVHbUlj5sI0A03SscUWSzZNc9hNJSEdXFXd0,11390
8
8
  agently/builtins/agent_extensions/KeyWaiterExtension.py,sha256=Rf8dB8Yt3_9IJifpiE-Rn6lLIXqZjaNp94lnX6Betgw,5555
9
9
  agently/builtins/agent_extensions/ToolExtension.py,sha256=S3jjumHiauEQ-m46Zkh-1I9ih02kKoj8sBEU82woz1E,6886
10
10
  agently/builtins/agent_extensions/__init__.py,sha256=IxWRQogF8PCVNXeY7D4qhGukEx3JFvfLlUW2x0FbyfA,852
11
11
  agently/builtins/hookers/ConsoleHooker.py,sha256=aJdDj_nG8CiwyelA505zvtpzBSwD52nFIkBRDJGgq3Y,8099
12
12
  agently/builtins/hookers/PureLoggerHooker.py,sha256=fzN0OfhQzgns4KeCNH-qcdm-BdQT0W2kqEmt3Zp2pYI,1906
13
- agently/builtins/hookers/SystemMessageHooker.py,sha256=nU5rOzcuXKdaTXWix3jhZ-4QoD4cMQJZo02wNTpZpjI,5396
14
- agently/builtins/plugins/ModelRequester/OpenAICompatible.py,sha256=xX-iy3qgToD8jIrPsL1NufMb6dlf0SVmX0rPjAkPSQ0,25261
15
- agently/builtins/plugins/PromptGenerator/AgentlyPromptGenerator.py,sha256=Ma9rTsLnDk8gNkjVR5r1fqnO7emajR5aNJbtzZDteNU,30553
16
- agently/builtins/plugins/ResponseParser/AgentlyResponseParser.py,sha256=FEhfsiHB4Bx7HfghnObklLj08j8IVwGh0WEVD6U-G3U,17445
13
+ agently/builtins/hookers/SystemMessageHooker.py,sha256=1nh1FY70PYyZOAQGfQiGnwIvo4ZF3NSAjeghI3sInn4,7207
14
+ agently/builtins/plugins/ModelRequester/OpenAICompatible.py,sha256=CFTMZHENOi6qsrUfWtgq19P6Ec7H-8vRybVVr4RZfJQ,26773
15
+ agently/builtins/plugins/PromptGenerator/AgentlyPromptGenerator.py,sha256=GRRR9uxgyCXHKgt_r2BinWnhKy8rYUN8CG9ld2P8n4E,30841
16
+ agently/builtins/plugins/ResponseParser/AgentlyResponseParser.py,sha256=5iF6NLoMjTtEC3hc-DmatFmSWZK2nKkoiyqHK7Q3Yj4,17847
17
17
  agently/builtins/plugins/ToolManager/AgentlyToolManager.py,sha256=oaqte5LAryZQMD6vuEbKhe6kOLUyZTRZswC1MDFiYxw,9138
18
18
  agently/builtins/plugins/__init__.py,sha256=wj4_U9TTekc2CmjppbXKUREDFRXFX1y0ySOW-CxQuok,801
19
19
  agently/builtins/tools/Browse.py,sha256=gIePs-gtsqOI_ZTReGqEcoKvhs4FkBzTxow--QS5_ek,3469
20
20
  agently/builtins/tools/Search.py,sha256=tUynNiW_ZMAGaB2ua3HRcY_trIbLEoASFE-p2QMQ0Zg,7362
21
21
  agently/builtins/tools/__init__.py,sha256=pFOWgH2C3xRvgQo3UVdkj4yHjF9nNtmoVHmOZfoGsyU,647
22
- agently/core/Agent.py,sha256=EIhHCxu4ePZxH6kMQdseQsfricRO3nFSNkEVkKVqXrE,9973
22
+ agently/core/Agent.py,sha256=LWkzWG_XXrC4oVkWg4ebnAqAJ81O9UEo1n-qJj7IIrc,10251
23
23
  agently/core/EventCenter.py,sha256=sknU5w9MpGDQgMOF9c5k4PfM4SNT5X_LrpYte2HaFNM,10861
24
24
  agently/core/ExtensionHandlers.py,sha256=88iSAW50bgMshB56cTgKg30eOjZQyXiJY1en4w7afWY,2076
25
- agently/core/ModelRequest.py,sha256=OAsNRKFiSAR_dfAdWO6efgUSQat8rHGfZ-zkiSPVNDc,22943
26
- agently/core/PluginManager.py,sha256=oUnXbe1ilQTOWwnENxtGtV6wG-yZriCxniqfuxuTFO0,4354
27
- agently/core/Prompt.py,sha256=oAxRZ7kG07mM6G7p6gP_zX41TgGb8vA-IilcnCb_Gc4,8432
25
+ agently/core/ModelRequest.py,sha256=KNNjO8BiV1qS9jcFcp0V7ACXUC4CcZRdmcXjPUNqHbw,24443
26
+ agently/core/PluginManager.py,sha256=fwRxvqPMgXYIrclhRHtkaPsyvn6SaeBFqvL7tTzYwck,4410
27
+ agently/core/Prompt.py,sha256=uvGGvbND08b0OhkD-UXY0J65yLedllBt4lMqk4NYl1U,6893
28
28
  agently/core/Tool.py,sha256=PNYf_BwVefr8IOqf5asLaVq2fU7hQaFJwJVj3S4fq84,1871
29
29
  agently/core/TriggerFlow/BluePrint.py,sha256=Lz-wbA0f79t7VjvX0knH-9AC_Qz9wts0QFemL97R3jo,4810
30
- agently/core/TriggerFlow/Chunk.py,sha256=i5oTT9-dI-mXI6vbWwnQZ5e1ryGgZDYsyE9ALqbS2tQ,1555
31
- agently/core/TriggerFlow/Execution.py,sha256=9up20Jim7KyHsRJUMckvPa8G68Q5ipMKn34wIxx5OKA,11637
30
+ agently/core/TriggerFlow/Chunk.py,sha256=xPWr_ofpl-iG4jHIJfB5mPanmn70pq7x8GCcz3G8NPc,1583
31
+ agently/core/TriggerFlow/Execution.py,sha256=sXxDt5l9m2ZWMG6JZjnt50akyDFEu4I-YB2yhW-UP5E,11640
32
32
  agently/core/TriggerFlow/Process.py,sha256=doIDUa7x0j1TVuOhp-hraC0hHLwpistF-Dksf76NJvQ,837
33
- agently/core/TriggerFlow/TriggerFlow.py,sha256=03xC1EdWiNfnRbAocH-97JcxyzfCnChivI1KmvPt6-E,7671
33
+ agently/core/TriggerFlow/TriggerFlow.py,sha256=lu0MSaIfQ7HwELuWjIBQHvkdC0L9d5x7mX-eNEmi3aQ,7628
34
34
  agently/core/TriggerFlow/__init__.py,sha256=eHc6ldUIS0kka_1fZXkdaHFnSDoXaGSvXggwVszMAJQ,911
35
- agently/core/TriggerFlow/process/BaseProcess.py,sha256=FOYfpQGdWrCe0cd-qbWK_bpNCQCHOULnZvzH36C8Kls,13650
36
- agently/core/TriggerFlow/process/ForEachProcess.py,sha256=oBI7KIpnj2tbczt_cTJCNvS793Xjif9_31ytkrEzQlE,4546
37
- agently/core/TriggerFlow/process/MatchCaseProcess.py,sha256=-NpbAlXq054juNkFCsDdWsIBMoHHKV1-cEsgndcd9KY,7888
35
+ agently/core/TriggerFlow/process/BaseProcess.py,sha256=3pf2t6-tTKIttAzFbL89RdmzjISKys4N65UGzPnFAIc,14847
36
+ agently/core/TriggerFlow/process/ForEachProcess.py,sha256=rjUVouZENnuGFp7GXGTgWJT7uMEhczHamWr9cFugsh0,4549
37
+ agently/core/TriggerFlow/process/MatchCaseProcess.py,sha256=MKY5Yh66JiMABhCzamRl8UZOBjbD75TFp84Jw6o_t68,7900
38
38
  agently/core/TriggerFlow/process/__init__.py,sha256=BP5bAr9LRVVD83KFqXeprgTmXA1iCSOSsD509BtoX_E,753
39
39
  agently/core/__init__.py,sha256=CPglSpW5oEEmWpCpdvv9wK4myXmVipjuZm5HtMq6Vxo,1214
40
- agently/integrations/chromadb.py,sha256=hLrjwsU_d4SOGRX0bf-55uiA73YarIzRa8ORFnwu3W8,9797
40
+ agently/integrations/chromadb.py,sha256=iULT9sK2MIZe5pyqMdL9M1yBkWqQhShwEyLmGnKUuew,10390
41
41
  agently/types/__init__.py,sha256=xb8GMY-ULncO_PY9rfRUsyi12wAQQJx8gAAnoM30uZA,592
42
42
  agently/types/data/__init__.py,sha256=qladqSEqcAUW_XzdTDl4cvaraq_DpANy3aZbIPxoygk,1627
43
43
  agently/types/data/event.py,sha256=LFQW7MN_QGOis3XV-8K6jNXWsLvT7tYxo4BZbUBCpfI,1790
44
44
  agently/types/data/prompt.py,sha256=DiszVM_3OHe66waf-99mBH7bzRr0cpbCHSpDI-2EjPs,5163
45
45
  agently/types/data/request.py,sha256=Do-9g5QxZRMYjaoHCZYwHbj28r-t4noAAtOebw764P4,1924
46
- agently/types/data/response.py,sha256=vjKIILaVyd5TVz5nvmytVRJPZg-RP0sRydhg_AzU6y0,3700
46
+ agently/types/data/response.py,sha256=QYrrZXh_fXsHRltKtd6FKIfmJlgV-stsg6B0AIXueto,3774
47
47
  agently/types/data/serializable.py,sha256=v2KlyKNOKp4L6J_Ueupb-gCyrnngvBskFUwNPSJQgnA,844
48
48
  agently/types/data/tool.py,sha256=wE8Dda2JtY5cojpHUuQrw7PNeVZ6Zma968bn-pUmS7I,1529
49
49
  agently/types/plugins/EventHooker.py,sha256=kb80-baVc3fVlrddW5syv9uSD8a2Mcw8Fd3I2HQhY_Y,1030
50
50
  agently/types/plugins/ModelRequester.py,sha256=urG1zFX0b4U6ZKSO50IbW5IHK3ydmRgUom7O7Niqk8s,3875
51
51
  agently/types/plugins/PromptGenerator.py,sha256=V8kqT0Eeq09AQqfGA-SZ5mNKeit1UrmqlDQCquSMzUU,4752
52
- agently/types/plugins/ResponseParser.py,sha256=_IRbQhT-G1ZNg2zkJgCYNF5qRaIzrDfbxLC7kO-tdK4,3984
52
+ agently/types/plugins/ResponseParser.py,sha256=6dCVWz61gaHOxsX9e5sYFqcWRZ5hBnNXAarT0-9uCUY,4566
53
53
  agently/types/plugins/ToolManager.py,sha256=q1Y3G_tzh1AU3s13H-zTDZIkR4W1mjh9E6AKudFOvyg,2421
54
54
  agently/types/plugins/__init__.py,sha256=gz_EpgBQGndIQHY5vJB2YRzAN5yIb3FZZG7pC8lB1lM,848
55
55
  agently/types/plugins/base.py,sha256=AoNLwsH5IZBQt7_NZfxMWMhAk6PJSOFHR0IYOXp1imI,1167
56
56
  agently/types/trigger_flow/__init__.py,sha256=Gj31SmWBC4qtrOqQedyGsnCfeSkUf3XvZNFrJ2QbMNw,777
57
- agently/types/trigger_flow/trigger_flow.py,sha256=uDUZiila_4Rr41zUlzR4QqaRaraC43XTFfj-jnnG2G0,3787
58
- agently/utils/DataFormatter.py,sha256=0P92t81vnp-rJSJvlbTF3yM-PRiteB19BNEQ8cmvmns,9444
57
+ agently/types/trigger_flow/trigger_flow.py,sha256=6lvhDwizIV5p3h61l1GsmJU_9Tw8v3u-SnHuygkSJdo,3799
58
+ agently/utils/DataFormatter.py,sha256=qdPtLPIQs9eCZ-hPBphan5CcPrR7Nz8h8cb7zF8F1j0,12050
59
59
  agently/utils/DataLocator.py,sha256=ss8OLet9HN0U1PZb-OCHS6KL54kv7vFZph6G0-GBidk,6015
60
60
  agently/utils/DataPathBuilder.py,sha256=sEzE1i2EWn7NMkCCXDT50gR6_qMzcZ0y0YGkYbXdB3s,10007
61
61
  agently/utils/FunctionShifter.py,sha256=quwugTmf-vzHzRR_2wdv14AxLpr0lwxdUtVoX7Jeq48,5839
@@ -63,14 +63,15 @@ agently/utils/GeneratorConsumer.py,sha256=EXpz2XGnv6rPdz8bPetJu3LpWIVhMvIi8GLG1B
63
63
  agently/utils/LazyImport.py,sha256=PfXc2iILXb7WVj6UD45_3qInow6z0cvhFlDqxTK-HfY,9120
64
64
  agently/utils/Logger.py,sha256=reIj6a7mNtLYDx3brLKEf0I8LbNkhXmL8Yc-DXnnsCU,2967
65
65
  agently/utils/Messenger.py,sha256=dLasJvDt1HxJttt6X9dutwGPvyAtL7yp6BZ3TDxuFDI,729
66
+ agently/utils/PythonSandbox.py,sha256=6HYbd64p8BnTysYQjUvumLf0YzEOq-7uhCuObAG3Q6U,3037
66
67
  agently/utils/RuntimeData.py,sha256=SewZ8D1fljuDwfVZTAqZ0XTNEcU2cuAr7QlVqk0vzrE,21925
67
68
  agently/utils/SerializableRuntimeData.py,sha256=bVVwin50VnOs30W881ClFepSXAK8GCOUZnVd-SiolRw,3314
68
- agently/utils/Settings.py,sha256=_s300H2doCMKcvMAmFwW3cLQqmd0N8BVmb226tAfVec,5294
69
+ agently/utils/Settings.py,sha256=0vWNhVBKZLRKwuIKoXn-tYNZMajMQHLHdqrGhBA2S3Q,5854
69
70
  agently/utils/Storage.py,sha256=E7QyNJ9T0yOUafPgdP90La698hgLMSGjhJ7qCEHzxxw,9438
70
71
  agently/utils/StreamingJSONCompleter.py,sha256=aZ9zuGUTQlP-QKbXHUZCf6EtVuG49MKn8xdhw0VhDEA,4292
71
72
  agently/utils/StreamingJSONParser.py,sha256=sPPJOtj5OYvsrukRErcoxRl4yuV1zDuf7pQ_pvw_Zow,21116
72
- agently/utils/__init__.py,sha256=7MDln5OVkqFEdhhuG8VTdr2q02UWwCj-udndwzWV_iQ,1280
73
- agently-4.0.6.9.dist-info/METADATA,sha256=HTZhMkH_W8nVgy1aZJZhZbpp3VG168z60y7eEUsUwnk,7112
74
- agently-4.0.6.9.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
75
- agently-4.0.6.9.dist-info/licenses/LICENSE,sha256=Y5ZgAdYgMFigPT8dhN18dTLRtBshOSfWhTDRO1t0Cq4,11360
76
- agently-4.0.6.9.dist-info/RECORD,,
73
+ agently/utils/__init__.py,sha256=Uq3uQdk2_OX_m6gF9wAvs4_scC-tsE4EjNTxN_oDagw,1321
74
+ agently-4.0.6.11.dist-info/METADATA,sha256=goiOxI7yRqvMAMM62e5Af2MsiIt7tgSVHgn1OpDismA,7113
75
+ agently-4.0.6.11.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
76
+ agently-4.0.6.11.dist-info/licenses/LICENSE,sha256=Y5ZgAdYgMFigPT8dhN18dTLRtBshOSfWhTDRO1t0Cq4,11360
77
+ agently-4.0.6.11.dist-info/RECORD,,