
    Ng
                        d dl m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 erd dlmZ  edd	d
           G d de                      ZdS )    )annotations)TYPE_CHECKINGListOptional)
deprecated)Document)
BaseLoader)get_client_info)Credentialsz0.0.32z1.0z)langchain_google_community.BigQueryLoader)sinceremovalalternative_importc                  ,    e Zd ZdZ	 	 	 	 dddZddZdS )BigQueryLoaderah  Load from the Google Cloud Platform `BigQuery`.

    Each document represents one row of the result. The `page_content_columns`
    are written into the `page_content` of the document. The `metadata_columns`
    are written into the `metadata` of the document. By default, all columns
    are written into the `page_content` and none into the `metadata`.

    NquerystrprojectOptional[str]page_content_columnsOptional[List[str]]metadata_columnscredentialsOptional[Credentials]c                L    || _         || _        || _        || _        || _        dS )a  Initialize BigQuery document loader.

        Args:
            query: The query to run in BigQuery.
            project: Optional. The project to run the query in.
            page_content_columns: Optional. The columns to write into the `page_content`
                of the document.
            metadata_columns: Optional. The columns to write into the `metadata` of the
                document.
            credentials : google.auth.credentials.Credentials, optional
              Credentials for accessing Google APIs. Use this parameter to override
                default credentials, such as to use Compute Engine
                (`google.auth.compute_engine.Credentials`) or Service Account
                (`google.oauth2.service_account.Credentials`) credentials directly.
        N)r   r   r   r   r   )selfr   r   r   r   r   s         i/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/document_loaders/bigquery.py__init__zBigQueryLoader.__init__   s0    . 
$8! 0&    returnList[Document]c                   	 ddl m} n"# t          $ r}t          d          |d }~ww xY w|                    | j        | j        t          d                    }|j        sd}t          |          |                    | j                  	                                }g }| j
        | j        d |j        D             g |D ]{}d	                    fd
|                                D                       }fd|                                D             }	t          ||	          }
|                    |
           ||S )Nr   )bigqueryzrCould not import google-cloud-bigquery python package. Please install it with `pip install google-cloud-bigquery`.r"   )module)r   r   client_infozGCP project for Big Query is not set! Either provide a `project` argument during BigQueryLoader instantiation, or set a default project with `gcloud config set project` command.c                    g | ]	}|j         
S  )name).0columns     r   
<listcomp>z'BigQueryLoader.load.<locals>.<listcomp>X   s    #R#R#RFFK#R#R#Rr   
c              3  4   K   | ]\  }}|v 	| d | V  dS )z: Nr&   )r(   kvr   s      r   	<genexpr>z&BigQueryLoader.load.<locals>.<genexpr>]   sE       % % $1q<P7P7P17P7P7P7P% %r   c                $    i | ]\  }}|v 	||S r&   r&   )r(   r-   r.   r   s      r   
<dictcomp>z'BigQueryLoader.load.<locals>.<dictcomp>`   s*    NNNA=M8M8M18M8M8Mr   )page_contentmetadata)google.cloudr"   ImportErrorClientr   r   r
   
ValueErrorr   resultr   r   schemajoinitemsr   append)r   r"   ex	bq_client
error_descquery_resultdocsrowr2   r3   docr   r   s              @@r   loadzBigQueryLoader.load;   s   	------- 	 	 	N  	 OO(L'z::: $ 
 
	
   	)  Z((( tz2299;;!#80'#R#Rl>Q#R#R#R #! 	 	C99 % % % %(+		% % %  L ONNNNNNHxHHHCKKs    
*%*)NNNN)
r   r   r   r   r   r   r   r   r   r   )r   r    )__name__
__module____qualname____doc__r   rD   r&   r   r   r   r      sY          "&4804-1' ' ' ' ':) ) ) ) ) )r   r   N)
__future__r   typingr   r   r   langchain_core._api.deprecationr   langchain_core.documentsr   )langchain_community.document_loaders.baser	   &langchain_community.utilities.vertexair
   google.auth.credentialsr   r   r&   r   r   <module>rP      s    " " " " " " 0 0 0 0 0 0 0 0 0 0 6 6 6 6 6 6 - - - - - - @ @ @ @ @ @ B B B B B B 4333333 
B  
P P P P PZ P P 
P P Pr   