
    dh                         S SK Jr  S SKrS SKrS SKJrJrJrJrJ	r	J
r
JrJr  S SKJr  S SKJr  S SKJr  S SKJr  \(       a  S SKJrJr  \R0                  " \5      r\" S	S
SS9 " S S\5      5       rg)    )annotationsN)TYPE_CHECKINGAnyAsyncIteratorCallableDictIteratorListOptional)
deprecated)Document)
BaseLoader)_AstraDBEnvironment)AstraDBAsyncAstraDBz0.0.29z1.0zlangchain_astradb.AstraDBLoader)sinceremovalalternative_importc                      \ rS rSrSSSSSSSSS\R
                  S.
                       S
S jjrSS jrSS jrSS jr	S	r
g)AstraDBLoader   Ni  )
tokenapi_endpointastra_db_clientasync_astra_db_client	namespacefilter_criteria
projectionfind_optionsnb_prefetchedextraction_functionc       
            [        UUUUUS9nXl        UR                  R                  U5      U l        Xl        Xpl        Xl        U	=(       d    0 U l        Xl        Xl	        g)a  Load DataStax Astra DB documents.

Args:
    collection_name: name of the Astra DB collection to use.
    token: API token for Astra DB usage.
    api_endpoint: full URL to the API endpoint,
        such as `https://<DB-ID>-us-east1.apps.astra.datastax.com`.
    astra_db_client: *alternative to token+api_endpoint*,
        you can pass an already-created 'astrapy.db.AstraDB' instance.
    async_astra_db_client: *alternative to token+api_endpoint*,
        you can pass an already-created 'astrapy.db.AsyncAstraDB' instance.
    namespace: namespace (aka keyspace) where the
        collection is. Defaults to the database's "default namespace".
    filter_criteria: Criteria to filter documents.
    projection: Specifies the fields to return.
    find_options: Additional options for the query.
    nb_prefetched: Max number of documents to pre-fetch. Defaults to 1000.
    extraction_function: Function applied to collection documents to create
        the `page_content` of the LangChain Document. Defaults to `json.dumps`.
)r   r   r   r   r   N)
r   	astra_envastra_db
collectioncollection_namefilterr   r   r    r!   )selfr&   r   r   r   r   r   r   r   r   r    r!   r#   s                d/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/astradb.py__init__AstraDBLoader.__init__"   sf    F (%+"7
	 ##,,77H.%$(.B*#6     c              #  n  #    U R                   R                  U R                  U R                  U R                  S U R
                  S9 Hh  n[        U R                  U5      U R                   R                  R                  U R                   R                  R                  U R                  S.S9v   Mj     g 7fN)r'   optionsr   sort
prefetched)r   r   r%   )page_contentmetadata)r%   paginated_findr'   r   r   r    r   r!   r$   r   base_urlr&   r(   docs     r)   	lazy_loadAstraDBLoader.lazy_loadU   s     ??11;;%%)) 2 
C !55c:!%!9!9!C!C$(OO$<$<$E$E"&"6"6 
s   B3B5c                `   #    U R                  5        Vs/ s Sh  vN oPM   N
 sn$ s  snf 7f)z Load data into Document objects.N)
alazy_loadr6   s     r)   aloadAstraDBLoader.aloadf   s#     %)__%677c777s$   .)%#
%)%).c                 #    U R                   R                  R                  U R                  5      I S h  vN nUR	                  U R
                  U R                  U R                  S U R                  S9  S h  vN n[        U R                  U5      UR                  R                  UR                  R                  U R                  S.S97v   M]   N NZ
 g 7fr.   )r#   async_astra_dbr%   r&   r4   r'   r   r   r    r   r!   r$   r   r5   )r(   async_collectionr7   s      r)   r;   AstraDBLoader.alazy_loadj   s     !%!>!>!I!I  "
 
 *88;;%%)) 9 
 	# !55c:!1!:!:!D!D$4$=$=$F$F"&"6"6 
	 
s4   3CC?C5C9C:C=ACCC)r#   r%   r&   r!   r'   r   r    r   )r&   strr   Optional[str]r   rC   r   zOptional[AstraDB]r   zOptional[AsyncAstraDB]r   rC   r   Optional[Dict[str, Any]]r   rD   r   rD   r    intr!   zCallable[[Dict], str]returnNone)rF   zIterator[Document])rF   zList[Document])rF   zAsyncIterator[Document])__name__
__module____qualname____firstlineno__jsondumpsr*   r8   r<   r;   __static_attributes__ r,   r)   r   r      s      $&*-18<#'48/315!59ZZ1717 	17
 $17 +17  617 !17 217 -17 /17 17 317 
17f"8r,   r   )
__future__r   rL   loggingtypingr   r   r   r   r   r	   r
   r   langchain_core._api.deprecationr   langchain_core.documentsr   )langchain_community.document_loaders.baser   %langchain_community.utilities.astradbr   
astrapy.dbr   r   	getLoggerrH   loggerr   rO   r,   r)   <module>rZ      sm    "  	 	 	 7 - @ E0			8	$ 
8
[J [
[r,   