rules
— Extension rule classes module¶
This module contains extension rule classes.
Classes¶
-
class
jsgf.ext.rules.
SequenceRule
(name, visible, expansion, case_sensitive=False)¶ Class representing a list of regular expansions and
Dictation
expansions that must be spoken in a sequence.-
can_repeat
¶ Whether the entire SequenceRule can be repeated multiple times.
Note that if the rule can be repeated, data from a repetition of the rule, such as
current_match
values of each sequence expansion, should be stored beforerestart_sequence
is called for a further repetition.
-
compile
()¶ Compile this rule’s expansion tree and return the result.
Returns: str
-
current_is_dictation_only
¶ Whether the current expansion in the sequence contains only
Dictation
expansions.Returns: bool
-
entire_match
¶ If the entire sequence is matched by successive calls to the matches method, this returns all strings that matched joined together by spaces.
Returns: str
-
expansion_sequence
¶ The expansion sequence used by the rule.
Returns: tuple
-
static
graft_sequence_matches
(sequence_rule, expansion)¶ Take a
SequenceRule
and an expansion and attempt to graft the matches of all expansions in the sequence onto the given expansion in-place.Not all expansions in the sequence need to have been matched.
Parameters: - sequence_rule – SequenceRule
- expansion – Expansion
-
has_next_expansion
¶ Whether there is another sequence expansion after the current one.
Returns: bool
-
matches
(speech)¶ Return whether or not speech matches the current expansion in the sequence.
This also sets
current_match
values for the original expansion used to create this rule.This method will only match once and return False on calls afterward until
refuse_matches
is False.Parameters: speech – str Returns: bool
-
refuse_matches
¶ Whether or not matches on this rule can succeed.
This is set to False if
set_next
is called and there is a next expansion or ifrestart_sequence
is called.This can also be manually set with the setter for problematic situations where, for example, the current expansion is a
Repeat
expansion with aDictation
descendant.Returns: bool
-
restart_sequence
()¶ Resets the current sequence expansion to the first one in the sequence and clears the match data of each sequence expansion.
-
set_next
()¶ Moves to the next expansion in the sequence if there is one.
The set of JSGF tags in this rule’s expansion. This does not include tags in referenced rules.
Returns: set
-
-
class
jsgf.ext.rules.
PublicSequenceRule
(name, expansion, case_sensitive=False)¶ SequenceRule subclass with
visible
set to True.
-
jsgf.ext.rules.
HiddenSequenceRule
¶ alias of
jsgf.ext.rules.PrivateSequenceRule