v0.19
"Spring cleaning"
Added
- Add
requests
as an optional dependency. - Add
lxml
as an optional dependency.
This is currently the only way to parse malformed XML files. - Add support for Python 3.7 through Python 3.10.
Removed
-
Drop support for CPython 3.6 and lower.
-
Drop support for IronPython.
-
Drop support for Jython.
-
Remove some ancient Jython compatibility code.
-
HTML entities are no longer automatically injected into the DTD.
If
lxml
is installed and undeclared HTML entities are encountered,
they will be ignored.If lxml is not installed and undeclared HTML entities are encountered,
Python'sxml.sax
parser will fail to parse the document.
Fixed
- Fix some coverage messages that were output during testing.
- Fix the combined coverage HTML report's paths.
Changed
- Migrate to a
src/
-based directory structure. - Migrate to Read the Docs for documentation hosting.
parse()
no longer accepts etag, modified, or agent arguments.- HTTP response information is no longer available in the return dictionary.
- The unit tests no longer launch an HTTP server.
- Coverage data is now erased before the unit tests begin.
bozo
is nowTrue
orFalse
, not1
or0
.bozo_exception
is guaranteed to exist in the return dict.- The RFC 822 parser now returns timezone-aware
datetime
objects
instead of converting to UTC and losing timezone info. - Move and split
lptest.py
into thetests/
subdirectory
and into specifictest_*
files. - Increased test coverage reporting to include test runners.
- Decreased the number of
tox
environments where listparser must be built and installed. - Internally rely on
dict
key-based lookups instead ofSuperDict
attribute-based lookups. - Cache XML parsing method lookup results to avoid excessive string formatting.
- Change the name of the
ListError
toListparserError
. - Split the codebase into multiple files.
- Use
tox
to automate testing across multiple interpreters and versions. - Migrate to
pytest
for unit testing. - Remove dependence on the
six
package. - Add type annotations.
- Remove compatibility code.
- Migrate to Poetry and
pyproject.toml
for project configuration. - Change the license from LGPLv3 to MIT.
- Use scriv to manage the CHANGELOG.