Reader

Latest version: v3.12

Safety actively analyzes 619599 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 13

3.13

------------

Unreleased

3.12

------------

Released 2024-03-05

* Split the :ref:`full-text search <fts>` index into a separate,
attached database.
(:issue:`323`)
* Require at least SQLite 3.18.
Previously, *reader* core required 3.15,
and only :meth:`~Reader.update_search` required 3.18.
(:issue:`323`)
* Enable `write-ahead logging`_ only once, when the database is created,
instead of every time it is opened.
(:issue:`323`)
* Vacuum the main database after migrations. (:issue:`323`)
* Add an internal :ref:`change tracking API <changes>`
to formalize how search keeps in sync with storage.
(:issue:`323`)
* Refactor storage internals. (:issue:`323`)

3.11

------------

Released 2023-12-30

* Allow filtering entries by their (entry) tags. (:issue:`328`)
* Support Python 3.12. (:issue:`326`)

3.10

------------

Released 2023-11-12

* Stop using deprecated :mod:`sqlite3` datetime converters/adapters.
(:issue:`321`)
* Document the storage :doc:`internal`.
(:issue:`325`)
* Change all :doc:`internal APIs <internal>` to use timezone-aware datetimes,
with the timezone set to UTC.
(:issue:`321`)
* In the API documentation,
fall back to type hints if hand-written parameter types are not available.
Add relevant :ref:`documentation` guidelines to the dev documentation.
(:issue:`287`)
* Add the :mod:`~reader._plugins.share` experimental plugin
to add social sharing links in the web app.

3.9

-----------

Released 2023-08-28

* Wrap unexpected retriever/parser errors in :exc:`ParseError`,
instead of letting them bubble up,
so exceptions raised by custom retrievers/parsers
for one feed don't prevent updates for the others
during :meth:`~Reader.update_feeds_iter()` / :meth:`~Reader.update_feeds()`.
(:issue:`218`)
* Store the details of any :exc:`UpdateError` in :attr:`Feed.last_exception`
(except hook errors),
not just the ``__cause__`` of :exc:`ParseError`\s.
(:issue:`218`)

* Add the :mod:`~reader._plugins.timer` experimental plugin
to collect per-call method timings.
Show per-request statistics in the web app.
(:issue:`306`)

3.8

-----------

Released 2023-08-20

* Drop Python 3.9 support. (:issue:`302`)
* Use :mod:`concurrent.futures` instead of :mod:`multiprocessing.dummy`
when :ref:`updating feeds <update>` in parallel;
:mod:`multiprocessing.dummy` does not work on some environments
(e.g. AWS Lambda).

* Wrap unexpected hook errors in :exc:`UpdateHookError`
instead of letting them bubble up,
so plugin-raised exceptions for one feed don't prevent updates for the others
during :meth:`~Reader.update_feeds_iter()` / :meth:`~Reader.update_feeds()`.
(:issue:`218`)

.. warning::

**This is a minor compatibility break**;
it is considered acceptable, since it fixes a bug / unexpected behavior.

* Add new exceptions :exc:`UpdateHookError`,
:exc:`SingleUpdateHookError`, and :exc:`UpdateHookErrorGroup`.

* Try to run all
:attr:`~Reader.after_entry_update_hooks`,
:attr:`~Reader.after_feed_update_hooks`, and
:attr:`~Reader.after_feeds_update_hooks`,
don’t stop after one fails.

* Add :exc:`UpdateError` as parent of all update-related exceptions. (:issue:`218`)

* Narrow down the error type of :attr:`UpdateResult.value`
from :exc:`ReaderError` to :exc:`UpdateError`.
* Make :exc:`ParseError` inherit from :exc:`UpdateError`.
* Document :meth:`~Reader.update_feeds_iter()`, :meth:`~Reader.update_feeds()`,
and :meth:`~Reader.update_feed()` can raise :exc:`UpdateError`\s
(other than :exc:`UpdateHookError` and :exc:`ParseError`).

* Make :exc:`ReaderWarning` inherit from :exc:`ReaderError`.

* Include a diagram of the :ref:`exctree` in the :doc:`api`.

* Add werkzeug dependency,
instead of vendoring selected :mod:`werkzeug.http` utilities.
* Rework lazy imports introduced in `version 3.3 <Version 3.3_>`_.
(:issue:`316`)
* Make :mod:`reader._parser` a package, and move parsing-related modules into it.
(:issue:`316`)

Page 1 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.