33
33
from __future__ import annotations
34
34
35
35
import abc
36
+ from collections .abc import Iterable
36
37
import dataclasses
37
38
import json
38
39
import os
39
40
import posixpath
40
41
import tempfile
41
42
import time
42
- from typing import Any , Dict , Iterable , List , Optional , Tuple , Union
43
+ from typing import Any , Optional
43
44
44
45
from absl import logging
45
46
from etils import epath
47
+ from etils import epy
46
48
from tensorflow_datasets .core import constants
47
49
from tensorflow_datasets .core import file_adapters
48
50
from tensorflow_datasets .core import lazy_imports_lib
52
54
from tensorflow_datasets .core .features import feature as feature_lib
53
55
from tensorflow_datasets .core .features import top_level_feature
54
56
from tensorflow_datasets .core .proto import dataset_info_pb2
55
- from tensorflow_datasets .core .utils import file_utils
56
- from tensorflow_datasets .core .utils import gcs_utils
57
57
from tensorflow_datasets .core .utils .lazy_imports_utils import apache_beam as beam
58
58
from tensorflow_datasets .core .utils .lazy_imports_utils import tensorflow as tf
59
59
60
- from google .protobuf import json_format
60
+ with epy .lazy_imports ():
61
+ # pylint: disable=g-import-not-at-top
62
+ from tensorflow_datasets .core .utils import file_utils
63
+ from tensorflow_datasets .core .utils import gcs_utils
64
+
65
+ from google .protobuf import json_format
66
+ # pylint: enable=g-import-not-at-top
67
+
61
68
62
69
# TODO(b/109648354): Remove the "pytype: disable" comment.
63
- Nest = Union [ Tuple [ "Nest" , ...], Dict [str , "Nest" ], str ] # pytype: disable=not-supported-yet
64
- SupervisedKeysType = Union [ Tuple [ Nest , Nest ], Tuple [Nest , Nest , Nest ] ]
70
+ Nest = tuple [ "Nest" , ...] | dict [str , "Nest" ] | str # pytype: disable=not-supported-yet
71
+ SupervisedKeysType = tuple [ Nest , Nest ] | tuple [Nest , Nest , Nest ]
65
72
66
73
67
74
def dataset_info_path (dataset_info_dir : epath .PathLike ) -> epath .Path :
@@ -108,7 +115,7 @@ class DatasetIdentity:
108
115
config_name : str | None = None
109
116
config_description : str | None = None
110
117
config_tags : list [str ] | None = None
111
- release_notes : Dict [str , str ] | None = None
118
+ release_notes : dict [str , str ] | None = None
112
119
113
120
@classmethod
114
121
def from_builder (cls , builder ) -> "DatasetIdentity" :
@@ -176,16 +183,16 @@ def __init__(
176
183
# LINT.IfChange(dataset_info_args)
177
184
self ,
178
185
* ,
179
- builder : Union [ DatasetIdentity , Any ] ,
180
- description : Optional [ str ] = None ,
186
+ builder : DatasetIdentity | Any ,
187
+ description : str | None = None ,
181
188
features : Optional [feature_lib .FeatureConnector ] = None ,
182
189
supervised_keys : Optional [SupervisedKeysType ] = None ,
183
190
disable_shuffling : bool = False ,
184
- homepage : Optional [ str ] = None ,
185
- citation : Optional [ str ] = None ,
186
- metadata : Optional [ Metadata ] = None ,
187
- license : Optional [ str ] = None , # pylint: disable=redefined-builtin
188
- redistribution_info : Optional [Dict [str , str ]] = None ,
191
+ homepage : str | None = None ,
192
+ citation : str | None = None ,
193
+ metadata : Metadata | None = None ,
194
+ license : str | None = None , # pylint: disable=redefined-builtin
195
+ redistribution_info : Optional [dict [str , str ]] = None ,
189
196
split_dict : Optional [splits_lib .SplitDict ] = None ,
190
197
# LINT.ThenChange(:setstate)
191
198
):
@@ -347,7 +354,7 @@ def config_description(self) -> str | None:
347
354
return self ._identity .config_description
348
355
349
356
@property
350
- def config_tags (self ) -> List [str ] | None :
357
+ def config_tags (self ) -> list [str ] | None :
351
358
return self ._identity .config_tags
352
359
353
360
@property
@@ -368,7 +375,7 @@ def version(self):
368
375
return self ._identity .version
369
376
370
377
@property
371
- def release_notes (self ) -> Optional [ Dict [ str , str ]] :
378
+ def release_notes (self ) -> dict [ str , str ] | None :
372
379
return self ._identity .release_notes
373
380
374
381
@property
@@ -412,7 +419,7 @@ def features(self):
412
419
return self ._features
413
420
414
421
@property
415
- def metadata (self ) -> Optional [ Metadata ] :
422
+ def metadata (self ) -> Metadata | None :
416
423
return self ._metadata
417
424
418
425
@property
@@ -431,14 +438,14 @@ def module_name(self) -> str:
431
438
return self ._identity .module_name
432
439
433
440
@property
434
- def file_format (self ) -> Optional [ file_adapters .FileFormat ] :
441
+ def file_format (self ) -> file_adapters .FileFormat | None :
435
442
if not self .as_proto .file_format :
436
443
return None
437
444
return file_adapters .FileFormat (self .as_proto .file_format )
438
445
439
446
def set_file_format (
440
447
self ,
441
- file_format : Union [ None , str , file_adapters .FileFormat ] ,
448
+ file_format : None | str | file_adapters .FileFormat ,
442
449
override : bool = False ,
443
450
) -> None :
444
451
"""Internal function to define the file format.
@@ -716,8 +723,8 @@ def read_from_directory(self, dataset_info_dir: epath.PathLike) -> None:
716
723
717
724
def add_file_data_source_access (
718
725
self ,
719
- path : Union [ epath .PathLike , Iterable [epath .PathLike ] ],
720
- url : Optional [ str ] = None ,
726
+ path : epath .PathLike | Iterable [epath .PathLike ],
727
+ url : str | None = None ,
721
728
) -> None :
722
729
"""Records that the given query was used to generate this dataset.
723
730
@@ -743,7 +750,7 @@ def add_file_data_source_access(
743
750
def add_url_access (
744
751
self ,
745
752
url : str ,
746
- checksum : Optional [ str ] = None ,
753
+ checksum : str | None = None ,
747
754
) -> None :
748
755
"""Records the URL used to generate this dataset."""
749
756
self ._info_proto .data_source_accesses .append (
@@ -768,7 +775,7 @@ def add_sql_data_source_access(
768
775
def add_tfds_data_source_access (
769
776
self ,
770
777
dataset_reference : naming .DatasetReference ,
771
- url : Optional [ str ] = None ,
778
+ url : str | None = None ,
772
779
) -> None :
773
780
"""Records that the given query was used to generate this dataset.
774
781
0 commit comments