U Dx`@sdZddlmZmZmZmZmZmZddlm Z er@ddl m Z ddZ de ee ee eee eeee ee eee efeeeeee d d d d Zdd e ee eeee eeeee e fee edd ddZdS)z Google BigQuery support ) TYPE_CHECKINGAnyDictListOptionalUnionimport_optional_dependency) DataFramecCsd}td|d}|S)Nzjpandas-gbq is required to load data from Google BigQuery. See the docs: https://pandas-gbq.readthedocs.io. pandas_gbq)extrar)msgr r4/tmp/pip-target-zr53vnty/lib/python/pandas/io/gbq.py _try_import s rNFr ) query project_id index_col col_orderreauthauth_local_webserverdialectlocation configurationuse_bqstorage_api max_resultsprogress_bar_typereturnc  CsXt} i}| dk r| |d<| dk r*| |d<| |d<| j|f||||||||| d |S)a Load data from Google BigQuery. This function requires the `pandas-gbq package `__. See the `How to authenticate with Google BigQuery `__ guide for authentication instructions. Parameters ---------- query : str SQL-Like Query to return data values. project_id : str, optional Google BigQuery Account project ID. Optional when available from the environment. index_col : str, optional Name of result column to use for index in results DataFrame. col_order : list(str), optional List of BigQuery column names in the desired order for results DataFrame. reauth : bool, default False Force Google BigQuery to re-authenticate the user. This is useful if multiple accounts are used. auth_local_webserver : bool, default False Use the `local webserver flow`_ instead of the `console flow`_ when getting user credentials. .. _local webserver flow: https://google-auth-oauthlib.readthedocs.io/en/latest/reference/google_auth_oauthlib.flow.html#google_auth_oauthlib.flow.InstalledAppFlow.run_local_server .. _console flow: https://google-auth-oauthlib.readthedocs.io/en/latest/reference/google_auth_oauthlib.flow.html#google_auth_oauthlib.flow.InstalledAppFlow.run_console *New in version 0.2.0 of pandas-gbq*. dialect : str, default 'legacy' Note: The default value is changing to 'standard' in a future version. SQL syntax dialect to use. Value can be one of: ``'legacy'`` Use BigQuery's legacy SQL dialect. For more information see `BigQuery Legacy SQL Reference `__. ``'standard'`` Use BigQuery's standard SQL, which is compliant with the SQL 2011 standard. For more information see `BigQuery Standard SQL Reference `__. .. versionchanged:: 0.24.0 location : str, optional Location where the query job should run. See the `BigQuery locations documentation `__ for a list of available locations. The location must match that of any datasets used in the query. *New in version 0.5.0 of pandas-gbq*. configuration : dict, optional Query config parameters for job processing. For example: configuration = {'query': {'useQueryCache': False}} For more information see `BigQuery REST API Reference `__. credentials : google.auth.credentials.Credentials, optional Credentials for accessing Google APIs. Use this parameter to override default credentials, such as to use Compute Engine :class:`google.auth.compute_engine.Credentials` or Service Account :class:`google.oauth2.service_account.Credentials` directly. *New in version 0.8.0 of pandas-gbq*. .. versionadded:: 0.24.0 use_bqstorage_api : bool, default False Use the `BigQuery Storage API `__ to download query results quickly, but at an increased cost. To use this API, first `enable it in the Cloud Console `__. You must also have the `bigquery.readsessions.create `__ permission on the project you are billing queries to. This feature requires version 0.10.0 or later of the ``pandas-gbq`` package. It also requires the ``google-cloud-bigquery-storage`` and ``fastavro`` packages. .. versionadded:: 0.25.0 max_results : int, optional If set, limit the maximum number of rows to fetch from the query results. *New in version 0.12.0 of pandas-gbq*. .. versionadded:: 1.1.0 progress_bar_type : Optional, str If set, use the `tqdm `__ library to display a progress bar while the data downloads. Install the ``tqdm`` package to use this feature. Possible values of ``progress_bar_type`` include: ``None`` No progress bar. ``'tqdm'`` Use the :func:`tqdm.tqdm` function to print a progress bar to :data:`sys.stderr`. ``'tqdm_notebook'`` Use the :func:`tqdm.tqdm_notebook` function to display a progress bar as a Jupyter notebook widget. ``'tqdm_gui'`` Use the :func:`tqdm.tqdm_gui` function to display a progress bar as a graphical dialog box. Note that his feature requires version 0.12.0 or later of the ``pandas-gbq`` package. And it requires the ``tqdm`` package. Slightly different than ``pandas-gbq``, here the default is ``None``. .. versionadded:: 1.0.0 Returns ------- df: DataFrame DataFrame representing results of query. See Also -------- pandas_gbq.read_gbq : This function in the pandas-gbq library. DataFrame.to_gbq : Write a DataFrame to Google BigQuery. Nrrr) rrrrrrrr credentials)rread_gbq)rrrrrrrrrrrrrr kwargsrrrrs. rfailT) dataframedestination_tabler chunksizer if_existsr table_schemar progress_barrc Cs*t} | j|||||||||| | d dS)N) rr$rr%rr&rr'r)rto_gbq) r"r#rr$rr%rr&rr'rr rrrr(s r() NNNFFNNNNNNN) NNFr!FNNTN)__doc__typingrrrrrrZpandas.compat._optionalr Zpandasr rstrboolintrr(rrrrsn      4