Skip to main content

Plover Python dictionary

Add support for Python dictionaries to Plover.

Usage

A Python dictionary is simply a single UTF-8 source file with the following API:

# Length of the longest supported key (number of strokes).
LONGEST_KEY = 1

# Lookup function: return the translation for <key> (a tuple of strokes)
# or raise KeyError if no translation is available/possible.
def lookup(key):
    assert len(key) <= LONGEST_KEY
    raise KeyError

# Optional: return an array of stroke tuples that would translate back
# to <text> (an empty array if not possible).
def reverse_lookup(text):
    return []

For example save the following code to show_stroke.py:

Note: make sure the file encoding is UTF-8!

LONGEST_KEY = 2

SHOW_STROKE_STENO = 'STR*'

def lookup(key):
    assert len(key) <= LONGEST_KEY, '%d/%d' % (len(key), LONGEST_KEY)
    if SHOW_STROKE_STENO != key[0]:
        raise KeyError
    if len(key) == 1:
        return ' '
    return key[1]

Then add it to your dictionaries stack as you would a normal dictionary.

Now, if you stroke STR*, then the next stroke will be shown verbatim (untranslated), e.g. -T STROEBG TP-R KW-GS STROEBG KR-GS S STR* STROEBG outputs: the stroke for "stroke" is STROEBG.

Release history

1.2.0

  • use importlib instead of exec (#12)

1.1.0

  • fix type checks for lookup and reverse_lookup: allow bound methods and functors
  • fix reverse_lookup implementation: return a set.
  • fix __getitem__ / get implementations: when the key length is out of bounds
  • fix __contains__ implementation
  • fix __delitem__ / __setitem__ implementations: raise the correct exception type

1.0.0

  • fix possible encoding issue when loading a dictionary: from now on, assume and force UTF-8

0.5.12

  • update changelog...

0.5.11

  • drop support for Python < 3.6
  • fix use of deprecated imp module
  • rework tests to use plover_build_utils.testing
  • use PEP 517/518

0.5.10

  • fix ./setup.py test handling
  • fix default implementation of reverse_lookup to return a list (not a tuple)

0.5.9

  • update to Plover's latest API

Metadata

Release files for plover-python-dictionary 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for plover-python-dictionary 1.2.1
File Size Uploaded
plover_python_dictionary-1.2.1.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for plover-python-dictionary 1.2.1
File Interpreter ABI Platform
plover_python_dictionary-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 9.2 kB

Release files / plover_python_dictionary-1.2.1.tar.gz

Download URL plover_python_dictionary-1.2.1.tar.gz
Size 5.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2a0215445c28fcbfd56f5acafbe8f5c5a7dfbfc51a49c5de7caa52f2f93f223d
BLAKE2b-256 checksum
How to use checksums
ea3c7480c96d9d6b41dbbfe0867358a62f6919d1a00872e7d53c4f2a85bda71f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release files / plover_python_dictionary-1.2.1-py3-none-any.whl

Download URL plover_python_dictionary-1.2.1-py3-none-any.whl
Size 4.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5abaf55f72a95cfeee8e60f4f4722ac664fdd8ea0b3d817341ba012c360cae2b
BLAKE2b-256 checksum
How to use checksums
38debe4e035ed091c31959bde4384c54833b149b133b08451ebfa04b5de0e450
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

1.2.1 This release

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.5.10

2 release files

0.5.9

2 release files

0.5.8

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page