Reader

Latest version: v3.12

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

Scan your dependencies

Page 2 of 13

3.7

-----------

Released 2023-07-15

.. attention::

This is the last release to support Python 3.9;
see :issue:`302` for details.

* Support PyPy 3.10. (:issue:`302`)

* Remove the :ref:`twitter` experimental plugin
(deprecated in `3.6 <Version 3.6_>`_).
(:issue:`310`)
* Remove the :ref:`tumblr_gdpr` experimental plugin
(not needed since August 2020).
(:issue:`315`)

3.6

-----------

Released 2023-06-16

* Add documentation on :doc:`contributing`
and a detailed :ref:`roadmap`.
Thanks to `Katharine Jarmul <https://kjamistan.com/>`_
for finally getting me to do this.
(:issue:`60`)
* Document the low-level
:meth:`~reader._storage.Storage.delete_entries`
storage method.
(:issue:`301`, :issue:`96`)
* Update vendored ``reader._http_utils`` to werkzeug 2.3.5.

* Deprecate the :ref:`twitter` experimental plugin,
since the Twitter API does not have a (useful) free tier anymore.
(:issue:`310`)

.. attention::

The :ref:`twitter` plugin will be removed in version 3.7.

3.5

-----------

Released 2023-03-19

* Make :attr:`Entry.important` an *optional* boolean
defaulting to :const:`None`,
so one can express "explicitly unimportant" (*don't care*)
by setting it to :const:`False`.
This replaces the semantics for *don't care* introduced
in `version 2.2 <Version 2.2_>`_.
(:issue:`254`)

.. warning::

**This is a minor compatibility break**,
and should mostly affect code that checks identity
(``if entry.important is True: ...``);
code that uses :attr:`~Entry.important` in a boolean context
(``if entry.important: ...``)
should not be affected.

* :attr:`Entry.important` values will be migrated as follows::

if read and not important and important_modified:
important = False
elif not important:
important = None
else:
important = important

* The ``important`` argument of
:meth:`~Reader.get_entries`, :meth:`~Reader.search_entries`, etc.
can also take string literals for more precise filtering,
see :attr:`~reader.types.TristateFilterInput`.

* The :mod:`~reader.plugins.mark_as_read` plugin
does not set :attr:`~reader.Entry.read_modified` and
:attr:`~reader.Entry.important_modified` anymore.

* The web app uses the new *don't care* semantics.

* :meth:`~Reader.set_entry_read` and :meth:`~Reader.set_entry_important`
do not coerce the flag value to :class:`bool` anymore,
and require it to be :const:`True` or :const:`False` (or :const:`None`).

3.4

-----------

Released 2023-01-22

* Drop Python 3.8 support. (:issue:`298`)

* Document the parser :doc:`internal`.
(:issue:`235`, :issue:`255`)

* Fix ``preview_feed_list`` plugin,
broken by `3.3 <Version 3.3_>`_ parser refactoring.
(:issue:`299`)

3.3

-----------

Released 2022-12-19

This release marks *reader*'s `5th anniversary`_ and its 2000th commit.

.. attention::

This is the last release to support Python 3.8;
see :issue:`298` for details.

* Support Python 3.11. (:issue:`289`)

* Postpone update-related imports until needed.
Shortens time from process start to usable Reader instance by 3x
(imports are 72% faster). (:issue:`297`)

* Refactor parser internals. (:issue:`297`)

.. note::

Plugins using the (unstable) session hooks should replace::

reader._parser.session_hooks.request.append(...)
reader._parser.session_hooks.response.append(...)

with::

reader._parser.session_factory.request_hooks.append(...)
reader._parser.session_factory.response_hooks.append(...)

* :ref:`twitter` plugin:
don't fail when deserializing tweets with missing ``edit_history_tweet_ids``
(fails in tweepy 4.11, warns in tweepy >4.12).

.. _5th anniversary: https://github.com/lemon24/reader/commit/73ac0bd3b8d0e5429e0bd7caf5281e4c9c74f16d

3.2

-----------

Released 2022-09-14

* :class:`UpdatedFeed` changes:
added field :attr:`~UpdatedFeed.unmodified`
and property :attr:`~UpdatedFeed.total`;
fields :attr:`~UpdatedFeed.new` and :attr:`~UpdatedFeed.modified`
became optional.
(:issue:`96`)
* Fix bug in :mod:`~reader.plugins.entry_dedupe` causing updates to fail
if there were multiple *new* duplicates of the same issue.
(:issue:`292`)
* Fix bug in :mod:`~reader.plugins.readtime`
and :mod:`~reader.plugins.mark_as_read` causing updates to fail
if an entry was deleted by another plugin.
(:issue:`292`)
* Fix bug in :mod:`~reader.plugins.mark_as_read` causing updates to fail
if an entry had no title.
* In the CLI, don't suppress the traceback of :exc:`ReaderError`,
since it would also suppress it for bugs.
* In the CLI, stop using deprecated :func:`click.get_terminal_size`.

Page 2 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.