@@ -790,35 +790,11 @@ def create_from_bigquery(
790790 """
791791 if isinstance (multimodal_dataset , dict ):
792792 multimodal_dataset = types .MultimodalDataset (** multimodal_dataset )
793- if (
794- not hasattr (multimodal_dataset , "metadata" )
795- or multimodal_dataset .metadata is None
796- ):
797- raise ValueError ("Multimodal dataset metadata is required." )
798- if (
799- not hasattr (multimodal_dataset .metadata , "input_config" )
800- or multimodal_dataset .metadata .input_config is None
801- ):
802- raise ValueError ("Multimodal dataset input config is required." )
803- if (
804- not hasattr (multimodal_dataset .metadata .input_config , "bigquery_source" )
805- or multimodal_dataset .metadata .input_config .bigquery_source is None
806- ):
807- raise ValueError (
808- "Multimodal dataset input config bigquery source is required."
809- )
810- if (
811- not hasattr (multimodal_dataset .metadata .input_config .bigquery_source , "uri" )
812- or multimodal_dataset .metadata .input_config .bigquery_source .uri is None
813- ):
814- raise ValueError (
815- "Multimodal dataset input config bigquery source uri is required."
816- )
817- if not multimodal_dataset .metadata .input_config .bigquery_source .uri .startswith (
818- "bq://"
819- ):
820- multimodal_dataset .metadata .input_config .bigquery_source .uri = (
821- f"bq://{ multimodal_dataset .metadata .input_config .bigquery_source .uri } "
793+
794+ uri = _datasets_utils .multimodal_dataset_get_bigquery_uri (multimodal_dataset )
795+ if not uri .startswith ("bq://" ):
796+ _datasets_utils .multimodal_dataset_set_bigquery_uri (
797+ multimodal_dataset , f"bq://{ uri } "
822798 )
823799 if isinstance (config , dict ):
824800 config = types .CreateMultimodalDatasetConfig (** config )
@@ -923,6 +899,33 @@ def create_from_pandas(
923899 config = config ,
924900 )
925901
902+ def to_bigframes (
903+ self ,
904+ * ,
905+ multimodal_dataset : types .MultimodalDatasetOrDict ,
906+ ) -> "bigframes.pandas.DataFrame" : # type: ignore # noqa: F821
907+ """Converts a multimodal dataset to a BigFrames dataframe.
908+
909+ This is the preferred method to inspect the multimodal dataset in a
910+ notebook.
911+
912+ Args:
913+ multimodal_dataset:
914+ Required. A representation of a multimodal dataset.
915+
916+ Returns:
917+ A BigFrames dataframe.
918+ """
919+ bigframes = _datasets_utils ._try_import_bigframes ()
920+
921+ if isinstance (multimodal_dataset , dict ):
922+ multimodal_dataset = types .MultimodalDataset (** multimodal_dataset )
923+ elif not multimodal_dataset :
924+ multimodal_dataset = types .MultimodalDataset ()
925+
926+ uri = _datasets_utils .multimodal_dataset_get_bigquery_uri (multimodal_dataset )
927+ return bigframes .pandas .read_gbq_table (uri .lstrip ("bq://" ))
928+
926929 def update_multimodal_dataset (
927930 self ,
928931 * ,
@@ -948,35 +951,11 @@ def update_multimodal_dataset(
948951 """
949952 if isinstance (multimodal_dataset , dict ):
950953 multimodal_dataset = types .MultimodalDataset (** multimodal_dataset )
951- if (
952- not hasattr (multimodal_dataset , "metadata" )
953- or multimodal_dataset .metadata is None
954- ):
955- raise ValueError ("Multimodal dataset metadata is required." )
956- if (
957- not hasattr (multimodal_dataset .metadata , "input_config" )
958- or multimodal_dataset .metadata .input_config is None
959- ):
960- raise ValueError ("Multimodal dataset input config is required." )
961- if (
962- not hasattr (multimodal_dataset .metadata .input_config , "bigquery_source" )
963- or multimodal_dataset .metadata .input_config .bigquery_source is None
964- ):
965- raise ValueError (
966- "Multimodal dataset input config bigquery source is required."
967- )
968- if (
969- not hasattr (multimodal_dataset .metadata .input_config .bigquery_source , "uri" )
970- or multimodal_dataset .metadata .input_config .bigquery_source .uri is None
971- ):
972- raise ValueError (
973- "Multimodal dataset input config bigquery source uri is required."
974- )
975- if not multimodal_dataset .metadata .input_config .bigquery_source .uri .startswith (
976- "bq://"
977- ):
978- multimodal_dataset .metadata .input_config .bigquery_source .uri = (
979- f"bq://{ multimodal_dataset .metadata .input_config .bigquery_source .uri } "
954+
955+ uri = _datasets_utils .multimodal_dataset_get_bigquery_uri (multimodal_dataset )
956+ if not uri .startswith ("bq://" ):
957+ _datasets_utils .multimodal_dataset_set_bigquery_uri (
958+ multimodal_dataset , f"bq://{ uri } "
980959 )
981960 if isinstance (config , dict ):
982961 config = types .CreateMultimodalDatasetConfig (** config )
@@ -1887,35 +1866,11 @@ async def create_from_bigquery(
18871866 """
18881867 if isinstance (multimodal_dataset , dict ):
18891868 multimodal_dataset = types .MultimodalDataset (** multimodal_dataset )
1890- if (
1891- not hasattr (multimodal_dataset , "metadata" )
1892- or multimodal_dataset .metadata is None
1893- ):
1894- raise ValueError ("Multimodal dataset metadata is required." )
1895- if (
1896- not hasattr (multimodal_dataset .metadata , "input_config" )
1897- or multimodal_dataset .metadata .input_config is None
1898- ):
1899- raise ValueError ("Multimodal dataset input config is required." )
1900- if (
1901- not hasattr (multimodal_dataset .metadata .input_config , "bigquery_source" )
1902- or multimodal_dataset .metadata .input_config .bigquery_source is None
1903- ):
1904- raise ValueError (
1905- "Multimodal dataset input config bigquery source is required."
1906- )
1907- if (
1908- not hasattr (multimodal_dataset .metadata .input_config .bigquery_source , "uri" )
1909- or multimodal_dataset .metadata .input_config .bigquery_source .uri is None
1910- ):
1911- raise ValueError (
1912- "Multimodal dataset input config bigquery source uri is required."
1913- )
1914- if not multimodal_dataset .metadata .input_config .bigquery_source .uri .startswith (
1915- "bq://"
1916- ):
1917- multimodal_dataset .metadata .input_config .bigquery_source .uri = (
1918- f"bq://{ multimodal_dataset .metadata .input_config .bigquery_source .uri } "
1869+
1870+ uri = _datasets_utils .multimodal_dataset_get_bigquery_uri (multimodal_dataset )
1871+ if not uri .startswith ("bq://" ):
1872+ _datasets_utils .multimodal_dataset_set_bigquery_uri (
1873+ multimodal_dataset , f"bq://{ uri } "
19191874 )
19201875 if isinstance (config , dict ):
19211876 config = types .CreateMultimodalDatasetConfig (** config )
@@ -2020,6 +1975,33 @@ async def create_from_pandas(
20201975 config = config ,
20211976 )
20221977
1978+ async def to_bigframes (
1979+ self ,
1980+ * ,
1981+ multimodal_dataset : types .MultimodalDatasetOrDict ,
1982+ ) -> "bigframes.pandas.DataFrame" : # type: ignore # noqa: F821
1983+ """Converts a multimodal dataset to a BigFrames dataframe.
1984+
1985+ This is the preferred method to inspect the multimodal dataset in a
1986+ notebook.
1987+
1988+ Args:
1989+ multimodal_dataset:
1990+ Required. A representation of a multimodal dataset.
1991+
1992+ Returns:
1993+ A BigFrames dataframe.
1994+ """
1995+ bigframes = _datasets_utils ._try_import_bigframes ()
1996+
1997+ if isinstance (multimodal_dataset , dict ):
1998+ multimodal_dataset = types .MultimodalDataset (** multimodal_dataset )
1999+ elif not multimodal_dataset :
2000+ multimodal_dataset = types .MultimodalDataset ()
2001+
2002+ uri = _datasets_utils .multimodal_dataset_get_bigquery_uri (multimodal_dataset )
2003+ return bigframes .pandas .read_gbq_table (uri .lstrip ("bq://" ))
2004+
20232005 async def update_multimodal_dataset (
20242006 self ,
20252007 * ,
@@ -2041,35 +2023,11 @@ async def update_multimodal_dataset(
20412023 """
20422024 if isinstance (multimodal_dataset , dict ):
20432025 multimodal_dataset = types .MultimodalDataset (** multimodal_dataset )
2044- if (
2045- not hasattr (multimodal_dataset , "metadata" )
2046- or multimodal_dataset .metadata is None
2047- ):
2048- raise ValueError ("Multimodal dataset metadata is required." )
2049- if (
2050- not hasattr (multimodal_dataset .metadata , "input_config" )
2051- or multimodal_dataset .metadata .input_config is None
2052- ):
2053- raise ValueError ("Multimodal dataset input config is required." )
2054- if (
2055- not hasattr (multimodal_dataset .metadata .input_config , "bigquery_source" )
2056- or multimodal_dataset .metadata .input_config .bigquery_source is None
2057- ):
2058- raise ValueError (
2059- "Multimodal dataset input config bigquery source is required."
2060- )
2061- if (
2062- not hasattr (multimodal_dataset .metadata .input_config .bigquery_source , "uri" )
2063- or multimodal_dataset .metadata .input_config .bigquery_source .uri is None
2064- ):
2065- raise ValueError (
2066- "Multimodal dataset input config bigquery source uri is required."
2067- )
2068- if not multimodal_dataset .metadata .input_config .bigquery_source .uri .startswith (
2069- "bq://"
2070- ):
2071- multimodal_dataset .metadata .input_config .bigquery_source .uri = (
2072- f"bq://{ multimodal_dataset .metadata .input_config .bigquery_source .uri } "
2026+
2027+ uri = _datasets_utils .multimodal_dataset_get_bigquery_uri (multimodal_dataset )
2028+ if not uri .startswith ("bq://" ):
2029+ _datasets_utils .multimodal_dataset_set_bigquery_uri (
2030+ multimodal_dataset , f"bq://{ uri } "
20732031 )
20742032 if isinstance (config , dict ):
20752033 config = types .CreateMultimodalDatasetConfig (** config )
0 commit comments