From 5e4f444609d0f0980ec438faec45514cb52fb435 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 5 Dec 2023 01:04:40 -0500 Subject: [PATCH 1/5] Added function to parse through galleries readme txts --- doc/sphinxext/gallery_order.py | 40 ++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/doc/sphinxext/gallery_order.py b/doc/sphinxext/gallery_order.py index 70a018750537..88d858f6dd7d 100644 --- a/doc/sphinxext/gallery_order.py +++ b/doc/sphinxext/gallery_order.py @@ -123,3 +123,43 @@ def __call__(self, item): # Provide the above classes for use in conf.py sectionorder = MplExplicitOrder(explicit_order_folders) subsectionorder = MplExplicitSubOrder + +# README file types +READMES_FILES = ["README.txt"] #, "README.rst"] +ORDER_TYPE = ["example", "tutorial", "plot", UNSORTED] + +def parse_readme(file_to_read): + file = open(file_to_read) + for line in file: + if line in ["example", "tutorial", "plots"]: + return True + + return False + +DIRECTORIES = ["../galleries/examples", "../galleries/tutorials", "../galleries/plot_types"] +def follow_directory(): + new_folder_list = [] + for parent_folder in DIRECTORIES: + directory_list = [UNSORTED] + items = os.listdir(parent_folder) + folders = [item for item in items if os.path.isdir(os.path.join(directory, item))] + + for folder in folders: + folder_to_parse = parent_folder "/" + folder + "/" + file_to_parse = folder_to_parse + "README.txt" + file_type = parse_readme(file_to_parse) + + if file_type: + directory_list = [folder_to_parse] + directory_list + else: + directory_list.append(folder_to_parse) + + new_folder_list.append(directory_list) + + print(folder_list) + print("-------------------------") + print(new_folder_list) + + return new_folder_list + # folder_list = new_folder_list + From ccebad622e8bd2535c4c8233b3e24a8f6a314316 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 5 Dec 2023 02:28:05 -0500 Subject: [PATCH 2/5] Attempting to fix linting --- doc/sphinxext/gallery_order.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/doc/sphinxext/gallery_order.py b/doc/sphinxext/gallery_order.py index 88d858f6dd7d..6ee342ee3177 100644 --- a/doc/sphinxext/gallery_order.py +++ b/doc/sphinxext/gallery_order.py @@ -125,27 +125,33 @@ def __call__(self, item): subsectionorder = MplExplicitSubOrder # README file types -READMES_FILES = ["README.txt"] #, "README.rst"] +READMES_FILES = ["README.txt"] # , "README.rst"] ORDER_TYPE = ["example", "tutorial", "plot", UNSORTED] + def parse_readme(file_to_read): file = open(file_to_read) for line in file: if line in ["example", "tutorial", "plots"]: return True - + return False -DIRECTORIES = ["../galleries/examples", "../galleries/tutorials", "../galleries/plot_types"] + +DIRECTORIES = ["../galleries/examples", "../galleries/tutorials", + "../galleries/plot_types"] + + def follow_directory(): new_folder_list = [] for parent_folder in DIRECTORIES: directory_list = [UNSORTED] items = os.listdir(parent_folder) - folders = [item for item in items if os.path.isdir(os.path.join(directory, item))] + folders = [item for item in items + if os.path.isdir(os.path.join(directory, item))] for folder in folders: - folder_to_parse = parent_folder "/" + folder + "/" + folder_to_parse = parent_folder + "/" + folder + "/" file_to_parse = folder_to_parse + "README.txt" file_type = parse_readme(file_to_parse) From 166d62d606c7cec48fd34f05ff093a86844f9a04 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 5 Dec 2023 02:32:09 -0500 Subject: [PATCH 3/5] Added import os to header --- doc/sphinxext/gallery_order.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/sphinxext/gallery_order.py b/doc/sphinxext/gallery_order.py index 6ee342ee3177..42bdd7826d58 100644 --- a/doc/sphinxext/gallery_order.py +++ b/doc/sphinxext/gallery_order.py @@ -4,6 +4,7 @@ """ from sphinx_gallery.sorting import ExplicitOrder +import os # Gallery sections shall be displayed in the following order. # Non-matching sections are inserted at the unsorted position @@ -138,7 +139,7 @@ def parse_readme(file_to_read): return False -DIRECTORIES = ["../galleries/examples", "../galleries/tutorials", +DIRECTORIES = ["../galleries/examples", "../galleries/tutorials", "../galleries/plot_types"] @@ -162,10 +163,9 @@ def follow_directory(): new_folder_list.append(directory_list) - print(folder_list) + print(folder_lists) print("-------------------------") print(new_folder_list) return new_folder_list - # folder_list = new_folder_list - + # folder_lists = new_folder_list From 91b173056d5dd678e2e27f97275511cf24f22948 Mon Sep 17 00:00:00 2001 From: Matthew Date: Tue, 5 Dec 2023 15:27:31 -0500 Subject: [PATCH 4/5] Refined keywords for categorization --- doc/sphinxext/gallery_order.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/doc/sphinxext/gallery_order.py b/doc/sphinxext/gallery_order.py index 42bdd7826d58..d8a833cf96a3 100644 --- a/doc/sphinxext/gallery_order.py +++ b/doc/sphinxext/gallery_order.py @@ -127,34 +127,42 @@ def __call__(self, item): # README file types READMES_FILES = ["README.txt"] # , "README.rst"] -ORDER_TYPE = ["example", "tutorial", "plot", UNSORTED] +ORDER_TYPE = {"examples": "example", + "tutorials": "tutorial", + "plot_types": "plot"} -def parse_readme(file_to_read): +def parse_readme(file_to_read, order_type): file = open(file_to_read) for line in file: - if line in ["example", "tutorial", "plots"]: + if line.find(ORDER_TYPE[order_type]) != -1: return True return False -DIRECTORIES = ["../galleries/examples", "../galleries/tutorials", - "../galleries/plot_types"] +DIRECTORIES = ["examples", "tutorials", + "plot_types"] def follow_directory(): new_folder_list = [] for parent_folder in DIRECTORIES: directory_list = [UNSORTED] - items = os.listdir(parent_folder) + parent_folder_path = "galleries/" + parent_folder + items = os.listdir(parent_folder_path) folders = [item for item in items - if os.path.isdir(os.path.join(directory, item))] + if os.path.isdir(os.path.join(parent_folder_path, item))] for folder in folders: - folder_to_parse = parent_folder + "/" + folder + "/" - file_to_parse = folder_to_parse + "README.txt" - file_type = parse_readme(file_to_parse) + folder_to_parse = parent_folder_path + "/" + folder + "/" + file_to_parse = None + if os.path.exists(folder_to_parse + "README.txt"): + file_to_parse = folder_to_parse + "README.txt" + elif os.path.exists(folder_to_parse + "README.rst"): + file_to_parse = folder_to_parse + "README.rst" + + file_type = parse_readme(file_to_parse, parent_folder) if file_type: directory_list = [folder_to_parse] + directory_list @@ -169,3 +177,5 @@ def follow_directory(): return new_folder_list # folder_lists = new_folder_list + +follow_directory() \ No newline at end of file From 08ea65875304d500f003957869d77167c7c801dc Mon Sep 17 00:00:00 2001 From: Matthew Date: Wed, 6 Dec 2023 14:43:14 -0500 Subject: [PATCH 5/5] Adding results from parsing function --- galleries/gallery_order.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 galleries/gallery_order.txt diff --git a/galleries/gallery_order.txt b/galleries/gallery_order.txt new file mode 100644 index 000000000000..21cac7f91263 --- /dev/null +++ b/galleries/gallery_order.txt @@ -0,0 +1,19 @@ +[ + ['galleries/examples/user_interfaces/', 'galleries/examples/units/', + 'galleries/examples/ticks/', 'galleries/examples/subplots_axes_and_figures/', + 'galleries/examples/style_sheets/', 'galleries/examples/statistics/', 'galleries/examples/spines/', + 'galleries/examples/specialty_plots/', 'galleries/examples/showcase/', 'galleries/examples/shapes_and_collections/', + 'galleries/examples/scales/', 'galleries/examples/pyplots/', 'galleries/examples/mplot3d/', 'galleries/examples/misc/', + 'galleries/examples/lines_bars_and_markers/', 'galleries/examples/images_contours_and_fields/', + 'galleries/examples/event_handling/', 'galleries/examples/color/', 'galleries/examples/axisartist/', + 'galleries/examples/axes_grid1/', 'galleries/examples/animation/', + 'unsorted', + 'galleries/examples/pie_and_polar_charts/', 'galleries/examples/text_labels_and_annotations/', + 'galleries/examples/userdemo/', 'galleries/examples/widgets/' + ], + ['unsorted'], + ['galleries/plot_types/unstructured/', 'galleries/plot_types/stats/', + 'galleries/plot_types/basic/', 'galleries/plot_types/arrays/', 'galleries/plot_types/3D/', + 'unsorted' + ] +] \ No newline at end of file