Metadata-Version: 2.4
Name: spization
Version: 1.0.0
Summary: Package for Graph Series-Parallel-ization
Author-email: Marsella8 <pietromax.marsella@gmail.com>
License: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/Marsella8/spization
Project-URL: Repository, https://github.com/Marsella8/spization
Project-URL: Issues, https://github.com/Marsella8/spization/issues
Keywords: graph,series-parallel,dag,modular-decomposition,algorithms
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: <3.14,>=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: networkx<4,>=3.3
Requires-Dist: multimethod<2,>=1.12
Requires-Dist: loguru<1,>=0.7.2
Requires-Dist: icecream<3,>=2.1.3
Requires-Dist: numpy<3,>=2.1.0
Requires-Dist: rich<14,>=13.8.0
Requires-Dist: multiset<4,>=3.2.0
Requires-Dist: bidict<1,>=0.23.1
Requires-Dist: passagemath-graphs<11,>=10.5.43
Dynamic: license-file

## SP-ization

A simple Python package for Graph Series-Parallel-ization.


<!-- ## Notes:

Your SP: no sync nodes, can be dups
- Does not have sync nodes, can only have nodes as int. If coming from a graph with dupes, the nodes are simply deduplicated (so from NodeDup to int).
Technically, SP can only hold NODEs, but for simplicity we'll have Node.

Your graph: sync nodes, cannot be dups
- Can have sync nodes or not (and can freely switch between one another)
- Can either have no duplicates (so all the nodes are simply int) or have duplicates (in which case they are NodeDups). You can frely switch between graph and SP.

- Algorithms must take in a DAG that is made up of ints and that is TTSP, and return an SPD of only ints.
- In general: all graph utilities should apply to SPG, all SP utilities should apply to SPD. -->

## Instructions

Install dependencies: `uv sync --group dev`

To enter the venv: `source .venv/bin/activate`

For testing: `uv run pytest`

For Nix build verification: `nix build .#spization --no-link`

For codecov: `uv run pytest --cov=spization --cov-report=term-missing:skip-covered`

For linting: `uv run ruff check --fix` / `uv run ruff format`

For type checking: `uv run ty check`

To run benchmarking: `uv run benchmark`
