code: def __init__(
      self,
      project_id: str,
      dataset: Optional[str] = None,
      query: Optional[str] = None,
  ):
      _check_import(self, module="google.cloud", package="bigquery")
      _check_import(
          self, module="google.cloud", package="bigquery_storage"
      )
      _check_import(
          self, module="google.api_core", package="exceptions"
      )
  
      self._project_id = project_id
      self._dataset = dataset
      self._query = query
  
      if query is not None and dataset is not None:
          raise ValueError(
              "Query and dataset kwargs cannot both be provided "
              + "(must be mutually exclusive)."
          )
  
file_path: ray/python/ray/data/datasource/bigquery_datasource.py
imports: import logging
  from typing import List, Optional
  from ray.data._internal.util import _check_import
  from ray.data.block import Block, BlockMetadata
  from ray.data.datasource.datasource import Datasource, ReadTask
  from ray.util.annotations import PublicAPI
label_desc: Use image node_id 1 to create a new BigQueryDatasource object from inherited base classes: Datasource with example: obj = BigQueryDatasource(project_id, dataset, query)