From cb25f35595b220b0573170954183d6c296d511e5 Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Fri, 16 Dec 2022 22:09:46 -0800 Subject: [PATCH] Docs for Graph. --- docs/conf.py | 35 ++++++++++++++++++----------------- docs/pyutils.rst | 8 ++++++++ docs/pyutils.types.rst | 8 ++++++++ src/pyutils/graph.py | 39 +++++++++++++++++++++------------------ 4 files changed, 55 insertions(+), 35 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 182d5a3..64bbaf8 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -13,17 +13,17 @@ import os import sys -sys.path.insert(0, os.path.abspath('/home/scott/lib/release/pyutils')) +sys.path.insert(0, os.path.abspath("/home/scott/lib/release/pyutils")) sys.path.insert( - 0, os.path.abspath('/home/scott/py39-venv/lib/python3.9/site-packages/') + 0, os.path.abspath("/home/scott/py39-venv/lib/python3.9/site-packages/") ) -sys.path.insert(0, os.path.abspath('/usr/local/lib/python3.9/site-packages/')) +sys.path.insert(0, os.path.abspath("/usr/local/lib/python3.9/site-packages/")) # -- Project information ----------------------------------------------------- project = "pyutils" -copyright = '2021-2022, Scott Gasch' -author = 'Scott Gasch' +copyright = "2021-2022, Scott Gasch" +author = "Scott Gasch" # -- General configuration --------------------------------------------------- @@ -32,21 +32,22 @@ author = 'Scott Gasch' # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.doctest', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', + "sphinx.ext.autodoc", + "sphinx.ext.doctest", + "sphinx.ext.napoleon", + "sphinx.ext.viewcode", + "sphinx.ext.graphviz", ] autodoc_typehints = "both" # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] # -- Options for HTML output ------------------------------------------------- @@ -54,15 +55,15 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" html_theme_options = { - 'navigation_depth': 5, + "navigation_depth": 5, } # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] # Don't skip __init__()! @@ -74,8 +75,8 @@ def setup(app): app.connect("autodoc-skip-member", skip) -doctest_global_setup = ''' +doctest_global_setup = """ import pyutils -''' +""" -autoclass_content = 'both' +autoclass_content = "both" diff --git a/docs/pyutils.rst b/docs/pyutils.rst index 4e8fdff..3581bef 100644 --- a/docs/pyutils.rst +++ b/docs/pyutils.rst @@ -2316,6 +2316,14 @@ pyutils.function\_utils module :undoc-members: :show-inheritance: +pyutils.graph module +------------------------------ + +.. automodule:: pyutils.graph + :members: + :undoc-members: + :show-inheritance: + pyutils.id\_generator module ---------------------------- diff --git a/docs/pyutils.types.rst b/docs/pyutils.types.rst index e5729d2..628aa29 100644 --- a/docs/pyutils.types.rst +++ b/docs/pyutils.types.rst @@ -40,6 +40,14 @@ pyutils.types.rate module :undoc-members: :show-inheritance: +pyutils.types.simple module +--------------------------- + +.. automodule:: pyutils.types.simple + :members: + :undoc-members: + :show-inheritance: + pyutils.types.type\_utils module -------------------------------- diff --git a/src/pyutils/graph.py b/src/pyutils/graph.py index 428dd16..e596697 100644 --- a/src/pyutils/graph.py +++ b/src/pyutils/graph.py @@ -16,8 +16,7 @@ class Graph(object): """Constructs a new Graph object. Args: - directed: are we modeling a directed graph? See ::meth - add_edge. + directed: are we modeling a directed graph? See :meth:`add_edge`. """ self.directed = directed @@ -56,8 +55,8 @@ class Graph(object): .. note:: - If either or both of src and dest are not already added to the - graph, they are implicitly added by adding this edge. + If either or both of src and dest are not already added to + the graph, they are implicitly added by adding this edge. Args: src: the source vertex id @@ -129,13 +128,15 @@ class Graph(object): Returns: An ordered sequence of vertex ids visited by the traversal. - A ------ B - | | - | | - C ------ D ------ E ------ F -O - | - | - G + .. graphviz:: + + graph g { + node [shape=record]; + A -- B -- D; + A -- C -- D -- E -- F; + F -- F; + E -- G; + } >>> g = Graph() >>> g.add_edge('A', 'B') @@ -181,13 +182,15 @@ class Graph(object): Returns: An ordered sequence of vertex ids visited by the traversal. - A ------ B - | | - | | - C ------ D ------ E ------ F -O - | - | - G + .. graphviz:: + + graph g { + node [shape=record]; + A -- B -- D; + A -- C -- D -- E -- F; + F -- F; + E -- G; + } >>> g = Graph() >>> g.add_edge('A', 'B') -- 2.45.2