PermPy is a user-friendly Python library for maniupulating permutation patterns and permutation classes. See Wikipedia for an introduction to permutation patterns.
$ python -m pip install permpy
permpy contains a number of useful Python classes including
permpy.Permutation, which represents a permutation and can determine containment.
>>> from permpy import Permutation >>> p = Permutation(1324) >>> q = Permutation(123) >>> q <= p True >>> r = Permutation(321) >>> r <= p False >>> S = pp.PermSet.all(6) >>> S Set of 720 permutations >>> S.total_statistic(pp.Perm.num_inversions) 5400 >>> S.total_statistic(pp.Perm.num_descents) 1800 >>> from permpy import AvClass >>> A = AvClass() >>> for S in A: ... print(S) ... Set of 1 permutations Set of 1 permutations Set of 2 permutations Set of 5 permutations Set of 14 permutations Set of 42 permutations Set of 132 permutations Set of 429 permutations Set of 1430 permutations
For a summary of how PermPy is built, go here.
$ python -m poetry build $ python -m poetry publish
To run tests, run
$ python -m poetry build $ python -m poetry shell $ python -m pytest tests/
To build and install locally, run
$ python -m poetry install $ python -m poetry shell $ python >>> import permpy >>>