Skip to main content

discover the etymology of words

Project description

ety

PyPI version Python versions Wheel Support Documentation Status
Build Status Code style: black


Intro

@jmsv and @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 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, 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

pip install ety

Usage

Module

>>> 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

$ 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 is recommended:

python setup.py install

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ety-1.4.0.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

ety-1.4.0-py2.py3-none-any.whl (2.6 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file ety-1.4.0.tar.gz.

File metadata

  • Download URL: ety-1.4.0.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for ety-1.4.0.tar.gz
Algorithm Hash digest
SHA256 72cf7101c98e8b5849620e2d8f09fdb1d2f5255274880bf67c0cf258c2e7acb7
MD5 1dea1144e74e119b34751443da847af8
BLAKE2b-256 c0d602f354e520253da4ebd253b801ca432e10ee93f39c85248248d62353c8f6

See more details on using hashes here.

File details

Details for the file ety-1.4.0-py2.py3-none-any.whl.

File metadata

  • Download URL: ety-1.4.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for ety-1.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7b4104db063ecdfdc95353a2656863506df9ec36ca0150a0cd346baaf7988435
MD5 5448b69a69ca57e07ae6a71118052ef3
BLAKE2b-256 4ab4975db4c0ff58aa9127d1507fc6557c149086764b3a9017503a6b50a43285

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page