@@ -7,8 +7,7 @@ Displayed in https://www.tensorflow.org/datasets/catalog/.
7
7
8
8
import collections
9
9
import tensorflow_datasets as tfds
10
- from tensorflow_datasets.core.utils.py_utils import get_class_path
11
- from tensorflow_datasets.core.utils.py_utils import get_class_url
10
+ from tensorflow_datasets.core.utils import py_utils
12
11
13
12
%>
14
13
@@ -36,16 +35,14 @@ ${builder.info.description}
36
35
</%def>
37
36
38
37
<%def name="display_source(builder)">\
39
- * ** Source code** : [ ` ${get_class_path(builder)} ` ] ( ${get_class_url(builder)} )
38
+ * ** Source code** :
39
+ [ ` ${py_utils.get_class_path(builder)} ` ] ( ${py_utils.get_class_url(builder)} )
40
40
</%def>
41
41
42
42
<%def name="display_versions(builder)">\
43
43
<%
44
44
def list_versions(builder):
45
- # List all available versions
46
- # Sort them in order
47
- # Get the default version
48
- for v in builder.versions:
45
+ for v in builder.versions: # List all available versions (in default order)
49
46
if v == builder.version: # Highlight the default version
50
47
version_name = '** ` {} ` ** (default)'.format(str(v))
51
48
else:
@@ -63,6 +60,54 @@ def list_versions(builder):
63
60
* ** Dataset size** : ` ${tfds.units.size_str(builder.info.dataset_size)} `
64
61
</%def>
65
62
63
+ <%
64
+ def build_autocached_info(builder):
65
+ """Returns the auto-cache information string."""
66
+ always_cached = set()
67
+ never_cached = set()
68
+ unshuffle_cached = set()
69
+ for split_name in builder.info.splits.keys():
70
+ split_name = str(split_name)
71
+ cache_shuffled = builder._ should_cache_ds(
72
+ split_name, shuffle_files=True, read_config=tfds.ReadConfig())
73
+ cache_unshuffled = builder._ should_cache_ds(
74
+ split_name, shuffle_files=False, read_config=tfds.ReadConfig())
75
+
76
+ if cache_shuffled == cache_unshuffled == True:
77
+ always_cached.add(split_name)
78
+ elif cache_shuffled == cache_unshuffled == False:
79
+ never_cached.add(split_name)
80
+ else: # Dataset is only cached when shuffled_files is False
81
+ assert not cache_shuffled and cache_unshuffled
82
+ unshuffle_cached.add(split_name)
83
+
84
+
85
+ if len(always_cached) == len(builder.info.splits.keys()):
86
+ autocached_info = 'Yes' # All splits are auto-cached.
87
+ elif len(never_cached) == len(builder.info.splits.keys()):
88
+ autocached_info = 'No' # Splits never auto-cached.
89
+ else: # Some splits cached, some not.
90
+ autocached_info_parts = [ ]
91
+ if always_cached:
92
+ split_names_str = ', '.join(always_cached)
93
+ autocached_info_parts.append('Yes ({})'.format(split_names_str))
94
+ if never_cached:
95
+ split_names_str = ', '.join(never_cached)
96
+ autocached_info_parts.append('No ({})'.format(split_names_str))
97
+ if unshuffle_cached:
98
+ split_names_str = ', '.join(unshuffle_cached)
99
+ autocached_info_parts.append(
100
+ 'Only when ` shuffle_files=False ` ({})'.format(split_names_str))
101
+ autocached_info = ', '.join(autocached_info_parts)
102
+ return autocached_info
103
+
104
+ %>
105
+ <%def name="display_autocache(builder)">\
106
+ * ** Auto-cached**
107
+ ([ documentation] ( https://www.tensorflow.org/datasets/performances#auto-caching ) ):
108
+ ${build_autocached_info(builder)}
109
+ </%def>
110
+
66
111
<%def name="display_manual(builder)">\
67
112
% if builder.MANUAL_DOWNLOAD_INSTRUCTIONS:
68
113
* ** Manual download instructions** : This dataset requires you to download the
@@ -129,6 +174,7 @@ def get_versions(builder):
129
174
return tuple((str(v), v.description) for v in builder.versions)
130
175
def get_size(builder): (builder.info.download_size, builder.info.dataset_size)
131
176
def get_manual(builder): builder.MANUAL_DOWNLOAD_INSTRUCTIONS
177
+ def get_autocache(builder): build_autocached_info(builder)
132
178
def get_splits(builder):
133
179
return tuple(
134
180
(str(s.name), int(s.num_examples)) for s in builder.info.splits.values()
@@ -145,6 +191,7 @@ all_sections = [
145
191
Section(get_versions, display_versions),
146
192
Section(get_size, display_size),
147
193
Section(get_manual, display_manual),
194
+ Section(get_autocache, display_autocache),
148
195
Section(get_splits, display_splits),
149
196
Section(get_features, display_features),
150
197
Section(get_supervised, display_supervised),
@@ -161,7 +208,7 @@ ${section.make(builder)}\
161
208
% endfor
162
209
</%def>
163
210
164
- ## --------------------------- Builder builder ---------------------------
211
+ ## --------------------------- Builder configs ---------------------------
165
212
166
213
<%def name="display_all_builders(builders)">\
167
214
<%
@@ -181,9 +228,9 @@ ${display_builder(next(iter(builders)), common_sections)}
181
228
182
229
% for i, builder in enumerate(builders):
183
230
<%
184
- header_suffix = ' (default config)' if i == 0 else ''
231
+ header_suffix = '(default config)' if i == 0 else ''
185
232
%>\
186
- ${'##'} ${builder.name}/${builder.builder_config.name}${header_suffix}
233
+ ${'##'} ${builder.name}/${builder.builder_config.name} ${header_suffix}
187
234
188
235
${display_builder(builder, unique_sections)}
189
236
% endfor
0 commit comments