Reader

Latest version: v3.12

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

Scan your dependencies

Page 4 of 13

2.13

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

Released 2022-06-28

* Add the :ref:`twitter` experimental plugin,
which allows using a Twitter account as a feed.
(:issue:`271`)
* Skip with a warning entries that have no <guid> or <link> in an RSS feed;
only raise :exc:`ParseError` if *all* entries have a missing id.
(Note that both Atom and JSON Feed entries are required to have an id
by their respective specifications.)
Thanks to `Mirek Długosz`_ for the issue and pull request.
(:issue:`281`)
* Add :exc:`ReaderWarning`.

2.12

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

Released 2022-03-31

* Add the :mod:`~reader.plugins.readtime`
:ref:`built-in <built-in plugins>` plugin,
which stores the entry read time as a tag during feed update.
(:issue:`275`)

* Allow running arbitrary actions *once* before/after updating feeds
via :attr:`~Reader.before_feeds_update_hooks` /
:attr:`~Reader.after_feeds_update_hooks`.
* Add :meth:`Entry.get_content` and :attr:`Content.is_html`.

* In the web app, use the read time provided by the
:mod:`~reader.plugins.readtime` plugin,
instead of calculating it on each page load.
Speeds up the rendering of the entries page by 20-30%,
hopefully winning back the time lost
when the read time feature was first added in `2.6 <Version 2.6_>`_.
(:issue:`275`)
* In the web app, also show the read time for search results.

2.11

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

Released 2022-03-17

* Fix issue causing :func:`make_reader` to fail with message
``database requirement error: required SQLite compile options missing: ['ENABLE_JSON1']``
when using SQLite 3.38 or newer.
(:issue:`273`)

2.10

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

Released 2022-03-12

* Support entry and global tags. (:issue:`272`, :issue:`228`, :issue:`267`)

* Remove :meth:`~Reader.get_tags()` support for the
``(None,)`` (any feed) and :const:`None` (any resource)
wildcard resource values.

.. warning::

**This is a minor compatibility break**, but is unlikely to affect existing users;
the usefulness of the wildcards was limited, because
it was impossible to tell to which resource a (key, value) pair belongs.

* Allow passing a `(feed URL,)` 1-tuple anywhere a feed URL can be passed
to a :class:`Reader` method.

* Remove the ``global_metadata`` experimental plugin
(superseded by global tags).

* In the web application, support editing entry and global metadata.
Fix broken delete metadata button.
Fix broken error flashing.

2.9

-----------

Released 2022-02-07

* Decrease :meth:`~Reader.update_feeds()` memory usage by ~35%
(using the maxrss before the call as baseline;
overall process maxrss decreases by ~20%).
The improvement is not in *reader* code, but in feedparser;
*reader* will temporarily vendor feedparser
until the fix makes it upstream and is released on PyPI.
(:issue:`265`)

* In the web application, allow sorting feeds by the number of entries:
important, unread, per day during the last 1, 3, 12 months.
(:issue:`249`, :issue:`245`).

2.8

-----------

Released 2022-01-22

* Add generic tag methods
:meth:`~Reader.get_tags`,
:meth:`~Reader.get_tag_keys`,
:meth:`~Reader.get_tag`,
:meth:`~Reader.set_tag`,
and :meth:`~Reader.delete_tag`,
providing a unified interface for accessing tags as key-value pairs.
(:issue:`266`)

Add the :exc:`TagError`, :exc:`TagNotFoundError`,
and :exc:`ResourceNotFoundError` exceptions.

* Deprecate feed-specific tag and metadata methods (:issue:`266`):

* :meth:`~Reader.get_feed_metadata`, use :meth:`~Reader.get_tags` instead
* :meth:`~Reader.get_feed_metadata_item`, use :meth:`~Reader.get_tag` instead
* :meth:`~Reader.set_feed_metadata_item`, use :meth:`~Reader.set_tag` instead
* :meth:`~Reader.delete_feed_metadata_item`, use :meth:`~Reader.delete_tag` instead
* :meth:`~Reader.get_feed_tags`, use :meth:`~Reader.get_tag_keys` instead
* :meth:`~Reader.add_feed_tag`, use :meth:`~Reader.set_tag` instead
* :meth:`~Reader.remove_feed_tag`, use :meth:`~Reader.delete_tag` instead

Deprecate :exc:`MetadataError`, :exc:`MetadataNotFoundError`, and
:exc:`FeedMetadataNotFoundError`.

All deprecated methods/exceptions **will be removed in version 3.0**.

* Add the ``missing_ok`` argument to :meth:`~Reader.delete_feed`
and :meth:`~Reader.delete_entry`.
* Add the ``exist_ok`` argument to :meth:`~Reader.add_feed`.

* In the web application, show maxrss when debug is enabled. (:issue:`269`)
* In the web application, decrease memory usage of the entries page
when there are a lot of entries
(e.g. for 2.5k entries, maxrss decreased from 115 MiB to 75 MiB),
at the expense of making "entries for feed" slightly slower.
(:issue:`269`)

Page 4 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.