
    dh                         S SK r S SKrS SK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  S SKJr  \" SS	S
S9 " S S\5      5       rg)    N)CallableListOptional)
deprecated)Document)
BaseLoaderUnstructuredFileLoader)get_client_infoz0.0.32z1.0z(langchain_google_community.GCSFileLoader)sinceremovalalternative_importc                   ^    \ rS rSrSr SS\S\S\S\\\/\4      4S jjr	S	\
\   4S
 jrSrg)GCSFileLoader   zLoad from GCS file.Nproject_namebucketblobloader_funcc                 t    X l         X0l        Xl        S[        S[        4S jnU(       a  X@l        gUU l        g)a  Initialize with bucket and key name.

Args:
    project_name: The name of the project to load
    bucket: The name of the GCS bucket.
    blob: The name of the GCS blob to load.
    loader_func: A loader function that instantiates a loader based on a
        file_path argument. If nothing is provided, the
        UnstructuredFileLoader is used.

Examples:
    To use an alternative PDF loader:
    >> from from langchain_community.document_loaders import PyPDFLoader
    >> loader = GCSFileLoader(..., loader_func=PyPDFLoader)

    To use UnstructuredFileLoader with additional arguments:
    >> loader = GCSFileLoader(...,
    >>      loader_func=lambda x: UnstructuredFileLoader(x, mode="elements"))

	file_pathreturnc                     [        U 5      $ Nr	   )r   s    e/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/gcs_file.pydefault_loader_func3GCSFileLoader.__init__.<locals>.default_loader_func4   s    ))44    N)r   r   r   strr   _loader_func)selfr   r   r   r   r   s         r   __init__GCSFileLoader.__init__   s9    6 	(	53 	5: 	5 ,7K<Or   r   c                 X    SSK Jn  UR                  U R                  [        S5      S9nUR                  U R                  5      nUR                  U R                  5      nUR                  U R                  5      R                  n[        R                  " 5        nU SU R                   3n[        R                  " [        R                  R!                  U5      SS9  UR#                  U5        U R%                  U5      nUR'                  5       n	U	 H`  n
S	U
R                  ;   a)  S
U R                   SU R                   3U
R                  S	'   U(       d  ME  U
R                  R)                  U5        Mb     U	sSSS5        $ ! [         a    [        S5      ef = f! , (       d  f       g= f)zLoad documents.r   )storagezpCould not import google-cloud-storage python package. Please install it with `pip install google-cloud-storage`.zgoogle-cloud-storage)client_info/T)exist_oksourcezgs://N)google.cloudr%   ImportErrorClientr   r   
get_bucketr   r   get_blobmetadatatempfileTemporaryDirectoryosmakedirspathdirnamedownload_to_filenamer    loadupdate)r!   r%   storage_clientr   r   r/   temp_dirr   loaderdocsdocs              r   r7   GCSFileLoader.load9   s`   	, !?;Q+R ( 
  **4;;7{{499%??499-66((*h#*Adii[1IKK	2TB%%i0&&y1F;;=Ds||+/4T[[M499+-NCLL*8LL''1	 
  +*!  	M 	  +*s   F B9F FF
F))r    r   r   r   r   )__name__
__module____qualname____firstlineno____doc__r   r   r   r   r"   r   r   r7   __static_attributes__ r   r   r   r      s_      >B"P"P "P 	"P
 huj'89:"PH d8n  r   r   )r2   r0   typingr   r   r   langchain_core._api.deprecationr   langchain_core.documentsr   )langchain_community.document_loaders.baser   1langchain_community.document_loaders.unstructuredr
   &langchain_community.utilities.vertexair   r   rE   r   r   <module>rL      sL    	  + + 6 - @ T B 
A
GJ G
Gr   