mirror of
https://github.com/lancedb/lancedb.git
synced 2026-08-27 08:28:28 +00:00
a6418b6cb9
IndexBuilder::execute now returns a Job with wait and cancel methods. Local tables build the index synchronously and return an already-done job. Remote tables read the job id the server returns from create_index and track it through the /v1/jobs API: wait polls describe until the job reaches a terminal state and cancel posts a cancellation. Servers that return no job id yield a done job, so behavior against older servers is unchanged. The job id is not exposed on the handle. The Python and TypeScript bindings keep their current signatures and discard the handle; exposing Job there is left to follow-ups. --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
38 lines
838 B
Python
38 lines
838 B
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright The LanceDB Authors
|
|
|
|
"""Custom exception handling"""
|
|
|
|
|
|
class MissingValueError(ValueError):
|
|
"""Exception raised when a required value is missing."""
|
|
|
|
pass
|
|
|
|
|
|
class MissingColumnError(KeyError):
|
|
"""
|
|
Exception raised when a column name specified is not in
|
|
the DataFrame object
|
|
"""
|
|
|
|
def __init__(self, column_name):
|
|
self.column_name = column_name
|
|
|
|
def __str__(self):
|
|
return (
|
|
f"Error: Column '{self.column_name}' does not exist in the DataFrame object"
|
|
)
|
|
|
|
|
|
class JobFailedError(RuntimeError):
|
|
"""Exception raised when an asynchronous job reaches the failed state."""
|
|
|
|
pass
|
|
|
|
|
|
class JobCancelledError(RuntimeError):
|
|
"""Exception raised when an asynchronous job was cancelled."""
|
|
|
|
pass
|