Change Log¶
Async PRAW follows semantic versioning.
7.8.1 (2024/12/21)¶
7.8.0 (2024/10/20)¶
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.
stream_generator()
now accepts thecontinue_after_id
parameter, which starts the stream after a given item ID.Support for new share URL format created from Reddit’s mobile apps.
Reddit
has a new configurable parameter,window_size
. This tells PRAW how long reddit’s rate limit window is. This defaults to 600 seconds and shouldn’t need to be changed unless reddit changes the size of their rate limit window.
Fixed
An issue where submitting a post with media would fail due to an API change.
Changed
Drop support for Python 3.7, which is end-of-life on 2023-06-27.
Fixed
XML parsing error when media uploads fail.
7.7.1 (2023/07/11)¶
Changed
Drop
asyncio_extras
dependency, usecontextlib.asynccontextmanager
instead.
Fixed
An issue with replying to a modmail conversation results in a error.
7.7.0 (2023/02/25)¶
Added
delete_mobile_banner()
to delete mobile banners.upload_mobile_banner()
to upload mobile banners.
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
Fixed
An issue where
ModmailConversation
’smessages
attribute would only contain the latest message.
7.6.0 (2022/10/23)¶
Added
pin()
to manage pinned submissions on the authenticated user’s profile.update_display_layout()
to update the display layout of posts in aCollection
.SubredditCollectionsModeration.create()
keyword argumentdisplay_layout
for specifying a display layout when creating aCollection
.ModNote
to represent a moderator note.ModNote.delete()
to delete a single moderator note.RedditModNotes
to interact with moderator notes from aReddit
instance. This provides the ability to create and fetch notes for one or more redditors from one or more subreddits.RedditorModNotes
to interact with moderator notes from aRedditor
instance.RedditorModNotes.subreddits()
to obtain moderator notes from multiple subreddits for a single redditor.SubredditModNotes
to interact with moderator notes from aSubreddit
instance.SubredditModNotes.redditors()
to obtain moderator notes for multiple redditors from a single subreddit.create()
to create a moderator note.Redditor.notes
to interact withRedditorModNotes
.SubredditModeration.notes
to interact withSubredditModNotes
.create_note()
create a moderator note from aComment
orSubmission
.author_notes()
to view the moderator notes for the author of aComment
orSubmission
.
Changed
Drop support for Python 3.6, which is end-of-life on 2021-12-23.
conversations()
now returns aListingGenerator
allowing you to page through more than 100 conversations.
Deprecated
The
after
argument forconversations()
will now have to be included inparams
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 awarn_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.
Deprecated
Ability to use
CommentForest
as an asynchronous iterator.CommentForest.list()
no longer needs to be awaited.Submission.comments
no longer needs to be awaited and is now a property.The keyword argument
lazy
has been replace byfetch
to consolidate the keyword argument used to explicitly perform a fetch when initializing an object.
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 utilizeaiosqlite
package which depends on thesqlite3
builtin.
7.4.0 (2021/07/30)¶
Added
discussions()
to obtain site-wide link submissions that link to the WikiPage.revert()
to revert a WikiPage to a specified revision.Inbox.mark_all_read()
to mark all messages as read with one API call.unblock_subreddit()
to unblock a subreddit.update_crowd_control_level()
to update the crowd control level of a post.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.
Changed
Reddit.delete()
now accepts theparams
parameter.
Deprecated
Reddit
keyword argumenttoken_manager
.
7.3.1 (2021/07/06)¶
Changed
Reddit
will now be shallow copied when a deepcopy is preformed on it asasyncprawcore.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
UserSubreddit
for thesubreddit
attribute ofRedditor
.username_available()
checks if a username is available.trusted()
to retrieve aRedditorList
of trusted users.trust()
to add a user to the trusted list.distrust()
to remove a user from the trusted list.SQLiteTokenManager
(may not work on Windows).
Changed
moderated()
will now objectify all data returned from the API.The
wiki_edit
endpoint has been changed fromr/{subreddit}/api/wiki/edit/
tor/{subreddit}/api/wiki/edit
.Redditor.block()
no longer needs to retrieve a user’s fullname.
Deprecated
The
subreddit
attribute ofRedditor
is no longer a dict.Legacy modmail is slated for deprecation by Reddit in June 2021. See https://www.reddit.com/r/modnews/comments/mar9ha/even_more_modmail_improvements/ for more info.
Fixed
Fixed bug where
WikiPage.edit()
andSubredditWiki.create()
would fail if passedcontent
andreason
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 ofBadRequest
s when the JSON data contained only the keys “reason” and “message”.Fixed bug where
request()
could not handle instances ofBadRequest
s 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
Reddit
keyword argumenttoken_manager
.FileTokenManager
and its parent abstract classBaseTokenManager
.
Deprecated
The configuration setting
refresh_token
is deprecated and its use will result in aDeprecationWarning
. This deprecation applies in all ways of setting configuration values, i.e., viapraw.ini
, as a keyword argument when initializing an instance ofReddit
, and via thePRAW_REFRESH_TOKEN
environment variable. To be prepared for Async PRAW 8, use the newReddit
keyword argumenttoken_manager
. See Working with Refresh Tokens in Async PRAW’s documentation for an example.me()
will no longer returnNone
when called inread_only
mode starting in Async PRAW 8. ADeprecationWarning
will be issued. To switch forward to the Async PRAW 8 behavior setpraw8_raise_exception_on_me=True
in yourasyncpraw.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()
andComment.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()
andsubmit_video()
performance in slow network environments by removing a race condition when establishing a websocket connection.
Deprecated
Subreddits.gold()
is superseded bySubreddits.premium()
.Submission.gild()
is superseded bySubmission.award()
.Comment.gild()
is superseded byComment.award()
.PRAWException
is superseded byAsyncPRAWException
.
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