PermPy is a user-friendly Python library for maniupulating permutation patterns and permutation classes. See Wikipedia for an introduction to permutation patterns.
Install permpy
with pip
:
$ 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([132])
>>> 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
>>>