lionagi 0.3.6__py3-none-any.whl → 0.3.7__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- lionagi/core/collections/abc/component.py +26 -29
- lionagi/core/collections/abc/concepts.py +0 -6
- lionagi/core/collections/flow.py +0 -1
- lionagi/core/collections/model.py +3 -2
- lionagi/core/collections/pile.py +1 -1
- lionagi/core/collections/progression.py +4 -5
- lionagi/core/generic/registry/component_registry/__init__.py +0 -0
- lionagi/core/operations/__init__.py +0 -0
- lionagi/core/operations/chat/__init__.py +0 -0
- lionagi/core/operations/direct/__init__.py +0 -0
- lionagi/core/operative/__init__.py +0 -0
- lionagi/core/unit/unit_mixin.py +3 -3
- lionagi/integrations/langchain_/__init__.py +0 -0
- lionagi/integrations/llamaindex_/__init__.py +0 -0
- lionagi/libs/sys_util.py +196 -32
- lionagi/lions/director/__init__.py +0 -0
- lionagi/operations/brainstorm/__init__.py +0 -0
- lionagi/operations/brainstorm.py +0 -0
- lionagi/operations/chat/__init__.py +0 -0
- lionagi/operations/models/__init__.py +0 -0
- lionagi/operations/plan/__init__.py +0 -0
- lionagi/operations/plan/base.py +0 -0
- lionagi/operations/query/__init__.py +0 -0
- lionagi/operations/rank/__init__.py +0 -0
- lionagi/operations/react/__init__.py +0 -0
- lionagi/operations/route/__init__.py +0 -0
- lionagi/operations/score/__init__.py +0 -0
- lionagi/operations/select/__init__.py +0 -0
- lionagi/operations/strategize/__init__.py +0 -0
- lionagi/version.py +1 -1
- {lionagi-0.3.6.dist-info → lionagi-0.3.7.dist-info}/METADATA +2 -1
- {lionagi-0.3.6.dist-info → lionagi-0.3.7.dist-info}/RECORD +34 -13
- {lionagi-0.3.6.dist-info → lionagi-0.3.7.dist-info}/LICENSE +0 -0
- {lionagi-0.3.6.dist-info → lionagi-0.3.7.dist-info}/WHEEL +0 -0
@@ -1,11 +1,11 @@
|
|
1
1
|
"""Component class, base building block in LionAGI."""
|
2
2
|
|
3
3
|
import contextlib
|
4
|
-
from abc import ABC
|
5
|
-
from collections.abc import Sequence
|
6
4
|
from functools import singledispatchmethod
|
7
|
-
from typing import Any,
|
5
|
+
from typing import Any, TypeAlias, TypeVar, Union
|
8
6
|
|
7
|
+
import lionfuncs as ln
|
8
|
+
from lionabc import Observable
|
9
9
|
from pandas import DataFrame, Series
|
10
10
|
from pydantic import AliasChoices, BaseModel, Field, ValidationError
|
11
11
|
|
@@ -22,7 +22,13 @@ T = TypeVar("T")
|
|
22
22
|
_init_class = {}
|
23
23
|
|
24
24
|
|
25
|
-
|
25
|
+
def change_dict_key(dict_: dict, old_key: str, new_key: str) -> None:
|
26
|
+
"""Change a key in a dictionary."""
|
27
|
+
if old_key in dict_:
|
28
|
+
dict_[new_key] = dict_.pop(old_key)
|
29
|
+
|
30
|
+
|
31
|
+
class Element(BaseModel, Observable):
|
26
32
|
"""Base class for elements within the LionAGI system.
|
27
33
|
|
28
34
|
Attributes:
|
@@ -31,15 +37,14 @@ class Element(BaseModel, ABC):
|
|
31
37
|
"""
|
32
38
|
|
33
39
|
ln_id: str = Field(
|
34
|
-
default_factory=SysUtil.
|
40
|
+
default_factory=SysUtil.id,
|
35
41
|
title="ID",
|
36
|
-
description="A 32-char unique hash identifier.",
|
37
42
|
frozen=True,
|
38
43
|
validation_alias=AliasChoices("node_id", "ID", "id"),
|
39
44
|
)
|
40
45
|
|
41
46
|
timestamp: str = Field(
|
42
|
-
default_factory=lambda:
|
47
|
+
default_factory=lambda: ln.time(type_="iso"),
|
43
48
|
title="Creation Timestamp",
|
44
49
|
description="The UTC timestamp of creation",
|
45
50
|
frozen=True,
|
@@ -57,7 +62,7 @@ class Element(BaseModel, ABC):
|
|
57
62
|
return True
|
58
63
|
|
59
64
|
|
60
|
-
class Component(Element
|
65
|
+
class Component(Element):
|
61
66
|
"""
|
62
67
|
Represents a distinguishable, temporal entity in LionAGI.
|
63
68
|
|
@@ -195,17 +200,15 @@ class Component(Element, ABC):
|
|
195
200
|
"""Create a Component instance from a LlamaIndex object."""
|
196
201
|
dict_ = obj.to_dict()
|
197
202
|
|
198
|
-
|
203
|
+
change_dict_key(dict_, "text", "content")
|
199
204
|
metadata = dict_.pop("metadata", {})
|
200
205
|
|
201
206
|
for field in llama_meta_fields:
|
202
207
|
metadata[field] = dict_.pop(field, None)
|
203
208
|
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
metadata, "relationships", "llama_index_relationships"
|
208
|
-
)
|
209
|
+
change_dict_key(metadata, "class_name", "llama_index_class")
|
210
|
+
change_dict_key(metadata, "id_", "llama_index_id")
|
211
|
+
change_dict_key(metadata, "relationships", "llama_index_relationships")
|
209
212
|
|
210
213
|
dict_["metadata"] = metadata
|
211
214
|
return cls.from_obj(dict_)
|
@@ -244,7 +247,7 @@ class Component(Element, ABC):
|
|
244
247
|
@classmethod
|
245
248
|
def _process_langchain_dict(cls, dict_: dict) -> dict:
|
246
249
|
"""Process a dictionary containing Langchain-specific data."""
|
247
|
-
|
250
|
+
change_dict_key(dict_, "page_content", "content")
|
248
251
|
|
249
252
|
metadata = dict_.pop("metadata", {})
|
250
253
|
metadata.update(dict_.pop("kwargs", {}))
|
@@ -264,9 +267,9 @@ class Component(Element, ABC):
|
|
264
267
|
if field in dict_:
|
265
268
|
metadata[field] = dict_.pop(field)
|
266
269
|
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
+
change_dict_key(metadata, "lc", "langchain")
|
271
|
+
change_dict_key(metadata, "type", "lc_type")
|
272
|
+
change_dict_key(metadata, "id", "lc_id")
|
270
273
|
|
271
274
|
extra_fields = {
|
272
275
|
k: v for k, v in metadata.items() if k not in lc_meta_fields
|
@@ -298,9 +301,9 @@ class Component(Element, ABC):
|
|
298
301
|
dict_["metadata"] = meta_
|
299
302
|
|
300
303
|
if "ln_id" not in dict_:
|
301
|
-
dict_["ln_id"] = meta_.pop("ln_id", SysUtil.
|
304
|
+
dict_["ln_id"] = meta_.pop("ln_id", SysUtil.id())
|
302
305
|
if "timestamp" not in dict_:
|
303
|
-
dict_["timestamp"] =
|
306
|
+
dict_["timestamp"] = ln.time(type_="iso")
|
304
307
|
if "metadata" not in dict_:
|
305
308
|
dict_["metadata"] = {}
|
306
309
|
if "extra_fields" not in dict_:
|
@@ -453,13 +456,13 @@ class Component(Element, ABC):
|
|
453
456
|
ninsert(
|
454
457
|
self.metadata,
|
455
458
|
["last_updated", name],
|
456
|
-
|
459
|
+
ln.time(type_="iso")[:-6],
|
457
460
|
)
|
458
461
|
elif isinstance(a, tuple) and isinstance(a[0], int):
|
459
462
|
nset(
|
460
463
|
self.metadata,
|
461
464
|
["last_updated", name],
|
462
|
-
|
465
|
+
ln.time(type_="iso")[:-6],
|
463
466
|
)
|
464
467
|
|
465
468
|
def _meta_pop(self, indices, default=...):
|
@@ -614,10 +617,4 @@ LionIDable: TypeAlias = Union[str, Element]
|
|
614
617
|
|
615
618
|
def get_lion_id(item: LionIDable) -> str:
|
616
619
|
"""Get the Lion ID of an item."""
|
617
|
-
|
618
|
-
item = item[0]
|
619
|
-
if isinstance(item, str) and len(item) == 32:
|
620
|
-
return item
|
621
|
-
if getattr(item, "ln_id", None) is not None:
|
622
|
-
return item.ln_id
|
623
|
-
raise LionTypeError("Item must be a single LionIDable object.")
|
620
|
+
return SysUtil.get_id(item)
|
@@ -227,12 +227,6 @@ class Sendable(BaseModel, ABC):
|
|
227
227
|
return value
|
228
228
|
|
229
229
|
a = get_lion_id(value)
|
230
|
-
if not isinstance(a, str) or len(a) != 32:
|
231
|
-
raise LionTypeError(
|
232
|
-
"Invalid sender or recipient value. "
|
233
|
-
"Expected a valid node id or one of "
|
234
|
-
"'system' or 'user'."
|
235
|
-
)
|
236
230
|
return a
|
237
231
|
|
238
232
|
|
lionagi/core/collections/flow.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import asyncio
|
2
2
|
import os
|
3
3
|
|
4
|
+
import lionfuncs as ln
|
4
5
|
import numpy as np
|
5
6
|
from dotenv import load_dotenv
|
6
7
|
|
@@ -91,8 +92,8 @@ class iModel:
|
|
91
92
|
service (BaseService, optional): An instance of BaseService.
|
92
93
|
**kwargs: Additional parameters for the model.
|
93
94
|
"""
|
94
|
-
self.ln_id: str = SysUtil.
|
95
|
-
self.timestamp: str =
|
95
|
+
self.ln_id: str = SysUtil.id()
|
96
|
+
self.timestamp: str = ln.time(type_="iso")
|
96
97
|
self.endpoint = endpoint
|
97
98
|
self.allowed_parameters = allowed_parameters
|
98
99
|
if isinstance(provider, type):
|
lionagi/core/collections/pile.py
CHANGED
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
3
3
|
import asyncio
|
4
4
|
from collections.abc import AsyncIterator, Callable, Iterable
|
5
5
|
from functools import wraps
|
6
|
-
from typing import Any, Generic,
|
6
|
+
from typing import Any, Generic, TypeVar
|
7
7
|
|
8
8
|
from pydantic import Field, field_validator
|
9
9
|
|
@@ -1,9 +1,8 @@
|
|
1
1
|
import contextlib
|
2
2
|
|
3
|
+
import lionfuncs as ln
|
3
4
|
from pydantic import Field, field_validator
|
4
5
|
|
5
|
-
from lionagi.libs import SysUtil
|
6
|
-
|
7
6
|
from .abc import Element, ItemNotFoundError, LionIDable, Ordering, get_lion_id
|
8
7
|
from .util import _validate_order
|
9
8
|
|
@@ -90,7 +89,7 @@ class Progression(Element, Ordering):
|
|
90
89
|
"""Remove the next occurrence of an item from the progression."""
|
91
90
|
if item in self:
|
92
91
|
item = self._validate_order(item)
|
93
|
-
l_ =
|
92
|
+
l_ = ln.copy(self.order)
|
94
93
|
|
95
94
|
with contextlib.suppress(Exception):
|
96
95
|
for i in item:
|
@@ -143,7 +142,7 @@ class Progression(Element, Ordering):
|
|
143
142
|
def __radd__(self, other):
|
144
143
|
if not isinstance(other, Progression):
|
145
144
|
_copy = self.copy()
|
146
|
-
l_ =
|
145
|
+
l_ = ln.copy(_copy.order)
|
147
146
|
l_.insert(0, get_lion_id(other))
|
148
147
|
_copy.order = l_
|
149
148
|
return _copy
|
@@ -190,7 +189,7 @@ class Progression(Element, Ordering):
|
|
190
189
|
|
191
190
|
def __list__(self):
|
192
191
|
"""Return a list representation of the progression."""
|
193
|
-
return
|
192
|
+
return ln.copy(self.order)
|
194
193
|
|
195
194
|
def __reversed__(self):
|
196
195
|
"""Return a reversed progression."""
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
lionagi/core/unit/unit_mixin.py
CHANGED
@@ -2,9 +2,9 @@ import asyncio
|
|
2
2
|
import contextlib
|
3
3
|
import re
|
4
4
|
from abc import ABC
|
5
|
-
from typing import Any
|
5
|
+
from typing import Any
|
6
6
|
|
7
|
-
from lionfuncs import
|
7
|
+
from lionfuncs import extract_block, to_dict, validate_mapping
|
8
8
|
|
9
9
|
from lionagi.core.collections.abc import ActionError
|
10
10
|
from lionagi.core.message import ActionRequest, ActionResponse, Instruction
|
@@ -1156,7 +1156,7 @@ class DirectiveMixin(ABC):
|
|
1156
1156
|
return to_dict(out_, fuzzy_parse=True)
|
1157
1157
|
|
1158
1158
|
with contextlib.suppress(Exception):
|
1159
|
-
return
|
1159
|
+
return extract_block(out_)
|
1160
1160
|
|
1161
1161
|
with contextlib.suppress(Exception):
|
1162
1162
|
match = re.search(r"```json\n({.*?})\n```", out_, re.DOTALL)
|
File without changes
|
File without changes
|
lionagi/libs/sys_util.py
CHANGED
@@ -7,11 +7,17 @@ import re
|
|
7
7
|
import subprocess
|
8
8
|
import sys
|
9
9
|
import time
|
10
|
+
from collections.abc import Sequence
|
10
11
|
from datetime import datetime, timezone
|
11
12
|
from hashlib import sha256
|
12
13
|
from pathlib import Path
|
13
14
|
from typing import Any
|
14
15
|
|
16
|
+
from lion_core.setting import DEFAULT_LION_ID_CONFIG, LionIDConfig
|
17
|
+
from lion_core.sys_utils import SysUtil as _u
|
18
|
+
from lionabc import Observable
|
19
|
+
from typing_extensions import deprecated
|
20
|
+
|
15
21
|
_timestamp_syms = ["-", ":", "."]
|
16
22
|
|
17
23
|
PATH_TYPE = str | Path
|
@@ -20,24 +26,74 @@ PATH_TYPE = str | Path
|
|
20
26
|
class SysUtil:
|
21
27
|
|
22
28
|
@staticmethod
|
29
|
+
def id(
|
30
|
+
config: LionIDConfig = DEFAULT_LION_ID_CONFIG,
|
31
|
+
n: int = None,
|
32
|
+
prefix: str = None,
|
33
|
+
postfix: str = None,
|
34
|
+
random_hyphen: bool = None,
|
35
|
+
num_hyphens: int = None,
|
36
|
+
hyphen_start_index: int = None,
|
37
|
+
hyphen_end_index: int = None,
|
38
|
+
) -> str:
|
39
|
+
return _u.id(
|
40
|
+
config=config,
|
41
|
+
n=n,
|
42
|
+
prefix=prefix,
|
43
|
+
postfix=postfix,
|
44
|
+
random_hyphen=random_hyphen,
|
45
|
+
num_hyphens=num_hyphens,
|
46
|
+
hyphen_start_index=hyphen_start_index,
|
47
|
+
hyphen_end_index=hyphen_end_index,
|
48
|
+
)
|
49
|
+
|
50
|
+
@staticmethod
|
51
|
+
def get_id(
|
52
|
+
item: Sequence[Observable] | Observable | str,
|
53
|
+
config: LionIDConfig = DEFAULT_LION_ID_CONFIG,
|
54
|
+
/,
|
55
|
+
) -> str:
|
56
|
+
return _u.get_id(item, config)
|
57
|
+
|
58
|
+
@staticmethod
|
59
|
+
def is_id(
|
60
|
+
item: Sequence[Observable] | Observable | str,
|
61
|
+
config: LionIDConfig = DEFAULT_LION_ID_CONFIG,
|
62
|
+
/,
|
63
|
+
) -> bool:
|
64
|
+
return _u.is_id(item, config)
|
65
|
+
|
66
|
+
# legacy methods, kept for backward compatibility
|
67
|
+
|
68
|
+
@staticmethod
|
69
|
+
@deprecated(
|
70
|
+
"Deprecated since v0.3, will be removed in v1.0. Use time.sleep instead.",
|
71
|
+
category=DeprecationWarning,
|
72
|
+
stacklevel=2,
|
73
|
+
)
|
23
74
|
def sleep(delay: float) -> None:
|
24
75
|
"""
|
25
76
|
Pauses execution for a specified duration.
|
26
77
|
|
27
78
|
Args:
|
28
|
-
|
79
|
+
delay (float): The amount of time, in seconds, to pause execution.
|
29
80
|
"""
|
30
81
|
time.sleep(delay)
|
31
82
|
|
32
83
|
@staticmethod
|
84
|
+
@deprecated(
|
85
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.time instead",
|
86
|
+
category=DeprecationWarning,
|
87
|
+
stacklevel=2,
|
88
|
+
)
|
33
89
|
def get_now(datetime_: bool = False, tz=None) -> float | datetime:
|
34
90
|
"""Returns the current time either as a Unix timestamp or a datetime object.
|
35
91
|
|
36
92
|
Args:
|
37
|
-
|
93
|
+
datetime_ (bool): If True, returns a datetime object; otherwise, returns a Unix timestamp.
|
38
94
|
|
39
95
|
Returns:
|
40
|
-
|
96
|
+
Union[float, datetime.datetime]: The current time as a Unix timestamp or a datetime object.
|
41
97
|
"""
|
42
98
|
|
43
99
|
if not datetime_:
|
@@ -48,6 +104,11 @@ class SysUtil:
|
|
48
104
|
return datetime.now(**config_)
|
49
105
|
|
50
106
|
@staticmethod
|
107
|
+
@deprecated(
|
108
|
+
"Deprecated since v0.3, will be removed in v1.0. Use d_[k2] = d_.pop(k1) instead",
|
109
|
+
category=DeprecationWarning,
|
110
|
+
stacklevel=2,
|
111
|
+
)
|
51
112
|
def change_dict_key(
|
52
113
|
dict_: dict[Any, Any], old_key: str, new_key: str
|
53
114
|
) -> None:
|
@@ -65,15 +126,20 @@ class SysUtil:
|
|
65
126
|
dict_[new_key] = dict_.pop(old_key)
|
66
127
|
|
67
128
|
@staticmethod
|
129
|
+
@deprecated(
|
130
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.time instead",
|
131
|
+
category=DeprecationWarning,
|
132
|
+
stacklevel=2,
|
133
|
+
)
|
68
134
|
def get_timestamp(tz: timezone = timezone.utc, sep: str = "_") -> str:
|
69
135
|
"""Returns a timestamp string with optional custom separators and timezone.
|
70
136
|
|
71
137
|
Args:
|
72
|
-
|
73
|
-
|
138
|
+
tz (timezone): The timezone for the timestamp.
|
139
|
+
sep (str): The separator to use in the timestamp string, replacing '-', ':', and '.'.
|
74
140
|
|
75
141
|
Returns:
|
76
|
-
|
142
|
+
str: A string representation of the current timestamp.
|
77
143
|
"""
|
78
144
|
str_ = datetime.now(tz=tz).isoformat()
|
79
145
|
if sep is not None:
|
@@ -82,6 +148,11 @@ class SysUtil:
|
|
82
148
|
return str_
|
83
149
|
|
84
150
|
@staticmethod
|
151
|
+
@deprecated(
|
152
|
+
"Deprecated since v0.3, will be removed in v1.0. Deprecated without replacement",
|
153
|
+
category=DeprecationWarning,
|
154
|
+
stacklevel=2,
|
155
|
+
)
|
85
156
|
def is_schema(dict_: dict[Any, Any], schema: dict[Any, type]) -> bool:
|
86
157
|
"""Validates if the given dictionary matches the expected schema types."""
|
87
158
|
return all(
|
@@ -90,6 +161,11 @@ class SysUtil:
|
|
90
161
|
)
|
91
162
|
|
92
163
|
@staticmethod
|
164
|
+
@deprecated(
|
165
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.copy instead",
|
166
|
+
category=DeprecationWarning,
|
167
|
+
stacklevel=2,
|
168
|
+
)
|
93
169
|
def create_copy(input_: Any, num: int = 1) -> Any | list[Any]:
|
94
170
|
"""Creates deep copies of the input, either as a single copy or a list of copies.
|
95
171
|
|
@@ -109,6 +185,11 @@ class SysUtil:
|
|
109
185
|
)
|
110
186
|
|
111
187
|
@staticmethod
|
188
|
+
@deprecated(
|
189
|
+
"Deprecated since v0.3, will be removed in v1.0. Use SysUtil.id instead",
|
190
|
+
category=DeprecationWarning,
|
191
|
+
stacklevel=2,
|
192
|
+
)
|
112
193
|
def create_id(n: int = 32) -> str:
|
113
194
|
"""
|
114
195
|
Generates a unique identifier based on the current time and random bytes.
|
@@ -124,17 +205,22 @@ class SysUtil:
|
|
124
205
|
return sha256(current_time + random_bytes).hexdigest()[:n]
|
125
206
|
|
126
207
|
@staticmethod
|
208
|
+
@deprecated(
|
209
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.get_bins instead",
|
210
|
+
category=DeprecationWarning,
|
211
|
+
stacklevel=2,
|
212
|
+
)
|
127
213
|
def get_bins(
|
128
214
|
input_: list[str], upper: int | None = 2000
|
129
215
|
) -> list[list[int]]:
|
130
216
|
"""Organizes indices of strings into bins based on a cumulative upper limit.
|
131
217
|
|
132
218
|
Args:
|
133
|
-
|
134
|
-
|
219
|
+
input_ (List[str]): The list of strings to be binned.
|
220
|
+
upper (int): The cumulative length upper limit for each bin.
|
135
221
|
|
136
222
|
Returns:
|
137
|
-
|
223
|
+
List[List[int]]: A list of bins, each bin is a list of indices from the input list.
|
138
224
|
"""
|
139
225
|
current = 0
|
140
226
|
bins = []
|
@@ -152,13 +238,18 @@ class SysUtil:
|
|
152
238
|
return bins
|
153
239
|
|
154
240
|
@staticmethod
|
241
|
+
@deprecated(
|
242
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.get_cpu_architecture instead",
|
243
|
+
category=DeprecationWarning,
|
244
|
+
stacklevel=2,
|
245
|
+
)
|
155
246
|
def get_cpu_architecture() -> str:
|
156
247
|
"""Returns a string identifying the CPU architecture.
|
157
248
|
|
158
249
|
This method categorizes some architectures as 'apple_silicon'.
|
159
250
|
|
160
251
|
Returns:
|
161
|
-
|
252
|
+
str: A string identifying the CPU architecture ('apple_silicon' or 'other_cpu').
|
162
253
|
"""
|
163
254
|
arch: str = platform.machine().lower()
|
164
255
|
return (
|
@@ -168,6 +259,11 @@ class SysUtil:
|
|
168
259
|
)
|
169
260
|
|
170
261
|
@staticmethod
|
262
|
+
@deprecated(
|
263
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.install_import instead",
|
264
|
+
category=DeprecationWarning,
|
265
|
+
stacklevel=2,
|
266
|
+
)
|
171
267
|
def install_import(
|
172
268
|
package_name: str,
|
173
269
|
module_name: str = None,
|
@@ -180,10 +276,10 @@ class SysUtil:
|
|
180
276
|
to install the package using pip and then retries the import.
|
181
277
|
|
182
278
|
Args:
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
279
|
+
package_name: The base name of the package to import.
|
280
|
+
module_name: The submodule name to import from the package, if applicable. Defaults to None.
|
281
|
+
import_name: The specific name to import from the module or package. Defaults to None.
|
282
|
+
pip_name: The pip package name if different from `package_name`. Defaults to None.
|
187
283
|
|
188
284
|
Prints a message indicating success or attempts installation if the import fails.
|
189
285
|
"""
|
@@ -215,23 +311,38 @@ class SysUtil:
|
|
215
311
|
__import__(full_import_path)
|
216
312
|
|
217
313
|
@staticmethod
|
314
|
+
@deprecated(
|
315
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.import_module instead",
|
316
|
+
category=DeprecationWarning,
|
317
|
+
stacklevel=2,
|
318
|
+
)
|
218
319
|
def import_module(module_path: str):
|
219
320
|
return importlib.import_module(module_path)
|
220
321
|
|
221
322
|
@staticmethod
|
323
|
+
@deprecated(
|
324
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.is_package_installed instead",
|
325
|
+
category=DeprecationWarning,
|
326
|
+
stacklevel=2,
|
327
|
+
)
|
222
328
|
def is_package_installed(package_name: str) -> bool:
|
223
329
|
"""Checks if a package is currently installed.
|
224
330
|
|
225
331
|
Args:
|
226
|
-
|
332
|
+
package_name: The name of the package to check.
|
227
333
|
|
228
334
|
Returns:
|
229
|
-
|
335
|
+
A boolean indicating whether the package is installed.
|
230
336
|
"""
|
231
337
|
package_spec = importlib.util.find_spec(package_name)
|
232
338
|
return package_spec is not None
|
233
339
|
|
234
340
|
@staticmethod
|
341
|
+
@deprecated(
|
342
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.check_import instead",
|
343
|
+
category=DeprecationWarning,
|
344
|
+
stacklevel=2,
|
345
|
+
)
|
235
346
|
def check_import(
|
236
347
|
package_name: str,
|
237
348
|
module_name: str | None = None,
|
@@ -246,12 +357,12 @@ class SysUtil:
|
|
246
357
|
it attempts to install the package using `install_import` and then retries the import.
|
247
358
|
|
248
359
|
Args:
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
360
|
+
package_name: The name of the package to check and potentially install.
|
361
|
+
module_name: The submodule name to import from the package, if applicable. Defaults to None.
|
362
|
+
import_name: The specific name to import from the module or package. Defaults to None.
|
363
|
+
pip_name: The pip package name if different from `package_name`. Defaults to None.
|
364
|
+
attempt_install: If attempt to install the package if uninstalled. Defaults to True.
|
365
|
+
error_message: Error message when the package is not installed and not attempt to install.
|
255
366
|
"""
|
256
367
|
try:
|
257
368
|
if not SysUtil.is_package_installed(package_name):
|
@@ -277,6 +388,11 @@ class SysUtil:
|
|
277
388
|
) from e
|
278
389
|
|
279
390
|
@staticmethod
|
391
|
+
@deprecated(
|
392
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.list_installed_packages instead",
|
393
|
+
category=DeprecationWarning,
|
394
|
+
stacklevel=2,
|
395
|
+
)
|
280
396
|
def list_installed_packages() -> list:
|
281
397
|
"""list all installed packages using importlib.metadata."""
|
282
398
|
return [
|
@@ -285,6 +401,11 @@ class SysUtil:
|
|
285
401
|
]
|
286
402
|
|
287
403
|
@staticmethod
|
404
|
+
@deprecated(
|
405
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.uninstall_package instead",
|
406
|
+
category=DeprecationWarning,
|
407
|
+
stacklevel=2,
|
408
|
+
)
|
288
409
|
def uninstall_package(package_name: str) -> None:
|
289
410
|
"""Uninstall a specified package."""
|
290
411
|
try:
|
@@ -296,6 +417,11 @@ class SysUtil:
|
|
296
417
|
print(f"Failed to uninstall {package_name}. Error: {e}")
|
297
418
|
|
298
419
|
@staticmethod
|
420
|
+
@deprecated(
|
421
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.update_package instead",
|
422
|
+
category=DeprecationWarning,
|
423
|
+
stacklevel=2,
|
424
|
+
)
|
299
425
|
def update_package(package_name: str) -> None:
|
300
426
|
"""Update a specified package."""
|
301
427
|
try:
|
@@ -314,6 +440,11 @@ class SysUtil:
|
|
314
440
|
print(f"Failed to update {package_name}. Error: {e}")
|
315
441
|
|
316
442
|
@staticmethod
|
443
|
+
@deprecated(
|
444
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.clear_path instead",
|
445
|
+
category=DeprecationWarning,
|
446
|
+
stacklevel=2,
|
447
|
+
)
|
317
448
|
def clear_dir(
|
318
449
|
dir_path: Path | str,
|
319
450
|
recursive: bool = False,
|
@@ -324,12 +455,12 @@ class SysUtil:
|
|
324
455
|
excluding files that match any pattern in the exclude list.
|
325
456
|
|
326
457
|
Args:
|
327
|
-
|
328
|
-
|
329
|
-
|
458
|
+
dir_path (Union[Path, str]): The path to the directory to clear.
|
459
|
+
recursive (bool): If True, clears directories recursively. Defaults to False.
|
460
|
+
exclude (List[str]): A list of string patterns to exclude from deletion. Defaults to None.
|
330
461
|
|
331
462
|
Raises:
|
332
|
-
|
463
|
+
FileNotFoundError: If the specified directory does not exist.
|
333
464
|
"""
|
334
465
|
dir_path = Path(dir_path)
|
335
466
|
if not dir_path.exists():
|
@@ -356,6 +487,11 @@ class SysUtil:
|
|
356
487
|
raise
|
357
488
|
|
358
489
|
@staticmethod
|
490
|
+
@deprecated(
|
491
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.split_path instead",
|
492
|
+
category=DeprecationWarning,
|
493
|
+
stacklevel=2,
|
494
|
+
)
|
359
495
|
def split_path(path: Path | str) -> tuple[Path, str]:
|
360
496
|
"""
|
361
497
|
Splits a path into its directory and filename components.
|
@@ -370,6 +506,11 @@ class SysUtil:
|
|
370
506
|
return path.parent, path.name
|
371
507
|
|
372
508
|
@staticmethod
|
509
|
+
@deprecated(
|
510
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.create_path instead",
|
511
|
+
category=DeprecationWarning,
|
512
|
+
stacklevel=2,
|
513
|
+
)
|
373
514
|
def create_path(
|
374
515
|
directory: Path | str,
|
375
516
|
filename: str,
|
@@ -383,12 +524,12 @@ class SysUtil:
|
|
383
524
|
Creates a path with an optional timestamp in the specified directory.
|
384
525
|
|
385
526
|
Args:
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
527
|
+
directory (Union[Path, str]): The directory where the file will be located.
|
528
|
+
filename (str): The filename. Must include a valid extension.
|
529
|
+
timestamp (bool): If True, adds a timestamp to the filename. Defaults to True.
|
530
|
+
dir_exist_ok (bool): If True, does not raise an error if the directory exists. Defaults to True.
|
531
|
+
time_prefix (bool): If True, adds the timestamp as a prefix; otherwise, as a suffix. Defaults to False.
|
532
|
+
custom_timestamp_format (str): A custom format for the timestamp. Defaults to "%Y%m%d%H%M%S".
|
392
533
|
|
393
534
|
Returns:
|
394
535
|
Path: The full path to the file.
|
@@ -432,6 +573,11 @@ class SysUtil:
|
|
432
573
|
return full_path
|
433
574
|
|
434
575
|
@staticmethod
|
576
|
+
@deprecated(
|
577
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.list_files instead",
|
578
|
+
category=DeprecationWarning,
|
579
|
+
stacklevel=2,
|
580
|
+
)
|
435
581
|
def list_files(dir_path: Path | str, extension: str = None) -> list[Path]:
|
436
582
|
"""
|
437
583
|
Lists all files in a specified directory with an optional filter for file extensions.
|
@@ -455,6 +601,11 @@ class SysUtil:
|
|
455
601
|
return list(dir_path.glob("*"))
|
456
602
|
|
457
603
|
@staticmethod
|
604
|
+
@deprecated(
|
605
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.copy_file instead",
|
606
|
+
category=DeprecationWarning,
|
607
|
+
stacklevel=2,
|
608
|
+
)
|
458
609
|
def copy_file(src: Path | str, dest: Path | str) -> None:
|
459
610
|
"""
|
460
611
|
Copies a file from a source path to a destination path.
|
@@ -475,6 +626,11 @@ class SysUtil:
|
|
475
626
|
copy2(src, dest)
|
476
627
|
|
477
628
|
@staticmethod
|
629
|
+
@deprecated(
|
630
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.get_file_size instead",
|
631
|
+
category=DeprecationWarning,
|
632
|
+
stacklevel=2,
|
633
|
+
)
|
478
634
|
def get_size(path: Path | str) -> int:
|
479
635
|
"""
|
480
636
|
Gets the size of a file or total size of files in a directory.
|
@@ -499,6 +655,11 @@ class SysUtil:
|
|
499
655
|
raise FileNotFoundError(f"{path} does not exist.")
|
500
656
|
|
501
657
|
@staticmethod
|
658
|
+
@deprecated(
|
659
|
+
"Deprecated since v0.3, will be removed in v1.0. Use lionfuncs.save_to_file instead",
|
660
|
+
category=DeprecationWarning,
|
661
|
+
stacklevel=2,
|
662
|
+
)
|
502
663
|
def save_to_file(
|
503
664
|
text,
|
504
665
|
directory: Path | str,
|
@@ -544,3 +705,6 @@ class SysUtil:
|
|
544
705
|
print(f"Text saved to: {file_path}")
|
545
706
|
|
546
707
|
return True
|
708
|
+
|
709
|
+
|
710
|
+
__all__ = ["SysUtil"]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
lionagi/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.3.
|
1
|
+
__version__ = "0.3.7"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.7
|
4
4
|
Summary: Towards automated general intelligence.
|
5
5
|
Author: HaiyangLi
|
6
6
|
Author-email: quantocean.li@gmail.com
|
@@ -13,6 +13,7 @@ Requires-Dist: aiocache (>=0.12.0,<0.13.0)
|
|
13
13
|
Requires-Dist: ipython (>=8.0.0,<9.0.0)
|
14
14
|
Requires-Dist: lion-core (>=0.4.0,<0.5.0)
|
15
15
|
Requires-Dist: lion-openai (>=0.1.5,<0.2.0)
|
16
|
+
Requires-Dist: lionfuncs (>=1.2.1,<2.0.0)
|
16
17
|
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
|
17
18
|
Description-Content-Type: text/markdown
|
18
19
|
|
@@ -26,15 +26,15 @@ lionagi/core/collections/__init__.py,sha256=RgnaBHgeUlPQyPfraE2MI86wAZpHAtmfgU0h
|
|
26
26
|
lionagi/core/collections/_logger.py,sha256=zAGvx5SWWkeI2_n8Jh69ToYvyn5LLlww91SRKcrxLDU,11696
|
27
27
|
lionagi/core/collections/abc/README.md,sha256=N3s0qQglL2PkriZ0hWDTh0ytJjubqkXVyUB0x9kpi6U,5524
|
28
28
|
lionagi/core/collections/abc/__init__.py,sha256=cCPlUaXtXXPdQamXWQAf8MHKck7sa1asu6TDLX1W6S0,984
|
29
|
-
lionagi/core/collections/abc/component.py,sha256=
|
30
|
-
lionagi/core/collections/abc/concepts.py,sha256=
|
29
|
+
lionagi/core/collections/abc/component.py,sha256=R3lU2I9cefeKNQ-2EmUq487MRYdBHR50g5iZ9BmudKU,21280
|
30
|
+
lionagi/core/collections/abc/concepts.py,sha256=iYaI97A9qWrH_aPt_Fx60qgMfoGKqhzD0-efgH8lSj0,7799
|
31
31
|
lionagi/core/collections/abc/exceptions.py,sha256=raqjWSHGYhm-tUAmn1QK_NlkM3MQfjc1cOD_kobUdyc,4065
|
32
32
|
lionagi/core/collections/abc/util.py,sha256=CjJs-PgK0t4MAG1AJUdgrxQg7v2Ou-ixv-gWjatu7d4,779
|
33
33
|
lionagi/core/collections/exchange.py,sha256=7h9kI7gNRyCYFZUd-686ClPZXFZLtrEn7pVHjk4ol60,4274
|
34
|
-
lionagi/core/collections/flow.py,sha256=
|
35
|
-
lionagi/core/collections/model.py,sha256=
|
36
|
-
lionagi/core/collections/pile.py,sha256=
|
37
|
-
lionagi/core/collections/progression.py,sha256=
|
34
|
+
lionagi/core/collections/flow.py,sha256=yaCdLhilcBrPdsZ46RcApgi8p-7O0D97OYnNVkEZja4,12726
|
35
|
+
lionagi/core/collections/model.py,sha256=dU6NOmy3c2aX9XqM5Y2CMx9_wuRCDtFAJyu5njBEysM,15848
|
36
|
+
lionagi/core/collections/pile.py,sha256=Zjzjo1eb0V7_9ONDpZgT65jLaAM04_zWK01zNS3OI_M,37937
|
37
|
+
lionagi/core/collections/progression.py,sha256=oFXvsGe84ZcHvacGc1MDGn4bE4h5wRUq8h9wcBXr8Ok,6657
|
38
38
|
lionagi/core/collections/util.py,sha256=AWfwuIIwbakpF0_swWUVSGTeN26XWL6UlmgW5mh4qDA,2005
|
39
39
|
lionagi/core/director/README.md,sha256=HoIDnEmWmWXVeDfUvkyf4nXQOYqzy2jhToZcJz0zmUw,55
|
40
40
|
lionagi/core/director/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -65,6 +65,7 @@ lionagi/core/generic/edge_condition.py,sha256=ZvQMYDl4WFXrwkvjQajVFluF5FNosw_OLe
|
|
65
65
|
lionagi/core/generic/graph.py,sha256=kOq2DvZaAFmgHIZUlFlxUgSh4rzqQP6fMmQtrWhTjfM,7838
|
66
66
|
lionagi/core/generic/hyperedge.py,sha256=DkeLUlrb7rGx3nZ04aADU9HXXu5mZTf_DBwT0xhzIv4,7
|
67
67
|
lionagi/core/generic/node.py,sha256=vf26Q8-V3wh5qr8TdFGena_SCkp_39eCO6n23TjbuMo,7156
|
68
|
+
lionagi/core/generic/registry/component_registry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
69
|
lionagi/core/generic/tree.py,sha256=YVlJT1_gN96utEUB1Uc4pmHEeFVyJrtSF6cqIBWZDJI,1541
|
69
70
|
lionagi/core/generic/tree_node.py,sha256=vHOELePsn-Vqlpi7V4-UteGR-Vht4FddJL6UmNVbab8,2475
|
70
71
|
lionagi/core/mail/__init__.py,sha256=_-C11e519cBCuEuYhCgsQnzph2vDpUaLEfsKNwz33AQ,202
|
@@ -80,6 +81,10 @@ lionagi/core/message/instruction.py,sha256=I_ZqMx3IjIwGlAx3bdlBuyVycTZ9yO1i-kEP5
|
|
80
81
|
lionagi/core/message/message.py,sha256=Etl4a3mUrXLsym7i6ILqTV_Xun0xZw0UCoBMl1OtsNE,2403
|
81
82
|
lionagi/core/message/system.py,sha256=48mvib50mno9F-8fkLa8SzPxz3G1KlRgz3GkIluMFUQ,2318
|
82
83
|
lionagi/core/message/util.py,sha256=7CFw90QA3CdnV43aQ3PU6p1fhtaTixnlj_SBkLyQmpM,9313
|
84
|
+
lionagi/core/operations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
85
|
+
lionagi/core/operations/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
86
|
+
lionagi/core/operations/direct/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
87
|
+
lionagi/core/operative/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
88
|
lionagi/core/report/__init__.py,sha256=KqfJNaSx9fzRw3eyrlIlYIiueo-jVYMgjaOdfzTUAN4,80
|
84
89
|
lionagi/core/report/base.py,sha256=_PRSd92JttwEKnW_UX7SszpV29bLg6wPwJ_Lav-Z-9k,7173
|
85
90
|
lionagi/core/report/form.py,sha256=IPZk5D5Ai-GV6DrvrZBoEkwIFT7_vwv8h3qME8Tph-M,7040
|
@@ -116,7 +121,7 @@ lionagi/core/unit/template/score.py,sha256=ReUaIIr-NLjunSy4NNXQpIsH28NNceGBAUuPC
|
|
116
121
|
lionagi/core/unit/template/select.py,sha256=VSpkphJl9bHSE8i0X6MMJD8LB5QwOj1UORHm8VDIRKE,3047
|
117
122
|
lionagi/core/unit/unit.py,sha256=a3rauBXe50SBUgndv7Q9bqF4h7pJCYdsoTfPf1e8GCs,15548
|
118
123
|
lionagi/core/unit/unit_form.py,sha256=zK_ij3Tod5FwMVdIIhdVoEFvD3br-YM9RPe7WsOIW2s,10980
|
119
|
-
lionagi/core/unit/unit_mixin.py,sha256=
|
124
|
+
lionagi/core/unit/unit_mixin.py,sha256=gLyqtyiwWIyfibhNUJzMpAGfcMmLdo86xjbGZFyGILA,38803
|
120
125
|
lionagi/core/unit/util.py,sha256=WN2Jop-LUwQNYJNubFPhOZrisQ6SQq-XMhD_KhzLkgE,2707
|
121
126
|
lionagi/core/validator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
122
127
|
lionagi/core/validator/validator.py,sha256=901wwmqL92XNi25ajv57bNKIKZhmu-KprNLArMUiGqg,12255
|
@@ -180,6 +185,8 @@ lionagi/integrations/config/mlx_configs.py,sha256=xbostqjnk3aAN-qKyC54YBprHPA38C
|
|
180
185
|
lionagi/integrations/config/oai_configs.py,sha256=fgby-3o_tO24QhSiPyko-oeAMEa0cWCThh6L6ChiXoo,3625
|
181
186
|
lionagi/integrations/config/ollama_configs.py,sha256=GUn0kagrQA3gpIiaxYyfdi2LAf_Ohz1sVrsAb20OBwo,17
|
182
187
|
lionagi/integrations/config/openrouter_configs.py,sha256=x5LjLx-aqCLzzrqr15gVzuTTG4Y_BVS6tRrKout5vPQ,1690
|
188
|
+
lionagi/integrations/langchain_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
189
|
+
lionagi/integrations/llamaindex_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
183
190
|
lionagi/integrations/loader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
184
191
|
lionagi/integrations/loader/load.py,sha256=KhsbLPwqNK1wRDKSoZPd5yeyMGAPc9Xt_ISR8PK6PCk,8651
|
185
192
|
lionagi/integrations/loader/load_util.py,sha256=65qP5kytBJFTaSg7lNCO7rfw6GpPQuvZxoqJ7s83A48,6616
|
@@ -214,7 +221,7 @@ lionagi/libs/ln_queue.py,sha256=kJ-81XNnu2gcHyQ9XL62kCnAzk_0tmRmvhAaj30wIjM,3498
|
|
214
221
|
lionagi/libs/ln_tokenize.py,sha256=SP3mGljwaaxqH0ced54v4lFs8LXU-oIpb33mdrzRSEA,5400
|
215
222
|
lionagi/libs/ln_validate.py,sha256=huTnLNaAITni49PK_uI2CXvnFETt87j8-4lF8e5yy0o,8469
|
216
223
|
lionagi/libs/special_tokens.py,sha256=ViFaql64LgEGHSXzODzaVMh4GfteN8D2ogmqWYTYwiQ,2411
|
217
|
-
lionagi/libs/sys_util.py,sha256=
|
224
|
+
lionagi/libs/sys_util.py,sha256=Xin0U3-oBUJZJUhdHRjDyyNVJS-resfGFooDUTAtH0M,24919
|
218
225
|
lionagi/lions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
219
226
|
lionagi/lions/coder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
220
227
|
lionagi/lions/coder/add_feature.py,sha256=mLMfz9V9yYbdH6DJs39FOz9IHdhdyPZajocQtQhjgcA,703
|
@@ -222,6 +229,7 @@ lionagi/lions/coder/base_prompts.py,sha256=SLpC442nZm2cEkB8o9j28kpkB-WzKLjH6sOTS
|
|
222
229
|
lionagi/lions/coder/code_form.py,sha256=xW66cWCsrZu2qGu-wGUGSIPL1uZevGQVCE_vBRH9Kmc,384
|
223
230
|
lionagi/lions/coder/coder.py,sha256=u-n_7PVdKCAz28SAA2bO4oy1qxGIzEl1PX6iqz7oSoI,5829
|
224
231
|
lionagi/lions/coder/util.py,sha256=m9H18JrePpuP1VyjxVXQaLXCGBed04jZIkfNXvF7_gU,2751
|
232
|
+
lionagi/lions/director/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
225
233
|
lionagi/lions/judge/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
226
234
|
lionagi/lions/judge/config.py,sha256=hJNMI-07zf5cqU2tr22fzkGvhR7RdtckkYg8UhLTKec,185
|
227
235
|
lionagi/lions/judge/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -238,8 +246,21 @@ lionagi/lions/researcher/data_source/finhub_.py,sha256=W63daXgIwHJQ6TDMR2ALQIDk1
|
|
238
246
|
lionagi/lions/researcher/data_source/google_.py,sha256=401SKHQaSpxiOUoXl7stadl4qeF7SIX72lUNK7bKesg,6797
|
239
247
|
lionagi/lions/researcher/data_source/wiki_.py,sha256=UPoa2dk_y5sELu7_rkdme2auDpUmc_Dn0Avgjwr2X2g,3145
|
240
248
|
lionagi/lions/researcher/data_source/yfinance_.py,sha256=snAf897J69MyAc6fcFjF0irrMjbAh81EZ3RvaFT3hxE,977
|
241
|
-
lionagi/
|
242
|
-
lionagi
|
243
|
-
lionagi
|
244
|
-
lionagi
|
245
|
-
lionagi-0
|
249
|
+
lionagi/operations/brainstorm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
250
|
+
lionagi/operations/brainstorm.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
251
|
+
lionagi/operations/chat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
252
|
+
lionagi/operations/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
253
|
+
lionagi/operations/plan/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
254
|
+
lionagi/operations/plan/base.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
255
|
+
lionagi/operations/query/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
256
|
+
lionagi/operations/rank/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
257
|
+
lionagi/operations/react/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
258
|
+
lionagi/operations/route/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
259
|
+
lionagi/operations/score/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
260
|
+
lionagi/operations/select/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
261
|
+
lionagi/operations/strategize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
262
|
+
lionagi/version.py,sha256=J0I0c7-a50EOnWXMryTu_E6xhXSYFBPjVpeYP_a3vRI,22
|
263
|
+
lionagi-0.3.7.dist-info/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
|
264
|
+
lionagi-0.3.7.dist-info/METADATA,sha256=6F2nnUX1ORQQo6giNHPHh3iuZb8AZxNs5Nw-XsqqutQ,3190
|
265
|
+
lionagi-0.3.7.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
266
|
+
lionagi-0.3.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|