lionagi 0.14.4__py3-none-any.whl → 0.14.5__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.
- lionagi/libs/concurrency/__init__.py +25 -1
- lionagi/libs/concurrency/patterns.py +145 -138
- lionagi/libs/concurrency/primitives.py +145 -97
- lionagi/libs/concurrency/resource_tracker.py +182 -0
- lionagi/libs/concurrency/task.py +4 -2
- lionagi/protocols/generic/pile.py +16 -38
- lionagi/protocols/generic/processor.py +53 -26
- lionagi/service/rate_limited_processor.py +53 -35
- lionagi/session/branch.py +0 -5
- lionagi/utils.py +56 -174
- lionagi/version.py +1 -1
- {lionagi-0.14.4.dist-info → lionagi-0.14.5.dist-info}/METADATA +6 -2
- {lionagi-0.14.4.dist-info → lionagi-0.14.5.dist-info}/RECORD +15 -14
- {lionagi-0.14.4.dist-info → lionagi-0.14.5.dist-info}/WHEEL +0 -0
- {lionagi-0.14.4.dist-info → lionagi-0.14.5.dist-info}/licenses/LICENSE +0 -0
lionagi/utils.py
CHANGED
@@ -43,9 +43,12 @@ from typing import (
|
|
43
43
|
overload,
|
44
44
|
)
|
45
45
|
|
46
|
+
import anyio
|
46
47
|
from pydantic import BaseModel, model_validator
|
47
48
|
from pydantic_core import PydanticUndefinedType
|
48
49
|
|
50
|
+
from .libs.concurrency import Lock as ConcurrencyLock
|
51
|
+
from .libs.concurrency import Semaphore, create_task_group
|
49
52
|
from .settings import Settings
|
50
53
|
|
51
54
|
R = TypeVar("R")
|
@@ -612,32 +615,6 @@ class CallParams(Params):
|
|
612
615
|
)
|
613
616
|
|
614
617
|
|
615
|
-
class LCallParams(CallParams):
|
616
|
-
func: Any = None
|
617
|
-
sanitize_input: bool = False
|
618
|
-
unique_input: bool = False
|
619
|
-
flatten: bool = False
|
620
|
-
dropna: bool = False
|
621
|
-
unique_output: bool = False
|
622
|
-
flatten_tuple_set: bool = False
|
623
|
-
|
624
|
-
def __call__(self, input_: Any, func=None):
|
625
|
-
if self.func is None and func is None:
|
626
|
-
raise ValueError("a sync func must be provided")
|
627
|
-
return lcall(
|
628
|
-
input_,
|
629
|
-
func or self.func,
|
630
|
-
*self.args,
|
631
|
-
sanitize_input=self.sanitize_input,
|
632
|
-
unique_input=self.unique_input,
|
633
|
-
flatten=self.flatten,
|
634
|
-
dropna=self.dropna,
|
635
|
-
unique_output=self.unique_output,
|
636
|
-
flatten_tuple_set=self.flatten_tuple_set,
|
637
|
-
**self.kwargs,
|
638
|
-
)
|
639
|
-
|
640
|
-
|
641
618
|
async def alcall(
|
642
619
|
input_: list[Any],
|
643
620
|
func: Callable[..., T],
|
@@ -651,7 +628,6 @@ async def alcall(
|
|
651
628
|
backoff_factor: float = 1,
|
652
629
|
retry_default: Any = UNDEFINED,
|
653
630
|
retry_timeout: float | None = None,
|
654
|
-
retry_timing: bool = False,
|
655
631
|
max_concurrent: int | None = None,
|
656
632
|
throttle_period: float | None = None,
|
657
633
|
flatten: bool = False,
|
@@ -659,7 +635,7 @@ async def alcall(
|
|
659
635
|
unique_output: bool = False,
|
660
636
|
flatten_tuple_set: bool = False,
|
661
637
|
**kwargs: Any,
|
662
|
-
) -> list[T]
|
638
|
+
) -> list[T]:
|
663
639
|
"""
|
664
640
|
Asynchronously apply a function to each element of a list, with optional input sanitization,
|
665
641
|
retries, timeout, and output processing.
|
@@ -675,7 +651,6 @@ async def alcall(
|
|
675
651
|
backoff_factor (float): Multiplier for delay after each retry.
|
676
652
|
retry_default (Any): Default value if all retries fail.
|
677
653
|
retry_timeout (float | None): Timeout for each function call.
|
678
|
-
retry_timing (bool): If True, return (result, duration) tuples.
|
679
654
|
max_concurrent (int | None): Maximum number of concurrent operations.
|
680
655
|
throttle_period (float | None): Delay after each completed operation.
|
681
656
|
flatten (bool): Flatten the final result if True.
|
@@ -685,7 +660,7 @@ async def alcall(
|
|
685
660
|
**kwargs: Additional arguments passed to func.
|
686
661
|
|
687
662
|
Returns:
|
688
|
-
list[T]
|
663
|
+
list[T]: The processed results.
|
689
664
|
|
690
665
|
Raises:
|
691
666
|
asyncio.TimeoutError: If a call times out and no default is provided.
|
@@ -734,9 +709,9 @@ async def alcall(
|
|
734
709
|
|
735
710
|
# Optional initial delay before processing
|
736
711
|
if initial_delay:
|
737
|
-
await
|
712
|
+
await anyio.sleep(initial_delay)
|
738
713
|
|
739
|
-
semaphore =
|
714
|
+
semaphore = Semaphore(max_concurrent) if max_concurrent else None
|
740
715
|
throttle_delay = throttle_period or 0
|
741
716
|
coro_func = is_coro_func(func)
|
742
717
|
|
@@ -744,137 +719,92 @@ async def alcall(
|
|
744
719
|
if coro_func:
|
745
720
|
# Async function
|
746
721
|
if retry_timeout is not None:
|
747
|
-
|
748
|
-
func(item, **kwargs)
|
749
|
-
|
722
|
+
with anyio.move_on_after(retry_timeout) as cancel_scope:
|
723
|
+
result = await func(item, **kwargs)
|
724
|
+
if cancel_scope.cancelled_caught:
|
725
|
+
raise asyncio.TimeoutError(
|
726
|
+
f"Function call timed out after {retry_timeout}s"
|
727
|
+
)
|
728
|
+
return result
|
750
729
|
else:
|
751
730
|
return await func(item, **kwargs)
|
752
731
|
else:
|
753
732
|
# Sync function
|
754
733
|
if retry_timeout is not None:
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
734
|
+
with anyio.move_on_after(retry_timeout) as cancel_scope:
|
735
|
+
result = await anyio.to_thread.run_sync(
|
736
|
+
func, item, **kwargs
|
737
|
+
)
|
738
|
+
if cancel_scope.cancelled_caught:
|
739
|
+
raise asyncio.TimeoutError(
|
740
|
+
f"Function call timed out after {retry_timeout}s"
|
741
|
+
)
|
742
|
+
return result
|
759
743
|
else:
|
760
|
-
return func
|
744
|
+
return await anyio.to_thread.run_sync(func, item, **kwargs)
|
761
745
|
|
762
746
|
async def execute_task(i: Any, index: int) -> Any:
|
763
|
-
start_time = asyncio.get_running_loop().time()
|
764
747
|
attempts = 0
|
765
748
|
current_delay = retry_delay
|
766
749
|
while True:
|
767
750
|
try:
|
768
751
|
result = await call_func(i)
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
else:
|
773
|
-
return index, result
|
774
|
-
except asyncio.CancelledError as e:
|
775
|
-
raise e
|
752
|
+
return index, result
|
753
|
+
except anyio.get_cancelled_exc_class():
|
754
|
+
raise
|
776
755
|
|
777
756
|
except Exception:
|
778
757
|
attempts += 1
|
779
758
|
if attempts <= num_retries:
|
780
759
|
if current_delay:
|
781
|
-
await
|
760
|
+
await anyio.sleep(current_delay)
|
782
761
|
current_delay *= backoff_factor
|
783
762
|
# Retry loop continues
|
784
763
|
else:
|
785
764
|
# Exhausted retries
|
786
765
|
if retry_default is not UNDEFINED:
|
787
|
-
|
788
|
-
if retry_timing:
|
789
|
-
end_time = asyncio.get_running_loop().time()
|
790
|
-
duration = end_time - (start_time or end_time)
|
791
|
-
return index, retry_default, duration
|
792
|
-
else:
|
793
|
-
return index, retry_default
|
766
|
+
return index, retry_default
|
794
767
|
# No default, re-raise
|
795
768
|
raise
|
796
769
|
|
797
770
|
async def task_wrapper(item: Any, idx: int) -> Any:
|
798
771
|
if semaphore:
|
799
772
|
async with semaphore:
|
800
|
-
|
773
|
+
result = await execute_task(item, idx)
|
801
774
|
else:
|
802
|
-
|
775
|
+
result = await execute_task(item, idx)
|
803
776
|
|
804
|
-
|
805
|
-
tasks = [task_wrapper(item, idx) for idx, item in enumerate(input_)]
|
777
|
+
return result
|
806
778
|
|
807
|
-
#
|
779
|
+
# Use task group for structured concurrency
|
808
780
|
results = []
|
809
|
-
|
810
|
-
res = await coro
|
811
|
-
results.append(res)
|
812
|
-
if throttle_delay:
|
813
|
-
await asyncio.sleep(throttle_delay)
|
781
|
+
results_lock = ConcurrencyLock() # Protect results list
|
814
782
|
|
815
|
-
|
816
|
-
|
783
|
+
async def run_and_store(item: Any, idx: int):
|
784
|
+
result = await task_wrapper(item, idx)
|
785
|
+
async with results_lock:
|
786
|
+
results.append(result)
|
817
787
|
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
(
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
# (index, result)
|
826
|
-
output_list = [r[1] for r in results]
|
827
|
-
return to_list(
|
828
|
-
output_list,
|
829
|
-
flatten=flatten,
|
830
|
-
dropna=dropna,
|
831
|
-
unique=unique_output,
|
832
|
-
flatten_tuple_set=flatten_tuple_set,
|
833
|
-
)
|
788
|
+
# Execute all tasks using task group
|
789
|
+
async with create_task_group() as tg:
|
790
|
+
for idx, item in enumerate(input_):
|
791
|
+
await tg.start_soon(run_and_store, item, idx)
|
792
|
+
# Apply throttle delay between starting tasks
|
793
|
+
if throttle_delay and idx < len(input_) - 1:
|
794
|
+
await anyio.sleep(throttle_delay)
|
834
795
|
|
796
|
+
# Sort by original index
|
797
|
+
results.sort(key=lambda x: x[0])
|
835
798
|
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
retry_timeout: float | None = None
|
846
|
-
retry_timing: bool = False
|
847
|
-
max_concurrent: int | None = None
|
848
|
-
throttle_period: float | None = None
|
849
|
-
flatten: bool = False
|
850
|
-
dropna: bool = False
|
851
|
-
unique_output: bool = False
|
852
|
-
flatten_tuple_set: bool = False
|
853
|
-
|
854
|
-
async def __call__(self, input_: Any, func=None):
|
855
|
-
if self.func is None and func is None:
|
856
|
-
raise ValueError("a sync/async func must be provided")
|
857
|
-
return await alcall(
|
858
|
-
input_,
|
859
|
-
func or self.func,
|
860
|
-
*self.args,
|
861
|
-
sanitize_input=self.sanitize_input,
|
862
|
-
unique_input=self.unique_input,
|
863
|
-
num_retries=self.num_retries,
|
864
|
-
initial_delay=self.initial_delay,
|
865
|
-
retry_delay=self.retry_delay,
|
866
|
-
backoff_factor=self.backoff_factor,
|
867
|
-
retry_default=self.retry_default,
|
868
|
-
retry_timeout=self.retry_timeout,
|
869
|
-
retry_timing=self.retry_timing,
|
870
|
-
max_concurrent=self.max_concurrent,
|
871
|
-
throttle_period=self.throttle_period,
|
872
|
-
flatten=self.flatten,
|
873
|
-
dropna=self.dropna,
|
874
|
-
unique_output=self.unique_output,
|
875
|
-
flatten_tuple_set=self.flatten_tuple_set,
|
876
|
-
**self.kwargs,
|
877
|
-
)
|
799
|
+
# (index, result)
|
800
|
+
output_list = [r[1] for r in results]
|
801
|
+
return to_list(
|
802
|
+
output_list,
|
803
|
+
flatten=flatten,
|
804
|
+
dropna=dropna,
|
805
|
+
unique=unique_output,
|
806
|
+
flatten_tuple_set=flatten_tuple_set,
|
807
|
+
)
|
878
808
|
|
879
809
|
|
880
810
|
async def bcall(
|
@@ -891,7 +821,6 @@ async def bcall(
|
|
891
821
|
backoff_factor: float = 1,
|
892
822
|
retry_default: Any = UNDEFINED,
|
893
823
|
retry_timeout: float | None = None,
|
894
|
-
retry_timing: bool = False,
|
895
824
|
max_concurrent: int | None = None,
|
896
825
|
throttle_period: float | None = None,
|
897
826
|
flatten: bool = False,
|
@@ -915,7 +844,6 @@ async def bcall(
|
|
915
844
|
backoff_factor=backoff_factor,
|
916
845
|
retry_default=retry_default,
|
917
846
|
retry_timeout=retry_timeout,
|
918
|
-
retry_timing=retry_timing,
|
919
847
|
max_concurrent=max_concurrent,
|
920
848
|
throttle_period=throttle_period,
|
921
849
|
flatten=flatten,
|
@@ -926,52 +854,6 @@ async def bcall(
|
|
926
854
|
)
|
927
855
|
|
928
856
|
|
929
|
-
class BCallParams(CallParams):
|
930
|
-
func: Any = None
|
931
|
-
batch_size: int
|
932
|
-
sanitize_input: bool = False
|
933
|
-
unique_input: bool = False
|
934
|
-
num_retries: int = 0
|
935
|
-
initial_delay: float = 0
|
936
|
-
retry_delay: float = 0
|
937
|
-
backoff_factor: float = 1
|
938
|
-
retry_default: Any = UNDEFINED
|
939
|
-
retry_timeout: float | None = None
|
940
|
-
retry_timing: bool = False
|
941
|
-
max_concurrent: int | None = None
|
942
|
-
throttle_period: float | None = None
|
943
|
-
flatten: bool = False
|
944
|
-
dropna: bool = False
|
945
|
-
unique_output: bool = False
|
946
|
-
flatten_tuple_set: bool = False
|
947
|
-
|
948
|
-
async def __call__(self, input_, func=None):
|
949
|
-
if self.func is None and func is None:
|
950
|
-
raise ValueError("a sync/async func must be provided")
|
951
|
-
return await bcall(
|
952
|
-
input_,
|
953
|
-
func or self.func,
|
954
|
-
*self.args,
|
955
|
-
batch_size=self.batch_size,
|
956
|
-
sanitize_input=self.sanitize_input,
|
957
|
-
unique_input=self.unique_input,
|
958
|
-
num_retries=self.num_retries,
|
959
|
-
initial_delay=self.initial_delay,
|
960
|
-
retry_delay=self.retry_delay,
|
961
|
-
backoff_factor=self.backoff_factor,
|
962
|
-
retry_default=self.retry_default,
|
963
|
-
retry_timeout=self.retry_timeout,
|
964
|
-
retry_timing=self.retry_timing,
|
965
|
-
max_concurrent=self.max_concurrent,
|
966
|
-
throttle_period=self.throttle_period,
|
967
|
-
flatten=self.flatten,
|
968
|
-
dropna=self.dropna,
|
969
|
-
unique_output=self.unique_output,
|
970
|
-
flatten_tuple_set=self.flatten_tuple_set,
|
971
|
-
**self.kwargs,
|
972
|
-
)
|
973
|
-
|
974
|
-
|
975
857
|
def create_path(
|
976
858
|
directory: Path | str,
|
977
859
|
filename: str,
|
lionagi/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.14.
|
1
|
+
__version__ = "0.14.5"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.14.
|
3
|
+
Version: 0.14.5
|
4
4
|
Summary: An Intelligence Operating System.
|
5
5
|
Author-email: HaiyangLi <quantocean.li@gmail.com>, Liangbingyan Luo <llby_luo@outlook.com>
|
6
6
|
License: Apache License
|
@@ -225,7 +225,6 @@ Requires-Dist: anyio>=4.8.0
|
|
225
225
|
Requires-Dist: backoff>=2.2.1
|
226
226
|
Requires-Dist: jinja2>=3.1.0
|
227
227
|
Requires-Dist: json-repair>=0.40.0
|
228
|
-
Requires-Dist: matplotlib>=3.9.0
|
229
228
|
Requires-Dist: pillow>=11.0.0
|
230
229
|
Requires-Dist: psutil>=7.0.0
|
231
230
|
Requires-Dist: pydantic-settings>=2.8.0
|
@@ -239,6 +238,8 @@ Requires-Dist: claude-code-sdk>=0.0.14; extra == 'all'
|
|
239
238
|
Requires-Dist: datamodel-code-generator>=0.31.2; extra == 'all'
|
240
239
|
Requires-Dist: docling>=2.15.1; extra == 'all'
|
241
240
|
Requires-Dist: fastmcp>=2.10.5; extra == 'all'
|
241
|
+
Requires-Dist: matplotlib>=3.7.0; extra == 'all'
|
242
|
+
Requires-Dist: networkx>=3.0.0; extra == 'all'
|
242
243
|
Requires-Dist: ollama>=0.4.0; extra == 'all'
|
243
244
|
Requires-Dist: pydapter[postgres]; extra == 'all'
|
244
245
|
Requires-Dist: rich>=13.0.0; extra == 'all'
|
@@ -248,6 +249,9 @@ Provides-Extra: docs
|
|
248
249
|
Requires-Dist: furo>=2024.8.6; extra == 'docs'
|
249
250
|
Requires-Dist: sphinx-autobuild>=2024.10.3; extra == 'docs'
|
250
251
|
Requires-Dist: sphinx>=8.1.3; extra == 'docs'
|
252
|
+
Provides-Extra: graph
|
253
|
+
Requires-Dist: matplotlib>=3.7.0; extra == 'graph'
|
254
|
+
Requires-Dist: networkx>=3.0.0; extra == 'graph'
|
251
255
|
Provides-Extra: lint
|
252
256
|
Requires-Dist: black[jupyter]>=24.10.0; extra == 'lint'
|
253
257
|
Requires-Dist: isort>=5.13.2; extra == 'lint'
|
@@ -5,8 +5,8 @@ lionagi/_types.py,sha256=9cKKDMl0l5DLGhHzDAtnlKT2XqLv1IeynmhFYBno2_k,185
|
|
5
5
|
lionagi/config.py,sha256=Dxs5FA9UCv1YX5H54qOJcPsDrIF9wFokWEPZ212eH-k,3715
|
6
6
|
lionagi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
7
|
lionagi/settings.py,sha256=HDuKCEJCpc4HudKodBnhoQUGuTGhRHdlIFhbtf3VBtY,1633
|
8
|
-
lionagi/utils.py,sha256=
|
9
|
-
lionagi/version.py,sha256=
|
8
|
+
lionagi/utils.py,sha256=n2aUMSnLLgy7HWFlfzDV1OqMDbatLNX0QYc7jIjXwQA,75023
|
9
|
+
lionagi/version.py,sha256=NAUBX_trzQBx5ZMxPGVgGrbbz9R2O-FqcIBv7OYAuIg,23
|
10
10
|
lionagi/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
lionagi/adapters/async_postgres_adapter.py,sha256=Kf2YCzwRqKpEHY3GQCXEiMl201CCIkDvXcvddwZNkkE,12723
|
12
12
|
lionagi/adapters/postgres_model_adapter.py,sha256=e_wfJNyihbpLCXuAs_W9tbLoMXAXbAXtkQDaHfqWz3o,4555
|
@@ -20,12 +20,13 @@ lionagi/fields/reason.py,sha256=eTGI9jDaaZJInUjCR9lEpYvw2_1UUF-xzCVCFP3-JRI,1437
|
|
20
20
|
lionagi/fields/research.py,sha256=eEPKocx8eQy2E9FExRWVIo6MK_xvmwBAoRZciBY3RG0,1421
|
21
21
|
lionagi/libs/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
22
22
|
lionagi/libs/parse.py,sha256=JRS3bql0InHJqATnAatl-hQv4N--XXw4P77JHhTFnrc,1011
|
23
|
-
lionagi/libs/concurrency/__init__.py,sha256=
|
23
|
+
lionagi/libs/concurrency/__init__.py,sha256=huQR4vk3l7mGyoYiGtsjF06xP_5fo9vgKqgB9Naq6PE,1185
|
24
24
|
lionagi/libs/concurrency/cancel.py,sha256=21KdFjLq9HIq6MpWVE-5KrrU0e1nehmK-ZETGNjTf6Y,4028
|
25
25
|
lionagi/libs/concurrency/errors.py,sha256=FhLgXGFSbKZYPNfXjdnkV-0ShPF_S34RBLyTO_Pk5C8,938
|
26
|
-
lionagi/libs/concurrency/patterns.py,sha256=
|
27
|
-
lionagi/libs/concurrency/primitives.py,sha256=
|
28
|
-
lionagi/libs/concurrency/
|
26
|
+
lionagi/libs/concurrency/patterns.py,sha256=dlC7nhIYE-D5VySNAPsd6PYYlORRAqNX50oKJRR1PO8,7796
|
27
|
+
lionagi/libs/concurrency/primitives.py,sha256=fgml37nggaEGuvAJHQY6-rpSuAuei56YVSjTlIieM2o,8996
|
28
|
+
lionagi/libs/concurrency/resource_tracker.py,sha256=52Rq7yMWK7DlebBW90imSjYeEAp8Gp9nL0dG2PD8Ivs,5464
|
29
|
+
lionagi/libs/concurrency/task.py,sha256=nVts_yPylkZVSk3l3I4MkUdC7rhoN2qQeFfrsvekVgE,3146
|
29
30
|
lionagi/libs/file/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
30
31
|
lionagi/libs/file/chunk.py,sha256=XeVMwM33JF0X1W6udz_nhlb3DCevA_EK6A50Hn_e5SY,9300
|
31
32
|
lionagi/libs/file/concat.py,sha256=YSauXVBL3WWx5Mvpn208Cj7q9TLt_aq-0M9J1fm-ins,3864
|
@@ -142,8 +143,8 @@ lionagi/protocols/generic/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGv
|
|
142
143
|
lionagi/protocols/generic/element.py,sha256=Eaij2YpTWsGk28Tqjazmjmc_tOnalH7_iGFZrL6QJb4,14420
|
143
144
|
lionagi/protocols/generic/event.py,sha256=InjBd2K9aSYxgai1c20d4jaJOkEx5VGFfb7iZbiMiNA,5200
|
144
145
|
lionagi/protocols/generic/log.py,sha256=vepclOaY3fdR1QgFDj9usOffsx9T-9PbgwXjTvm6twQ,7441
|
145
|
-
lionagi/protocols/generic/pile.py,sha256
|
146
|
-
lionagi/protocols/generic/processor.py,sha256=
|
146
|
+
lionagi/protocols/generic/pile.py,sha256=-eF7ojrg65MCNGAmogGehDNip1o6jPIU6nXL9LJjMGA,29984
|
147
|
+
lionagi/protocols/generic/processor.py,sha256=c_a7HB9WAaCY-HoI19YyStef8WOXcDj9UeiQb5bz_TM,11759
|
147
148
|
lionagi/protocols/generic/progression.py,sha256=qlITq1qzV119iR5qR__fBAzV489S7d4t20E8uDRicEw,15189
|
148
149
|
lionagi/protocols/graph/__init__.py,sha256=UPu3OmUpjSgX2aBuBJUdG2fppGlfqAH96hU0qIMBMp0,253
|
149
150
|
lionagi/protocols/graph/edge.py,sha256=YxSGj4w_fG7khm-zpKduuK5fJzhJDx23JhU1dZp29d8,5241
|
@@ -177,7 +178,7 @@ lionagi/protocols/operatives/step.py,sha256=PHKehsJESx0I2PnWQG8lHgX7mPp3jX1eiLAQ
|
|
177
178
|
lionagi/service/__init__.py,sha256=DMGXIqPsmut9H5GT0ZeSzQIzYzzPwI-2gLXydpbwiV8,21
|
178
179
|
lionagi/service/imodel.py,sha256=jE1Y3JzGwJZesHQtRSadVTAHA2TGdBAwfmzQoOA5Meg,12651
|
179
180
|
lionagi/service/manager.py,sha256=tN3p0kM7pg_CEs6wXK62_B_h49Q3nrU-9qniFhw2ABE,1164
|
180
|
-
lionagi/service/rate_limited_processor.py,sha256=
|
181
|
+
lionagi/service/rate_limited_processor.py,sha256=JhkuzJMHUCdndkRbAUf9wUQI9zOw-dutRy_nHf8EE5I,6101
|
181
182
|
lionagi/service/resilience.py,sha256=uYJYZQ9M-tje8ME3vJmYabXwKHF1c3Ij4-WrdCwogcs,18742
|
182
183
|
lionagi/service/token_calculator.py,sha256=piTidArzUkIMCtOLC_HBLoZNYZcENQywgeKM31bxezM,6457
|
183
184
|
lionagi/service/types.py,sha256=6zavqBxK1Fj0nB9eZgJn3JICxmdT-n0nn8YWZFzM5LU,508
|
@@ -202,7 +203,7 @@ lionagi/service/third_party/exa_models.py,sha256=G_hnekcy-DillPLzMoDQ8ZisVAL8Mp7
|
|
202
203
|
lionagi/service/third_party/openai_models.py,sha256=sF-fQ726CnaDBgLY_r2NdPqc3GicPKhZjh5F8IfjBO0,501904
|
203
204
|
lionagi/service/third_party/pplx_models.py,sha256=Nkm1ftESBa_NwP9ITBUNqLmAZ3Jh92aL732g_i6T8LQ,5947
|
204
205
|
lionagi/session/__init__.py,sha256=kDypY6L3kGPnatAw7YNQAykgg-9MlIBnlhHExaXvt-c,202
|
205
|
-
lionagi/session/branch.py,sha256=
|
206
|
+
lionagi/session/branch.py,sha256=Bm3EzkE0y6UkSGeZUx70r9YY6T7x7MQiEtibBCNFW9A,69496
|
206
207
|
lionagi/session/prompts.py,sha256=GPr0jibyAAqS3awDzGC8SoCL6aWJLLCCbXY0JUuxOC0,3170
|
207
208
|
lionagi/session/session.py,sha256=4zPB2E2yn7JcdlAkh757pmG6tjobvlryvvVRCO7uCW0,10795
|
208
209
|
lionagi/tools/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
@@ -211,7 +212,7 @@ lionagi/tools/types.py,sha256=XtJLY0m-Yi_ZLWhm0KycayvqMCZd--HxfQ0x9vFUYDE,230
|
|
211
212
|
lionagi/tools/file/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
212
213
|
lionagi/tools/file/reader.py,sha256=0TdnfVGVCKuM58MmGM-NyVjhU9BFoitkNYEepdc0z_Y,9529
|
213
214
|
lionagi/tools/memory/tools.py,sha256=zTGBenVsF8Wuh303kWntmQSGlAFKonHNdh5ePuQ26KE,15948
|
214
|
-
lionagi-0.14.
|
215
|
-
lionagi-0.14.
|
216
|
-
lionagi-0.14.
|
217
|
-
lionagi-0.14.
|
215
|
+
lionagi-0.14.5.dist-info/METADATA,sha256=lrwijIFHxQRurFu-fEnD5n0-bx23rd2t8hIrpl6Tikg,21236
|
216
|
+
lionagi-0.14.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
217
|
+
lionagi-0.14.5.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
|
218
|
+
lionagi-0.14.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|