From 5ea6c05fcaf89fbe9ad1ce38ed98d5d07c46fbe3 Mon Sep 17 00:00:00 2001 From: Renata Imai Date: Thu, 12 Dec 2024 08:57:04 -0300 Subject: [PATCH] split examples folder --- .github/workflows/documentation.yml | 2 +- .gitignore | 9 +++---- .../aequilibrae_project/examples/index.rst | 2 ++ .../examples}/plot_check_logging.py | 0 .../examples}/plot_logging_to_terminal.py | 0 docs/source/conf.py | 25 +++++++++--------- .../aequilibrae_without_a_model/readme.rst | 2 -- .../examples/assignment_workflows/readme.rst | 2 -- .../examples/creating_models/readme.rst | 2 -- .../examples/editing_networks/readme.rst | 3 --- .../examples/other_applications/readme.rst | 2 -- docs/source/examples/readme.rst | 4 --- docs/source/examples/skimming/readme.rst | 2 -- docs/source/examples/visualization/readme.rst | 3 --- .../network_manipulation/examples/index.rst | 2 ++ .../examples}/plot_create_from_gmns.py | 0 .../examples}/plot_create_from_layer.py | 0 .../examples}/plot_create_from_osm.py | 0 .../examples}/plot_delaunay_lines.py | 0 .../examples}/plot_display.py | 0 .../examples}/plot_export_to_gmns.py | 0 .../examples}/plot_find_disconnected.py | 0 .../examples}/plot_moving_link_extremity.py | 0 .../examples}/plot_moving_nodes.py | 0 .../examples}/plot_path_computation.py | 0 .../examples}/plot_skimming.py | 0 .../examples}/plot_splitting_link.py | 0 .../project_components/examples/index.rst | 2 ++ .../examples}/plot_create_zoning.py | 0 .../examples}/plot_import_gtfs.py | 0 docs/source/route_choice/examples/index.rst | 2 ++ .../examples}/plot_route_choice_basics.py | 0 .../examples}/plot_route_choice_set.py | 0 .../examples}/plot_subarea_analysis.py | 0 .../traffic_assignment/examples/index.rst | 2 ++ .../plot_assignment_without_model.py | 0 .../examples}/plot_forecasting.py | 0 .../examples}/plot_ipf_without_model.py | 0 .../examples}/select_link_analysis.omx | Bin 15568 -> 15514 bytes .../transit_assignment/examples/index.rst | 2 ++ .../plot_public_transit_assignment.py | 0 docs/website/check_documentation_versions.py | 2 +- 42 files changed, 30 insertions(+), 40 deletions(-) create mode 100644 docs/source/aequilibrae_project/examples/index.rst rename docs/source/{examples/other_applications => aequilibrae_project/examples}/plot_check_logging.py (100%) rename docs/source/{examples/other_applications => aequilibrae_project/examples}/plot_logging_to_terminal.py (100%) delete mode 100644 docs/source/examples/aequilibrae_without_a_model/readme.rst delete mode 100644 docs/source/examples/assignment_workflows/readme.rst delete mode 100644 docs/source/examples/creating_models/readme.rst delete mode 100644 docs/source/examples/editing_networks/readme.rst delete mode 100644 docs/source/examples/other_applications/readme.rst delete mode 100644 docs/source/examples/readme.rst delete mode 100644 docs/source/examples/skimming/readme.rst delete mode 100644 docs/source/examples/visualization/readme.rst create mode 100644 docs/source/network_manipulation/examples/index.rst rename docs/source/{examples/creating_models => network_manipulation/examples}/plot_create_from_gmns.py (100%) rename docs/source/{examples/creating_models => network_manipulation/examples}/plot_create_from_layer.py (100%) rename docs/source/{examples/creating_models => network_manipulation/examples}/plot_create_from_osm.py (100%) rename docs/source/{examples/visualization => network_manipulation/examples}/plot_delaunay_lines.py (100%) rename docs/source/{examples/visualization => network_manipulation/examples}/plot_display.py (100%) rename docs/source/{examples/other_applications => network_manipulation/examples}/plot_export_to_gmns.py (100%) rename docs/source/{examples/other_applications => network_manipulation/examples}/plot_find_disconnected.py (100%) rename docs/source/{examples/editing_networks => network_manipulation/examples}/plot_moving_link_extremity.py (100%) rename docs/source/{examples/editing_networks => network_manipulation/examples}/plot_moving_nodes.py (100%) rename docs/source/{examples/skimming => network_manipulation/examples}/plot_path_computation.py (100%) rename docs/source/{examples/skimming => network_manipulation/examples}/plot_skimming.py (100%) rename docs/source/{examples/editing_networks => network_manipulation/examples}/plot_splitting_link.py (100%) create mode 100644 docs/source/project_components/examples/index.rst rename docs/source/{examples/creating_models => project_components/examples}/plot_create_zoning.py (100%) rename docs/source/{examples/creating_models => project_components/examples}/plot_import_gtfs.py (100%) create mode 100644 docs/source/route_choice/examples/index.rst rename docs/source/{examples/assignment_workflows => route_choice/examples}/plot_route_choice_basics.py (100%) rename docs/source/{examples/assignment_workflows => route_choice/examples}/plot_route_choice_set.py (100%) rename docs/source/{examples/assignment_workflows => route_choice/examples}/plot_subarea_analysis.py (100%) create mode 100644 docs/source/traffic_assignment/examples/index.rst rename docs/source/{examples/aequilibrae_without_a_model => traffic_assignment/examples}/plot_assignment_without_model.py (100%) rename docs/source/{examples/assignment_workflows => traffic_assignment/examples}/plot_forecasting.py (100%) rename docs/source/{examples/aequilibrae_without_a_model => traffic_assignment/examples}/plot_ipf_without_model.py (100%) rename docs/source/{examples/assignment_workflows => traffic_assignment/examples}/select_link_analysis.omx (72%) create mode 100644 docs/source/transit_assignment/examples/index.rst rename docs/source/{examples/assignment_workflows => transit_assignment/examples}/plot_public_transit_assignment.py (100%) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 7938e5144..12a06e01a 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -64,7 +64,7 @@ jobs: - name: Build documentation run: | - jupyter nbconvert --to rst docs/source/useful_information/validation_benchmarking/IPF_benchmark.ipynb + jupyter nbconvert --to rst docs/source/traffic_assignment/validation_benchmarking/IPF_benchmark.ipynb sphinx-build -M latexpdf docs/source docs/source/_static -D plot_gallery=False sphinx-build -D plot_gallery=False -b html docs/source docs/build python -m zipfile -c AequilibraE.zip docs/build diff --git a/.gitignore b/.gitignore index fa41d8b1e..96fd4828a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,11 +2,10 @@ _build _static _templates -docs/source/sg_execution_times.rst -docs/source/_auto_examples -docs/source/useful_links/_generated -docs/source/aequilibrae_project/project_database/data_model -docs/source/aequilibrae_project/transit_database/data_model +sg_execution_times.rst +_auto_examples +_generated +data_model # User-specific stuff: .idea/**/workspace.xml diff --git a/docs/source/aequilibrae_project/examples/index.rst b/docs/source/aequilibrae_project/examples/index.rst new file mode 100644 index 000000000..5259be673 --- /dev/null +++ b/docs/source/aequilibrae_project/examples/index.rst @@ -0,0 +1,2 @@ +AequilibraE Project +------------------- \ No newline at end of file diff --git a/docs/source/examples/other_applications/plot_check_logging.py b/docs/source/aequilibrae_project/examples/plot_check_logging.py similarity index 100% rename from docs/source/examples/other_applications/plot_check_logging.py rename to docs/source/aequilibrae_project/examples/plot_check_logging.py diff --git a/docs/source/examples/other_applications/plot_logging_to_terminal.py b/docs/source/aequilibrae_project/examples/plot_logging_to_terminal.py similarity index 100% rename from docs/source/examples/other_applications/plot_logging_to_terminal.py rename to docs/source/aequilibrae_project/examples/plot_logging_to_terminal.py diff --git a/docs/source/conf.py b/docs/source/conf.py index aafab849e..ddce09027 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -72,21 +72,20 @@ # Change plot_gallery to True to start building examples again sphinx_gallery_conf = { - "examples_dirs": ["examples"], # path to your example scripts - "gallery_dirs": ["_auto_examples"], # path to where to save gallery generated output + "examples_dirs": ["aequilibrae_project/examples", + "network_manipulation/examples", + "project_components/examples", + "route_choice/examples", + "traffic_assignment/examples", + "transit_assignment/examples"], # path to your example scripts + "gallery_dirs": ["aequilibrae_project/_auto_examples", + "network_manipulation/_auto_examples", + "project_components/_auto_examples", + "route_choice/_auto_examples", + "traffic_assignment/_auto_examples", + "transit_assignment/_auto_examples"], # path to where to save gallery generated output "capture_repr": ("_repr_html_", "__repr__"), "remove_config_comments": True, - "subsection_order": ExplicitOrder( - [ - "examples/creating_models", - "examples/editing_networks", - "examples/skimming", - "examples/assignment_workflows", - "examples/aequilibrae_without_a_model", - "examples/visualization", - "examples/other_applications", - ] - ), "plot_gallery": True, } diff --git a/docs/source/examples/aequilibrae_without_a_model/readme.rst b/docs/source/examples/aequilibrae_without_a_model/readme.rst deleted file mode 100644 index 0951bdc06..000000000 --- a/docs/source/examples/aequilibrae_without_a_model/readme.rst +++ /dev/null @@ -1,2 +0,0 @@ -AequilibraE without a Model ---------------------------- diff --git a/docs/source/examples/assignment_workflows/readme.rst b/docs/source/examples/assignment_workflows/readme.rst deleted file mode 100644 index e0731339f..000000000 --- a/docs/source/examples/assignment_workflows/readme.rst +++ /dev/null @@ -1,2 +0,0 @@ -Assignment Workflows --------------------- diff --git a/docs/source/examples/creating_models/readme.rst b/docs/source/examples/creating_models/readme.rst deleted file mode 100644 index 42b35fea5..000000000 --- a/docs/source/examples/creating_models/readme.rst +++ /dev/null @@ -1,2 +0,0 @@ -Creating Models ---------------- diff --git a/docs/source/examples/editing_networks/readme.rst b/docs/source/examples/editing_networks/readme.rst deleted file mode 100644 index 40d38f1aa..000000000 --- a/docs/source/examples/editing_networks/readme.rst +++ /dev/null @@ -1,3 +0,0 @@ -Editing networks ----------------- - diff --git a/docs/source/examples/other_applications/readme.rst b/docs/source/examples/other_applications/readme.rst deleted file mode 100644 index 1aebd1611..000000000 --- a/docs/source/examples/other_applications/readme.rst +++ /dev/null @@ -1,2 +0,0 @@ -Other Applications ------------------- diff --git a/docs/source/examples/readme.rst b/docs/source/examples/readme.rst deleted file mode 100644 index 1a830a406..000000000 --- a/docs/source/examples/readme.rst +++ /dev/null @@ -1,4 +0,0 @@ -Examples -======== - -A series of different examples using AequilibraE's main features diff --git a/docs/source/examples/skimming/readme.rst b/docs/source/examples/skimming/readme.rst deleted file mode 100644 index 497f8bc3b..000000000 --- a/docs/source/examples/skimming/readme.rst +++ /dev/null @@ -1,2 +0,0 @@ -Skimming --------- \ No newline at end of file diff --git a/docs/source/examples/visualization/readme.rst b/docs/source/examples/visualization/readme.rst deleted file mode 100644 index ea4373fdb..000000000 --- a/docs/source/examples/visualization/readme.rst +++ /dev/null @@ -1,3 +0,0 @@ -Visualization -------------- -Examples in this session allows the user to plot some data visualization. \ No newline at end of file diff --git a/docs/source/network_manipulation/examples/index.rst b/docs/source/network_manipulation/examples/index.rst new file mode 100644 index 000000000..d82c5932d --- /dev/null +++ b/docs/source/network_manipulation/examples/index.rst @@ -0,0 +1,2 @@ +Network Manipulation +-------------------- \ No newline at end of file diff --git a/docs/source/examples/creating_models/plot_create_from_gmns.py b/docs/source/network_manipulation/examples/plot_create_from_gmns.py similarity index 100% rename from docs/source/examples/creating_models/plot_create_from_gmns.py rename to docs/source/network_manipulation/examples/plot_create_from_gmns.py diff --git a/docs/source/examples/creating_models/plot_create_from_layer.py b/docs/source/network_manipulation/examples/plot_create_from_layer.py similarity index 100% rename from docs/source/examples/creating_models/plot_create_from_layer.py rename to docs/source/network_manipulation/examples/plot_create_from_layer.py diff --git a/docs/source/examples/creating_models/plot_create_from_osm.py b/docs/source/network_manipulation/examples/plot_create_from_osm.py similarity index 100% rename from docs/source/examples/creating_models/plot_create_from_osm.py rename to docs/source/network_manipulation/examples/plot_create_from_osm.py diff --git a/docs/source/examples/visualization/plot_delaunay_lines.py b/docs/source/network_manipulation/examples/plot_delaunay_lines.py similarity index 100% rename from docs/source/examples/visualization/plot_delaunay_lines.py rename to docs/source/network_manipulation/examples/plot_delaunay_lines.py diff --git a/docs/source/examples/visualization/plot_display.py b/docs/source/network_manipulation/examples/plot_display.py similarity index 100% rename from docs/source/examples/visualization/plot_display.py rename to docs/source/network_manipulation/examples/plot_display.py diff --git a/docs/source/examples/other_applications/plot_export_to_gmns.py b/docs/source/network_manipulation/examples/plot_export_to_gmns.py similarity index 100% rename from docs/source/examples/other_applications/plot_export_to_gmns.py rename to docs/source/network_manipulation/examples/plot_export_to_gmns.py diff --git a/docs/source/examples/other_applications/plot_find_disconnected.py b/docs/source/network_manipulation/examples/plot_find_disconnected.py similarity index 100% rename from docs/source/examples/other_applications/plot_find_disconnected.py rename to docs/source/network_manipulation/examples/plot_find_disconnected.py diff --git a/docs/source/examples/editing_networks/plot_moving_link_extremity.py b/docs/source/network_manipulation/examples/plot_moving_link_extremity.py similarity index 100% rename from docs/source/examples/editing_networks/plot_moving_link_extremity.py rename to docs/source/network_manipulation/examples/plot_moving_link_extremity.py diff --git a/docs/source/examples/editing_networks/plot_moving_nodes.py b/docs/source/network_manipulation/examples/plot_moving_nodes.py similarity index 100% rename from docs/source/examples/editing_networks/plot_moving_nodes.py rename to docs/source/network_manipulation/examples/plot_moving_nodes.py diff --git a/docs/source/examples/skimming/plot_path_computation.py b/docs/source/network_manipulation/examples/plot_path_computation.py similarity index 100% rename from docs/source/examples/skimming/plot_path_computation.py rename to docs/source/network_manipulation/examples/plot_path_computation.py diff --git a/docs/source/examples/skimming/plot_skimming.py b/docs/source/network_manipulation/examples/plot_skimming.py similarity index 100% rename from docs/source/examples/skimming/plot_skimming.py rename to docs/source/network_manipulation/examples/plot_skimming.py diff --git a/docs/source/examples/editing_networks/plot_splitting_link.py b/docs/source/network_manipulation/examples/plot_splitting_link.py similarity index 100% rename from docs/source/examples/editing_networks/plot_splitting_link.py rename to docs/source/network_manipulation/examples/plot_splitting_link.py diff --git a/docs/source/project_components/examples/index.rst b/docs/source/project_components/examples/index.rst new file mode 100644 index 000000000..116d80594 --- /dev/null +++ b/docs/source/project_components/examples/index.rst @@ -0,0 +1,2 @@ +Project Components +------------------ \ No newline at end of file diff --git a/docs/source/examples/creating_models/plot_create_zoning.py b/docs/source/project_components/examples/plot_create_zoning.py similarity index 100% rename from docs/source/examples/creating_models/plot_create_zoning.py rename to docs/source/project_components/examples/plot_create_zoning.py diff --git a/docs/source/examples/creating_models/plot_import_gtfs.py b/docs/source/project_components/examples/plot_import_gtfs.py similarity index 100% rename from docs/source/examples/creating_models/plot_import_gtfs.py rename to docs/source/project_components/examples/plot_import_gtfs.py diff --git a/docs/source/route_choice/examples/index.rst b/docs/source/route_choice/examples/index.rst new file mode 100644 index 000000000..db80ba10b --- /dev/null +++ b/docs/source/route_choice/examples/index.rst @@ -0,0 +1,2 @@ +Route Choice +------------ \ No newline at end of file diff --git a/docs/source/examples/assignment_workflows/plot_route_choice_basics.py b/docs/source/route_choice/examples/plot_route_choice_basics.py similarity index 100% rename from docs/source/examples/assignment_workflows/plot_route_choice_basics.py rename to docs/source/route_choice/examples/plot_route_choice_basics.py diff --git a/docs/source/examples/assignment_workflows/plot_route_choice_set.py b/docs/source/route_choice/examples/plot_route_choice_set.py similarity index 100% rename from docs/source/examples/assignment_workflows/plot_route_choice_set.py rename to docs/source/route_choice/examples/plot_route_choice_set.py diff --git a/docs/source/examples/assignment_workflows/plot_subarea_analysis.py b/docs/source/route_choice/examples/plot_subarea_analysis.py similarity index 100% rename from docs/source/examples/assignment_workflows/plot_subarea_analysis.py rename to docs/source/route_choice/examples/plot_subarea_analysis.py diff --git a/docs/source/traffic_assignment/examples/index.rst b/docs/source/traffic_assignment/examples/index.rst new file mode 100644 index 000000000..f3e30f4e8 --- /dev/null +++ b/docs/source/traffic_assignment/examples/index.rst @@ -0,0 +1,2 @@ +Traffic Assignment +------------------ \ No newline at end of file diff --git a/docs/source/examples/aequilibrae_without_a_model/plot_assignment_without_model.py b/docs/source/traffic_assignment/examples/plot_assignment_without_model.py similarity index 100% rename from docs/source/examples/aequilibrae_without_a_model/plot_assignment_without_model.py rename to docs/source/traffic_assignment/examples/plot_assignment_without_model.py diff --git a/docs/source/examples/assignment_workflows/plot_forecasting.py b/docs/source/traffic_assignment/examples/plot_forecasting.py similarity index 100% rename from docs/source/examples/assignment_workflows/plot_forecasting.py rename to docs/source/traffic_assignment/examples/plot_forecasting.py diff --git a/docs/source/examples/aequilibrae_without_a_model/plot_ipf_without_model.py b/docs/source/traffic_assignment/examples/plot_ipf_without_model.py similarity index 100% rename from docs/source/examples/aequilibrae_without_a_model/plot_ipf_without_model.py rename to docs/source/traffic_assignment/examples/plot_ipf_without_model.py diff --git a/docs/source/examples/assignment_workflows/select_link_analysis.omx b/docs/source/traffic_assignment/examples/select_link_analysis.omx similarity index 72% rename from docs/source/examples/assignment_workflows/select_link_analysis.omx rename to docs/source/traffic_assignment/examples/select_link_analysis.omx index ee5d839358aeded6f3d638eb1db01412d6a2dd75..b8836085ed8684098f3a90269b0b6452d596cece 100644 GIT binary patch delta 3446 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 H1!VpYv?t&B delta 3504 zcmYL~c{~%0AIF_3iRzJ_nWIQ_w<^J|qn>kM~PCyXL1$jQZp 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 Q!f*