plover_stroke – Steno stroke helpers¶
The plover_stroke library provides helpers for working with steno outlines,
such as converting between string representations and lists of keys, or
calculating stroke ordering.
Note
This library is a separate package from plover; note the underscore
in the name.
In order to use this class, create a subclass of the BaseStroke
class, and call its setup method.
- class plover_stroke.BaseStroke¶
Represents a single steno stroke.
BaseStrokeobjects are instances ofint, and support most operations one might do to an integer.- classmethod setup(keys: Tuple[str][, implicit_hyphen_keys: List[str] = None, number_key: str = None, numbers: Dict[str, str]=None, feral_number_key: bool = False])¶
This method is called to provide the parameters for valid steno notation.
keys,implicit_hyphen_keys,number_key, andnumbershave the same type and function as in theplover.system.Set
feral_number_keytoTrueif you want the number key to appear anywhere in the stroke, for example1#8,18#and#18all parse correctly to the same value. This is especially useful for parsing RTF dictionaries.
- classmethod from_steno(steno: str) BaseStroke¶
Converts the steno notation string into a stroke object.
- classmethod from_keys(keys: List[str]) BaseStroke¶
Converts the list of steno keys into a stroke object.
- classmethod from_integer(integer: int) BaseStroke¶
Converts the integer representing a steno stroke into a stroke object.
- first() str¶
Returns the name of the first key in the stroke.
- last() str¶
Returns the name of the last key in the stroke.
- keys() Tuple[str]¶
Returns a tuple of all keys in the stroke.
- has_digit() bool¶
Returns
Trueif at least one of the keys pressed corresponds to a digit and the number key is also pressed.
- is_number() bool¶
Returns
Trueif the stroke represents a number, i.e. the number key is pressed, and all other keys represent digits.
- is_prefix(other: BaseStroke) bool¶
Returns
Trueif this stroke is a prefix ofother. For example,STRis a prefix ofSTROEBG.
- is_suffix(other: BaseStroke) bool¶
Returns
Trueif this stroke is a suffix ofother. For example,-BGis a suffix ofSTROEBG.
Some of the operator methods below perform key-wise operations on strokes:
- __add__(other: BaseStroke) BaseStroke¶
Returns a stroke with the union of the keys in this stroke and
other. For example,HRAT + ER = HRAERT.
- __or__(other: BaseStroke) BaseStroke¶
Identical to
__add__().
- __and__(other: BaseStroke) BaseStroke¶
Returns a stroke with the intersection of the keys in both this stroke and
other. For example,HRAT & KAT = AT.
- __sub__(other: BaseStroke) BaseStroke¶
Returns a stroke with keys that are in this stroke, but not
other. For example,HRAT - KAT = HR.
- __invert__() BaseStroke¶
Returns a stroke with all keys that are not in this stroke. For example,
~STKPWHRAO = *EUFRPBLGTSDZ.
- __contains__(other: BaseStroke) bool¶
Returns
Trueifothercontains all of the keys in this stroke. For example,-T in KAT = True.