Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jmsv/ety-python
A Python module to discover the etymology of words
https://github.com/jmsv/ety-python
english etymology hacktoberfest language origins python words
Last synced: 7 days ago
JSON representation
A Python module to discover the etymology of words
- Host: GitHub
- URL: https://github.com/jmsv/ety-python
- Owner: jmsv
- License: mit
- Created: 2018-05-14T11:30:21.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-05-02T11:38:54.000Z (8 months ago)
- Last Synced: 2024-10-12T02:09:29.857Z (2 months ago)
- Topics: english, etymology, hacktoberfest, language, origins, python, words
- Language: Python
- Homepage: http://ety-python.rtfd.io
- Size: 35.9 MB
- Stars: 145
- Watchers: 10
- Forks: 18
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![ety](https://user-images.githubusercontent.com/14852491/52982538-880fbd80-33de-11e9-8101-6fa24c3b697d.png)
---
## Intro
[@jmsv](https://github.com/jmsv) and [@parker57](https://github.com/parker57) started a side project to analyse etymologies of text written by various historical authors, expecting there to already be a library for retrieving etymological data. On discovering that this wasn't the case, [ety](https://github.com/jmsv/ety-python) was created!
There isn't a single source of truth for etymologies; words' origins can be heavily disputed. This package's source data, Gerard de Melo's [Etymological Wordnet](http://www1.icsi.berkeley.edu/~demelo/etymwn/), is mostly mined from Wiktionary. Since this is a collaboratively edited dictionary, its data could be seen as the closest we can get to a public consensus.
## Install
### [pip](https://pypi.org/project/ety)
```bash
pip install ety
```## Usage
### Module
```python
>>> import ety>>> ety.origins("potato")
[Word(batata, language=Taino)]>>> ety.origins("drink", recursive=True)
[Word(drync, language=Old English (ca. 450-1100)), Word(drinken, language=Middle English (1100-1500)), Word(drincan, language=Old English (ca. 450-1100))]>>> print(ety.tree("aerodynamically"))
aerodynamically (English)
├── -ally (English)
└── aerodynamic (English)
├── aero- (English)
│ └── ἀήρ (Ancient Greek (to 1453))
└── dynamic (English)
└── dynamique (French)
└── δυναμικός (Ancient Greek (to 1453))
└── δύναμις (Ancient Greek (to 1453))
└── δύναμαι (Ancient Greek (to 1453))
```### CLI
After installing, a command-line tool is also available. `ety -h` outputs the following help text describing arguments:
```
usage: ety [-h] [-r] [-t] words [words ...]positional arguments:
words the search word(s)optional arguments:
-h, --help show this help message and exit
-r, --recursive search origins recursively
-t, --tree display etymology tree
```#### Examples
```bash
$ ety drink
drink # List direct origins
• drync (Old English (ca. 450-1100))
• drinken (Middle English (1100-1500))$ ety drink -r # Recursive search
drink
• drync (Old English (ca. 450-1100))
• drinken (Middle English (1100-1500))
• drincan (Old English (ca. 450-1100))$ ety drink -t # Etymology tree
drink (English)
├── drinken (Middle English (1100-1500))
│ └── drincan (Old English (ca. 450-1100))
└── drync (Old English (ca. 450-1100))
```## Development
In a virtual environment - [Pipenv](https://docs.pipenv.org) is recommended:
```bash
python setup.py install
```