Tags: kurtmckee/listparser
Tags
0.20 - 2024-03-29 ================= Python support -------------- * Support Python 3.11 and 3.12. * Drop support for Python 3.7. Added ----- * Add a ``py.typed`` file so mypy can lint listparser use in dependent applications. * Support lxml v5.0.0 while maintaining support for v4.6.2. Changed ------- * Support malformed XML documents by using lxml's HTML parsers. Fixed ----- * Fix the feed URL to the blog entries about listparser. Documentation ------------- * Add the OPML 1.0 and OPML 2.0 specifications to the listparser documentation for posterity. Development ----------- * Randomize the order of listparser's unit tests on each run to help ensure there are no testing interdependencies. * Add black, flake8, and isort as pre-commit hooks. * Add mypy as a tox test environment. * Add pyupgrade as a pre-commit hook and enforce Python 3.8+ syntax. * Python warnings encountered during testing are now escalated to errors. * Move tool dependencies into separate ``requirements.txt`` files. * Add a tox label, ``update``, so it's easy to update tool dependencies.
0.19 - 2022-06-04 ================= *"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's ``xml.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 now ``True`` or ``False``, not ``1`` or ``0``. * ``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 the ``tests/`` subdirectory and into specific ``test_*`` 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 of ``SuperDict`` attribute-based lookups. * Cache XML parsing method lookup results to avoid excessive string formatting. * Change the name of the ``ListError`` to ``ListparserError``. * 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.
PreviousNext