Metadata-Version: 2.1
Name: maniphono
Version: 0.1
Summary: Python library for the symbolic manipulation of phoneme representations
Home-page: https://github.com/tresoldi/maniphono
Author: Tiago Tresoldi
Author-email: tresoldi@shh.mpg.de
License: MIT
Keywords: phoneme,phonology,phonetics,distinctive features
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.7
Description-Content-Type: text/markdown

# maniphono

[![Build Status](https://travis-ci.org/tresoldi/maniphono.svg?branch=main)](https://travis-ci.org/tresoldi/maniphono)
[![codecov](https://codecov.io/gh/tresoldi/maniphono/branch/main/graph/badge.svg)](https://codecov.io/gh/tresoldi/maniphono)

Python library for the symbolic manipulation of phoneme representations

## Installation

In any standard Python environment, `maniphono` can be installed with:

```bash
$ pip install maniphono
```

## Example usage

```python
>>> import maniphono
>>> snd1 = maniphono.Sound(maniphono.IPA, "p")
>>> snd1
voiceless bilabial plosive consonant
>>> str(snd1)
'p'
>>> snd2 = snd1 + "voiced,alveolar"
>>> str(snd2)
'd'
```

## TODO:

  - Add disjoint contraints to `model.py`
  - Consider expanding checks in `model.parse_constraints()` to evaluate non-shallow
    constraints (from different layers); this is not such a problem for the data as it
    is, because graphemes will be rejected if necessary, but it would be nice to
    have such a check in the function (it involves building a tree of contraints,
    which is interesting and potentially useful in itself)
  - Consider adding option in `model.py` to Unicode-normalize graphemes


