I am happy to announce that we have released version 0.6.0 of pynag. There have been a lot of rewrites and performance improvements in the parsing library. as well as incremental bug fixes and new features. We have a reason to celebrate because we have closed over 100 issues since moving to github.
Currently i am working on more thread safety stuff and in next release i plan on replacing the Model.ObjectDefinition.filter() to use the more powerful grep() internally. This will hopefully bring more performance out of the filter.
As ever, if anyone has feedback or features they would like to see built into the pynag library, don't hesitate to drop a mail on this list.
Changes in 0.6.0 (Aug 28 2013)
New Features:
- Support line continuations with \ at end of line in config files
- Fix traceback in ParserError initilization
- Better error messages when invalid livestatus syntax has been used
- Utils.grep() new keywords __notstartswith and __notendswith
- Model.ObjectDefinition now supports "in" operator
- Multiple performance tweaks for parsing
- Plugins.PluginHelper.add_option() wrapper created
- Performance tweaks in Utils.grep()
- Thread-safety in Parsing/Saving methods in Model and Parser
- "in" operator implemented for Object Definitions
- delete() methods now more clever for {host,service,contact}s and groups
- Incremental performance updates on parsing
- New method: ObjectDefinition.attribute_is_empty()
- Massive refactor/rewrites in parsing logic
Bug Fixes:
- Fix traceback on search when searching for shortname in invalid configs
- pynag.Utils.GitRepo better handles file renames now
- pynag.Plugins.PluginHelper - no more crashing if parse_arguments was not called
- Fix parsing when multiple objects have conflicting names
- Support relative paths for cfg_dir and cfg_file