From 9ba2f2a4cf3352456e57f3298d642ba28695d72b Mon Sep 17 00:00:00 2001 From: nparavicini7 Date: Wed, 9 Jul 2025 15:09:47 -0700 Subject: [PATCH 1/2] fixed little typo --- .../itemgraph_and_remap_data.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guide/13-managing-arcgis-applications/itemgraph_and_remap_data.ipynb b/guide/13-managing-arcgis-applications/itemgraph_and_remap_data.ipynb index 58860b1eb9..849bcb8fdc 100644 --- a/guide/13-managing-arcgis-applications/itemgraph_and_remap_data.ipynb +++ b/guide/13-managing-arcgis-applications/itemgraph_and_remap_data.ipynb @@ -77,7 +77,7 @@ "\n", "#### [`load_from_file()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#load-from-file)\n", "\n", - "This is the alternative way to create an `ItemGraph`. When working with a graph, users have the option to write it out to a saved [GML file format](https://networkx.org/documentation/stable/reference/readwrite/gml.html) via the [`write_to_file()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemGraph.write_to_file) method. GML is a format commonly used for saving/loading graphs between graphing libraries. Passing in an `ItemGraph` GML file to this function will reconstruct a graph with the same ID's and relationships. Users have the option to populate each `ItemNode` with item objects, or leave them strictly with ID's/relationships for the sake of performance (which is good when loading in a graph with thousands of items). We won't cover this function in this guide, but please refer to this [sample](/python/lateste/samples/org-wide-dependency-graph) for an advanced workflow demonstrating it.\n", + "This is the alternative way to create an `ItemGraph`. When working with a graph, users have the option to write it out to a saved [GML file format](https://networkx.org/documentation/stable/reference/readwrite/gml.html) via the [`write_to_file()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemGraph.write_to_file) method. GML is a format commonly used for saving/loading graphs between graphing libraries. Passing in an `ItemGraph` GML file to this function will reconstruct a graph with the same ID's and relationships. Users have the option to populate each `ItemNode` with item objects, or leave them strictly with ID's/relationships for the sake of performance (which is good when loading in a graph with thousands of items). We won't cover this function in this guide, but please refer to this [sample](/python/latest/samples/org-wide-dependency-graph) for an advanced workflow demonstrating it.\n", "\n", "Now that we know the basics of the code, let's jump into it. We'll use `create_dependency_graph()` to create an `ItemGraph`, then examine `ItemNode` instances in the graph to learn what our org items contain, are contained by, require to exist, and are required by to exist. We'll start with a Survey123 item." ] @@ -991,7 +991,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.2" + "version": "3.11.10" } }, "nbformat": 4, From 63f291f8b367c8e4c9f448b6d9009a96fa055b04 Mon Sep 17 00:00:00 2001 From: John Yaist Date: Thu, 10 Jul 2025 10:56:37 -0700 Subject: [PATCH 2/2] correct misspellings --- .../itemgraph_and_remap_data.ipynb | 6 +++--- .../org_wide_dependency_graph.ipynb | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/guide/13-managing-arcgis-applications/itemgraph_and_remap_data.ipynb b/guide/13-managing-arcgis-applications/itemgraph_and_remap_data.ipynb index 57a5650879..fc75c19329 100644 --- a/guide/13-managing-arcgis-applications/itemgraph_and_remap_data.ipynb +++ b/guide/13-managing-arcgis-applications/itemgraph_and_remap_data.ipynb @@ -112,7 +112,7 @@ "id": "da409930-f779-44b8-982b-305f146ef6d9", "metadata": {}, "source": [ - "Calling [`ItemGraph.all_items()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemGraph.all_items) lets a user see all of the items in the graph. One important thing to note: with this function, as well as the `ItemNode` functions that return dependencies, a user can elect to return the items in \"item\" form, \"id\" form, or \"node\" form (the default) by specifiying and `out_format` argument:" + "Calling [`ItemGraph.all_items()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemGraph.all_items) lets a user see all of the items in the graph. One important thing to note: with this function, as well as the `ItemNode` functions that return dependencies, a user can elect to return the items in \"item\" form, \"id\" form, or \"node\" form (the default) by specifiying an `out_format` argument:" ] }, { @@ -372,7 +372,7 @@ "source": [ "An important thing to remember is that `create_dependency_graph()` finds relationships from the top down, so [`contained_by()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemNode.contained_by) and [`required_by()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemNode.required_by) will only show items that have been analyzed along the way from our root node(s)- they're not a full picture of _every_ item in the organization that may contain or require a specific item, just the ones contained under the umbrella of our original item. However, [`contains()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemNode.contains) and [`requires()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemNode.requires) do indeed show every item in an org that are contained or required by a given item.\n", "\n", - "To get the full, org-wide picture with `contained_by()` or `required_by()`, a graph would need to be made with every item in the organization. See this sample(insert link) for a guide on how to create and manage that type of graph." + "To get the full, org-wide picture with `contained_by()` or `required_by()`, a graph would need to be made with every item in the organization. See [this sample](/python/latest/samples/org-wide-dependency-graph) for a guide on how to create and manage that type of graph." ] }, { @@ -991,7 +991,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.10" + "version": "3.13.2" } }, "nbformat": 4, diff --git a/samples/03_org_administrators/org_wide_dependency_graph.ipynb b/samples/03_org_administrators/org_wide_dependency_graph.ipynb index 00e14193bd..b46467e247 100644 --- a/samples/03_org_administrators/org_wide_dependency_graph.ipynb +++ b/samples/03_org_administrators/org_wide_dependency_graph.ipynb @@ -13,7 +13,7 @@ "id": "a8fd2570-ff4b-4cec-9269-cbf542cd66af", "metadata": {}, "source": [ - "Version 2.4.1 of the ArcGIS API for Python brought about some exciting new functionality for content management: the `arcgis.apps.itemgraph` module. This module, in it's most basic usage, allows you to take an item in an organization and examine the deep dependencies of it- what items it needs to exist, what items those items need to exist, and so on. This is very helpful for management of apps and smaller subsets of org items, but what if we really want to push the limits of what we can do with this module?\n", + "Version 2.4.1 of the ArcGIS API for Python brought about some exciting new functionality for content management: the [`arcgis.apps.itemgraph`](/python/latest/api-reference/arcgis.apps.itemgraph.html) module. This module, in it's most basic usage, allows you to take an item in an organization and examine the deep dependencies of it- what items it needs to exist, what items those items need to exist, and so on. This is very helpful for management of apps and smaller subsets of org items, but what if we really want to push the limits of what we can do with this module?\n", "\n", "With a little patience and creativity, we can create an actively-updated dependency graph that encapsulates every item in our organization. Doing so opens up all sorts of doors for us, such as:\n", "- The ability to examine the total reverse dependencies of an item (e.g., take a feature layer- we can see every app or map in our org that requires it to exist, or that will be effected by a change to it\n", @@ -54,7 +54,7 @@ "\n", "This builds the initial dependency graph by indexing over every single item in the organization. This only needs to be run once, and will likely take a very long time, depending on how many items are in the org. Once it's been run and the graph structure and time stamp are saved into files, this notebook that updates the dependency graph can be run. This first cell can also be executed outside of ArcGIS Notebooks, and the .gml and .txt files can be brought in from elsewhere.\n", "\n", - "*Note: Comment out this cell after the first time running the notebook.*" + "> **Note:** Comment out this cell after the first time running the notebook." ] }, { @@ -91,7 +91,7 @@ "source": [ "### Efficiently Analyzing the Existent Graph\n", "\n", - "This workflow is predicated on preserving our graph offline in a [GML format file](https://networkx.org/documentation/stable/reference/readwrite/gml.html), which is a commonly used file type for storing graph structures. Our `write_to_file()` function generates a .gml file with both the basic graph structure and some additional metadata that informs our `load_from_file()` function how to grab a given item from a GIS organization.\n", + "This workflow is predicated on preserving our graph offline in a [GML format file](https://networkx.org/documentation/stable/reference/readwrite/gml.html), which is a commonly used file type for storing graph structures. Our [`write_to_file()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.ItemGraph.write_to_file) function generates a .gml file with both the basic graph structure and some additional metadata that informs our [`load_from_file()`](/python/latest/api-reference/arcgis.apps.itemgraph.html#arcgis.apps.itemgraph.load_from_file) function how to grab a given item from a GIS organization.\n", "\n", "When loading up an existent graph based on a .gml file, it still may take some time to retrieve every single item associated with each node in the graph, especially for organizations with thousands and thousands of items. If you want to instantly analyze the items and relationships in a .gml file with thousands of records, we can call `load_to_file()` and elect to *not* retrieve each item. This still gives us the power to view all item id's and their dependencies in the org, but without the overhead of retrieving each one from a REST endpoint first. Users can simply retrieve the associated items as needed, based on the id's.\n", "\n", @@ -803,7 +803,7 @@ "id": "fd4c5d32-2f52-44d0-a59d-c5beaec43493", "metadata": {}, "source": [ - "Given this list of items with ID's that lead nowhere, we can grab the node for any one of them and do what we did above- see which org items contain or require them. From there, we can figure out how to fix it- one option is using the `remap_data()` function, documented [here](https://developers.arcgis.com/python/latest/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.remap_data)." + "Given this list of items with ID's that lead nowhere, we can grab the node for any one of them and do what we did above- see which org items contain or require them. From there, we can figure out how to fix it- one option is using the `remap_data()` function, documented [here](/python/latest/api-reference/arcgis.gis.toc.html#arcgis.gis.Item.remap_data)." ] }, { @@ -1183,7 +1183,7 @@ "source": [ "Everything we've done in this notebook is purely informative- no changes, additions, or deletions to org items were done. All we've done is update and manipulate or ItemGraph in memory and written out to file. So what does this mean? \n", "\n", - "This means that you can download this very notebook and run it for yourself. Keeping this notebook run on a consistent timeframe will provide you with an up-to-date graph to analyze your org items. ArcGIS Notebooks, in both ArcGIS Online and ArcGIS Enteprise, provide us with an easy way to schedule automation of notebooks. Let's take a look how.\n", + "This means that you can download this very notebook and run it for yourself. Keeping this notebook run on a consistent timeframe will provide you with an up-to-date graph to analyze your org items. ArcGIS Notebooks, in both ArcGIS Online and ArcGIS Enterprise, provide us with an easy way to schedule automation of notebooks. Let's take a look how.\n", "\n", "### Scheduling a Task\n", "\n", @@ -1259,7 +1259,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.10" + "version": "3.13.2" } }, "nbformat": 4,