rfc3987_syntax2

Submodules

Attributes

RFC3987_SYNTAX_PARSER_TYPE

RFC3987_SYNTAX_GRAMMAR_PATH

RFC3987_SYNTAX_TERMS

All supported RFC 3987 grammar rule names exposed by this module.

T_SYNTAX_PARSER_TERM

Top-level RFC 3987 parser start terms accepted by parse() and check().

T_SYNTAX_VALIDATOR

Callable validator for one RFC 3987 grammar rule.

grammar

Lark grammar text for RFC 3987.

syntax_parser

Lazily initialized parser for RFC 3987 syntax.

Functions

parse(→ lark.ParseTree)

Parse text as one of the top-level RFC 3987 syntax terms.

is_valid_syntax(→ bool)

Check whether text is valid for a top-level RFC 3987 syntax term.

make_syntax_validator(→ T_SYNTAX_VALIDATOR)

Create a validator function for a specific RFC 3987 grammar rule.

Package Contents

rfc3987_syntax2.RFC3987_SYNTAX_PARSER_TYPE: str = 'earley'
rfc3987_syntax2.RFC3987_SYNTAX_GRAMMAR_PATH: pathlib.Path
rfc3987_syntax2.RFC3987_SYNTAX_TERMS: list[str] = ['iri', 'iri_reference', 'absolute_iri', 'scheme', 'ihier_part', 'irelative_ref',...

All supported RFC 3987 grammar rule names exposed by this module.

These term names can be used to select validators from RFC3987_SYNTAX_TERM_VALIDATORS and correspond to rules defined in the RFC 3987 Lark grammar.

rfc3987_syntax2.T_SYNTAX_PARSER_TERM

Top-level RFC 3987 parser start terms accepted by parse() and check().

Allowed values are "iri", "iri_reference", and "absolute_iri".

rfc3987_syntax2.parse(term: T_SYNTAX_PARSER_TERM, value: str) → lark.ParseTree

Parse text as one of the top-level RFC 3987 syntax terms.

Parameters:
  • term – Start rule used for parsing. Must be one of "iri", "iri_reference", or "absolute_iri".

  • value – Input text to parse.

Returns:

The Lark parse tree for value under the selected start rule.

Raises:

lark.exceptions.LarkError – If parser initialization fails or parsing cannot be completed.

rfc3987_syntax2.is_valid_syntax(term: T_SYNTAX_PARSER_TERM, value: str) → bool

Check whether text is valid for a top-level RFC 3987 syntax term.

This is a boolean convenience wrapper around parse().

Warning

Emits a RuntimeWarning (via warnings.warn()) when a non-UnexpectedInput lark.exceptions.LarkError occurs.

Parameters:
  • term – Start rule used for validation. Must be one of "iri", "iri_reference", or "absolute_iri".

  • value – Input text to validate.

Returns:

True if parsing succeeds; otherwise False.

rfc3987_syntax2.T_SYNTAX_VALIDATOR

Callable validator for one RFC 3987 grammar rule.

Parameters:

text – Input text to validate.

Returns:

True if text matches the target rule, otherwise False.

rfc3987_syntax2.make_syntax_validator(rule_name: str) → T_SYNTAX_VALIDATOR

Create a validator function for a specific RFC 3987 grammar rule.

The returned callable lazily initializes and caches a dedicated lark.Lark parser configured with start=rule_name and parser=RFC3987_SYNTAX_PARSER_TYPE.

Parameters:

rule_name – Grammar rule name to validate against. Must be a value from RFC3987_SYNTAX_TERMS.

Returns:

A callable (text: str) -> bool that returns True when parsing succeeds and False if a lark.exceptions.LarkError is raised.

rfc3987_syntax2.grammar: str

Lark grammar text for RFC 3987.

rfc3987_syntax2.syntax_parser: lark.Lark

Lazily initialized parser for RFC 3987 syntax.