- Moved to wheelodex organization
- Migrated from setuptools to hatch
- Drop support for Python 3.7
- Include
py.typed
file in distribution
- Support Python 3.8 through 3.12
- Drop support for Python 2.7, 3.4, 3.5, and 3.6
- Removed
scan_file()
,scan_lines()
,HeaderParser.parse_file()
, andHeaderParser.parse_lines()
(all deprecated in v0.4.0) - Type annotations added
- The scanner options to the scanner functions are now keyword-only
scan()
andscan_stanzas()
can now parse strings directly. As a result,scan_string()
andscan_stanzas_string()
are now deprecated.- The
HeaderParser
methodsparse()
andparse_stanzas()
can now parse strings directly. As a result, theparse_string()
andparse_stanzas_string()
methods are now deprecated. - Added a
Scanner
class with methods for scanning a shared input. As a result, the following are now deprecated:scan_next_stanza()
scan_next_stanza_string()
HeaderParser.parse_next_stanza()
HeaderParser.parse_next_stanza_string()
- Added a
scan()
function combining the behavior ofscan_file()
andscan_lines()
, which are now deprecated - Gave
HeaderParser
aparse()
method combining the behavior ofparse_file()
andparse_lines()
, which are now deprecated - Added
scan_next_stanza()
andscan_next_stanza_string()
functions for scanning & consuming input only up to the end of the first header section - Added
scan_stanzas()
andscan_stanzas_string()
functions for scanning input composed entirely of multiple stanzas/header sections - Gave
HeaderParser
parse_next_stanza()
andparse_next_stanza_string()
methods for parsing & consuming input only up to the end of the first header section - Gave
HeaderParser
parse_stanzas()
andparse_stanzas_string()
methods for parsing input composed entirely of multiple stanzas/header sections
- Drop support for Python 3.3
- Gave
HeaderParser
and the scanner functions options for configuring scanning behavior:separator_regex
skip_leading_newlines
- Fixed a
DeprecationWarning
in Python 3.7
NormalizedDict
's default normalizer (exposed as thelower()
function) now passes non-strings through unchangedHeaderParser
instances can now be compared for non-identity equalityHeaderParser.add_field()
andHeaderParser.add_additional()
now take an optionalaction
argument for customizing the parser's behavior when a field is encountered- Made the
unfold()
function public
Initial release