Reader

Latest version: v3.12

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

Scan your dependencies

Page 8 of 13

1.10

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

Released 2020-11-20

* Use indexes for :meth:`~Reader.get_entries()` (recent order);
should make calls 10-30% faster.
(:issue:`134`)
* Allow sorting :meth:`~Reader.search_entries` results randomly.
Allow sorting search results randomly in the web application.
(:issue:`200`)
* Reraise unexpected errors caused by parser bugs
instead of replacing them with an :exc:`AssertionError`.
* Add the ``sqlite_releases`` custom parser plugin.
* Refactor the HTTP feed sub-parser to allow reuse by custom parsers.
* Add a user guide, and improve other parts of the documentation.
(:issue:`194`)

1.9

-----------

Released 2020-10-28

* Support Python 3.9. (:issue:`199`)
* Support Windows (requires Python >= 3.9). (:issue:`163`)
* Use GitHub Actions to do macOS and Windows CI builds. (:issue:`199`)
* Rename the ``cloudflare_ua_fix`` plugin to ``ua_fallback``.
Retry any feed that gets a 403, not just those served by Cloudflare.
(:issue:`181`)
* Fix type annotation to avoid mypy 0.790 errors. (:issue:`198`)

1.8

-----------

Released 2020-10-02

* Drop feedparser 5.x support (deprecated in 1.7);
use feedparser 6.x instead.
(:issue:`190`)
* Make the string representation of :exc:`ReaderError` and its subclasses
more consistent; add error messages and improve the existing ones.
(:issue:`173`)
* Add method :meth:`~Reader.change_feed_url` to change the URL of a feed.
(:issue:`149`)
* Allow changing the URL of a feed in the web application.
(:issue:`149`)
* Add more tag navigation links to the web application.
(:issue:`184`)
* In the ``feed_entry_dedupe`` plugin,
copy the important flag from the old entry to the new one.
(:issue:`140`)

1.7

-----------

Released 2020-09-19

* Add new methods to support feed tags: :meth:`~Reader.add_feed_tag`,
:meth:`~Reader.remove_feed_tag`, and :meth:`~Reader.get_feed_tags`.
Allow filtering feeds and entries by their feed tags.
(:issue:`184`)
* Add the ``broken`` argument to :meth:`~Reader.get_feeds`,
which allows getting only feeds that failed / did not fail
during the last update.
(:issue:`189`)
* feedparser 5.x support is deprecated in favor of feedparser 6.x.
Using feedparser 5.x will raise a deprecation warning in version 1.7,
and support will be removed the following version.
(:issue:`190`)
* Tag-related web application features:
show tags in the feed list;
allow adding/removing tags;
allow filtering feeds and entries by their feed tag;
add a page that lists all tags.
(:issue:`184`)
* In the web application, allow showing only feeds that failed / did not fail.
(:issue:`189`)
* In the ``preview_feed_list`` plugin, add ``<meta>`` tags as
a feed detection heuristic.
* Add a few property-based tests. (:issue:`188`)

1.6

-----------

Released 2020-09-04

* Add the ``feed_root`` argument to :func:`make_reader`,
which allows limiting local feed parsing to a specific directory
or disabling it altogether.
Using it is recommended, since by default *reader* will access
any local feed path
(in 2.0, local file parsing will be disabled by default).
(:issue:`155`)
* Support loading CLI and web application settings from a
:doc:`configuration file <config>`. (:issue:`177`)
* Fail fast for feeds that return HTTP 4xx or 5xx status codes,
instead of (likely) failing later with an ambiguous XML parsing error.
The cause of the raised :exc:`ParseError` is now an instance of
:exc:`requests.HTTPError`. (:issue:`182`)
* Add ``cloudflare_ua_fix`` plugin (work around Cloudflare sometimes
blocking requests). (:issue:`181`)
* feedparser 6.0 (beta) compatibility fixes.
* Internal parser API changes to support alternative parsers, pre-request hooks,
and making arbitrary HTTP requests using the same logic :class:`Reader` uses.
(:issue:`155`)
* In the /preview page and the ``preview_feed_list`` plugin,
use the same plugins the main :class:`Reader` does.
(enabled by :issue:`155`)

1.5

-----------

Released 2020-07-30

* Use rowid when deleting from the search index, instead of the entry id.
Previously, each :meth:`~Reader.update_search` call would result in a full
scan, even if there was nothing to update/delete.
This should reduce the amount of reads significantly
(deleting 4 entries from a database with 10k entries
resulted in an 1000x decrease in bytes read).
(:issue:`178`)
* Require at least SQLite 3.18 (released 2017-03-30) for the current
:meth:`~Reader.update_search` implementation;
all other *reader* features continue to work with SQLite >= 3.15.
(:issue:`178`)
* Run ``PRAGMA optimize`` on :meth:`~Reader.close()`.
This should increase the performance of all methods.
As an example, in :issue:`178` it was found that :meth:`~Reader.update_search`
resulted in a full scan of the entries table,
even if there was nothing to update;
this change should prevent this from happening.
(:issue:`143`)

.. note::
``PRAGMA optimize`` is a no-op in SQLite versions earlier than 3.18.
In order to avoid the case described above, you should run `ANALYZE`_
regularly (e.g. every few days).

.. _ANALYZE: https://www.sqlite.org/lang_analyze.html

Page 8 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.