Added
- Add support for Python 3.13.
- Add support for Python 3.14.
- Add support for optional Markdown-formatted
selftextwhen submitting link, image,
gallery, and video posts. - Add a :ref:
migration guide <praw8_migration>covering all breaking changes in PRAW
8. - Add :class:
.Mediaand its subclasses :class:.EmojiMedia, :class:.PostMedia,
:class:.StylesheetAsset, :class:.StylesheetImage, and :class:.WidgetMediato
consolidate media uploads. Media can be constructed from a file path, or from
bytescontent along with aname, so media no longer has to be written to disk
before uploading.
Changed
-
Bumped prawcore to 3.0.2.
-
Drop support for Python 3.8, which was end-of-life on 2024-10-07.
-
Drop support for Python 3.9, which was end-of-life on 2025-10-31.
-
Change
Reddit.user.meto raise :class:.ReadOnlyExceptionwhen called in
:attr:.read_onlymode. -
The
subredditattribute of :class:.Redditoris a :class:.UserSubreddit
instance. -
The
dataargument toObjector.objectifymust now be passed by keyword. -
The
mark_readargument tosubreddit.modmail(:class:.ModmailConversation)
must now be passed by keyword. -
The
flair_typeargument to :class:.SubredditFlairTemplatesmust be passed by
keyword. -
The
selftextandurlarguments to :meth:.Subreddit.submitare no longer
mutually exclusive. Whenurlis providedselftextwill be used as optional
body text to accompany the link submission. An exception is raised when trying to use
inline_mediawithselftextfor aurlsubmission because Reddit does not
support inline media in body text for link submissions. -
:meth:
.Subreddit.submit_video, :meth:.Subreddit.submit_gallery, and
:meth:.Subreddit.submit_imagenow accept an optional Markdown-formattedselftext
parameter. -
The
reason_idargument to :class:.RemovalReasonhas been renamed toid. -
Media upload methods now accept :class:
.Mediainstances instead of file paths:- The
image_pathargument to :meth:.SubredditEmoji.addhas been replaced by
emoji_media, which takes an :class:.EmojiMediainstance. - The
image_patharguments to :meth:.SubredditStylesheet.upload,
:meth:.upload_header, :meth:.upload_mobile_header, and
:meth:.upload_mobile_iconhave been replaced byimage_media, which takes a
:class:.StylesheetImageinstance. - The
image_patharguments to :meth:.SubredditStylesheet.upload_banner,
:meth:.upload_banner_additional_image, :meth:.upload_banner_hover_image, and
:meth:.upload_mobile_bannerhave been replaced byimage_media, which takes a
:class:.StylesheetAssetinstance. - The
image_mediaarguments to the :class:.SubredditStylesheetupload_*
methods, other than :meth:.SubredditStylesheet.upload, must be passed
positionally. - The
file_pathargument to :meth:.SubredditWidgetsModeration.upload_imagehas
been replaced byimage_media, which takes a :class:.WidgetMediainstance and
must be passed positionally. - The
image_pathargument to :meth:.Subreddit.submit_imagehas been replaced by
image_media, which takes a :class:.PostMediainstance. All arguments,
includingtitle, must now be passed by keyword. - The
video_pathandthumbnail_patharguments to
:meth:.Subreddit.submit_videohave been replaced byvideo_mediaand
thumbnail_media, which take :class:.PostMediainstances. All arguments,
includingtitle, must now be passed by keyword. - The
image_pathkey in theimagesdictionaries passed to
:meth:.Subreddit.submit_galleryhas been replaced byimage_media, which takes
a :class:.PostMediainstance. All arguments, includingtitleandimages,
must now be passed by keyword. - The
pathargument to :class:.InlineMedia(:class:.InlineGif,
:class:.InlineImage, and :class:.InlineVideo) has been replaced bymedia,
which takes a :class:.PostMediainstance.
- The
-
An unknown media type now raises :class:
.ClientExceptionwhen uploading media,
instead of falling back to JPEG. -
Media uploads to Reddit's S3 buckets now respect the configured
timeoutand raise
prawcore.RequestExceptionon transport errors, consistent with all other requests,
instead of having no timeout and raising rawrequestsexceptions.
Fixed
- Fix API endpoint for :meth:
.Submission.hideand :meth:.Submission.unhide.
Removed
- Remove
Reddit.random_subreddit,Subreddit.random, and
Subreddit.random_rising. - Remove
APIExceptionclass. - Remove
Comment.awardandSubmission.awardmethods. - Remove
Comment.gild,Redditor.gild, andSubmission.gildmethods. - Remove
Redditor.gildedandSubreddit.gildedmethods. - Remove
Redditor.gildingsmethod. - Remove
Subreddit.mod.inbox,Subreddit.mod.unread, and
Subreddit.mod.stream.unreadmethods. - Remove
Subreddits.search_by_topicmethod. - Remove
Subreddits.goldmethod. - Remove :class:
.Redditkeyword argumenttoken_managerand all associated token
managers. - Remove
Reddit.validate_on_submitconfiguration attribute. - Remove
WebSocketException.original_exceptionmethod. - Remove the
afterargument for :meth:.conversations. - Remove key
reset_timestampfrom :meth:.limits. - Remove
SubredditMessage.muteandSubredditMessage.unmutemethods. - Remove
InboxableMixin.unblock_subredditmethod.