Skip to content

Commit cbeca74

Browse files
committed
show subdirectories in screenshot
1 parent 90ef2a6 commit cbeca74

File tree

2 files changed

+79
-15
lines changed

2 files changed

+79
-15
lines changed

create_requirement_images.py

Lines changed: 49 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ def generate_requirement_image(
8686
): # pylint: disable=too-many-statements
8787
"""Generate a single requirement image"""
8888

89+
8990
def make_line(
9091
requirement_name, position=(0, 0), icon=None, hidden=False, triangle_icon=None
9192
): # pylint: disable=too-many-branches
@@ -192,14 +193,16 @@ def make_header(position, project_files):
192193
# dynamic files from project dir in learn guide repo
193194
rows_added = 0
194195
project_files_to_draw = []
195-
project_folders_to_draw = []
196+
project_folders_to_draw = {}
196197
for cur_file in project_files:
197-
if "." in cur_file[-5:]:
198-
cur_extension = cur_file.split(".")[-1]
199-
if cur_extension in SHOWN_FILETYPES:
200-
project_files_to_draw.append(cur_file)
201-
else:
202-
project_folders_to_draw.append(cur_file)
198+
if type(cur_file) == str:
199+
if "." in cur_file[-5:]:
200+
cur_extension = cur_file.split(".")[-1]
201+
if cur_extension in SHOWN_FILETYPES:
202+
project_files_to_draw.append(cur_file)
203+
204+
elif type(cur_file) == tuple:
205+
project_folders_to_draw[cur_file[0]] = cur_file[1]
203206

204207
for i, file in enumerate(sorted(project_files_to_draw)):
205208
cur_file_extension = file.split(".")[-1]
@@ -212,16 +215,41 @@ def make_header(position, project_files):
212215
)
213216
rows_added += 1
214217

215-
for i, file in enumerate(sorted(project_folders_to_draw)):
218+
extra_rows = 0
219+
for i, file in enumerate(sorted(project_folders_to_draw.keys())):
216220
make_line(
217221
file,
218222
(
219223
position[0] + INDENT_SIZE * 2,
220-
position[1] + (LINE_SPACING * (6 + i + len(project_files_to_draw))),
224+
position[1] + (LINE_SPACING * (6 + i + len(project_files_to_draw) + extra_rows)),
221225
),
222-
triangle_icon=right_triangle,
226+
triangle_icon=down_triangle,
223227
)
224228
rows_added += 1
229+
if file == "midi":
230+
#print(project_folders_to_draw)
231+
pass
232+
extra_sub_file_space = 0
233+
for j, sub_file in enumerate(sorted(project_folders_to_draw[file])):
234+
extra_rows += 1
235+
cur_file_extension = sub_file.split(".")[-1]
236+
cur_file_icon = FILE_TYPE_ICON_MAP.get(cur_file_extension, folder_icon)
237+
triangle_icon = None
238+
if cur_file_icon == folder_icon:
239+
triangle_icon = right_triangle
240+
make_line(
241+
sub_file,
242+
(
243+
position[0] + INDENT_SIZE *3,
244+
#position[1] + (LINE_SPACING * (6 + i + j + 1 + extra_sub_file_space
245+
# + len(project_files_to_draw))),
246+
position[1] + (LINE_SPACING * (6 + rows_added)),
247+
),
248+
triangle_icon=triangle_icon,
249+
icon=cur_file_icon
250+
)
251+
rows_added += 1
252+
extra_sub_file_space = extra_rows
225253

226254
make_line(
227255
"lib",
@@ -281,6 +309,16 @@ def sort_libraries(libraries):
281309
package_list, file_list = get_dependencies(libraries)
282310
return sorted(package_list) + sorted(file_list)
283311

312+
def count_files(files_list):
313+
_count = 0
314+
for _file in files_list:
315+
if type(_file) == str:
316+
_count += 1
317+
elif type(_file) == tuple:
318+
_count += 1
319+
_count += len(_file[1])
320+
return _count
321+
284322
def make_libraries(libraries, position):
285323

286324
for i, lib_name in enumerate(libraries):
@@ -301,7 +339,7 @@ def make_libraries(libraries, position):
301339
if "main.py" in project_files:
302340
project_files.remove("main.py")
303341

304-
project_files_count = len(project_files)
342+
project_files_count = count_files(project_files)
305343

306344
image_height = (
307345
PADDING * 2

get_imports.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,41 @@ def get_files_for_project(project_name):
111111
"""Get the set of files for a learn project"""
112112
found_files = set()
113113
project_dir = "{}/{}/".format(LEARN_GUIDE_REPO, project_name)
114-
for file in os.listdir(project_dir):
114+
# root level
115+
full_tree = os.walk(project_dir)
116+
117+
root_level = next(full_tree)
118+
if project_name == "NeoTrellis_M4_MIDI_Synth":
119+
print(root_level)
120+
121+
for file in root_level[2]:
115122
if "." in file:
116123
cur_extension = file.split(".")[-1]
117124
if cur_extension in SHOWN_FILETYPES:
118125
# print(file)
119126
found_files.add(file)
120-
else:
121-
# add dir
122-
found_files.add(file)
127+
128+
for _dir in root_level[1]:
129+
if project_name == "NeoTrellis_M4_MIDI_Synth":
130+
print(_dir)
131+
# TODO: second item needs to be a tuple
132+
dir_tuple = (_dir, tuple())
133+
for cur_tuple in os.walk(project_dir):
134+
if project_name == "NeoTrellis_M4_MIDI_Synth":
135+
print(cur_tuple)
136+
#print("{} - {}".format(cur_tuple[0].split("/")[-1], _dir))
137+
#print(cur_tuple)
138+
if cur_tuple[0].split("/")[-1] == _dir:
139+
# TODO: can't use add or append to add to a tuple
140+
# TODO: need to use + to make new tuple or * unpacking
141+
# https://stackoverflow.com/questions/16730339/python-add-item-to-the-tuple
142+
for _sub_dir in cur_tuple[1]:
143+
dir_tuple = (dir_tuple[0], dir_tuple[1] + (_sub_dir,))
144+
for _sub_file in cur_tuple[2]:
145+
dir_tuple = (dir_tuple[0], dir_tuple[1] + (_sub_file,))
146+
147+
# e.g. ("dir_name", ("file_1.txt", "file_2.txt"))
148+
found_files.add(dir_tuple)
123149
return found_files
124150

125151

0 commit comments

Comments
 (0)