Change Log

Async PRAW follows semantic versioning.

Unreleased

Added

  • reorder() to reorder a subreddit’s link flair templates.

  • reorder() to reorder a subreddit’s redditor flair templates.

  • Experimental _edit_experimental() for adding new inline media or editing a submission that has inline media.

    Danger

    This method is experimental. It is reliant on undocumented API endpoints and may result in existing inline media not displaying correctly and/or creating a malformed body. Use at your own risk. This method may be removed in the future without warning.

    This method is identical to Submission.edit() except for the following:

    • The ability to add inline media to existing posts.

    • Additional preserve_inline_media keyword argument to allow Async PRAW to attempt to preserve the existing inline media when editing a post. This is an experimental fix for an issue that occurs when editing a post with inline media would cause the media to lose their inline appearance.

Fixed

  • XML parsing error when media uploads fail.

7.7.1 (2023/07/11)

Changed

  • Drop asyncio_extras dependency, use contextlib.asynccontextmanager instead.

Fixed

  • An issue with replying to a modmail conversation results in a error.

7.7.0 (2023/02/25)

Added

Fixed

  • An issue with iterating ModNote when a user has more than a hundred notes.

  • An issue when uploading media during the submission of a new media post.

  • Removal reasons are now returned in the same order as they appear on Reddit.

7.6.1 (2022/11/28)

Changed

  • Revert edit() positional argument deprecation.

  • Revert edit() positional argument deprecation.

Fixed

  • An issue where ModmailConversation’s messages attribute would only contain the latest message.

7.6.0 (2022/10/23)

Added

Changed

  • Drop support for Python 3.6, which is end-of-life on 2021-12-23.

  • conversations() now returns a ListingGenerator allowing you to page through more than 100 conversations.

Deprecated

  • The after argument for conversations() will now have to be included in params keyword argument.

  • Positional keyword arguments for applicable functions and methods. Starting with Async PRAW 8, most functions and methods will no longer support positional arguments. It will encourage more explicit argument passing, enable arguments to be sorted alphabetically, and prevent breaking changes when adding new arguments to existing methods.

7.5.0 (2021/11/13)

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.

  • user_selectable() to get available subreddit link flairs.

  • Automatic RateLimit handling will support errors with millisecond resolution.

  • Draft to represent a submission draft.

  • Draft.delete() to delete drafts.

  • Draft.submit() to submit drafts.

  • Draft.update() to modify drafts.

  • DraftHelper to fetch or create drafts on new Reddit.

  • DraftList to represent a list of Draft objects.

Deprecated

Fixed

  • Fixed return value type of methods returning a listing in Subreddit and its helper classes.

  • An import error when using Async PRAW in environments where libsqlite3-dev is needed to utilize aiosqlite package which depends on the sqlite3 builtin.

Deprecated

  • The keyword argument lazy has been replace by fetch to consolidate the keyword argument used to explicitly perform a fetch when initializing an object.

7.4.0 (2021/07/30)

Added

Changed

Deprecated

  • Reddit keyword argument token_manager.

7.3.1 (2021/07/06)

Changed

  • Reddit will now be shallow copied when a deepcopy is preformed on it as asyncprawcore.Session (more specifically, asyncio.AbstractEventLoop) does not support being deepcopied.

Fixed

  • Fixed an issue where some RedditBase objects would be sent in a request as "None".

7.3.0 (2021/06/18)

Added

Changed

  • 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.

  • Redditor.block() no longer needs to retrieve a user’s fullname.

Deprecated

Fixed

  • Fixed bug where WikiPage.edit() and 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 request() could not handle instances of BadRequests when the JSON data contained only the keys “reason” and “message”.

  • Fixed bug where request() could not handle instances of BadRequests when the response did not contain valid JSON data.

  • Fixed bug where fullname() sometimes returned the wrong fullname.

7.2.0 (2021/02/25)

Added

Deprecated

  • The configuration setting refresh_token is deprecated and its use will result in a 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 Reddit, and via the PRAW_REFRESH_TOKEN environment variable. To be prepared for Async PRAW 8, use the new Reddit keyword argument token_manager. See Working with Refresh Tokens in Async PRAW’s documentation for an example.

  • me() will no longer return None when called in read_only mode starting in Async PRAW 8. A DeprecationWarning will be issued. To switch forward to the Async PRAW 8 behavior set praw8_raise_exception_on_me=True in your asyncpraw.Reddit(...) call.

7.1.1 (2021/02/11)

Added

  • Add method Subreddits.premium() to reflect the naming change in Reddit’s API.

  • Ability to submit image galleries with submit_gallery().

  • Ability to pass a gallery url to Reddit.submission().

  • Ability to specify modmail mute duration.

  • Add method invited() to get invited moderators of a subreddit.

  • Ability to submit text/self posts with inline media.

  • Add method Submission.award() and 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 Reddit.info().

  • Added Reddit.close() to close the requestor session.

  • Ability to use Reddit as an asynchronous context manager that automatically closes the requestor session on exit.

Changed

  • 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 submit_image() and submit_video() performance in slow network environments by removing a race condition when establishing a websocket connection.

Deprecated

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.

  • A bug where if you call .parent() on a comment it clears its replies.

  • An issue where performing a deepcopy on an RedditBase object will fail.

  • Some cases where streams yield the same item multiple times. This cannot be prevented in every case.

  • An issue where streams could get stuck on a deleted item and never pull new items.

  • Fix subreddit style asset uploading.

7.1.0 (2020/07/16)

  • First official Async PRAW release!

7.1.0.pre1 (2020/07/16)

  • Initial Async PRAW pre-release.

For changes in PRAW please see: PRAW Changelog