almanac.parsing¶
-
get_lexer_cls_for_app(app: Application) → Type[RegexLexer][source]¶ Get a lexer class for a specific Application instance.
-
class
IncompleteToken(token: str)[source]¶ Bases:
objectEncapsulation of a token that could only be partially parsed.
-
property
is_ambiguous_arg¶
-
property
is_kw_arg¶
-
property
is_pos_arg¶
-
property
key¶
-
property
value¶
-
property
-
class
ParseStatus(results, unparsed_text, unparsed_start_pos, state)[source]¶ Bases:
tuple-
results: pyparsing.ParseResults¶ Alias for field number 0
-
state: almanac.parsing.parsing.ParseState¶ Alias for field number 3
-
-
class
Patterns[source]¶ Bases:
object-
ALLOWED_SYMBOLS_IN_STRING= '-_/#@£$€%*+~|<>?.'¶
-
BOOLEAN= '(True|true|False|false)'¶
-
COMMAND= '^([a-zA-Z_][a-zA-Z0-9_\\-]*)(\\s+|$)'¶
-
FLOAT= '\\-?\\d+\\.\\d*([eE]\\d+)?'¶
-
IDENTIFIER= '([a-zA-Z_][a-zA-Z0-9_\\-]*)'¶
-
INTEGER= '\\-?\\d+'¶
-
KWARG= '([a-zA-Z_][a-zA-Z0-9_\\-]*)(\\s*=\\s*)'¶
-
STRING_DOUBLE_QUOTE= '\\"([^\\\\\\"]|\\\\.)*\\"'¶
-
STRING_SINGLE_QUOTE= "\\'([^\\\\\\']|\\\\.)*\\'"¶
-
UNQUOTED_STRING= '([a-zA-Z0-9-_/#@£$€%*+~|<>?.]+)'¶
-
WHITESPACE= '\\s+'¶
-
-
last_incomplete_token(document: prompt_toolkit.document.Document, unparsed_text: str) → almanac.parsing.parsing.IncompleteToken[source]¶
-
last_incomplete_token_from_document(document: prompt_toolkit.document.Document) → almanac.parsing.parsing.IncompleteToken[source]¶ Shortcut for getting the last incomplete token only from a
Document.
-
parse_cmd_line(text: str) → almanac.parsing.parsing.ParseStatus[source]¶ Attempt to parse a command line, returning a
ParseStatusobject.