Reader

Latest version: v3.15

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

Scan your dependencies

Page 1 of 14

3.16

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

Unreleased

3.15

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

Released 2024-11-11

* During :ref:`scheduled updates <scheduled>`,
honor the Retry-After HTTP header sent with
429 Too Many Requests or 503 Service Unavailable responses.
(:issue:`307`)
* Optimize OR-only :meth:`~Reader.get_feeds()` and :meth:`~Reader.get_entries()`
tag filters (e.g. ``[['one', ...]]``). (:issue:`359`)
* Expose :data:`reader.core.DEFAULT_RESERVED_NAME_SCHEME`. (:issue:`287`)

* Update the (unstable) parser API to expose HTTP information to the updater.
(:issue:`307`)

* The :class:`.RetrieverType` protocol used by retrievers changed
(new return type, allow storing arbitrary caching data via
:attr:`~.RetrievedFeed.caching_info`).
* The ``HTTPAcceptParserType`` was renamed to :class:`.AcceptParserType`.

* Allow :ref:`using the installed feedparser <no-vendored-feedparser>`
instead of the one vendored by *reader*.
This is useful for working around issues in the vendored feedparser,
like the libxml2 <=2.13.3 incompatibility reported in :issue:`350`;
thanks to `Maks Verver`_ for reporting,
root causing, and following up with both dependencies.

* Fix a number of brittle / broken tests.
Thanks to `Maks Verver`_ for the issues and fixes.
(:issue:`348`, :issue:`349`, :issue:`355`)

.. _Maks Verver: https://github.com/maksverver

3.14

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

Released 2024-07-23

* Add :attr:`~EntryCounts.unimportant` attribute to
:class:`EntryCounts` and :class:`EntrySearchCounts`.
Thanks to `chenthur`_ for the pull request.
(:issue:`283`)
* Fix bug in the :mod:`~reader.plugins.entry_dedupe` plugin causing entries
to flip-flop if there were multiple *new* duplicates of the same issue
(on the first update, one entry remains, on the second update, the other);
related to the bug fixed in `version 3.2 <Version 3.2_>`_.
(:issue:`340`)

* :mod:`~reader._plugins.enclosure_tags` plugin improvements. (:issue:`344`)

* Set genre to `Podcast` if the feed has any tag containing "podcast".
* Rewrite tags on the fly,
instead of downloading the entire file before sending it to the user;
allows browsers to display accurate download progress.
* Prefer feed user title to feed title if available.
* Use feed title as artist, instead of author.

* Support Python 3.13. (:issue:`341`)
* Update vendored `feedparser`_ to the ``develop`` branch as of 2024-06-26.
Needed because upstream removed dependency on stdlib module ``cgi``
(removed in Python 3.13), but the `version 2.9 <Version 2.9_>`_
memory usage reduction was not released upstream yet.
(:issue:`341`)

.. _chenthur: https://github.com/chenthur
.. _feedparser: https://feedparser.readthedocs.io/en/latest/

3.13

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

Released 2024-06-19

* Allow different feed update intervals; see :ref:`scheduled` for details.
(:issue:`332`)

* Add ``scheduled`` argument to :meth:`~Reader.update_feeds()`,
:meth:`~Reader.get_feeds()`, etc.

* Add :attr:`Feed.update_after` and :attr:`~Feed.last_retrieved` attributes.

* The ``new`` filter of :meth:`~Reader.update_feeds()` etc. considers
a feed new if it was never retrieved (:attr:`~Feed.last_retrieved`),
not if it was never updated successfully (:attr:`~Feed.last_updated`).

* Update an entry whenever its :attr:`~Entry.updated` changes
(don't require it to be newer).

* Fix bug introduced in `version 3.12 <Version 3.12_>`_ causing an assertion error
when there are multiple entries with the same id in the same feed,
or when parallel :meth:`~Reader.update_feeds` calls add the same entry.
The fix restores the pre-3.12 first-entry-wins / last-write-wins behavior.
Thanks to `Joakim Hellsén`_ for reporting and helping debug this issue.
(:issue:`335`)

* Fix assertion error when an entry is deleted while being updated.

* Allow re-running the :mod:`~reader.plugins.mark_as_read` plugin for existing entries.
Thanks to `Michael Han`_ for the pull request.
(:issue:`317`)

* Other changes for scheduled updates. (:issue:`332`)

* Add ``--scheduled`` flag to the ``update`` command.
* The :mod:`~reader._plugins.cli_status` plugin now
records the output of multiple runs instead of just the last one,
with output from the same hour grouped in a single entry,
up to 24 entries/hours.
* Group mutually-exclusive attributes of :class:`~.FeedUpdateIntent`
into a new :attr:`~.FeedUpdateIntent.value` union attribute.

* New and improved :ref:`update` user guide section.
* Rename ``update --new-only`` CLI flag to ``--new``;
``--new-only`` remains available as an alias.
(:issue:`334`)

.. _Joakim Hellsén: https://github.com/TheLovinator1
.. _Michael Han: https://github.com/Sakunam

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`)

Page 1 of 14

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.