Skip to main content

CLI-based german dictionary

Project description

Duden Version

duden is a CLI-based program and python module, which can provide various information about given german word. The provided data are parsed from german dictionary duden.de.

duden screenshot

Installation

pip3 install duden

Usage

CLI

$ duden Löffel

Löffel, der
===========
Word type: Substantiv, maskulin
Commonness: 2/5
Separation: Löf|fel
Meaning overview:
 0.  a. [metallenes] [Ess]gerät, an dessen unterem Stielende eine schalenartige Vertiefung sitzt und das zur Aufnahme von Suppe, Flüssigkeiten, zur Zubereitung von Speisen o. Ä. verwendet wird
     b. (Medizin) Kürette

 1. (Jägersprache) Ohr von Hase und Kaninchen

Synonyms:
Ohr; [Ge]hörorgan; (salopp) Horcher, Horchlappen, Lauscher; (Jägersprache) Loser, Teller
Full CLI syntax (expand)
$ duden --help
usage: duden [-h] [--title] [--name] [--article] [--part-of-speech] [--frequency] [--usage]
             [--word-separation] [--meaning-overview] [--synonyms] [--origin] [--grammar-overview]
             [--compounds [COMPOUNDS]] [-i] [--export] [--words-before] [--words-after] [-r RESULT] [--fuzzy]
             [--no-cache] [-V] [--phonetic] [--alternative-spellings]
             word

positional arguments:
  word

options:
  -h, --help            show this help message and exit
  --title               display word and article
  --name                display the word itself
  --article             display article
  --part-of-speech      display part of speech
  --frequency           display commonness (1 to 5)
  --usage               display context of use
  --word-separation     display proper separation (line separated)
  --meaning-overview    display meaning overview
  --synonyms            list synonyms (line separated)
  --origin              display origin
  --grammar-overview    display short grammar overview
  --compounds [COMPOUNDS]
                        list common compounds
  -i, --inflect         display inflections
  --export              export parsed word attributes in yaml format
  --words-before        list 5 words before this one
  --words-after         list 5 words after this one
  -r RESULT, --result RESULT
                        display n-th (starting from 1) result in case of multiple words matching the input
  --fuzzy               enable fuzzy word matching
  --no-cache            do not cache retrieved words
  -V, --version         print program version
  --phonetic            display pronunciation
  --alternative-spellings
                        display alternative spellings

Module usage

>>> import duden
>>> w = duden.get('Loeffel')
>>> w.name
'Löffel'
>>> w.word_separation
['Löf', 'fel']
>>> w.synonyms
'Ohr; [Ge]hörorgan; (salopp) Horcher, Horchlappen, Lauscher; (Jägersprache) Loser, Teller'

For more examples see usage documentation.

Development

Dependencies and packaging are managed by Poetry.

Install the virtual environment and enter it with

$ poetry install
$ poetry shell

Testing and code style

To execute data tests, run

$ pytest

To run python style autoformaters (isort, black), run

$ make autoformat

Localization

Apart from English, this package has partial translations to German, Spanish, and Esperanto languages.

To test duden in other languages, set the LANG environment variable before running duden like so:

LANG=de_DE.UTF-8 duden Kragen
LANG=es_ES.UTF-8 duden Kragen
LANG=eo_EO.UTF-8 duden Kragen

The translations are located in the duden/locale/ directory as the *.po and duden.pot files. The duden.pot file defines all translatable strings in series of text blocks formatted like this:

#: main.py:82
msgid "Commonness:"
msgstr ""

while the individual language files provides translations to the strings identified by msgid like this:

#: main.py:82
msgid "Commonness:"
msgstr "Häufigkeit:"

Note that the commented lines like #: main.py:82 do not have any functional meaning, and can get out of sync.

Publishing

To build and publish the package to (test) PyPI, you can use one of these shortcut commands:

$ make pypi-publish-test
$ make pypi-publish

(these also take care of building the localization files before calling poetry publish)

Poetry configuration for PyPI and Test PyPI credentials are well covered in this SO answer.

Including localization data in the package

In order for the localization data to be included in the resulting python package, the *.po files must be compiled using the

$ make localization

command before building the package with poetry.

Supported versions of Python

  • Python 3.4+

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

duden-0.19.1.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

duden-0.19.1-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file duden-0.19.1.tar.gz.

File metadata

  • Download URL: duden-0.19.1.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.5.0-21-generic

File hashes

Hashes for duden-0.19.1.tar.gz
Algorithm Hash digest
SHA256 87db0c6e2793bc99371a75160b44f43becb908a8c9042d9b770be9cfd7f053e1
MD5 bb825dcb31fd6215b255e0b5daba73db
BLAKE2b-256 48aa10ca8b9c74fbdfc762b9844068937a6810f1c53ad13c44964e5adf017374

See more details on using hashes here.

File details

Details for the file duden-0.19.1-py3-none-any.whl.

File metadata

  • Download URL: duden-0.19.1-py3-none-any.whl
  • Upload date:
  • Size: 29.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.11.6 Linux/6.5.0-21-generic

File hashes

Hashes for duden-0.19.1-py3-none-any.whl
Algorithm Hash digest
SHA256 56fbf5195702414c8d681b54f84af89b2c42702aac936358ada0b3e664b46703
MD5 2035b0d084da6340a7a20d4f8588e78f
BLAKE2b-256 8ea7962759d7ce93dd7d366c0f64d7c37dc542c5f7a8bb6f7a84bb41f98a5209

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