Skip to content

Commit 8a482fe

Browse files
authored
Merge pull request #1562 from weaviate/weaviate-agents-integration
Weaviate Agents extras integration
2 parents d54459a + b1455d4 commit 8a482fe

File tree

13 files changed

+93
-16
lines changed

13 files changed

+93
-16
lines changed

requirements-devel.txt

+3-1
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,6 @@ flake8
4848
flake8-bugbear==24.12.12
4949
flake8-comprehensions==3.16.0
5050
flake8-builtins==2.5.0
51-
black==24.10.0
51+
black==24.10.0
52+
53+
weaviate-agents>=0.3.0,<1.0.0

setup.cfg

+3
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ install_requires =
4040
grpcio-health-checking>=1.66.2,<2.0.0
4141
python_requires = >=3.9
4242

43+
[options.extras_require]
44+
agents =
45+
weaviate-agents >=0.3.0, <1.0.0
4346

4447
[options.package_data]
4548
# If any package or subpackage contains *.txt, *.rst or *.md files, include them:

weaviate/__init__.py

+23-14
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,14 @@
44

55
import os
66
import sys
7-
from importlib.metadata import version, PackageNotFoundError
7+
from importlib.metadata import PackageNotFoundError, version
88
from typing import Any
99

1010
try:
1111
__version__ = version("weaviate-client")
1212
except PackageNotFoundError:
1313
__version__ = "unknown version"
1414

15-
from .client import Client, WeaviateAsyncClient, WeaviateClient
16-
from .collections.batch.client import BatchClient, ClientBatchingContextManager
17-
from .connect.helpers import (
18-
connect_to_custom,
19-
connect_to_embedded,
20-
connect_to_local,
21-
connect_to_wcs,
22-
connect_to_weaviate_cloud,
23-
use_async_with_custom,
24-
use_async_with_embedded,
25-
use_async_with_local,
26-
use_async_with_weaviate_cloud,
27-
)
2815
from . import (
2916
auth,
3017
backup,
@@ -38,6 +25,19 @@
3825
outputs,
3926
types,
4027
)
28+
from .client import Client, WeaviateAsyncClient, WeaviateClient
29+
from .collections.batch.client import BatchClient, ClientBatchingContextManager
30+
from .connect.helpers import (
31+
connect_to_custom,
32+
connect_to_embedded,
33+
connect_to_local,
34+
connect_to_wcs,
35+
connect_to_weaviate_cloud,
36+
use_async_with_custom,
37+
use_async_with_embedded,
38+
use_async_with_local,
39+
use_async_with_weaviate_cloud,
40+
)
4141

4242
if not sys.warnoptions:
4343
from warnings import simplefilter
@@ -76,6 +76,15 @@
7676
"use_async_with_weaviate_cloud",
7777
]
7878

79+
try:
80+
import weaviate_agents as agents
81+
82+
sys.modules["weaviate.agents"] = agents
83+
__all__.append("agents")
84+
except ImportError:
85+
pass
86+
87+
7988
deprs = [
8089
"Collection",
8190
"AuthClientCredentials",

weaviate/agents/__init__.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from weaviate.exceptions import WeaviateAgentsNotInstalledError
2+
3+
try:
4+
from weaviate_agents import * # type: ignore # noqa: F403, F401
5+
except ImportError:
6+
raise WeaviateAgentsNotInstalledError

weaviate/agents/__init__.pyi

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from weaviate.exceptions import WeaviateAgentsNotInstalledError
2+
3+
try:
4+
from weaviate_agents import *
5+
except ImportError:
6+
raise WeaviateAgentsNotInstalledError

weaviate/agents/base.pyi

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from weaviate.exceptions import WeaviateAgentsNotInstalledError
2+
3+
try:
4+
from weaviate_agents.base import *
5+
except ImportError:
6+
raise WeaviateAgentsNotInstalledError

weaviate/agents/classes/__init__.pyi

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from weaviate.exceptions import WeaviateAgentsNotInstalledError
2+
3+
try:
4+
from weaviate_agents.classes import *
5+
except ImportError:
6+
raise WeaviateAgentsNotInstalledError

weaviate/agents/errors.pyi

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from weaviate.exceptions import WeaviateAgentsNotInstalledError
2+
3+
try:
4+
from weaviate_agents.errors import *
5+
except ImportError:
6+
raise WeaviateAgentsNotInstalledError
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from weaviate.exceptions import WeaviateAgentsNotInstalledError
2+
3+
try:
4+
from weaviate_agents.personalization import *
5+
except ImportError:
6+
raise WeaviateAgentsNotInstalledError

weaviate/agents/query/__init__.pyi

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from weaviate.exceptions import WeaviateAgentsNotInstalledError
2+
3+
try:
4+
from weaviate_agents.query import *
5+
except ImportError:
6+
raise WeaviateAgentsNotInstalledError
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from weaviate.exceptions import WeaviateAgentsNotInstalledError
2+
3+
try:
4+
from weaviate_agents.transformation import *
5+
except ImportError:
6+
raise WeaviateAgentsNotInstalledError

weaviate/agents/utils.pyi

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from weaviate.exceptions import WeaviateAgentsNotInstalledError
2+
3+
try:
4+
from weaviate_agents.utils import *
5+
except ImportError:
6+
raise WeaviateAgentsNotInstalledError

weaviate/exceptions.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44

55
from json.decoder import JSONDecodeError
6-
from typing import Union, Tuple
6+
from typing import Tuple, Union
77

88
import httpx
99
from grpc.aio import AioRpcError # type: ignore
@@ -371,3 +371,12 @@ class InsufficientPermissionsError(UnexpectedStatusCodeError):
371371

372372
def __init__(self, res: Union[httpx.Response, AioRpcError]) -> None:
373373
super().__init__("forbidden", res)
374+
375+
376+
class WeaviateAgentsNotInstalledError(WeaviateBaseError):
377+
"""Error raised when trying to use Weaviate Agents without the required dependencies."""
378+
379+
def __init__(self) -> None:
380+
super().__init__(
381+
'Weaviate Agents (Alpha) functionality requires additional dependencies. Please install them using: "pip install weaviate-client[agents]"'
382+
)

0 commit comments

Comments
 (0)