reader v1.18 Release Notes

  • ๐Ÿš€ Released 2021-06-03

    • ๐Ÿ“‡ Rename :class:Reader feed metadata methods:

      • :meth:~Reader.iter_feed_metadata to :meth:~Reader.get_feed_metadata
      • :meth:~Reader.get_feed_metadata to :meth:~Reader.get_feed_metadata_item
      • :meth:~Reader.set_feed_metadata to :meth:~Reader.set_feed_metadata_item
      • :meth:~Reader.delete_feed_metadata to :meth:~Reader.delete_feed_metadata_item

    For backwards compatibility, the old method signatures will continue to work until version 2.0, when they will be removed. (:issue:183)

    .. warning::

    The ``get_feed_metadata(feed, key[, default]) -> value`` form
    is backwards-compatible *only when the arguments are positional*.
    
    **This is a minor compatibility break**;
    the following work in 1.17, but do not in 1.18::
    
        # raises TypeError
        reader.get_feed_metadata(feed, key, default=None)
    
        # returns `(key, value), ...` instead of `value`
        reader.get_feed_metadata(feed, key=key)
    
    The pre-1.18 :meth:`~Reader.get_feed_metadata`
    (1.18 :meth:`~Reader.get_feed_metadata_item`)
    is intended to have positional-only arguments,
    but this cannot be expressed easily until Python 3.8.
    
    • ๐Ÿ“‡ Rename :exc:MetadataNotFoundError to :exc:FeedMetadataNotFoundError. :exc:MetadataNotFoundError remains available, and is a superclass of :exc:FeedMetadataNotFoundError for backwards compatibility. (:issue:228)

    .. warning::

    The signatures of the following exceptions changed:
    
    :exc:`MetadataError`
        Takes a new required ``key`` argument, instead of no required arguments.
    
    :exc:`MetadataNotFoundError`
        Takes only one required argument, ``key``;
        the ``url`` argument has been removed.
    
        Use :exc:`FeedMetadataNotFoundError` instead.
    
    **This is a minor compatibility break**,
    but only affects third-party code that instantiates
    these exceptions *directly*.
    
    • ๐Ÿ“‡ Rename :attr:EntryError.url to :attr:~EntryError.feed_url; for backwards compatibility, the old attribute will be available as a property until version 2.0, when it will be removed. (:issue:183).

    .. warning::

    The signature of :exc:`EntryError` (and its subclasses)
    changed from ``EntryError(url, id)`` to ``EntryError(feed_url, id)``.
    
    **This is a minor compatibility break**,
    but only affects third-party code that instantiates
    these exceptions *directly* with ``url`` as a *keyword argument*.
    
    • Rename :meth:~Reader.remove_feed to :meth:~Reader.delete_feed. For backwards compatibility, the old method will continue to work until version 2.0, when it will be removed. (:issue:183)

    • Rename :class:Reader mark_as_... methods:

      • :meth:~Reader.mark_as_read to :meth:~Reader.mark_entry_as_read
      • :meth:~Reader.mark_as_unread to :meth:~Reader.mark_entry_as_unread
      • :meth:~Reader.mark_as_important to :meth:~Reader.mark_entry_as_important
      • :meth:~Reader.mark_as_unimportant to :meth:~Reader.mark_entry_as_unimportant

    For backwards compatibility, the old methods will continue to work until version 2.0, when they will be removed. (:issue:183)

    • ๐Ÿ›  Fix feeds with no title sometimes missing from the :meth:~Reader.get_feeds() results when there are more than 256 feeds (Storage.chunk_size). (:issue:203)

    • ๐ŸŒ When serving the web application with python -m reader serve, don't set the Referer header for cross-origin requests. (:issue:209)