- Added tox runner with some basic jobs
- Copyright notice extended to the year 2020
- Bumped ply dependency (3.4) and fixed slicing failure
- Improved test suites
- Minor PEP8 improvements
- Fixed some apprently broken unit tests
- Fixed Ply warnings from use of flags in regexes
- Added the ability to preserve the exact layout of the config file upon loading/dumping (to ensure the validity of possible signatures).
- Added unicode support: library can load/dump unicode config files.
- Added line number to the exception message on parsing error
- Added preservewhitespace option to control parser behaviour concerning insignificant whitespaces. When this option is enabled, the parser would collect all whitespaces into AST and (potentially) use them for code generation.
- Added disableemptyelementstags option to disable parsing of empty element tags.
- Added interfaces and implementation for writable loader, which loads a configuration file into an AST.
- Added Sphinx documentation infrastructure (the docs are still to be moved from README).
- Fixed the issue of not collapsing trailing whitespaces into one in line continuation (as Perl parser does)
- Fixed the issue of not preserving escaped hashes (#)
- Fixed the issue of not respecting a comment that follows an escaped hash
- Fixed the issue of not respecting a comment at the end of the line
- Fixed the issue of not operational allowmultioptions option when the statement spans multiple lines
- Fixed the issue of key-only statements parsing
- Copyright notice extended to the year 2019
- Fixed multiline (line continuation) state termination (by an empty line)
- Fixed empty continuation line parsing (e.g. just '')
- Fix to the parser to process empty text on input (and produce empty AST)
- Fix to allow quoted and bare paths in the Include statement
- The apacheconfigtool to respect --namedblocks option when running in --json-input mode
- The namedblocks options implemented to allow for disabling tag split by the first whitespace and turning it into a nested block.
- Fixed unquoting values when followed by space
- Fixed ply warning on duplicate grammar handler
- Fixed empty named tag parsing
- Added the nostripvalues option to right-strip values and enabed by default
- Added config file reading abstraction layer to allow for non-local config file handling
- Added AST caching to save on repetitive config files includes
- Improved error reporting on parsing errors
- Fixed bug in mergeduplicateblocks option implementation
- Fixed HEREDOC parsing to allow indented closing anchor as Perl parser seems to do
- Fixed parser grammar inconsistency popping up when useapacheinclude option is disabled
- Fixed parser grammar to support in-line hash comments
- Added Apache expression tags (ap_expr) test case
- Added support for quoting named blocks
- Added includeoptional apacheinclude statement support
- Include and Apache include statements made case-insensitive
- Fixed parser grammar to distinguish <tag /> syntax from <tag/>
- Added explicit ply requirement
- Added dump() and dumps() methods to render Apache configuration back from the dict
- The noescape option implemented
- Allow empty value syntax in the option-value pair e.g. `option: `
- Fixed a bug causing malformed AST when a comment resides in-between duplicate keys
- The mergeduplicateblocks option reworked to produce a dict rather than list
- Migrated references to new PyPI
- Fix to tests on Py3.3+
- Adds more options to the apacheconfigtool: --configpath, --flagbits and --defaultconfig
- A bunch of fixes to ensure parsing of the field samples
- Reached feature-parity with Config::General except for the expression support
- Command-line apacheconfigtool implemented
- Initial revision