Compare commits

...

2 Commits

Author SHA1 Message Date
Lance Release
1ae08fe31d [python] Bump version: 0.6.2 → 0.6.3 2024-03-11 20:16:36 +00:00
Rob Meng
a517629c65 feat: configurable timeout for LanceDB Cloud queries (#1090) 2024-03-11 16:15:48 -04:00
5 changed files with 22 additions and 6 deletions

View File

@@ -1,5 +1,5 @@
[bumpversion] [bumpversion]
current_version = 0.6.2 current_version = 0.6.3
commit = True commit = True
message = [python] Bump version: {current_version} → {new_version} message = [python] Bump version: {current_version} → {new_version}
tag = True tag = True

View File

@@ -1,6 +1,6 @@
[project] [project]
name = "lancedb" name = "lancedb"
version = "0.6.2" version = "0.6.3"
dependencies = [ dependencies = [
"deprecation", "deprecation",
"pylance==0.10.2", "pylance==0.10.2",

View File

@@ -35,6 +35,7 @@ def connect(
host_override: Optional[str] = None, host_override: Optional[str] = None,
read_consistency_interval: Optional[timedelta] = None, read_consistency_interval: Optional[timedelta] = None,
request_thread_pool: Optional[Union[int, ThreadPoolExecutor]] = None, request_thread_pool: Optional[Union[int, ThreadPoolExecutor]] = None,
**kwargs,
) -> DBConnection: ) -> DBConnection:
"""Connect to a LanceDB database. """Connect to a LanceDB database.
@@ -99,7 +100,12 @@ def connect(
if isinstance(request_thread_pool, int): if isinstance(request_thread_pool, int):
request_thread_pool = ThreadPoolExecutor(request_thread_pool) request_thread_pool = ThreadPoolExecutor(request_thread_pool)
return RemoteDBConnection( return RemoteDBConnection(
uri, api_key, region, host_override, request_thread_pool=request_thread_pool uri,
api_key,
region,
host_override,
request_thread_pool=request_thread_pool,
**kwargs,
) )
return LanceDBConnection(uri, read_consistency_interval=read_consistency_interval) return LanceDBConnection(uri, read_consistency_interval=read_consistency_interval)

View File

@@ -58,6 +58,9 @@ class RestfulLanceDBClient:
closed: bool = attrs.field(default=False, init=False) closed: bool = attrs.field(default=False, init=False)
connection_timeout: float = attrs.field(default=120.0, kw_only=True)
read_timeout: float = attrs.field(default=300.0, kw_only=True)
@functools.cached_property @functools.cached_property
def session(self) -> requests.Session: def session(self) -> requests.Session:
sess = requests.Session() sess = requests.Session()
@@ -117,7 +120,7 @@ class RestfulLanceDBClient:
urljoin(self.url, uri), urljoin(self.url, uri),
params=params, params=params,
headers=self.headers, headers=self.headers,
timeout=(120.0, 300.0), timeout=(self.connection_timeout, self.read_timeout),
) as resp: ) as resp:
self._check_status(resp) self._check_status(resp)
return resp.json() return resp.json()
@@ -159,7 +162,7 @@ class RestfulLanceDBClient:
urljoin(self.url, uri), urljoin(self.url, uri),
headers=headers, headers=headers,
params=params, params=params,
timeout=(120.0, 300.0), timeout=(self.connection_timeout, self.read_timeout),
**req_kwargs, **req_kwargs,
) as resp: ) as resp:
self._check_status(resp) self._check_status(resp)

View File

@@ -41,6 +41,8 @@ class RemoteDBConnection(DBConnection):
region: str, region: str,
host_override: Optional[str] = None, host_override: Optional[str] = None,
request_thread_pool: Optional[ThreadPoolExecutor] = None, request_thread_pool: Optional[ThreadPoolExecutor] = None,
connection_timeout: float = 120.0,
read_timeout: float = 300.0,
): ):
"""Connect to a remote LanceDB database.""" """Connect to a remote LanceDB database."""
parsed = urlparse(db_url) parsed = urlparse(db_url)
@@ -49,7 +51,12 @@ class RemoteDBConnection(DBConnection):
self.db_name = parsed.netloc self.db_name = parsed.netloc
self.api_key = api_key self.api_key = api_key
self._client = RestfulLanceDBClient( self._client = RestfulLanceDBClient(
self.db_name, region, api_key, host_override self.db_name,
region,
api_key,
host_override,
connection_timeout=connection_timeout,
read_timeout=read_timeout,
) )
self._request_thread_pool = request_thread_pool self._request_thread_pool = request_thread_pool