§
    šŠtjò  ã                   óª   — d dl Z d dlZd dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ  edd	d
¬¦  «         G d„ de¦  «        ¦   «         ZdS )é    N)ÚCallableÚListÚOptional)Ú
deprecated)ÚDocument)Ú
BaseLoader©ÚUnstructuredFileLoader)Úget_client_infoz0.0.32z1.0z(langchain_google_community.GCSFileLoader)ÚsinceÚremovalÚalternative_importc                   ód   — e Zd ZdZ	 d
dedededeeegef                  fd„Zde	e
         fd	„ZdS )ÚGCSFileLoaderzLoad from GCS file.NÚproject_nameÚbucketÚblobÚloader_funcc                 ój   — || _         || _        || _        dt          dt          fd„}|r|n|| _        dS )a9  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                 ó    — t          | ¦  «        S ©Nr	   )r   s    úk/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/document_loaders/gcs_file.pyÚdefault_loader_funcz3GCSFileLoader.__init__.<locals>.default_loader_func4   s   € Ý)¨)Ñ4Ô4Ð4ó    N)r   r   r   Ústrr   Ú_loader_func)Úselfr   r   r   r   r   s         r   Ú__init__zGCSFileLoader.__init__   sV   € ð6 ˆŒØˆŒ	Ø(ˆÔð	5­3ð 	5µ:ð 	5ð 	5ð 	5ð 	5ð ,7ÐO˜K˜KÐ<OˆÔÐÐr   r   c                 ó$  — 	 ddl m} n# t          $ r t          d¦  «        ‚w xY w|                     | j        t          d¦  «        ¬¦  «        }|                     | j        ¦  «        }|                     | j        ¦  «        }| 	                    | j        ¦  «        j
        }t          j        ¦   «         5 }|› d| j        › �}t          j        t          j                             |¦  «        d¬¦  «         |                     |¦  «         |                      |¦  «        }|                     ¦   «         }	|	D ]A}
d	|
j
        v rd
| j        › d| j        › �|
j
        d	<   |r|
j
                             |¦  «         ŒB|	cddd¦  «         S # 1 swxY w Y   dS )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   r4   zGCSFileLoader.load9   sô  € ð	Ø,Ð,Ð,Ð,Ð,Ð,Ð,øÝð 	ð 	ð 	ÝðMñô ð ð	øøøð !ŸšØÔ­?Ð;QÑ+RÔ+Rð (ñ 
ô 
ˆð  ×*Ò*¨4¬;Ñ7Ô7ˆà�{Š{˜4œ9Ñ%Ô%ˆà—?’? 4¤9Ñ-Ô-Ô6ˆÝÔ(Ñ*Ô*ð 	¨hØ#Ð1Ð1 d¤iÐ1Ð1ˆIÝŒK�œŸš¨	Ñ2Ô2¸TÐBÑBÔBÐBà×%Ò% iÑ0Ô0Ð0Ø×&Ò& yÑ1Ô1ˆFØ—;’;‘=”=ˆDØð 2ð 2�Ø˜sœ|Ð+Ð+Ø-N°T´[Ð-NÐ-NÀ4Ä9Ð-NÐ-N�C”L Ñ*Øð 2Ø”L×'Ò'¨Ñ1Ô1Ð1øØð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ‚	 ‰#Â5CFÆF	ÆF	r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r    r   r   r4   © r   r   r   r      s›   € € € € € ð Ðð >Bð"Pð "Pàð"Pð ð"Pð ð	"Pð
 ˜h¨ u¨jÐ'8Ô9Ô:ð"Pð "Pð "Pð "PðH �d˜8”nð  ð  ð  ð  ð  ð  r   r   )r/   r-   Ú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   r?   r   r   ú<module>rF      sö   ðØ 	€	€	€	Ø €€€Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø -Ð -Ð -Ð -Ð -Ð -à @Ð @Ð @Ð @Ð @Ð @Ø TÐ TÐ TÐ TÐ TÐ TØ BÐ BÐ BÐ BÐ BÐ Bð €Ø
ØØAðñ ô ð
Gð Gð Gð Gð G�Jñ Gô Gñô ð
Gð Gð Gr   