Skip to content

Commit bc07b3e

Browse files
myersau3ryandanehy
authored andcommitted
Pull request #226: updates to documentation & Updated Factory dict method to deepcopy dict
Merge in HYP/hypernetx from updating-documentation to master * commit 'd7b2c06e019ef79259ebfe4071ac25bfdb2fc91d': bump: version 2.3.12 → 2.3.13 Updating factory dict method to deepcopy dict updates to documentation
2 parents 17484bf + d7b2c06 commit bc07b3e

File tree

13 files changed

+93
-45
lines changed

13 files changed

+93
-45
lines changed

.cz.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.commitizen]
22
name = "cz_conventional_commits"
3-
version = "2.3.12"
3+
version = "2.3.13"
44
version_provider = "poetry"
55
version_files = [
66
"pyproject.toml",

docs/source/algorithms/hypergraph_modularity_and_clustering.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Modularity and Clustering
66
=========================
77

8-
.. image:: images/ModularityScreenShot.png
8+
.. image:: ../images/ModularityScreenShot.png
99
:width: 300px
1010
:align: right
1111

docs/source/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
import os
2020

2121

22-
__version__ = "2.3.12"
22+
__version__ = "2.3.13"
2323

2424

2525
# If extensions (or modules to document with autodoc) are in another directory,
2626
# add these directories to sys.path here. If the directory is relative to the
2727
# documentation root, use os.path.abspath to make it absolute, like shown here.
2828
sys.path.insert(0, os.path.abspath("../../hypernetx"))
29-
29+
sys.path.insert(0, os.path.abspath("../.."))
3030

3131
# -- Project information -----------------------------------------------------
3232

docs/source/core.rst

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
11
.. _core:
22

33
==================
4-
HyperNetX Packages
4+
HyperNetX
55
==================
66

7+
HyperNetX is a Python package designed for the creation, manipulation, and analysis of hypergraphs. This documentation provides a detailed reference for the core components of the library. These components are:
8+
9+
* **Hypergraphs:** This section documents the core data structures and classes used to represent hypergraphs within HyperNetX. It includes detailed API documentation for classes such as `Hypergraph`, `PropertyStore`, `IncidenceStore`, and `HypergraphView`, along with their associated methods and attributes.
10+
11+
* **Algorithms:** This section documents the algorithms implemented in HyperNetX for analyzing hypergraphs. It provides API documentation for functions related to connectivity, distance, centrality, community detection, and other hypergraph metrics.
12+
13+
* **Drawing:** This section documents the tools provided by HyperNetX for visualizing hypergraphs. It includes API documentation for functions and classes related to layout algorithms, rendering options, and other visualization utilities.
14+
15+
* **Reports:** This section documents the functionality for generating reports and summaries of hypergraph data. It provides API documentation for functions that calculate statistical information and other relevant metrics.
16+
17+
For detailed API documentation of each component, please explore the following sections:
18+
719
.. toctree::
20+
:maxdepth: 1
21+
:titlesonly:
822

9-
Hypergraphs <classes/modules.rst>
10-
Algorithms <algorithms/modules.rst>
11-
Drawing <drawing/modules.rst>
12-
Reports <reports/modules.rst>
23+
Hypergraphs <classes/modules.rst>
24+
Algorithms <algorithms/modules.rst>
25+
Drawing <drawing/modules.rst>
26+
Reports <reports/modules.rst>

docs/source/glossary.rst

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,5 @@
11
.. _glossary:
22

3-
===================
4-
HNX Data Structures
5-
===================
6-
7-
.. figure:: images/code_structure.png
8-
:width: 300px
9-
:align: right
10-
11-
Code structure for HNX.
12-
13-
The HNX library centers around the idea of a :term:`hypergraph`.
14-
There are many definitions of a *hypergraph*. In HNX a hypergraph
15-
is a tuple of three sets, :math:`H = (V, E, \mathcal{I})`.
16-
17-
- :math:`V`, a set of *nodes* (aka hypernodes, vertices), distinguished by unique identifiers
18-
- :math:`E` a set of *edges* (aka hyperedges), distinguished by unique identifiers
19-
- :math:`\mathcal{I}`, a set of *incidences*, which form a subset of :math:`E \times V`, distinguished by the pairing of unique identifiers of edges in :math:`E` and nodes in :math:`V`
20-
21-
The incidences :math:`\mathcal{I}` can be described by a Boolean function, :math:`\mathcal{I}_B : E \times V \rightarrow \{0, 1\}`, indicating whether or not a pair is included in the hypergraph.
22-
23-
In HNX we instantiate :math:`H = (V, E, \mathcal{I})` using three *hypergraph views.* We can visualize this through a high
24-
level diagram of our current code structure shown in Fig. 1. Here we begin with data (e.g., data frame, dictionary,
25-
list of lists, etc.) that is digested via the appropriate factory method to construct property stores for nodes,
26-
edges, and incidences as well as an incidence store that captures the hypergraph structure.
27-
These four objects are then used to create three hypergraph views that the hypergraph object
28-
uses to access and analyze the hypergraph structure and attributes.
29-
303

314
=====================
325
Glossary of HNX terms
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
.. _hypconstructors:
3+
4+
5+
===================
6+
HNX Data Structures
7+
===================
8+
9+
.. figure:: images/code_structure.png
10+
:width: 300px
11+
:align: right
12+
13+
Code structure for HNX.
14+
15+
The HNX library centers around the idea of a :term:`hypergraph`.
16+
There are many definitions of a *hypergraph*. In HNX a hypergraph
17+
is a tuple of three sets, :math:`H = (V, E, \mathcal{I})`.
18+
19+
- :math:`V`, a set of *nodes* (aka hypernodes, vertices), distinguished by unique identifiers
20+
- :math:`E` a set of *edges* (aka hyperedges), distinguished by unique identifiers
21+
- :math:`\mathcal{I}`, a set of *incidences*, which form a subset of :math:`E \times V`, distinguished by the pairing of unique identifiers of edges in :math:`E` and nodes in :math:`V`
22+
23+
The incidences :math:`\mathcal{I}` can be described by a Boolean function, :math:`\mathcal{I}_B : E \times V \rightarrow \{0, 1\}`, indicating whether or not a pair is included in the hypergraph.
24+
25+
In HNX we instantiate :math:`H = (V, E, \mathcal{I})` using three *hypergraph views.* We can visualize this through a high
26+
level diagram of our current code structure shown in Fig. 1. Here we begin with data (e.g., data frame, dictionary,
27+
list of lists, etc.) that is digested via the appropriate factory method to construct property stores for nodes,
28+
edges, and incidences as well as an incidence store that captures the hypergraph structure.
29+
These four objects are then used to create three hypergraph views that the hypergraph object
30+
uses to access and analyze the hypergraph structure and attributes.
31+

docs/source/hypconstructors.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11

22
.. _hypconstructors:
33

4+
5+
46
=======================
57
Hypergraph Constructors
68
=======================

docs/source/index.rst

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,8 @@ Contents
5454
Home <self>
5555
overview/index
5656
install
57-
Glossary <glossary>
57+
introduction
5858
core
59-
A Gentle Introduction to Hypergraph Mathematics <hypergraph101>
60-
Hypergraph Constructors <hypconstructors>
6159
Visualization Widget <widget>
6260
Modules <modules>
6361
Publications <publications>

docs/source/install.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ Installing HyperNetX
55
The recommended installation method for most users is to create a virtual environment
66
and install HyperNetX from PyPi.
77

8+
.. code-block:: bash
9+
10+
pip install hypernetx
11+
812
.. _Github: https://github.com/pnnl/HyperNetX
913

1014
HyperNetX may be cloned or forked from Github_.

docs/source/introduction.rst

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
.. _introduction:
2+
3+
********************
4+
Introduction
5+
********************
6+
7+
8+
This documentation provides a comprehensive guide to the HyperNetworkX (HNX) library, a Python package for working with hypergraphs. This guide covers the mathematical foundations of hypergraphs, the key terminology used within HNX, the core data structures employed by the library, and practical methods for constructing hypergraphs. Specifically:
9+
10+
* **A Gentle Introduction to Hypergraph Mathematics:** This section provides a basic introduction to hypergraphs, explaining how they generalize traditional graphs and introducing key concepts like hyperedges, incidence matrices, and the duality of hypergraphs. It focuses on "gentle" hypergraphs (simple, finite, connected, etc.) to build a solid foundation before touching on more complex topics.
11+
12+
* **Glossary of HNX Terms:** This section offers a comprehensive glossary of terms used throughout the HNX library documentation. It defines key concepts related to hypergraphs, such as nodes, edges, incidences, various types of adjacency, connectivity, and distance, as well as HNX-specific terms like PropertyStore, IncidenceStore, and HypergraphView.
13+
14+
* **Data Structures:** This section describes the core data structures used within the HNX library to represent and manage hypergraphs. It explains how these structures organize nodes, edges, and incidences, and how they facilitate efficient access and manipulation of hypergraph data.
15+
16+
* **Hypergraph Constructors:** This section details the various ways to construct hypergraphs using the HNX library. It explains how to create hypergraphs from different data structures, including lists of lists, dictionaries, and Pandas DataFrames, and describes how to associate metadata and properties with nodes, edges, and incidences.
17+
18+
For more detailed information on each of these areas, please explore the following sections:
19+
20+
.. toctree::
21+
:maxdepth: 2
22+
23+
A Gentle Introduction to Hypergraph Mathematics <hypergraph101>
24+
Glossary <glossary>
25+
Data Structures <hnx_data_structures>
26+
Hypergraph Constructors <hypconstructors>

0 commit comments

Comments
 (0)