Ë
    kQêj›  ã                  ó&  — d dl mZ d dlmZ d dlmZ d dlZd dlmZ d dl	Z	d dl
mZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlZe	j2                  d	k\  rd d
l
mZ nd d
lmZ d dlmZmZmZm Z  d dl!Z"ddl#m$Z$ d dl%m&Z&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m3Z4 ddl2m5Z5m6Z6 ddl7m8Z8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z? erddl@mAZAmBZB ddlCmDZD d dlEmFZFmGZGmHZHmIZI ddlJmKZK ddlLmMZM ddlNmOZO d$d„ZP	 	 	 	 d%d„ZQd&d„ZRd'd „ZSd(d!„ZT G d"„ d#e*«      ZUy))é    )Úannotations)Úreplace)Ú	timedeltaN)ÚThreadPoolExecutor)	ÚTYPE_CHECKINGÚAnyÚDictÚIterableÚListÚOptionalÚSequenceÚTupleÚUnion)Úurlparse)ÚUUID)é   é   )Úoverride)ÚClientConfigÚRetryConfigÚTimeoutConfigÚ	TlsConfigé   )ÚDATA)ÚListingÚNamespaceListingÚTableListing)ÚDBConnectionÚLOOP)ÚFunctionVersionÚUdfDefinition)ÚAsyncJobÚJob)ÚQuery)ÚQueryDescriptionÚQueryParameters)ÚMaterializedViewÚMaterializedViewSourceÚ	SelectArg)ÚEnvVarSecretÚ
SecretInfo)ÚViewDescription)ÚJobInfoÚSession)ÚEmbeddingFunctionConfig)ÚLanceNamespaceÚCreateNamespaceResponseÚDescribeNamespaceResponseÚDropNamespaceResponse)Ú
LanceModel)ÚTable)Úvalidate_table_namec                ó*   — | �| j                  «       S d S ©N)Útotal_seconds)Úvalues    úV/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/lancedb/remote/db.pyÚ_duration_secondsr<   >   s   € Ø$)Ð$5ˆ5×ÑÓ Ð?¸4Ð?ó    c                ó®   — | €y t        | j                  «      t        | j                  «      t        | j                  «      t        | j                  «      dœS )N)ÚtimeoutÚconnect_timeoutÚread_timeoutÚpool_idle_timeout)r<   r?   r@   rA   rB   ©Úconfigs    r;   Ú_timeout_config_to_dictrE   B   sL   € ð €~Øä$ V§^¡^Ó4Ü,¨V×-CÑ-CÓDÜ)¨&×*=Ñ*=Ó>Ü.¨v×/GÑ/GÓHñ	ð r=   c                óŒ   — | j                   | j                  | j                  | j                  | j                  | j
                  dœS )N©ÚretriesÚconnect_retriesÚread_retriesÚbackoff_factorÚbackoff_jitterÚstatusesrG   rC   s    r;   Ú_retry_config_to_dictrN   O   s>   € à—>‘>Ø!×1Ñ1Ø×+Ñ+Ø ×/Ñ/Ø ×/Ñ/Ø—O‘Oñð r=   c                óf   — | €y | j                   | j                  | j                  | j                  dœS )N©Ú	cert_fileÚkey_fileÚssl_ca_certÚassert_hostnamerP   rC   s    r;   Ú_tls_config_to_dictrU   Z   s6   € Ø€~Øà×%Ñ%Ø—O‘OØ×)Ñ)Ø!×1Ñ1ñ	ð r=   c           
     ó  — | j                   �t        d«      ‚| j                  t        | j                  «      t        | j                  «      | j                  | j                  | j                  t        | j                  «      d | j                  dœ	S )Nz’Cannot serialize a remote connection with a header_provider. Use static api_key/extra_headers or provide a worker-side connection factory instead.)	Ú
user_agentÚretry_configÚtimeout_configÚblob_request_concurrencyÚextra_headersÚid_delimiterÚ
tls_configÚheader_providerÚuser_id)r^   Ú
ValueErrorrW   rN   rX   rE   rY   rZ   r[   r\   rU   r]   r_   rC   s    r;   Ú_client_config_to_dictra   e   s„   € Ø×ÑÐ)Üð*ó
ð 	
ð ×'Ñ'Ü-¨f×.AÑ.AÓBÜ1°&×2GÑ2GÓHØ$*×$CÑ$CØ×-Ñ-Ø×+Ñ+Ü)¨&×*;Ñ*;Ó<ØØ—>‘>ñ
ð 
r=   c                  óô  — e Zd ZdZ	 	 	 	 	 	 	 	 dB	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dCd„Zed„ «       ZdDd„Zee	dDd„«       «       Z
edEd„«       ZedFd„«       Ze	dDd	„«       Ze		 	 	 dG	 	 	 	 	 	 	 dHd
„«       Ze		 	 dI	 	 	 	 	 	 	 dJd„«       Ze		 	 dI	 	 	 	 	 	 	 dKd„«       Ze		 	 	 	 dLd„«       Ze		 	 	 dG	 	 	 	 	 	 	 dMd„«       Ze		 	 dIddœ	 	 	 	 	 	 	 dNd„«       Ze	ddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 dOd„«       Zdddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 dPd„Ze		 	 	 	 	 	 	 dQdddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dRd„«       Ze	dddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dSd„«       Ze	dddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dTd„«       Ze	dUd„«       Ze	dddœ	 	 	 	 	 dVd„«       Ze		 dW	 	 	 	 	 dXd„«       Ze		 dW	 	 	 	 	 dYd „«       Ze	dWdZd!„«       Ze		 dW	 	 	 	 	 d[d"„«       Ze	dWd\d#„«       Ze	d$„ «       Z e		 	 dI	 	 	 	 	 	 	 d]d%„«       Z!e	d^d&„«       Z"e	ddd'œ	 	 	 	 	 	 	 d_d(„«       Z#e	ddœ	 	 	 	 	 	 	 d`d)„«       Z$e	dddd*œ	 	 	 	 	 	 	 dad+„«       Z%e	ddœ	 	 	 	 	 	 	 dbd,„«       Z&e	ddœ	 	 	 	 	 	 	 dcd-„«       Z'e	ddœ	 	 	 	 	 	 	 ddd.„«       Z(e	ddœ	 	 	 	 	 	 	 ddd/„«       Z)e	ddœ	 	 	 	 	 ded0„«       Z*e	dddd*œ	 	 	 	 	 	 	 dfd1„«       Z+e	ddœ	 	 	 	 	 dXd2„«       Z,e	ddœ	 	 	 	 	 	 	 dgd3„«       Z-e	ddœ	 	 	 	 	 dhd4„«       Z.e	ddœ	 	 	 	 	 dXd5„«       Z/e	ddœ	 	 	 	 	 dYd6„«       Z0e	dddd*œ	 	 	 	 	 	 	 dfd7„«       Z1e	dddœ	 	 	 	 	 did8„«       Z2e	djd9„«       Z3e	dkd:„«       Z4e	dkd;„«       Z5e	ddd<œ	 	 	 	 	 	 	 dld=„«       Z6e	dmd>„«       Z7e	dnd?„«       Z8e	dod@„«       Z9e	dpdA„«       Z:y)qÚRemoteDBConnectionz*A connection to a remote LanceDB database.Nc                óº  — t        |t        «      rt        di |¤Ž}n|€
t        «       }|�t        j                  dt
        d¬«       |�7t        j                  dt
        d¬«       t        |¬«      |j                  _        |�7t        j                  dt
        d¬«       t        |¬«      |j                  _	        t        |«      }|j                  dk7  rt        d	|j                  › d
�«      ‚|| _        || _        || _        || _        || _        |	| _        |j&                  | _        || _        ddlm} t1        j2                   ||||||||	|
¬«      «      | _        y)z%Connect to a remote LanceDB database.NzNrequest_thread_pool is no longer used and will be removed in a future release.r   ©Ú
stacklevelzŠconnection_timeout is deprecated and will be removed in a future release. Please use client_config.timeout_config.connect_timeout instead.)Úsecondsz�read_timeout is deprecated and will be removed in a future release. Please use client_config.timeout_config.read_timeout instead.ÚdbzInvalid scheme: z, only accepts db://r   )Úconnect_async)Úapi_keyÚregionÚhost_overrideÚsql_host_overrideÚclient_configÚstorage_optionsÚread_consistency_interval© )Ú
isinstanceÚdictr   ÚwarningsÚwarnÚDeprecationWarningr   rY   r@   rA   r   Úschemer`   Údb_urlrj   rk   rl   rm   ro   ÚnetlocÚdb_namern   Úlancedbri   r   ÚrunÚ_conn)Úselfrx   rj   rk   rl   Úrequest_thread_poolrn   Úconnection_timeoutrA   ro   rp   rm   Úparsedri   s                 r;   Ú__init__zRemoteDBConnection.__init__|   s\  € ô �m¤TÔ*Ü(Ñ9¨=Ñ9‰MØÐ"Ü(›NˆMð Ð*Ü�M‰Mð$ä"Øõ	ð Ð)Ü�M‰Mðô #Øõô <EØ*ô<ˆM×(Ñ(Ô8ð Ð#Ü�M‰MðPä"Øõ	ô 9BÈ,Ô8WˆM×(Ñ(Ô5ä˜&Ó!ˆØ�=‰=˜DÒ ÜÐ/°·±¨Ð>RÐSÓTÐTØˆŒØˆŒØˆŒØ*ˆÔØ!2ˆÔØ.ˆÔØ—}‘}ˆŒà*ˆÔõ 	*ä—X‘XÙØØØØ+Ø"3Ø+Ø /Ø*Cô	ó
ˆ�
r=   c                óØ  — t        |t        «      rt        di |¤Žn|xs
 t        «       }|j                  xs i j	                  «       D �	�
ci c]  \  }	}
|	j                  «       dvr|	|
“Œ }}	}
||d<   | j                  | «      }|j                  |_        ||_	        |xs d|_
        d|_        ||_        ||_        d |_        t        ||¬«      |_        |d u|_        ||_        |S c c}
}	w )N)úx-lancedb-databasezx-lancedb-database-prefixr„   Ú z	us-east-1)r[   rq   )rr   rs   r   r[   ÚitemsÚlowerÚ__new__Úurirx   rz   rj   rk   rl   rm   ro   r   rn   Ú_catalog_oauthr}   )ÚclsÚinnerÚnameÚendpointrj   rn   Úoauth_configrm   rD   Úkeyr:   ÚheadersÚresults                r;   Ú_from_catalogz RemoteDBConnection._from_catalogÌ   sø   € ô ˜-¬Ô.ô Ñ)˜=Ò)àÒ1¤<£>ð 	ð  &×3Ñ3Ò9°r×@Ñ@ÓB÷
á��UØ�y‰y‹{Ð"UÑUð �‰Jð
ˆñ 
ð
 )-ˆÐ$Ñ%Ø—‘˜SÓ!ˆØŸ	™	ˆŒØˆŒØ š BˆŒØ#ˆŒØ'ˆÔØ#4ˆÔ Ø!%ˆÔÜ& v¸WÔEˆÔØ ,°DÐ 8ˆÔØˆŒØˆùó#
s   ÁC&c                ó"   — d| j                   › d�S )NzRemoteConnect(name=ú))rz   ©r~   s    r;   Ú__repr__zRemoteDBConnection.__repr__ï   s   € Ø$ T§\¡\ N°!Ð4Ð4r=   c                ó.   — | j                   j                  S r8   )r}   r‰   r–   s    r;   r‰   zRemoteDBConnection.uriò   s   € ð �z‰z�~‰~Ðr=   c                ó   — t        d«      ‚)z7Remote connections do not expose a local cache session.z.session is not supported by remote connections©ÚNotImplementedErrorr–   s    r;   ÚsessionzRemoteDBConnection.session÷   s   € ô "Ð"RÓSÐSr=   c                ó   — t        d«      ‚)zCRemote connections do not expose a local read consistency interval.z@read_consistency_interval is not supported by remote connectionsrš   r–   s    r;   rp   z,RemoteDBConnection.read_consistency_intervalü   s   € ô "ØNó
ð 	
r=   c                ó  — t        | dd«      rt        d«      ‚t        j                  d| j                  | j
                  | j                  | j                  | j                  t        | j                  «      | j                  dœ«      S )NrŠ   Fz[Cannot serialize a catalog connection using OAuth; provide a worker-side connection factoryÚremote)Úconnection_typerx   rj   rk   rl   rm   rn   ro   )Úgetattrr`   ÚjsonÚdumpsrx   rj   rk   rl   rm   ra   rn   ro   r–   s    r;   Ú	serializezRemoteDBConnection.serialize  sz   € ä�4Ð)¨5Ô1Üð;óð ô �z‰zà#+ØŸ+™+ØŸ<™<ØŸ+™+Ø!%×!3Ñ!3Ø%)×%;Ñ%;Ü!7¸×8JÑ8JÓ!KØ#'×#7Ñ#7ñ	ó
ð 	
r=   c                óX   — |€g }t        | j                  j                  |||¬«      «      S )a†  List immediate child namespace names in the given namespace.

        Parameters
        ----------
        namespace_path: List[str], optional
            The parent namespace to list namespaces in.
            None or empty list represents root namespace.
        page_token: str, optional
            Token for pagination. Use the token from a previous response
            to get the next page of results.
        limit: int, optional
            The maximum number of results to return.

        Returns
        -------
        NamespaceListing
            Response containing namespace names and optional page_token for pagination.
        ©Únamespace_pathÚ
page_tokenÚlimit)r   r}   Úlist_namespaces©r~   r§   r¨   r©   s       r;   rª   z"RemoteDBConnection.list_namespaces  s:   € ð2 Ð!ØˆNÜØ�J‰J×&Ñ&Ø-¸*ÈEð 'ó ó
ð 	
r=   c                ód   — t        j                  | j                  j                  |||¬«      «      S )a2  Create a new namespace.

        Parameters
        ----------
        namespace_path: List[str]
            The namespace identifier to create.
        mode: str, optional
            Creation mode - "create" (fail if exists), "exist_ok" (skip if exists),
            or "overwrite" (replace if exists). Case insensitive.
        properties: Dict[str, str], optional
            Properties to set on the namespace.

        Returns
        -------
        CreateNamespaceResponse
            Response containing the properties of the created namespace.
        )r§   ÚmodeÚ
properties)r   r|   r}   Úcreate_namespace)r~   r§   r­   r®   s       r;   r¯   z#RemoteDBConnection.create_namespace8  s3   € ô0 �x‰xØ�J‰J×'Ñ'Ø-°DÀZð (ó ó
ð 	
r=   c                ód   — t        j                  | j                  j                  |||¬«      «      S )a%  Drop a namespace.

        Parameters
        ----------
        namespace_path: List[str]
            The namespace identifier to drop.
        mode: str, optional
            Whether to skip if not exists ("SKIP") or fail ("FAIL"). Case insensitive.
        behavior: str, optional
            Whether to restrict drop if not empty ("RESTRICT") or cascade ("CASCADE").
            Case insensitive.

        Returns
        -------
        DropNamespaceResponse
            Response containing properties and transaction_id if applicable.
        )r§   r­   Úbehavior)r   r|   r}   Údrop_namespace)r~   r§   r­   r±   s       r;   r²   z!RemoteDBConnection.drop_namespaceV  s3   € ô0 �x‰xØ�J‰J×%Ñ%Ø-°DÀ8ð &ó ó
ð 	
r=   c                ó`   — t        j                  | j                  j                  |¬«      «      S )a  Describe a namespace.

        Parameters
        ----------
        namespace_path: List[str]
            The namespace identifier to describe.

        Returns
        -------
        DescribeNamespaceResponse
            Response containing the namespace properties.
        ©r§   )r   r|   r}   Údescribe_namespace©r~   r§   s     r;   rµ   z%RemoteDBConnection.describe_namespacet  s%   € ô  �x‰x˜Ÿ
™
×5Ñ5À^Ð5ÓTÓUÐUr=   c                óX   — |€g }t        | j                  j                  |||¬«      «      S )a°  List a page of tables in this database.

        Parameters
        ----------
        namespace_path: List[str], optional
            The namespace to list tables in.
            None or empty list represents root namespace.
        page_token: str, optional
            Token for pagination. Use the token from a previous response
            to get the next page of results.
        limit: int, optional
            The maximum number of results to return, default 100.
            Zero returns an empty page without a continuation token.

        Returns
        -------
        TableListing
            Response containing table names and optional page_token for pagination.
        r¦   )r   r}   Úlist_tablesr«   s       r;   r¸   zRemoteDBConnection.list_tables†  s:   € ð4 Ð!ØˆNÜØ�J‰J×"Ñ"Ø-¸*ÈEð #ó ó
ð 	
r=   r´   c               ó¦   — ddl } |j                  dt        d¬«       |€g }t        j                  | j
                  j                  |||¬«      «      S )a{  List the names of all tables in the database.

        .. deprecated::
            Use :meth:`list_tables` instead, which provides proper pagination support.

        Parameters
        ----------
        namespace_path: List[str], default []
            The namespace to list tables in.
            Empty list represents root namespace.
        page_token: str
            The last token to start the new page.
        limit: int, optional
            The maximum number of tables to return. None returns all tables;
            zero returns an empty list.

        Returns
        -------
        An iterator of table names.
        r   Nz6table_names() is deprecated, use list_tables() insteadr   re   )r§   Ústart_afterr©   )rt   ru   rv   r   r|   r}   Útable_names)r~   r¨   r©   r§   rt   s        r;   r»   zRemoteDBConnection.table_names¨  sZ   € ó8 	àˆ�‰ØDÜØõ	
ð
 Ð!ØˆNÜ�x‰xØ�J‰J×"Ñ"Ø-¸:ÈUð #ó ó
ð 	
r=   )r§   ro   Úindex_cache_sizeÚbranchÚversionc               ó$  — ddl m} |€g }t        j                  | j                  j                  ||||¬«      «      } ||| j                  | j                  |¬«      }	|�|	j                  j                  ||«      }	|	S |�|	j                  |«       |	S )a€  Open a Lance Table in the database.

        Parameters
        ----------
        name: str
            The name of the table.
        namespace_path: List[str], optional
            The namespace to open the table from.
            None or empty list represents root namespace.
        branch: str, optional
            If provided, open a handle scoped to this branch instead of the
            default branch. Reads and writes operate in the branch's context.
        version: int, optional
            If provided, open the table pinned to this version, producing a
            read-only handle. Composes with ``branch``: when both are given,
            opens that branch at the version; otherwise opens ``main`` at the
            version. Call ``checkout_latest`` to return to a writable state.

        Returns
        -------
        A LanceTable object representing the table.
        é   ©ÚRemoteTable)r§   ro   r¼   ©Úconnection_stater§   )
ÚtablerÂ   r   r|   r}   Ú
open_tablerz   r¤   ÚbranchesÚcheckout)
r~   r�   r§   ro   r¼   r½   r¾   rÂ   rÅ   Útbls
             r;   rÆ   zRemoteDBConnection.open_tableÓ  s¢   € õB 	'àÐ!ØˆNÜ—‘Ø�J‰J×!Ñ!ØØ-Ø /Ø!1ð	 "ó ó
ˆñ ØØ�L‰LØ!Ÿ^™^Ø)ô	
ˆð ÐØ—,‘,×'Ñ'¨°Ó8ˆCð ˆ
ð Ð Ø�L‰L˜Ô!Øˆ
r=   T©Útarget_namespace_pathÚsource_versionÚ
source_tagÚ
is_shallowc          
     ó¾   — ddl m} |€g }t        j                  | j                  j                  ||||||¬«      «      } ||| j                  | j                  |¬«      S )aI  Clone a table from a source table.

        Parameters
        ----------
        target_table_name: str
            The name of the target table to create.
        source_uri: str
            The URI of the source table to clone from.
        target_namespace_path: List[str], optional
            The namespace for the target table.
            None or empty list represents root namespace.
        source_version: int, optional
            The version of the source table to clone.
        source_tag: str, optional
            The tag of the source table to clone.
        is_shallow: bool, default True
            Whether to perform a shallow clone (True) or deep clone (False).
            Currently only shallow clone is supported.

        Returns
        -------
        A RemoteTable object representing the cloned table.
        rÀ   rÁ   rÊ   rÃ   )rÅ   rÂ   r   r|   r}   Úclone_tablerz   r¤   )	r~   Útarget_table_nameÚ
source_urirË   rÌ   rÍ   rÎ   rÂ   rÅ   s	            r;   rÐ   zRemoteDBConnection.clone_table  sn   € õB 	'à Ð(Ø$&Ð!Ü—‘Ø�J‰J×"Ñ"Ø!ØØ&;Ø-Ø%Ø%ð #ó ó	
ˆñ ØØ�L‰LØ!Ÿ^™^Ø0ô	
ð 	
r=   F)r§   ro   Údata_storage_versionÚenable_v2_manifest_pathsc	               ó6  — d|fd|ffD ]  \  }}|€Œ	t        |› d�«      ‚ |r|dk(  rd}n|sd}|	€g }	t        |«       ddlm} t	        j
                  | j                  j                  |||	||||||
¬«	      «      } ||| j                  | j                  |	¬	«      S )
a¾  Create a [Table][lancedb.table.Table] in the database.

        Parameters
        ----------
        name: str
            The name of the table.
        namespace_path: List[str], optional
            The namespace to create the table in.
            None or empty list represents root namespace.
        data: The data to initialize the table, *optional*
            User must provide at least one of `data` or `schema`.
            Acceptable types are:

            - dict or list-of-dict

            - pandas.DataFrame

            - pyarrow.Table or pyarrow.RecordBatch
        schema: The schema of the table, *optional*
            Acceptable types are:

            - pyarrow.Schema

            - [LanceModel][lancedb.pydantic.LanceModel]
        mode: str, default "create"
            The mode to use when creating the table.
            Can be either "create", "overwrite", or "exist_ok".
        exist_ok: bool, default False
            If exist_ok is True, and mode is None or "create", mode will be changed
            to "exist_ok".
        on_bad_vectors: str, default "error"
            What to do if any of the vectors are not the same size or contains NaNs.
            One of "error", "drop", "fill".
        fill_value: float
            The value to use when filling vectors. Only used if on_bad_vectors="fill".
        embedding_functions: list of EmbeddingFunctionConfig, optional
            The embedding functions to store in the table schema and use to
            generate vectors when creating the table or adding data.
        storage_options: dict, optional
            Not supported for remote table creation. Raises NotImplementedError.
        data_storage_version: str, optional
            Not supported for remote table creation. Raises NotImplementedError.
        enable_v2_manifest_paths: bool, optional
            Not supported for remote table creation. Raises NotImplementedError.

        Returns
        -------
        LanceTable
            A reference to the newly created table.

        !!! note

            The vector index won't be created by default.
            To create the index, call the `create_index` method on the table.

        Examples
        --------

        Can create with list of tuples or dictionaries:

        >>> import lancedb
        >>> db = lancedb.connect("db://...", api_key="...", # doctest: +SKIP
        ...                      region="...")              # doctest: +SKIP
        >>> data = [{"vector": [1.1, 1.2], "lat": 45.5, "long": -122.7},
        ...         {"vector": [0.2, 1.8], "lat": 40.1, "long":  -74.1}]
        >>> db.create_table("my_table", data) # doctest: +SKIP
        LanceTable(my_table)

        You can also pass a pandas DataFrame:

        >>> import pandas as pd
        >>> data = pd.DataFrame({
        ...    "vector": [[1.1, 1.2], [0.2, 1.8]],
        ...    "lat": [45.5, 40.1],
        ...    "long": [-122.7, -74.1]
        ... })
        >>> db.create_table("table2", data) # doctest: +SKIP
        LanceTable(table2)

        >>> custom_schema = pa.schema([
        ...   pa.field("vector", pa.list_(pa.float32(), 2)),
        ...   pa.field("lat", pa.float32()),
        ...   pa.field("long", pa.float32())
        ... ])
        >>> db.create_table("table3", data, schema = custom_schema) # doctest: +SKIP
        LanceTable(table3)

        It is also possible to create an table from `[Iterable[pa.RecordBatch]]`:

        >>> import pyarrow as pa
        >>> def make_batches():
        ...     for i in range(5):
        ...         yield pa.RecordBatch.from_arrays(
        ...             [
        ...                 pa.array([[3.1, 4.1], [5.9, 26.5]],
        ...                     pa.list_(pa.float32(), 2)),
        ...                 pa.array(["foo", "bar"]),
        ...                 pa.array([10.0, 20.0]),
        ...             ],
        ...             ["vector", "item", "price"],
        ...         )
        >>> schema=pa.schema([
        ...     pa.field("vector", pa.list_(pa.float32(), 2)),
        ...     pa.field("item", pa.utf8()),
        ...     pa.field("price", pa.float32()),
        ... ])
        >>> db.create_table("table4", make_batches(), schema=schema) # doctest: +SKIP
        LanceTable(table4)

        rÓ   rÔ   z+ is not supported for remote table creationÚcreateÚexist_okrÀ   rÁ   )r§   r­   ÚschemaÚon_bad_vectorsÚ
fill_valueÚembedding_functionsro   rÃ   )
r›   r6   rÅ   rÂ   r   r|   r}   Úcreate_tablerz   r¤   )r~   r�   ÚdatarØ   r­   r×   rÙ   rÚ   rÛ   r§   ro   rÓ   rÔ   Úoptionr:   rÂ   rÅ   s                    r;   rÜ   zRemoteDBConnection.create_tableB  sß   € ð@ $Ð%9Ð:Ø'Ð)AÐBð
ò 	‰MˆF�Eð Ñ Ü)Ø�hÐIÐJóð ð	ñ Ø�xÒØ!‘ÙØ!�ØÐ!ØˆNÜ˜DÔ!å&ä—‘Ø�J‰J×#Ñ#ØØØ-ØØØ-Ø%Ø$7Ø /ð $ó 
ó
ˆñ ØØ�L‰LØ!Ÿ^™^Ø)ô	
ð 	
r=   ©ÚselectÚwherer©   Úwith_no_dataÚauto_refresh_enabledÚauto_refresh_interval_secondsc               óà   — ddl m}	 t        j                  | j                  j                  ||||||||¬«      «      }
t         |	|
j                   | j                  | j                  g ¬«      «      S )NrÀ   rÁ   rß   rÃ   )	rÅ   rÂ   r   r|   r}   Úcreate_materialized_viewr'   rz   r¤   )r~   r�   Úsourcerà   rá   r©   râ   rã   rä   rÂ   Úviews              r;   ræ   z+RemoteDBConnection.create_materialized_viewè  ss   € õ 	'ä�x‰xØ�J‰J×/Ñ/ØØØØØØ)Ø%9Ø.Kð 0ó 	ó
ˆô  ÙØ—
‘
Ø—‘Ø!%§¡Ø!ô	ó
ð 	
r=   c               ó„   — t        j                  | j                  j                  ||||||||¬«      «      }	t	        |	«      S )Nrß   )r   r|   r}   Úcreate_materialized_view_asyncr#   )
r~   r�   rç   rà   rá   r©   râ   rã   rä   Újobs
             r;   rê   z1RemoteDBConnection.create_materialized_view_async  sL   € ô �h‰hØ�J‰J×5Ñ5ØØØØØØ)Ø%9Ø.Kð 6ó 	ó
ˆô �3‹xˆr=   c                óR   — t        | j                  |«      «      }|j                   |S r8   )r'   rÆ   Ú
definition)r~   r�   rè   s      r;   Úopen_materialized_viewz)RemoteDBConnection.open_materialized_view'  s!   € ä §¡°Ó 5Ó6ˆØ�ŠØˆr=   ©r¨   Ú
page_limitc               óN   — t        | j                  j                  ||¬«      «      S )a  List materialized views.

        Returns a lazy iterator. ``page_limit`` limits each request, not the total;
        ``page_token`` resumes from a saved token. Requests and errors occur during
        iteration. See [pagination state][lancedb.listing.AsyncListing].
        rï   )r   r}   Úlist_materialized_views©r~   r¨   rð   s      r;   rò   z*RemoteDBConnection.list_materialized_views-  s-   € ô Ø�J‰J×.Ñ.Ø%°*ð /ó ó
ð 	
r=   c                ól   — |€g }t        j                  | j                  j                  ||¬«      «       y ©Nr´   )r   r|   r}   Údrop_materialized_view©r~   r�   r§   s      r;   rö   z)RemoteDBConnection.drop_materialized_view=  s/   € ð Ð!ØˆNÜ�‰�—‘×2Ñ2°4ÈÐ2ÓWÕXr=   c                ó€   — |€g }t        j                  | j                  j                  ||¬«      «      }t	        |«      S rõ   )r   r|   r}   Údrop_materialized_view_asyncr#   ©r~   r�   r§   rë   s       r;   rù   z/RemoteDBConnection.drop_materialized_view_asyncE  s?   € ð Ð!ØˆNÜ�h‰hØ�J‰J×3Ñ3°DÈÐ3ÓXó
ˆô �3‹xˆr=   c                ól   — |€g }t        j                  | j                  j                  ||¬«      «       y)a  Drop a table from the database.

        Parameters
        ----------
        name: str
            The name of the table.
        namespace_path: List[str], optional
            The namespace to drop the table from.
            None or empty list represents root namespace.
        Nr´   )r   r|   r}   Ú
drop_tabler÷   s      r;   rü   zRemoteDBConnection.drop_tableP  s/   € ð Ð!ØˆNÜ�‰�—‘×&Ñ& t¸NÐ&ÓKÕLr=   c                ó¾   — |€g }t        j                  | j                  j                  ||¬«      «      }t	        t        |t        «      r|«      S t        |«      «      S )z2Start dropping a table and return its cleanup job.r´   )r   r|   r}   Údrop_table_asyncr#   rr   r"   rú   s       r;   rþ   z#RemoteDBConnection.drop_table_async`  sQ   € ð
 Ð!ØˆNÜ�h‰h�t—z‘z×2Ñ2°4ÈÐ2ÓWÓXˆÜœ* S¬(Ô3�3ÓGÐG¼À#»ÓGÐGr=   c                ób   — t        j                  | j                  j                  |¬«      «       y)z¾Drop all tables from the database.

        The remote API does not currently support this operation. Use
        ``list_tables()`` and ``drop_table()`` to drop tables individually.
        r´   N)r   r|   r}   Údrop_all_tablesr¶   s     r;   r   z"RemoteDBConnection.drop_all_tablesj  s"   € ô 	�‰�—‘×+Ñ+¸>Ð+ÓJÕKr=   c                ó^   — t        j                  | j                  j                  «       «       y)z+Deprecated alias for ``drop_all_tables()``.N)r   r|   r}   Údrop_databaser–   s    r;   r  z RemoteDBConnection.drop_databases  s   € ô 	�‰�—‘×)Ñ)Ó+Õ,r=   c                óx   — |€g }|€g }t        j                  | j                  j                  ||||¬«      «       y)zÍRename a table in the database.

        Parameters
        ----------
        cur_name: str
            The current name of the table.
        new_name: str
            The new name of the table.
        N)Úcur_namespace_pathÚnew_namespace_path)r   r|   r}   Úrename_table)r~   Úcur_nameÚnew_namer  r  s        r;   r  zRemoteDBConnection.rename_tablex  sK   € ð" Ð%Ø!#ÐØÐ%Ø!#ÐÜ�‰Ø�J‰J×#Ñ#ØØØ#5Ø#5ð	 $ó õ	
r=   c                óp   — t        t        j                  | j                  j	                  |«      «      «      S )zmOpen a server-side job by id. See
        [DBConnection.open_job][lancedb.db.DBConnection.open_job].
        )r#   r   r|   r}   Úopen_job©r~   Újob_ids     r;   r
  zRemoteDBConnection.open_job–  s'   € ô
 ”4—8‘8˜DŸJ™J×/Ñ/°Ó7Ó8Ó9Ð9r=   ©Úsecretsr§   c               óz   — t        j                  | j                  j                  |||¬«      «      }t	        |«      S )Nr  )r   r|   r}   Úcreate_function_asyncr#   )r~   rí   r  r§   rë   s        r;   r  z(RemoteDBConnection.create_function_async�  s;   € ô �h‰hØ�J‰J×,Ñ,Ø G¸Nð -ó ó
ˆô
 �3‹xˆr=   c               ód   — t        j                  | j                  j                  |||¬«      «      S ©N)r¾   r§   )r   r|   r}   Úget_function©r~   r�   r¾   r§   s       r;   r  zRemoteDBConnection.get_function¬  s3   € ô �x‰xØ�J‰J×#Ñ#Ø˜g°nð $ó ó
ð 	
r=   ©r§   r¨   rð   c               óP   — t        | j                  j                  |||¬«      «      S )a
  List functions.

        Returns a lazy iterator. ``page_limit`` limits each request, not the total;
        ``page_token`` resumes from a saved token. Requests and errors occur during
        iteration. See [pagination state][lancedb.listing.AsyncListing].
        r  )r   r}   Úlist_functions©r~   r§   r¨   rð   s       r;   r  z!RemoteDBConnection.list_functionsº  s1   € ô Ø�J‰J×%Ñ%Ø-Ø%Ø%ð &ó ó
ð 	
r=   c               ód   — t        j                  | j                  j                  |||¬«      «      S r  )r   r|   r}   Údrop_functionr  s       r;   r  z RemoteDBConnection.drop_functionÐ  s3   € ô �x‰xØ�J‰J×$Ñ$Ø˜g°nð %ó ó
ð 	
r=   c               ó„   — t        j                  | j                  j                  |||¬«      «      \  }}|t	        |«      fS r  )r   r|   r}   Údrop_function_asyncr#   )r~   r�   r¾   r§   Údroppedrë   s         r;   r  z&RemoteDBConnection.drop_function_asyncÞ  sE   € ô —x‘xØ�J‰J×*Ñ*Ø˜g°nð +ó ó
‰ˆ�ð
 œ˜C›Ð Ð r=   c               óf   — t        j                  | j                  j                  |||¬«      «       y rõ   )r   r|   r}   Úcreate_secret©r~   r�   r:   r§   s       r;   r  z RemoteDBConnection.create_secretí  s&   € ô 	�‰�—‘×)Ñ)¨$°ÀnÐ)ÓUÕVr=   c               óf   — t        j                  | j                  j                  |||¬«      «       y rõ   )r   r|   r}   Úalter_secretr   s       r;   r"  zRemoteDBConnection.alter_secretó  s&   € ô 	�‰�—‘×(Ñ(¨¨uÀ^Ð(ÓTÕUr=   c               ób   — t        j                  | j                  j                  ||¬«      «      S rõ   )r   r|   r}   Údescribe_secretr÷   s      r;   r$  z"RemoteDBConnection.describe_secretù  s'   € ô �x‰x˜Ÿ
™
×2Ñ2°4ÈÐ2ÓWÓXÐXr=   c               óP   — t        | j                  j                  |||¬«      «      S )a  List secrets.

        Returns a lazy iterator. ``page_limit`` limits each request, not the total;
        ``page_token`` resumes from a saved token. Requests and errors occur during
        iteration. See [pagination state][lancedb.listing.AsyncListing].
        r  )r   r}   Úlist_secretsr  s       r;   r&  zRemoteDBConnection.list_secretsÿ  s1   € ô Ø�J‰J×#Ñ#Ø-Ø%Ø%ð $ó ó
ð 	
r=   c               ód   — t        j                  | j                  j                  ||¬«      «       y rõ   )r   r|   r}   Údrop_secretr÷   s      r;   r(  zRemoteDBConnection.drop_secret  s$   € ô 	�‰�—‘×'Ñ'¨¸^Ð'ÓLÕMr=   c               ód   — t        j                  | j                  j                  |||¬«      «      S rõ   )r   r|   r}   Úcreate_view)r~   r�   Úqueryr§   s       r;   r*  zRemoteDBConnection.create_view  s.   € ô �x‰xØ�J‰J×"Ñ" 4¨¸~Ð"ÓNó
ð 	
r=   c               ób   — t        j                  | j                  j                  ||¬«      «      S rõ   )r   r|   r}   Údescribe_viewr÷   s      r;   r-  z RemoteDBConnection.describe_view#  s'   € ô �x‰x˜Ÿ
™
×0Ñ0°ÀnÐ0ÓUÓVÐVr=   c               ód   — t        j                  | j                  j                  ||¬«      «       y rõ   )r   r|   r}   Ú	drop_viewr÷   s      r;   r/  zRemoteDBConnection.drop_view)  s$   € ô 	�‰�—‘×%Ñ% d¸>Ð%ÓJÕKr=   c               óx   — t        j                  | j                  j                  ||¬«      «      }t	        |«      S rõ   )r   r|   r}   Údrop_view_asyncr#   rú   s       r;   r1  z"RemoteDBConnection.drop_view_async/  s/   € ô �h‰h�t—z‘z×1Ñ1°$À~Ð1ÓVÓWˆÜ�3‹xˆr=   c               óP   — t        | j                  j                  |||¬«      «      S )a  List views.

        Returns a lazy iterator. ``page_limit`` limits each request, not the total;
        ``page_token`` resumes from a saved token. Requests and errors occur during
        iteration. See [pagination state][lancedb.listing.AsyncListing].
        r  )r   r}   Ú
list_viewsr  s       r;   r3  zRemoteDBConnection.list_views6  s1   € ô Ø�J‰J×!Ñ!Ø-Ø%Ø%ð "ó ó
ð 	
r=   c               óN   — t        | j                  j                  ||¬«      «      S )a.  List server-side jobs across the database's tables.

        Returns a lazy iterator. ``page_limit`` limits each request, not the total;
        ``page_token`` resumes from a saved token. Requests and errors occur during
        iteration. See [pagination state][lancedb.listing.AsyncListing].
        rï   )r   r}   Ú	list_jobsró   s      r;   r5  zRemoteDBConnection.list_jobsL  s(   € ô Ø�J‰J× Ñ ¨JÀ:Ð ÓNó
ð 	
r=   c                ó^   — t        j                  | j                  j                  |«      «      S )zÜRequest cancellation of a server-side job by id.

        Returns True if the server accepted the cancellation, False if no
        such job exists. Cancelling an already-terminal job is a no-op
        success.
        )r   r|   r}   Ú
cancel_jobr  s     r;   r7  zRemoteDBConnection.cancel_jobZ  s"   € ô �x‰x˜Ÿ
™
×-Ñ-¨fÓ5Ó6Ð6r=   c                ó^   — t        j                  | j                  j                  |«      «      S )zfPause a server-side job by id.

        Returns "pausing", "already_paused", or "committing".
        )r   r|   r}   Ú	pause_jobr  s     r;   r9  zRemoteDBConnection.pause_jobd  s"   € ô �x‰x˜Ÿ
™
×,Ñ,¨VÓ4Ó5Ð5r=   c                ó^   — t        j                  | j                  j                  |«      «      S )zmResume a paused server-side job by id.

        Returns "resumed", "still_pausing", or "not_paused".
        )r   r|   r}   Ú
resume_jobr  s     r;   r;  zRemoteDBConnection.resume_jobl  s"   € ô �x‰x˜Ÿ
™
×-Ñ-¨fÓ5Ó6Ð6r=   ©Údefault_namespace_pathÚ
parametersc          	     óv   — t        t        j                  | j                  j	                  |||¬«      «      «      S )aµ  Start executing SQL through this remote connection.

        Unqualified tables use this connection's database and the
        ``["public"]`` namespace by default. Fully qualified table names may
        reference other databases available to the same deployment.
        ``parameters`` binds values to ``$1`` / ``$name`` placeholders; see
        [DBConnection.execute_query_async][lancedb.db.DBConnection.execute_query_async].
        r<  )ÚSqlQueryr   r|   r}   Úexecute_query_async)r~   r+  r=  r>  s       r;   rA  z&RemoteDBConnection.execute_query_asynct  s=   € ô  Ü�H‰HØ—
‘
×.Ñ.ØØ+AØ)ð /ó óó
ð 	
r=   c                ó^   — t        j                  | j                  j                  |«      «      S )z;Describe a submitted SQL query by its connection-scoped id.)r   r|   r}   Údescribe_query)r~   Úquery_ids     r;   rC  z!RemoteDBConnection.describe_queryŽ  s*   € ô �x‰xØ�J‰J×%Ñ%Øóó
ð 	
r=   c                ó\   — t        j                  | j                  j                  «       «      S )zþGet the equivalent namespace client for this connection.

        Returns a RestNamespace with the same URI and authentication headers.

        Returns
        -------
        LanceNamespace
            The namespace client for this connection.
        )r   r|   r}   Únamespace_clientr–   s    r;   rF  z#RemoteDBConnection.namespace_client—  s    € ô �x‰x˜Ÿ
™
×3Ñ3Ó5Ó6Ð6r=   c                ó6   — | j                   j                  «       S r8   )r}   Úis_openr–   s    r;   rH  zRemoteDBConnection.is_open¤  s   € à�z‰z×!Ñ!Ó#Ð#r=   c                ó8   — | j                   j                  «        y r8   )r}   Úcloser–   s    r;   rJ  zRemoteDBConnection.close¨  s   € à�
‰
×ÑÕr=   )NNNNNNNN)rx   Ústrrj   rK  rk   rK  rl   úOptional[str]r   zOptional[ThreadPoolExecutor]rn   z)Union[ClientConfig, Dict[str, Any], None]r€   úOptional[float]rA   rM  ro   úOptional[Dict[str, str]]rp   úOptional[timedelta]rm   rL  )ÚreturnrK  )rP  zOptional['Session'])rP  rO  )NNN)r§   úOptional[List[str]]r¨   rL  r©   úOptional[int]rP  r   )NN)r§   ú	List[str]r­   rL  r®   rN  rP  r1   )r§   rS  r­   rL  r±   rL  rP  r3   )r§   rS  rP  r2   )r§   rQ  r¨   rL  r©   rR  rP  r   )r¨   rL  r©   rR  r§   rQ  rP  zIterable[str])r�   rK  r§   rQ  ro   rN  r¼   rR  r½   rL  r¾   rR  rP  r5   )rÑ   rK  rÒ   rK  rË   rQ  rÌ   rR  rÍ   rL  rÎ   ÚboolrP  r5   )NNNFÚerrorg        N)r�   rK  rÝ   r   rØ   z&Optional[Union[pa.Schema, LanceModel]]r­   rL  r×   rT  rÙ   rK  rÚ   ÚfloatrÛ   z'Optional[List[EmbeddingFunctionConfig]]r§   rQ  ro   rN  rÓ   rL  rÔ   úOptional[bool]rP  r5   )r�   rK  rç   r(   rà   r)   rá   rL  r©   rR  râ   rT  rã   rW  rä   rM  rP  r'   )r�   rK  rç   r(   rà   r)   rá   rL  r©   rR  râ   rT  rã   rW  rä   rM  rP  ú	Job[None])r�   rK  rP  r'   )r¨   rL  rð   rR  rP  úListing[str]r8   )r�   rK  r§   rQ  rP  ÚNone)r�   rK  r§   rQ  rP  rX  )r�   rK  r§   rQ  )r�   rK  r§   rQ  rP  r#   )r§   rQ  )r  rK  r  rK  r  rQ  r  rQ  )r  rK  rP  r#   )rí   r!   r  z Optional[Sequence[EnvVarSecret]]r§   rQ  rP  zJob[FunctionVersion])r�   rK  r¾   rK  r§   rQ  rP  r    )r§   rQ  r¨   rL  rð   rR  rP  zListing[FunctionVersion])r�   rK  r¾   rK  r§   rQ  rP  rT  )r�   rK  r¾   rK  r§   rQ  rP  zTuple[bool, Job])r�   rK  r:   rK  r§   rQ  rP  rZ  )r�   rK  r§   rQ  rP  r+   )r§   rQ  r¨   rL  rð   rR  rP  rY  )r�   rK  r+  rK  r§   rQ  rP  r,   )r�   rK  r§   rQ  rP  r,   )r¨   rL  rð   rR  rP  zListing[JobInfo])r  rK  rP  rT  )r  rK  rP  rK  )r+  rK  r=  rQ  r>  zOptional[QueryParameters]rP  r@  )rD  zUnion[UUID, str]rP  r%   )rP  r0   )rP  rT  )rP  rZ  );Ú__name__Ú
__module__Ú__qualname__Ú__doc__r‚   Úclassmethodr“   r—   Úpropertyr   r‰   rœ   rp   r¤   rª   r¯   r²   rµ   r¸   r»   rÆ   rÐ   rÜ   ræ   rê   rî   rò   rö   rù   rü   rþ   r   r  r  r
  r  r  r  r  r  r  r"  r$  r&  r(  r*  r-  r/  r1  r3  r5  r7  r9  r;  rA  rC  rF  rH  rJ  rq   r=   r;   rc   rc   y   s  „ Ù4ð (,Ø<@ØCGØ.2Ø(,Ø48Ø9=Ø+/ðN
àðN
ð ðN
ð ð	N
ð
 %ðN
ð :ðN
ð AðN
ð ,ðN
ð &ðN
ð 2ðN
ð $7ðN
ð )óN
ð` ñ ó ð óD5ð Øòó ó ðð òTó ðTð ò
ó ð
ð ò
ó ð
ð& ð /3Ø$(Ø#ð	
à+ð
ð "ð
ð ð	
ð
 
ò
ó ð
ð@ ð #Ø/3ð	
à!ð
ð ð
ð -ð	
ð
 
!ò
ó ð
ð: ð #Ø"&ð	
à!ð
ð ð
ð  ð	
ð
 
ò
ó ð
ð: ðVØ'ðVà	"òVó ðVð" ð /3Ø$(Ø#ð	
à+ð
ð "ð
ð ð	
ð
 
ò
ó ð
ðB ð %)Ø#ð(
ð
 /3ñ(
à!ð(
ð ð(
ð
 ,ð(
ð 
ò(
ó ð(
ðT ð
 /3Ø48Ø*.Ø $Ø!%ñ6àð6ð ,ð	6ð
 2ð6ð (ð6ð ð6ð ð6ð 
ò6ó ð6ðz 6:Ø(,Ø$(Øñ4
àð4
ð ð4
ð
  3ð4
ð &ð4
ð "ð4
ð ð4
ð 
ó4
ðl ð Ø9=Ø"ØØ%ØØGKðc
ð /3Ø48Ø.2Ø37ñc
àðc
ð ðc
ð 7ð	c
ð
 ðc
ð ðc
ð ðc
ð ðc
ð Eðc
ð ,ðc
ð 2ðc
ð ,ðc
ð #1ðc
ð 
òc
ó ðc
ðJ ð !Ø#Ø#Ø"Ø/3Ø9=ñ!
àð!
ð 'ð!
ð
 ð!
ð ð!
ð ð!
ð ð!
ð -ð!
ð (7ð!
ð 
ò!
ó ð!
ðF ð !Ø#Ø#Ø"Ø/3Ø9=ñàðð 'ðð
 ðð ðð ðð ðð -ðð (7ðð 
òó ðð4 òó ðð
 à-1Ètñ
Ø*ð
Ø?Lð
à	ò
ó ð
ð à?CðYØðYØ)<ðYà	òYó ðYð à?CðØðØ)<ðà	òó ðð óMó ðMð à?CðHØðHØ)<ðHà	òHó ðHð óLó ðLð ñ-ó ð-ð ð
 37Ø26ð
àð
ð ð
ð 0ð	
ð
 0ò
ó ð
ð: ò:ó ð:ð ð
 59Ø.2ñà!ðð 2ð	ð
 ,ðð 
òó ðð ð /3ñ
àð
ð ð	
ð
 ,ð
ð 
ò
ó ð
ð ð /3Ø$(Ø$(ñ
ð ,ð
ð "ð	
ð
 "ð
ð 
"ò
ó ð
ð* ð /3ñ
àð
ð ð	
ð
 ,ð
ð 
ò
ó ð
ð ð /3ñ!àð!ð ð	!ð
 ,ð!ð 
ò!ó ð!ð àNRñWØðWØ #ðWØ8KðWà	òWó ðWð
 àNRñVØðVØ #ðVØ8KðVà	òVó ðVð
 àBFñYØðYØ,?ðYà	òYó ðYð
 ð /3Ø$(Ø$(ñ
ð ,ð
ð "ð	
ð
 "ð
ð 
ò
ó ð
ð* àBFñNØðNØ,?ðNà	òNó ðNð
 àNRñ
Øð
Ø #ð
Ø8Kð
à	ò
ó ð
ð àBFñWØðWØ,?ðWà	òWó ðWð
 àBFñLØðLØ,?ðLà	òLó ðLð
 àBFñØðØ,?ðà	òó ðð ð /3Ø$(Ø$(ñ
ð ,ð
ð "ð	
ð
 "ð
ð 
ò
ó ð
ð* à-1Ètñ
Ø*ð
Ø?Lð
à	ò
ó ð
ð ò7ó ð7ð ò6ó ð6ð ò7ó ð7ð ð
 7;Ø04ñ
àð
ð !4ð	
ð
 .ð
ð 
ò
ó ð
ð2 ò
ó ð
ð ò
7ó ð
7ð ò$ó ð$ð òó ñr=   rc   )r:   rO  rP  rM  )rD   zOptional[TimeoutConfig]rP  úOptional[dict[str, Any]])rD   r   rP  údict[str, Any])rD   zOptional[TlsConfig]rP  ra  )rD   r   rP  rb  )VÚ
__future__r   Údataclassesr   Údatetimer   r¢   Úconcurrent.futuresr   ÚsysÚtypingr   r   r	   r
   r   r   r   r   r   Úurllib.parser   Úuuidr   rt   Úversion_infor   Ú	overridesÚlancedb.remoter   r   r   r   ÚpyarrowÚpaÚcommonr   Úlancedb.listingr   r   r   rh   r   r   Ú	functionsr    r!   rë   r"   r#   Úsqlr$   r@  r%   r&   Úmaterialized_viewr'   r(   r)   r  r*   r+   rè   r,   Ú_lancedbr-   r.   Ú
embeddingsr/   Úlance_namespacer0   r1   r2   r3   Úpydanticr4   rÅ   r5   Úutilr6   r<   rE   rN   rU   ra   rc   rq   r=   r;   ú<module>rz     sÍ   ðõ
 #å Ý Û Ý 1Û 
÷
÷ 
õ 
õ "Ý Û à×Ñ�wÒÞå"÷ OÓ NÛ å ß CÑ Cß #ß 6ß Ý #ß 3ß SÑ Sß .Ý "áß+Ý 0÷ó õ "Ý Ý &ó@ð
Ø#ð
àó
óóóô(q˜õ qr=   