@@ -18,14 +18,18 @@ def __init__(self,
1818 self .file_list_metadata = {}
1919 self .nickname = None
2020 if file_id_list_sliced is None and init_file_ids :
21- self .file_id_list = self . all_file_ids ()
21+ self .init_files ()
2222 elif not init_file_ids :
2323 self .file_id_list = []
2424 elif file_id_list_sliced is not None :
2525 self .file_id_list = file_id_list_sliced
2626 super (Directory , self ).__init__ (self .client , self .file_id_list , validate_ids )
2727
2828
29+
30+ def init_files (self ):
31+ self .file_id_list = self .all_file_ids ()
32+
2933 def get_directory_list (self ):
3034 """
3135 Get a list of available directories for a project
@@ -68,16 +72,15 @@ def convert_json_to_sdk_object(self, directory_list_json):
6872 init_file_ids = False ,
6973 validate_ids = False
7074 )
71- refresh_from_dict (new_directory , directory_json )
72- directory_list .append (new_directory )
75+ refresh_from_dict (new_directory , directory_json )
7376
74- return directory_list
77+ # note timing issue, this needs to happen after id is refreshed
78+ new_directory .init_files ()
7579
80+ directory_list .append (new_directory )
7681
77- def set_default ():
82+ return directory_list
7883
79- if not self .client .directory_list :
80- self .client .directory_list = self .get_directory_list ()
8184
8285
8386 def all_files (self ):
@@ -89,7 +92,10 @@ def all_files(self):
8992 page_num = 1
9093 result = []
9194 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' )
9399 page_num = self .file_list_metadata ['next_page' ]
94100 result = result + diffgram_files
95101 return result
@@ -98,7 +104,12 @@ def all_file_ids(self, query = None):
98104 page_num = 1
99105 result = []
100106
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+
102113 if diffgram_ids is False :
103114 raise Exception ('Error Fetching Files: Please check you are providing a valid query.' )
104115 result = result + diffgram_ids
@@ -223,22 +234,6 @@ def list_files(
223234 file_view_mode : str = 'annotation' ,
224235 query : str = None ):
225236 """
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-
242237 """
243238 if self .id :
244239 logging .info ("Using Dataset ID " + str (self .id ))
0 commit comments