lionagi 0.3.6__py3-none-any.whl → 0.3.7__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/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
|