
    7|h
                        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y)    )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y)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`.

    Nc                J    || _         || _        || _        || _        || _        y)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)queryprojectpage_content_columnsmetadata_columnscredentials)selfr   r   r   r   r   s         l/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/document_loaders/bigquery.py__init__zBigQueryLoader.__init__   s*    . 
$8! 0&    c                   	 ddl m} |j                  | j                  | j
                  t        d            }|j
                  sd}t        |      |j                  | j                        j                         }g }| j                  | j                  }$|j                  D cg c]  }|j                   c}|g }|D ]p  }	dj                  fd	|	j                         D              }
|	j                         D ci c]  \  }}||v s|| }}}t!        |
|
      }|j#                  |       r |S # t        $ r}t        d      |d }~ww xY wc c}w c c}}w )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              3  <   K   | ]  \  }}|v s| d |   yw)z: N ).0kvr   s      r   	<genexpr>z&BigQueryLoader.load.<locals>.<genexpr>]   s,      % $1q<P7P1#Rs%s   )page_contentmetadata)google.cloudr   ImportErrorClientr   r   r
   
ValueErrorr   resultr   r   schemanamejoinitemsr   append)r   r   ex	bq_client
error_descquery_resultdocsr   columnrowr&   r#   r$   r'   docr   s                  @r   loadzBigQueryLoader.load;   so   	- OO((LL'z: $ 
	
     Z(( tzz299;!#8800'>J>Q>Q#RFFKK#R #! 	C99 %(+		% L *-NA=M8M1NHNxHCKK	 M  	N 	4 $S Os)   D8 'EEE8	EEE)NNNN)
r   strr   zOptional[str]r   Optional[List[str]]r   r<   r   zOptional[Credentials])returnzList[Document])__name__
__module____qualname____doc__r   r:   r!   r   r   r   r      sO     "&4804-1'' ' 2	'
 .' +':)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>rI      sL    " 0 0 6 - @ B3 
B
PZ P
Pr   