Fetches a `tfds.core.DatasetBuilder` class by string name. Args: name: `str`, the registered name of the `DatasetBuilder` (the class name as camel or snake case: `MyDataset` or `my_dataset`). Returns: A `tfds.core.DatasetBuilder` class. Raises: DatasetNotFoundError: if `na
(name: str)
| 89 | |
| 90 | @error_utils.reraise_with_context(registered.DatasetNotFoundError) |
| 91 | def builder_cls(name: str) -> Type[dataset_builder.DatasetBuilder]: |
| 92 | """Fetches a `tfds.core.DatasetBuilder` class by string name. |
| 93 | |
| 94 | Args: |
| 95 | name: `str`, the registered name of the `DatasetBuilder` (the class name as |
| 96 | camel or snake case: `MyDataset` or `my_dataset`). |
| 97 | |
| 98 | Returns: |
| 99 | A `tfds.core.DatasetBuilder` class. |
| 100 | |
| 101 | Raises: |
| 102 | DatasetNotFoundError: if `name` is unrecognized. |
| 103 | """ |
| 104 | ds_name, kwargs = naming.parse_builder_name_kwargs(name) |
| 105 | if kwargs: |
| 106 | raise ValueError( |
| 107 | '`builder_cls` only accept the `dataset_name` without config, ' |
| 108 | f"version or arguments. Got: name='{name}', kwargs={kwargs}" |
| 109 | ) |
| 110 | |
| 111 | if ds_name.namespace: |
| 112 | # `namespace:dataset` are loaded from the community register |
| 113 | if visibility.DatasetType.COMMUNITY_PUBLIC.is_available(): |
| 114 | return community.community_register().builder_cls(ds_name) |
| 115 | else: |
| 116 | raise ValueError( |
| 117 | f'Cannot load {ds_name} when community datasets are disabled' |
| 118 | ) |
| 119 | else: |
| 120 | try: |
| 121 | cls = registered.imported_builder_cls(str(ds_name)) |
| 122 | cls = typing.cast(Type[dataset_builder.DatasetBuilder], cls) |
| 123 | return cls |
| 124 | except registered.DatasetNotFoundError: |
| 125 | _add_list_builders_context(name=ds_name) |
| 126 | raise |
| 127 | |
| 128 | |
| 129 | @error_utils.reraise_with_context(registered.DatasetNotFoundError) |