Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, using the reStructuredText format instead of Markdown.
This project adheres to Semantic Versioning starting with version 1.1.1.
1.9.0 – 2020-04-07¶
Added¶
Add JSGF import resolution.
Add new Grammar methods for getting Rule objects by name.
Add ‘grammar_name’, ‘rule_name’ and ‘wildcard_import’ Import class properties.
Add ‘qualified_name’ and ‘fully_qualified_name’ Rule class properties.
Changed¶
Add missing Grammar ‘import_names’ property.
Add missing Grammar ‘remove_imports()’ method.
Change Grammar class to silently reject duplicate Import objects.
Rename HiddenRule rule classes to PrivateRule instead and leave in HiddenRule aliases.
Fixed¶
Change Grammar.get_rule_from_name() method to validate the ‘name’ parameter.
Change Grammar.remove_import() to only accept Import objects.
Fix bug in Grammar.add_rule() that could cause RecursionErrors.
1.8.0 – 2020-01-31¶
Added¶
Add ‘case_sensitive’ properties to Literal, Rule & Grammar classes.
Changed¶
Change ChildList into a list wrapper class instead of a sub-class.
Fixed¶
Fix a pyparsing-related bug with the Repeat expansion class.
Fix issues preventing serialization of expansions, rules and grammars.
1.7.1 – 2019-07-10¶
Added¶
Add ‘matching benchmark.py’ script.
Changed¶
Add a classifier for Python 3.4 in setup.py as it is a supported version.
Rewrite Expansion.repetition_ancestor property.
Use the setuptools.find_packages() function in setup.py instead of defining packages manually.
Fixed¶
Fix missing call to reset_for_new_match() in Rule.find_matching_part(). Some tests have also been added.
1.7.0 – 2019-06-19¶
Added¶
Changed¶
Include the mock package in requirements.txt (test requirement).
Fixed¶
Fix two rule expansion parser bugs related to unary operators (+ or *).
Keep required groupings during parsing to avoid unexpected consequences. Thanks @synesthesiam.
1.6.0 – 2019-03-17¶
Added¶
Add support for JSGF alternative weights to the AlternativeSet class and the rule expansion parser.
Add ‘Expansion.matching_slice’ property for getting the slice of the last speech string that matched an Expansion.
Add ‘Repeat.get_expansion_slices’ method for getting matching slices of repeated rule expansions.
Changed¶
Change AlternativeSet ‘weights’ list to use a dictionary instead.
Change grammar class and parser to allow for optional grammar header values.
Change input and output of the ‘save_current_matches’ and ‘restore_current_matches’ expansion functions.
Change jsgf.ext.Dictation expansions to compile as “<DICTATION>” instead of “”.
Simplify the parser code and improve its performance.
Use ‘<NULL>’ instead of ‘<VOID>’ to compile expansions that should have children but don’t.
Fixed¶
Fix parser bug where sequences can lose tags. Thanks @synesthesiam.
Fix parser bug with sequences and alternative sets.
1.5.1 – 2018-10-28¶
Added¶
Add section in parser documentation with EBNF for the grammar parser.
Changed¶
Change install instructions to use pip instead.
Fixed¶
Fix a few problems with the README.
Fix missing newlines from Grammar.compile_to_file(). Thanks @daanzu.
1.5.0 – 2018-09-11¶
Added¶
Add Expansion.matcher_element property.
Add Expansion.invalidate_matcher method.
Add Rule.find_matching_part method. Thanks @embie27.
Add docstrings to undocumented classes and methods.
Add Sphinx documentation project files in docs/ and use autodoc for automatic module, class, class member and function documentation.
Add CHANGELOG.rst file and include it in the documentation.
Changed¶
Make speech string matching scale to large rules/grammars.
Make jsgf.ext.Dictation expansions match correctly in most circumstances.
Allow rules to use optional only rule expansions.
Update docstrings in all Python modules.
Change internal matching method to implement for subclasses from _matches_internal to _make_matcher_element.
Deprecated¶
Add deprecation note for the Grammar.compile_grammar method.
Deprecate the ExpansionError and MatchError classes.
Fixed¶
Fix issue #12 and probably some other bugs where speech wouldn’t match rules properly.
Fix __hash__ methods for the Dictation and AlternativeSet classes.
Removed¶
Remove support for matching ambiguous rule expansion because it is not worth the performance hit.
1.4.1 – 2018-08-20¶
Added¶
Add ChildList list subclass for storing rule expansion children and updating parent-child relationships appropriately on list operations.
Changed¶
Change Literal.text attribute into a property with some validation.
Fixed¶
1.4.0 – 2018-08-09¶
Added¶
Implement grammar, rule and expansion parsers.
Add setters for the BaseRef name property and Expansion children property.
Changed¶
Allow imported rule names to be used by NamedRuleRefs.
Fixed¶
Fix NamedRuleRefs for rule expansion functions and the Rule.dependencies property.
1.3.0 – 2018-07-14¶
Added¶
Add methods/properties to the Rule and Grammar classes for JSGF tag support.
Add rule resolution for NamedRuleRef class.
Add method and property for checking expansion match values for each repetition.
Fixed¶
Fix various bugs with JSGF rule expansions.
1.2.3 – 2018-06-02¶
Added¶
Add ‘six’ as a required package to support Python versions 2.x and 3.x.
Changed¶
Change add_rule methods of grammar classes to silently fail when adding rules that are already in grammars.
Fixed¶
Fix hash implementations and __str__ methods for rule classes.
Other minor fixes.
1.2.2 – 2018-04-28¶
Added¶
Add Expansion.collect_leaves method.
Changed¶
Reset match data for unmatched branches of expansion trees.
Change Expansion leaf properties to also return RuleRefs.
Move some Literal class properties to the Expansion superclass.
1.2.1 – 2018-04-27¶
Added¶
Add calculation caching to improve matching performance.
Add optional shallow parameter to Expansion functions like map_expansion.
Fixed¶
Fix bug with BaseRef/RuleRef comparison.
Fix bug in expand_dictation_expansion function.
1.2.0 – 2018-04-09¶
Added¶
Add a few methods and properties to Expansion classes.
Add JointTreeContext class and find_expansion function.
Add __rep__ methods to base classes for convenience.
Fixed¶
Fix a bug where rules with mutiple RuleRefs wouldn’t match.
1.1.1 – 2018-03-26¶
First tagged release and start of proper versioning. Too many changes to list here, see the changes by following the link above.