Metadata-Version: 2.4
Name: dedap
Version: 2026.4
Summary: Topological sorting and transitive reduction algorithms
Home-page: https://github.com/studdansen/dedap
Author: Dan Lynn
Author-email: Dan Lynn <dan.lynn.ct@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/studdansen/dedap
Project-URL: Repository, https://github.com/studdansen/dedap-python.git
Project-URL: Issues, https://github.com/studdansen/dedap/issues
Keywords: transitive,reduction,topological,sort,sorting
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.7, <4
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# dedap-python

**dedap** implements transitive reduction for directed acyclic graphs.
DAGs are used for scheduling operations, and transitive reduction produces
equivalent DAGs sans redundant links.

The module is only dependent on the Python standard library for normal use.
It does need external modules for building the installable package, for
checking static type consistency, and for building the documentation.

## Installation

On Windows:

```cmd
py -m pip install --upgrade pip
py -m pip install dedap
```

On other systems (e.g., Linux, macOS):

```sh
python3 -m pip install --upgrade pip
python3 -m pip install dedap
```

## Testing

This module has [doctest](https://docs.python.org/3/library/doctest.html)-style
unit tests within its docstrings.

To run this module's tests from the source directory:

```sh
python3 -m doctest dedap/dedap.py
```

To run this module's tests after installation:

```sh
python3 -m doctest dedap/dedap.py
```

To check the static type consistency, use `mypy` if it's available:

```sh
mypy dedap/dedap.py
```

## Documentation

To build the HTML documentation:

```sh
make -C doc html
```

To build the PDF documentation (assuming all LaTeX dependencies are installed):

```sh
make -C doc latexpdf
```

## Future

+ Bind [C++ dedap library](https://github.com/studdansen/dedap) into this
  Python package. Call it `cdedap`.
  
  + Write benchmark tests to compare the C++-based implementation (`cdedap`) to
    the pure Python implementation.
