77
88class Directory (DiffgramDatasetIterator ):
99
10- def __init__ (self ,
11- client ,
12- file_id_list_sliced = None ,
13- init_file_ids = True ,
10+ def __init__ (self ,
11+ client ,
12+ file_id_list_sliced = None ,
13+ init_file_ids = True ,
1414 validate_ids = True ):
1515
1616 self .client = client
@@ -25,11 +25,8 @@ def __init__(self,
2525 self .file_id_list = file_id_list_sliced
2626 super (Directory , self ).__init__ (self .client , self .file_id_list , validate_ids )
2727
28-
29-
3028 def init_files (self ):
3129 self .file_id_list = self .all_file_ids ()
32-
3330 def get_directory_list (self ):
3431 """
3532 Get a list of available directories for a project
@@ -50,7 +47,7 @@ def get_directory_list(self):
5047 self .client .handle_errors (response )
5148
5249 data = response .json ()
53-
50+
5451 directory_list_json = data .get ('directory_list' )
5552 default_directory_json = data .get ('default_directory' )
5653
@@ -60,7 +57,6 @@ def get_directory_list(self):
6057 directory_list = self .convert_json_to_sdk_object (directory_list_json )
6158
6259 return directory_list
63-
6460
6561 def convert_json_to_sdk_object (self , directory_list_json ):
6662
@@ -71,18 +67,21 @@ def convert_json_to_sdk_object(self, directory_list_json):
7167 client = self .client ,
7268 init_file_ids = False ,
7369 validate_ids = False
74- )
70+ )
7571 refresh_from_dict (new_directory , directory_json )
7672
7773 # note timing issue, this needs to happen after id is refreshed
78- new_directory .init_files ()
74+ new_directory .init_files ()
75+ new_directory .start_iterator (
76+ project = new_directory .project ,
77+ diffgram_file_id_list = new_directory .file_id_list ,
78+ validate_ids = True
79+ )
7980
8081 directory_list .append (new_directory )
8182
8283 return directory_list
8384
84-
85-
8685 def all_files (self ):
8786 """
8887 Get all the files of the directoy.
@@ -93,8 +92,8 @@ def all_files(self):
9392 result = []
9493 while page_num is not None :
9594 diffgram_files = self .list_files (
96- limit = 1000 ,
97- page_num = page_num ,
95+ limit = 1000 ,
96+ page_num = page_num ,
9897 file_view_mode = 'base' )
9998 page_num = self .file_list_metadata ['next_page' ]
10099 result = result + diffgram_files
@@ -105,9 +104,9 @@ def all_file_ids(self, query = None):
105104 result = []
106105
107106 diffgram_ids = self .list_files (
108- limit = 5000 ,
109- page_num = page_num ,
110- file_view_mode = 'ids_only' ,
107+ limit = 5000 ,
108+ page_num = page_num ,
109+ file_view_mode = 'ids_only' ,
111110 query = query )
112111
113112 if diffgram_ids is False :
@@ -299,7 +298,6 @@ def get(self,
299298 TODO refactor set_directory_by_name() to use this
300299
301300 """
302-
303301 if name is None :
304302 raise Exception ("No name provided." )
305303
@@ -312,6 +310,7 @@ def get(self,
312310 for directory in self .client .directory_list :
313311
314312 if directory .nickname == name :
313+ directory .init_files ()
315314 return directory
316315
317316 else :
0 commit comments