Metadata-Version: 2.1
Name: hypernetx
Version: 2.0.5
Summary: HyperNetX is a Python library for the creation and study of hypergraphs.
Home-page: https://github.com/pnnl/HyperNetX
Author: Brenda Praggastis, Dustin Arendt, Sinan Aksoy, Emilie Purvine, Cliff Joslyn
Author-email: hypernetx@pnnl.gov
License: 3-Clause BSD license
Description-Content-Type: text/x-rst
License-File: LICENSE.rst
Requires-Dist: networkx<3.0,>=2.2
Requires-Dist: numpy<2.0,>=1.24.0
Requires-Dist: scipy<2.0,>=1.1.0
Requires-Dist: matplotlib>3.0
Requires-Dist: scikit-learn>=0.20.0
Requires-Dist: pandas>=1.5.3
Requires-Dist: decorator>=5.1.1
Provides-Extra: releases
Requires-Dist: commitizen>=3.2.1; extra == "releases"
Provides-Extra: linting
Requires-Dist: pre-commit>=3.2.2; extra == "linting"
Requires-Dist: pylint>=2.17.2; extra == "linting"
Requires-Dist: pylint-exit>=1.2.0; extra == "linting"
Requires-Dist: black>=23.3.0; extra == "linting"
Provides-Extra: testing
Requires-Dist: tox>=4.4.11; extra == "testing"
Requires-Dist: pre-commit>=3.2.2; extra == "testing"
Requires-Dist: pylint>=2.17.2; extra == "testing"
Requires-Dist: pylint-exit>=1.2.0; extra == "testing"
Requires-Dist: black>=23.3.0; extra == "testing"
Requires-Dist: pytest>=7.2.2; extra == "testing"
Requires-Dist: coverage>=7.2.2; extra == "testing"
Requires-Dist: celluloid>=0.2.0; extra == "testing"
Requires-Dist: igraph>=0.10.4; extra == "testing"
Requires-Dist: nbmake>=1.4.1; extra == "testing"
Requires-Dist: pytest-lazy-fixture>=0.6.3; extra == "testing"
Requires-Dist: pytest-xdist>=3.2.1; extra == "testing"
Provides-Extra: tutorials
Requires-Dist: jupyter>=1.0; extra == "tutorials"
Requires-Dist: python-igraph>=0.10.4; extra == "tutorials"
Requires-Dist: partition-igraph>=0.0.6; extra == "tutorials"
Requires-Dist: celluloid>=0.2.0; extra == "tutorials"
Provides-Extra: widget
Requires-Dist: hnxwidget>=0.1.1b3; extra == "widget"
Requires-Dist: jupyter-contrib-nbextensions>=0.7.0; extra == "widget"
Requires-Dist: jupyter-nbextensions-configurator>=0.6.2; extra == "widget"
Provides-Extra: documentation
Requires-Dist: sphinx<7; extra == "documentation"
Requires-Dist: nb2plots>=0.6.1; extra == "documentation"
Requires-Dist: sphinx-rtd-theme>=1.2.1; extra == "documentation"
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "documentation"
Requires-Dist: sphinx-copybutton>=0.5.1; extra == "documentation"
Provides-Extra: packaging
Requires-Dist: build>=0.10.0; extra == "packaging"
Requires-Dist: twine>=4.0.2; extra == "packaging"
Requires-Dist: setuptools>=67.6.1; extra == "packaging"
Requires-Dist: tox>=4.4.11; extra == "packaging"
Provides-Extra: all
Requires-Dist: sphinx>=6.2.1; extra == "all"
Requires-Dist: nb2plots>=0.6.1; extra == "all"
Requires-Dist: sphinx-rtd-theme>=1.2.0; extra == "all"
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "all"
Requires-Dist: sphinx-copybutton>=0.5.1; extra == "all"
Requires-Dist: pytest>=7.2.2; extra == "all"
Requires-Dist: coverage>=7.2.2; extra == "all"
Requires-Dist: jupyter>=1.0; extra == "all"
Requires-Dist: python-igraph>=0.10.4; extra == "all"
Requires-Dist: partition-igraph>=0.0.6; extra == "all"
Requires-Dist: celluloid>=0.2.0; extra == "all"
Requires-Dist: igraph>=0.10.4; extra == "all"

.. _long_description:

HyperNetX
=================

The HyperNetX library provides classes and methods for the analysis
and visualization of complex network data modeled as hypergraphs.
The library generalizes traditional graph metrics.

HypernetX was developed by the Pacific Northwest National Laboratory for the
Hypernets project as part of its High Performance Data Analytics (HPDA) program.
PNNL is operated by Battelle Memorial Institute under Contract DE-ACO5-76RL01830.

* Principal Developer and Designer: Brenda Praggastis
* Development Team: Madelyn Shapiro, Mark Bonicillo
* Visualization: Dustin Arendt, Ji Young Yun
* Principal Investigator: Cliff Joslyn
* Program Manager: Brian Kritzstein
* Principal Contributors (Design, Theory, Code): Sinan Aksoy, Dustin Arendt, Mark Bonicillo, Helen Jenne, Cliff Joslyn, Nicholas Landry, Audun Myers, Christopher Potvin, Brenda Praggastis, Emilie Purvine, Greg Roek, Madelyn Shapiro, Mirah Shi, Francois Theberge, Ji Young Yun

The code in this repository is intended to support researchers modeling data
as hypergraphs. We have a growing community of users and contributors.
Documentation is available at: https://pnnl.github.io/HyperNetX

For questions and comments contact the developers directly at: hypernetx@pnnl.gov

New Features in Version 2.0
---------------------------

HNX 2.0 now accepts metadata as core attributes of the edges and nodes of a
hypergraph. While the library continues to accept lists, dictionaries and
dataframes as basic inputs for hypergraph constructions, both cell
properties and edge and node properties can now be easily added for
retrieval as object attributes.

The core library has been rebuilt to take advantage of the flexibility and speed of Pandas Dataframes.
Dataframes offer the ability to store and easily access hypergraph metadata. Metadata can be used for filtering objects, and characterize their
distributions by their attributes.

**Version 2.0 is not backwards compatible. Objects constructed using version
1.x can be imported from their incidence dictionaries.**

What's New
~~~~~~~~~~~~~~~~~~~~~~~~~
#. The Hypergraph constructor now accepts nested dictionaries with incidence cell properties, pandas.DataFrames, and 2-column Numpy arrays.
#. Additional constructors accept incidence matrices and incidence dataframes.
#. Hypergraph constructors accept cell, edge, and node metadata.
#. Metadata available as attributes on the cells, edges, and nodes.
#. User-defined cell weights and default weights available to incidence matrix.
#. Meta data persists with restrictions and removals.
#. Meta data persists onto s-linegraphs as node attributes of Networkx graphs.
#. New hnxwidget available using  `pip install hnxwidget`.


What's Changed
~~~~~~~~~~~~~~~~~~~~~~~~~
#. The `static` and `dynamic` distinctions no longer exist. All hypergraphs use the same underlying data structure, supported by Pandas dataFrames. All hypergraphs maintain a `state_dict` to avoid repeating computations.
#. Methods for adding nodes and hyperedges are currently not supported.
#. The `nwhy` optimizations are no longer supported.
#. Entity and EntitySet classes are being moved to the background. The Hypergraph constructor does not accept either.
