All Versions
40
Latest Version
Avg Release Cycle
70 days
Latest Release
19 days ago

Changelog History
Page 1

  • v7.5.0 Changes

    November 13, 2021

    โž• Added

    • โšก๏ธ Log a warning if a submission's comment_sort attribute is updated after the submission has already been fetched and a warn_comment_sort config setting to turn off the warning.
    • :meth:.user_selectable to get available subreddit link flairs.
    • ๐Ÿ‘ Automatic RateLimit handling will support errors with millisecond resolution.

    ๐Ÿ›  Fixed

    • An import error when using PRAW in environments where libsqlite3-dev is needed to utilize the sqlite3 builtin.
    • ๐Ÿ›  Fixed bug where some keyword arguments that are passed to :meth:.Draft.submit would not have an effect.
  • v7.4.0 Changes

    July 30, 2021

    โž• Added

    • :meth:~.WikiPage.discussions to obtain site-wide link submissions that link to the WikiPage.
    • โช :meth:.revert to revert a WikiPage to a specified revision.
    • :meth:.Inbox.mark_all_read to mark all messages as read with one API call.
    • :meth:~.InboxableMixin.unblock_subreddit to unblock a subreddit.
    • :meth:.update_crowd_control_level to update the crowd control level of a post.
    • :meth:.moderator_subreddits, which returns information about the subreddits that the authenticated user moderates, has been restored.
    • ๐Ÿ‘€ The configuration setting refresh_token has been added back. See https://www.reddit.com/r/redditdev/comments/olk5e6/followup_oauth2_api_changes_regarding_refresh/ for more info.
    • :class:.Draft to represent a submission draft.
    • :meth:.Draft.delete to delete drafts.
    • :meth:.Draft.submit to submit drafts.
    • โšก๏ธ :meth:.Draft.update to modify drafts.
    • :class:.DraftHelper to fetch or create drafts on new Reddit.
    • :class:.DraftList to represent a list of :class:.Draft objects.

    ๐Ÿ”„ Changed

    • :meth:.Reddit.delete now accepts the params parameter.

    ๐Ÿ—„ Deprecated

    • :class:.Reddit keyword argument token_manager.
  • v7.3.0 Changes

    June 17, 2021

    โž• Added

    • :class:.UserSubreddit for the subreddit attribute of :class:.Redditor.
    • :meth:.Reddit.username_available checks if a username is available.
    • :meth:.trusted to retrieve a :class:.RedditorList of trusted users.
    • :meth:.trust to add a user to the trusted list.
    • ๐Ÿšš :meth:.distrust to remove a user from the trusted list.
    • ๐Ÿ :class:.SQLiteTokenManager (may not work on Windows)

    ๐Ÿ”„ Changed

    • :meth:.Redditor.moderated will now objectify all data returned from the API.
    • The wiki_edit endpoint has been changed from r/{subreddit}/api/wiki/edit/ to r/{subreddit}/api/wiki/edit.
    • :meth:.Redditor.block no longer needs to retrieve a user's fullname.

    ๐Ÿ—„ Deprecated

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed bug where :meth:.WikiPage.edit and :meth:.SubredditWiki.create would fail if passed content and reason parameters that produced a request with a body greater than 500 KiB, even when the parameters did not exceed their respective permitted maximum lengths.
    • ๐Ÿ›  Fixed bug where :meth:.Reddit.request could not handle instances of BadRequest\s when the JSON data contained only the keys "reason" and "message".
    • ๐Ÿ›  Fixed bug where :meth:.Reddit.request could not handle instances of BadRequest\s when the response did not contain valid JSON data.
    • ๐Ÿ›  Fixed bug where :meth:.FullnameMixin.fullname sometimes returned the wrong fullname.
  • v7.2.0 Changes

    February 24, 2021

    โž• Added

    • :class:.Reddit keyword argument token_manager.
    • :class:.FileTokenManager and its parent abstract class :class:.BaseTokenManager.

    ๐Ÿ—„ Deprecated

    • ๐Ÿ”ง The configuration setting refresh_token is deprecated and its use will result in a :py:class:DeprecationWarning. This deprecation applies in all ways of setting configuration values, i.e., via praw.ini, as a keyword argument when initializing an instance of :class:.Reddit, and via the PRAW_REFRESH_TOKEN environment variable. To be prepared for PRAW 8, use the new :class:.Reddit keyword argument token_manager. See :ref:refresh_token in PRAW's documentation for an example.
    • :meth:.me will no longer return None when called in :attr:.read_only mode starting in PRAW 8. A :py:class:DeprecationWarning will be issued. To switch forward to the PRAW 8 behavior set praw8_raise_exception_on_me=True in your :class:.Reddit call.
  • v7.1.4 Changes

    February 07, 2021

    ๐Ÿ›  Fixed

    • Asynchronous check will no longer fail in Python 3.6 multithreading edge cases.
  • v7.1.3 Changes

    February 05, 2021

    ๐Ÿ”„ Changed

    • Asynchronous check will no longer occur when in a Jupyter notebook.
  • v7.1.2 Changes

    February 03, 2021

    ๐Ÿ›  Fixed

    • โš™ Asynchronous check would not work on Python 3.6 as asyncio.get_running_loop only exists on Python 3.7+.
  • v7.1.1 Changes

    February 02, 2021

    โž• Added

    • โž• Add method :meth:~.Subreddits.premium to reflect the naming change in Reddit's API.
    • Ability to submit image galleries with :meth:~.Subreddit.submit_gallery.
    • Ability to pass a gallery url to :meth:.Reddit.submission.
    • Ability to specify modmail mute duration.
    • โž• Add method :meth:.invited to get invited moderators of a subreddit.
    • Ability to submit text/self posts with inline media.
    • โž• Add method :meth:~.Submission.award and :meth:~.Comment.award with the ability to specify type of award, anonymity, and message when awarding a submission or comment.
    • Ability to specify subreddits by name using the subreddits parameter in :meth:.Reddit.info.
    • ๐Ÿ‘€ A check to see if PRAW is running in an asynchronous environment and will advise the user to use Async PRAW <https://asyncpraw.readthedocs.io>_. This also adds a configuration option to disable the check.

    ๐Ÿ”„ Changed

    • โฌ‡๏ธ Drop support for Python 3.5, which is end-of-life on 2020-09-13.
    • :class:~.BoundedSet will now utilize a Last-Recently-Used (LRU) storing mechanism, which will change the order in which elements are removed from the set.
    • Improved :meth:~.Subreddit.submit_image and :meth:~.Subreddit.submit_video performance in slow network environments by removing a race condition when establishing a websocket connection.

    ๐Ÿ—„ Deprecated

    • :meth:~.Subreddits.gold is superseded by :meth:~.Subreddits.premium.
    • :meth:~.Submission.gild is superseded by :meth:~.Submission.award.
    • :meth:~.Comment.gild is superseded by :meth:~.Comment.award.

    ๐Ÿ›  Fixed

    • An issue where leaving as a moderator fails if you are using token auth.
    • An issue where an incorrect error was being raised due to invalid submission urls.
    • Some cases where streams yield the same item multiple times. This cannot be prevented in every case.
  • v7.1.0 Changes

    June 22, 2020

    โž• Added

    • :class:.Rule to represent one rule of a subreddit.
    • :class:.SubredditRules to get and add rules.
    • Ability to submit polls with :meth:~.Subreddit.submit_poll.
    • :class:.PollData and :class:.PollOption.
    • ๐Ÿ“Š Ability to view poll data and poll options via the .poll_data attribute on poll submissions.
    • โž• Add method :meth:~.Reddit.delete to :class:.Reddit class to support HTTP DELETE requests.
    • โž• Added :class:.CalendarConfiguration to represent the configuration of a :class:.Calendar widget.
    • โž• Added :class:.Hover to represent the hover state of a :class:.Button.
    • โž• Added :class:.Styles to represent widget styling information.
    • โšก๏ธ Ability to stream live thread updates via new class :class:.LiveThreadStream with method :meth:~.LiveThreadStream.updates.

    ๐Ÿ”„ Changed

    • โšก๏ธ :meth:.RemovalReason.update's parameters are now optional.
    • :meth:.SubredditRemovalReasons.__getitem__ now takes integers and slices to get removal reasons from the list of reasons as returned by Reddit.

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ :attr:.WebSocketException.original_exception is deprecated and slated for removal in PRAW 8.0.

    ๐Ÿ›  Fixed

    • An issue where certain subreddit settings could not be set through :meth:.SubredditModeration.update, such as welcome_message_enabled and welcome_message_text. This change also removes the need for PRAW to track current subreddit settings and send unmodified ones in the update request.
    • Instances of BadRequest\ s captured by PRAW that do not contain any detailed JSON data are re-raised as the original BadRequest.
    • :meth:~.Subreddit.submit_image and :meth:~.Subreddit.submit_video will throw :class:.MediaPostFailed when Reddit fails to post an image or video post.
  • v7.0.0 Changes

    April 24, 2020

    โž• Added

    • ๐Ÿ‘ config_interpolation parameter for :class:.Reddit supporting basic and extended modes.
    • โž• Add :meth:.Redditors.partial_redditors that returns lightweight redditor objects that contain only a few fields. This is useful for resolving Redditor IDs to their usernames in bulk.
    • :meth:.User.friends has a new parameter user that takes either an instance of :class:.Redditor or a string containing a redditor name and returns an instance of :class:.Redditor if the authenticated user is friends with the user, otherwise throws an exception.
    • :meth:.SubmissionModeration.flair has the parameter flair_template_id for applying flairs with template IDs.
    • โšก๏ธ :meth:~.Emoji.update supports modifying an emoji's permissions.
    • ๐Ÿ‘ :meth:~.SubredditEmoji.add now supports optionally passing booleans to set an emoji's permissions upon upload.
    • โšก๏ธ Methods :meth:.SubredditLinkFlairTemplates.update and :meth:.SubredditRedditorFlairTemplates.update contain a new parameter, fetch, that toggles the automatic fetching of existing data from Reddit. It is set to True by default.
    • โšก๏ธ Values in methods :meth:.SubredditLinkFlairTemplates.update and :meth:.SubredditRedditorFlairTemplates.update that are left as the defaults will no longer be over-written if the fetch parameter is set to True, but will fill in existing values for the flair template.
    • The parameter text for methods :meth:.SubredditLinkFlairTemplates.update and :meth:.SubredditRedditorFlairTemplates.update is no longer required.
    • There is a new method, :meth:.Subreddit.post_requirements, to fetch a subreddit's post requirements.
    • Method :meth:.SubmissionModeration.sticky will now ignore the Confict exception generated by trying to sticky the same post multiple times.
    • A new method :meth:.CommentModeration.show will uncollapse a comment that was collapsed because of Crowd Control
    • Methods :meth:.Subreddit.submit_image and :meth:.Subreddit.submit_video will throw :class:.TooLargeMediaException if the submitted media is rejected by Reddit due to the size of the media.
    • Class :class:.Reddit has an attribute, validate_on_submit, that can be set after class initialization that causes methods :meth:.Subreddit.submit, :meth:.Subreddit.submit_image, :meth:.Subreddit.submit_video, and :meth:.Submission.edit to check that the submission matches a subreddit's post validation rules. This attribute will be functionally useless once Reddit implements their change. This attribute will be deprecated on the next release after Reddit's change, and will be removed on the next major release after Reddit's change.

    โš  .. warning:: In May-June 2020, Reddit will force all submissions to run through a subreddit's validation rules.

    • Introduced a data class, :class:.RedditErrorItem, to represent an individual error item returned from Reddit.
    • Class :class:.RedditAPIException now serves as a container for the :class:.RedditErrorItem\ s. You can access the items by doing RedditAPIException.items, which returns a list.
    • :class:.APIException is an alias to :class:.RedditAPIException.
    • Parameter discussion_type to methods :meth:.Subreddit.submit, :meth:.Subreddit.submit_image, and :meth:.Subreddit.submit_video to support submitting as a live discussion (set to CHAT).
    • Instances of :class:.Trophy can be compared for equality with each other.
    • ๐Ÿ”ง :class:.Reddit has a new configurable parameter, timeout. This defaults to 16 seconds. It controls how long PRAW will wait for a response before throwing an exception.
    • PRAW now handles ratelimit errors returned as instances of :class:.RedditAPIException.
    • :class:.Reddit has one new parameter, ratelimit_seconds . The parameter configures the maximum amount of seconds to catch ratelimits for. It defaults to 5 seconds when not specified.

    ๐Ÿ”„ Changed

    • prawcore.BadRequest should no longer be raised. Instead a more useful :class:.RedditAPIException instance will be raised.
    • 0๏ธโƒฃ Set the default comment sort to confidence instead of best because it turns out best isn't actually the correct value for the parameter.

    ๐Ÿ—„ Deprecated

    • ๐Ÿ—„ :class:.APIException is deprecated and slated for removal in PRAW 8.0.

    ๐Ÿ›  Fixed

    • โšก๏ธ :meth:.SubredditFlair.update will not error out when the flair text contains quote marks.

    โœ‚ Removed

    • Converting :class:.APIException to string will no longer escape unicode characters.
    • Module praw.models.modaction no longer exists. Please use the module praw.models.mod_action, or directly import ModAction from praw.models.
    • โšก๏ธ Methods :meth:.SubredditLinkFlairTemplates.update and :meth:.SubredditRedditorFlairTemplates.update will no longer create flairs that are using an invalid template id, but instead throw a :class:.InvalidFlairTemplateID.
    • ๐Ÿšš Method reddit.user.moderator_subreddits has been removed. Please use :meth:.Redditor.moderated instead.