@@ -18,14 +18,18 @@ def __init__(self,
18
18
self .file_list_metadata = {}
19
19
self .nickname = None
20
20
if file_id_list_sliced is None and init_file_ids :
21
- self .file_id_list = self . all_file_ids ()
21
+ self .init_files ()
22
22
elif not init_file_ids :
23
23
self .file_id_list = []
24
24
elif file_id_list_sliced is not None :
25
25
self .file_id_list = file_id_list_sliced
26
26
super (Directory , self ).__init__ (self .client , self .file_id_list , validate_ids )
27
27
28
28
29
+
30
+ def init_files (self ):
31
+ self .file_id_list = self .all_file_ids ()
32
+
29
33
def get_directory_list (self ):
30
34
"""
31
35
Get a list of available directories for a project
@@ -68,16 +72,15 @@ def convert_json_to_sdk_object(self, directory_list_json):
68
72
init_file_ids = False ,
69
73
validate_ids = False
70
74
)
71
- refresh_from_dict (new_directory , directory_json )
72
- directory_list .append (new_directory )
75
+ refresh_from_dict (new_directory , directory_json )
73
76
74
- return directory_list
77
+ # note timing issue, this needs to happen after id is refreshed
78
+ new_directory .init_files ()
75
79
80
+ directory_list .append (new_directory )
76
81
77
- def set_default ():
82
+ return directory_list
78
83
79
- if not self .client .directory_list :
80
- self .client .directory_list = self .get_directory_list ()
81
84
82
85
83
86
def all_files (self ):
@@ -89,7 +92,10 @@ def all_files(self):
89
92
page_num = 1
90
93
result = []
91
94
while page_num is not None :
92
- diffgram_files = self .list_files (limit = 1000 , page_num = page_num , file_view_mode = 'base' )
95
+ diffgram_files = self .list_files (
96
+ limit = 1000 ,
97
+ page_num = page_num ,
98
+ file_view_mode = 'base' )
93
99
page_num = self .file_list_metadata ['next_page' ]
94
100
result = result + diffgram_files
95
101
return result
@@ -98,7 +104,12 @@ def all_file_ids(self, query = None):
98
104
page_num = 1
99
105
result = []
100
106
101
- diffgram_ids = self .list_files (limit = 5000 , page_num = page_num , file_view_mode = 'ids_only' , query = query )
107
+ diffgram_ids = self .list_files (
108
+ limit = 5000 ,
109
+ page_num = page_num ,
110
+ file_view_mode = 'ids_only' ,
111
+ query = query )
112
+
102
113
if diffgram_ids is False :
103
114
raise Exception ('Error Fetching Files: Please check you are providing a valid query.' )
104
115
result = result + diffgram_ids
@@ -223,22 +234,6 @@ def list_files(
223
234
file_view_mode : str = 'annotation' ,
224
235
query : str = None ):
225
236
"""
226
- Get a list of files in directory (from Diffgram service).
227
-
228
- Assumes we are using the default directory.
229
- this can be changed ie by: project.set_directory_by_name(dir_name)
230
-
231
- We don't have a strong Directory concept in the SDK yet
232
- So for now assume that we need to
233
- call project.set_directory_by_name(dir_name) first
234
- if we want to change the directory
235
-
236
-
237
- WIP Feb 3, 2020
238
- A lot of "hard coded" options here.
239
- Want to think a bit more about what we want to
240
- expose options here and what good contexts are.
241
-
242
237
"""
243
238
if self .id :
244
239
logging .info ("Using Dataset ID " + str (self .id ))
0 commit comments