plover.misc – Miscellaneous

This module provides miscellaneous utility functions.

plover.misc.popcount_8(v: int) int

Returns the number of 1 bits in the 8-bit number v.

plover.misc.expand_path(path: str) str

Returns an expanded version of path, in which paths relative to either the home directory ~ or the configuration directory CONFIG_DIR are fully qualified.

If path is an asset path, it is returned as is.

plover.misc.shorten_path(path: str) str

Returns a shortened version of path, in which paths within the home directory are abbreviated to contain ~, and paths within the configuration directory CONFIG_DIR are expressed relative to it.

Relative paths such as those returned by this function are assumed to be relative to CONFIG_DIR.

If path is an asset path, it is returned as is.

plover.misc.normalize_path(path: str) str

Returns a normalized version of path, resolving the full path if it refers to a symbolic link, and normalizing the case where necessary.

If path is an asset path, it is returned as is.

plover.misc.boolean(value: any) bool

Returns value converted to a Boolean value, or raises ValueError if this is not possible.

If value is a string, the values 1, yes, true and on and their case variants are converted to True, and 0, no, false and off and their case variants are converted to False. If it is not a string, the return value is resolved by casting to bool.

plover.misc.to_surrogate_pair(char: str) List[int]

Returns a list of numbers corresponding to the UTF-16 encoding for the string char. char may have multiple characters.

If each character in char has a Unicode codepoint between U+0000 and U+FFFF, its corresponding element in the return value is the codepoint as a hexadecimal number; if it is above U+FFFF, it is converted to two elements in the list, the high and low bytes respectively.

For example, the string "🥺?" (U+1F97A followed by U+003F) returns the list [55358, 56698, 63] ([D83E, DD7A, 003F] in hexadecimal).