diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e22db94b..a6e1d7d5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -42,7 +42,7 @@ repos: files: ^(.*\.toml)$ - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.1.11 + rev: v0.1.14 hooks: - id: ruff args: [ --exit-non-zero-on-fix, --fix ] @@ -51,7 +51,7 @@ repos: - repo: https://github.com/psf/black hooks: - id: black - rev: 23.12.1 + rev: 24.1.1 - repo: https://github.com/LilSpazJoekp/docstrfmt hooks: diff --git a/asyncpraw/config.py b/asyncpraw/config.py index 13a6f6f2..23745999 100644 --- a/asyncpraw/config.py +++ b/asyncpraw/config.py @@ -1,4 +1,5 @@ """Provides the code to load Async PRAW's configuration file ``praw.ini``.""" + from __future__ import annotations import configparser diff --git a/asyncpraw/const.py b/asyncpraw/const.py index fbc4363a..44726c2f 100644 --- a/asyncpraw/const.py +++ b/asyncpraw/const.py @@ -1,4 +1,5 @@ """Async PRAW constants.""" + from .endpoints import API_PATH # noqa: F401 __version__ = "7.7.2.dev0" diff --git a/asyncpraw/endpoints.py b/asyncpraw/endpoints.py index 1c4f12df..d72fddc5 100644 --- a/asyncpraw/endpoints.py +++ b/asyncpraw/endpoints.py @@ -1,4 +1,5 @@ """List of API endpoints PRAW knows about.""" + # fmt: off API_PATH = { "about_edited": "r/{subreddit}/about/edited/", diff --git a/asyncpraw/exceptions.py b/asyncpraw/exceptions.py index 02131d0e..bb0290c5 100644 --- a/asyncpraw/exceptions.py +++ b/asyncpraw/exceptions.py @@ -7,6 +7,7 @@ All other exceptions are subclassed from :class:`.ClientException`. """ + from __future__ import annotations import sys @@ -240,12 +241,14 @@ def parse_exception_list( ) -> list[RedditErrorItem]: """Covert an exception list into a :class:`.RedditErrorItem` list.""" return [ - exception - if isinstance(exception, RedditErrorItem) - else RedditErrorItem( - error_type=exception[0], - field=exception[2] if bool(exception[2]) else "", - message=exception[1] if bool(exception[1]) else "", + ( + exception + if isinstance(exception, RedditErrorItem) + else RedditErrorItem( + error_type=exception[0], + field=exception[2] if bool(exception[2]) else "", + message=exception[1] if bool(exception[1]) else "", + ) ) for exception in exceptions ] diff --git a/asyncpraw/models/__init__.py b/asyncpraw/models/__init__.py index 7d6716db..13520bbf 100644 --- a/asyncpraw/models/__init__.py +++ b/asyncpraw/models/__init__.py @@ -1,4 +1,5 @@ """Provide the Async PRAW models.""" + from .auth import Auth from .front import Front from .helpers import DraftHelper, LiveHelper, MultiredditHelper, SubredditHelper diff --git a/asyncpraw/models/auth.py b/asyncpraw/models/auth.py index a9404f21..f939eae0 100644 --- a/asyncpraw/models/auth.py +++ b/asyncpraw/models/auth.py @@ -1,4 +1,5 @@ """Provide the Auth class.""" + from __future__ import annotations from asyncprawcore import ( diff --git a/asyncpraw/models/base.py b/asyncpraw/models/base.py index a7bf84ac..0502d451 100644 --- a/asyncpraw/models/base.py +++ b/asyncpraw/models/base.py @@ -1,4 +1,5 @@ """Provide the AsyncPRAWBase superclass.""" + from __future__ import annotations from copy import deepcopy diff --git a/asyncpraw/models/comment_forest.py b/asyncpraw/models/comment_forest.py index d8827b2c..2471b36d 100644 --- a/asyncpraw/models/comment_forest.py +++ b/asyncpraw/models/comment_forest.py @@ -1,4 +1,5 @@ """Provide CommentForest for submission comments.""" + from __future__ import annotations import inspect diff --git a/asyncpraw/models/front.py b/asyncpraw/models/front.py index 3284cec0..6bed1029 100644 --- a/asyncpraw/models/front.py +++ b/asyncpraw/models/front.py @@ -1,4 +1,5 @@ """Provide the Front class.""" + from __future__ import annotations from typing import TYPE_CHECKING, AsyncIterator diff --git a/asyncpraw/models/helpers.py b/asyncpraw/models/helpers.py index d082af85..1d063ce0 100644 --- a/asyncpraw/models/helpers.py +++ b/asyncpraw/models/helpers.py @@ -1,4 +1,5 @@ """Provide the helper classes.""" + from __future__ import annotations from json import dumps @@ -89,10 +90,9 @@ async def create( selftext: str | None = None, send_replies: bool = True, spoiler: bool = False, - subreddit: str - | asyncpraw.models.Subreddit - | asyncpraw.models.UserSubreddit - | None = None, + subreddit: ( + str | asyncpraw.models.Subreddit | asyncpraw.models.UserSubreddit | None + ) = None, title: str | None = None, url: str | None = None, **draft_kwargs: Any, diff --git a/asyncpraw/models/inbox.py b/asyncpraw/models/inbox.py index c53639df..1ab9e47b 100644 --- a/asyncpraw/models/inbox.py +++ b/asyncpraw/models/inbox.py @@ -1,4 +1,5 @@ """Provide the Front class.""" + from __future__ import annotations from typing import TYPE_CHECKING, AsyncIterator diff --git a/asyncpraw/models/list/base.py b/asyncpraw/models/list/base.py index 454a1cf5..14626f8f 100644 --- a/asyncpraw/models/list/base.py +++ b/asyncpraw/models/list/base.py @@ -1,4 +1,5 @@ """Provide the BaseList class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any, Iterator diff --git a/asyncpraw/models/list/draft.py b/asyncpraw/models/list/draft.py index b54ee211..1bdc6bad 100644 --- a/asyncpraw/models/list/draft.py +++ b/asyncpraw/models/list/draft.py @@ -1,4 +1,5 @@ """Provide the DraftList class.""" + from .base import BaseList diff --git a/asyncpraw/models/list/moderated.py b/asyncpraw/models/list/moderated.py index d4c2884d..d33960f4 100644 --- a/asyncpraw/models/list/moderated.py +++ b/asyncpraw/models/list/moderated.py @@ -1,4 +1,5 @@ """Provide the ModeratedList class.""" + from .base import BaseList diff --git a/asyncpraw/models/list/redditor.py b/asyncpraw/models/list/redditor.py index 457eaade..a94e9b00 100644 --- a/asyncpraw/models/list/redditor.py +++ b/asyncpraw/models/list/redditor.py @@ -1,4 +1,5 @@ """Provide the RedditorList class.""" + from .base import BaseList diff --git a/asyncpraw/models/list/trophy.py b/asyncpraw/models/list/trophy.py index cd0ee236..ff6a734c 100644 --- a/asyncpraw/models/list/trophy.py +++ b/asyncpraw/models/list/trophy.py @@ -1,4 +1,5 @@ """Provide the TrophyList class.""" + from .base import BaseList diff --git a/asyncpraw/models/listing/domain.py b/asyncpraw/models/listing/domain.py index 5d2a2164..dfbe5a22 100644 --- a/asyncpraw/models/listing/domain.py +++ b/asyncpraw/models/listing/domain.py @@ -1,4 +1,5 @@ """Provide the DomainListing class.""" + from __future__ import annotations from typing import TYPE_CHECKING diff --git a/asyncpraw/models/listing/generator.py b/asyncpraw/models/listing/generator.py index 9cfb81d8..b52a6783 100644 --- a/asyncpraw/models/listing/generator.py +++ b/asyncpraw/models/listing/generator.py @@ -1,4 +1,5 @@ """Provide the ListingGenerator class.""" + from __future__ import annotations from copy import deepcopy diff --git a/asyncpraw/models/listing/listing.py b/asyncpraw/models/listing/listing.py index 3e2e51dc..6e374292 100644 --- a/asyncpraw/models/listing/listing.py +++ b/asyncpraw/models/listing/listing.py @@ -1,4 +1,5 @@ """Provide the Listing class.""" + from __future__ import annotations from typing import Any diff --git a/asyncpraw/models/listing/mixins/__init__.py b/asyncpraw/models/listing/mixins/__init__.py index e04676b6..06fb5b38 100644 --- a/asyncpraw/models/listing/mixins/__init__.py +++ b/asyncpraw/models/listing/mixins/__init__.py @@ -1,4 +1,5 @@ """Package providing models that pertain to listing mixins.""" + from .base import BaseListingMixin from .redditor import RedditorListingMixin from .rising import RisingListingMixin diff --git a/asyncpraw/models/listing/mixins/base.py b/asyncpraw/models/listing/mixins/base.py index da1cff94..3eb21d66 100644 --- a/asyncpraw/models/listing/mixins/base.py +++ b/asyncpraw/models/listing/mixins/base.py @@ -1,4 +1,5 @@ """Provide the BaseListingMixin class.""" + from __future__ import annotations from typing import Any, AsyncIterator diff --git a/asyncpraw/models/listing/mixins/gilded.py b/asyncpraw/models/listing/mixins/gilded.py index 7155e159..11db2ac8 100644 --- a/asyncpraw/models/listing/mixins/gilded.py +++ b/asyncpraw/models/listing/mixins/gilded.py @@ -1,4 +1,5 @@ """Provide the GildedListingMixin class.""" + from __future__ import annotations from typing import Any, AsyncIterator diff --git a/asyncpraw/models/listing/mixins/redditor.py b/asyncpraw/models/listing/mixins/redditor.py index dc576f28..3a1615c1 100644 --- a/asyncpraw/models/listing/mixins/redditor.py +++ b/asyncpraw/models/listing/mixins/redditor.py @@ -1,4 +1,5 @@ """Provide the RedditorListingMixin class.""" + from __future__ import annotations from typing import TYPE_CHECKING, AsyncIterator diff --git a/asyncpraw/models/listing/mixins/rising.py b/asyncpraw/models/listing/mixins/rising.py index 033d7b1f..1f074e08 100644 --- a/asyncpraw/models/listing/mixins/rising.py +++ b/asyncpraw/models/listing/mixins/rising.py @@ -1,4 +1,5 @@ """Provide the RisingListingMixin class.""" + from __future__ import annotations from typing import TYPE_CHECKING, AsyncIterator diff --git a/asyncpraw/models/listing/mixins/submission.py b/asyncpraw/models/listing/mixins/submission.py index 12c34924..4e6dbd25 100644 --- a/asyncpraw/models/listing/mixins/submission.py +++ b/asyncpraw/models/listing/mixins/submission.py @@ -1,4 +1,5 @@ """Provide the SubmissionListingMixin class.""" + from __future__ import annotations from typing import TYPE_CHECKING, AsyncIterator diff --git a/asyncpraw/models/listing/mixins/subreddit.py b/asyncpraw/models/listing/mixins/subreddit.py index 98123c0f..bedb162a 100644 --- a/asyncpraw/models/listing/mixins/subreddit.py +++ b/asyncpraw/models/listing/mixins/subreddit.py @@ -1,4 +1,5 @@ """Provide the SubredditListingMixin class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any, AsyncIterator diff --git a/asyncpraw/models/mod_action.py b/asyncpraw/models/mod_action.py index 32184dc3..c566766f 100644 --- a/asyncpraw/models/mod_action.py +++ b/asyncpraw/models/mod_action.py @@ -1,4 +1,5 @@ """Provide the ModAction class.""" + from __future__ import annotations from typing import TYPE_CHECKING diff --git a/asyncpraw/models/mod_note.py b/asyncpraw/models/mod_note.py index 4cd833b3..600106c2 100644 --- a/asyncpraw/models/mod_note.py +++ b/asyncpraw/models/mod_note.py @@ -1,4 +1,5 @@ """Provide the ModNote class.""" + from __future__ import annotations from ..endpoints import API_PATH diff --git a/asyncpraw/models/mod_notes.py b/asyncpraw/models/mod_notes.py index 705f9ee7..8e188f2c 100644 --- a/asyncpraw/models/mod_notes.py +++ b/asyncpraw/models/mod_notes.py @@ -1,4 +1,5 @@ """Provides classes for interacting with moderator notes.""" + from itertools import islice from typing import TYPE_CHECKING, Any, AsyncGenerator, List, Optional, Tuple, Union diff --git a/asyncpraw/models/preferences.py b/asyncpraw/models/preferences.py index e8018e0e..bd626729 100644 --- a/asyncpraw/models/preferences.py +++ b/asyncpraw/models/preferences.py @@ -1,4 +1,5 @@ """Provide the Preferences class.""" + from __future__ import annotations from json import dumps diff --git a/asyncpraw/models/reddit/base.py b/asyncpraw/models/reddit/base.py index ee0c4eed..6eed4e1d 100644 --- a/asyncpraw/models/reddit/base.py +++ b/asyncpraw/models/reddit/base.py @@ -1,4 +1,5 @@ """Provide the RedditBase class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any diff --git a/asyncpraw/models/reddit/collections.py b/asyncpraw/models/reddit/collections.py index 6b071e81..4dca349d 100644 --- a/asyncpraw/models/reddit/collections.py +++ b/asyncpraw/models/reddit/collections.py @@ -1,4 +1,5 @@ """Provide Collections functionality.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any, Generator diff --git a/asyncpraw/models/reddit/comment.py b/asyncpraw/models/reddit/comment.py index 8d27149e..a33f3573 100644 --- a/asyncpraw/models/reddit/comment.py +++ b/asyncpraw/models/reddit/comment.py @@ -1,4 +1,5 @@ """Provide the Comment class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any diff --git a/asyncpraw/models/reddit/draft.py b/asyncpraw/models/reddit/draft.py index 558c9773..3becb7c8 100644 --- a/asyncpraw/models/reddit/draft.py +++ b/asyncpraw/models/reddit/draft.py @@ -1,4 +1,5 @@ """Provide the draft class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any @@ -55,9 +56,9 @@ async def _prepare_data( selftext: str | None = None, send_replies: bool | None = None, spoiler: bool | None = None, - subreddit: asyncpraw.models.Subreddit - | asyncpraw.models.UserSubreddit - | None = None, + subreddit: ( + asyncpraw.models.Subreddit | asyncpraw.models.UserSubreddit | None + ) = None, title: str | None = None, url: str | None = None, **draft_kwargs: Any, @@ -80,9 +81,11 @@ async def _prepare_data( data.update( { "subreddit": subreddit.fullname, - "target": "profile" - if subreddit.display_name.startswith("u_") - else "subreddit", + "target": ( + "profile" + if subreddit.display_name.startswith("u_") + else "subreddit" + ), } ) data.update(draft_kwargs) @@ -151,10 +154,9 @@ async def submit( nsfw: bool | None = None, selftext: str | None = None, spoiler: bool | None = None, - subreddit: str - | asyncpraw.models.Subreddit - | asyncpraw.models.UserSubreddit - | None = None, + subreddit: ( + str | asyncpraw.models.Subreddit | asyncpraw.models.UserSubreddit | None + ) = None, title: str | None = None, url: str | None = None, **submit_kwargs: Any, @@ -245,10 +247,9 @@ async def update( selftext: str | None = None, send_replies: bool | None = None, spoiler: bool | None = None, - subreddit: str - | asyncpraw.models.Subreddit - | asyncpraw.models.UserSubreddit - | None = None, + subreddit: ( + str | asyncpraw.models.Subreddit | asyncpraw.models.UserSubreddit | None + ) = None, title: str | None = None, url: str | None = None, **draft_kwargs: Any, diff --git a/asyncpraw/models/reddit/emoji.py b/asyncpraw/models/reddit/emoji.py index d7bf4af7..97e09713 100644 --- a/asyncpraw/models/reddit/emoji.py +++ b/asyncpraw/models/reddit/emoji.py @@ -1,4 +1,5 @@ """Provide the Emoji class.""" + from __future__ import annotations from pathlib import Path diff --git a/asyncpraw/models/reddit/inline_media.py b/asyncpraw/models/reddit/inline_media.py index 0b3f90b7..ec55a1a6 100644 --- a/asyncpraw/models/reddit/inline_media.py +++ b/asyncpraw/models/reddit/inline_media.py @@ -1,4 +1,5 @@ """Provide classes related to inline media.""" + from __future__ import annotations from ..util import _deprecate_args diff --git a/asyncpraw/models/reddit/live.py b/asyncpraw/models/reddit/live.py index c07fe2ed..af44e2b5 100644 --- a/asyncpraw/models/reddit/live.py +++ b/asyncpraw/models/reddit/live.py @@ -1,4 +1,5 @@ """Provide the LiveThread class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any, AsyncIterator, Iterable diff --git a/asyncpraw/models/reddit/message.py b/asyncpraw/models/reddit/message.py index c0ccff7f..aa4ec4ff 100644 --- a/asyncpraw/models/reddit/message.py +++ b/asyncpraw/models/reddit/message.py @@ -1,4 +1,5 @@ """Provide the Message class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any diff --git a/asyncpraw/models/reddit/mixins/__init__.py b/asyncpraw/models/reddit/mixins/__init__.py index 71c9445b..1ce2ad3a 100644 --- a/asyncpraw/models/reddit/mixins/__init__.py +++ b/asyncpraw/models/reddit/mixins/__init__.py @@ -1,4 +1,5 @@ """Package providing reddit class mixins.""" + from __future__ import annotations from json import dumps diff --git a/asyncpraw/models/reddit/mixins/editable.py b/asyncpraw/models/reddit/mixins/editable.py index ce5894d0..a9a5a213 100644 --- a/asyncpraw/models/reddit/mixins/editable.py +++ b/asyncpraw/models/reddit/mixins/editable.py @@ -1,4 +1,5 @@ """Provide the EditableMixin class.""" + from __future__ import annotations from typing import TYPE_CHECKING diff --git a/asyncpraw/models/reddit/mixins/gildable.py b/asyncpraw/models/reddit/mixins/gildable.py index d2318241..5f54df66 100644 --- a/asyncpraw/models/reddit/mixins/gildable.py +++ b/asyncpraw/models/reddit/mixins/gildable.py @@ -1,4 +1,5 @@ """Provide the GildableMixin class.""" + from warnings import warn from ....const import API_PATH diff --git a/asyncpraw/models/reddit/mixins/inboxable.py b/asyncpraw/models/reddit/mixins/inboxable.py index 2e08f8f1..5952ad37 100644 --- a/asyncpraw/models/reddit/mixins/inboxable.py +++ b/asyncpraw/models/reddit/mixins/inboxable.py @@ -1,4 +1,5 @@ """Provide the InboxableMixin class.""" + from ....const import API_PATH diff --git a/asyncpraw/models/reddit/mixins/inboxtoggleable.py b/asyncpraw/models/reddit/mixins/inboxtoggleable.py index 10445f4d..6c5345c7 100644 --- a/asyncpraw/models/reddit/mixins/inboxtoggleable.py +++ b/asyncpraw/models/reddit/mixins/inboxtoggleable.py @@ -1,4 +1,5 @@ """Provide the InboxToggleableMixin class.""" + from ....const import API_PATH diff --git a/asyncpraw/models/reddit/mixins/messageable.py b/asyncpraw/models/reddit/mixins/messageable.py index abca1ba4..d3b98329 100644 --- a/asyncpraw/models/reddit/mixins/messageable.py +++ b/asyncpraw/models/reddit/mixins/messageable.py @@ -1,4 +1,5 @@ """Provide the MessageableMixin class.""" + from __future__ import annotations from typing import TYPE_CHECKING diff --git a/asyncpraw/models/reddit/mixins/modnote.py b/asyncpraw/models/reddit/mixins/modnote.py index 13e1432c..eb6604f7 100644 --- a/asyncpraw/models/reddit/mixins/modnote.py +++ b/asyncpraw/models/reddit/mixins/modnote.py @@ -1,4 +1,5 @@ """Provide the ModNoteMixin class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any, AsyncGenerator diff --git a/asyncpraw/models/reddit/mixins/replyable.py b/asyncpraw/models/reddit/mixins/replyable.py index 3e0cd0fa..b614c9e3 100644 --- a/asyncpraw/models/reddit/mixins/replyable.py +++ b/asyncpraw/models/reddit/mixins/replyable.py @@ -1,4 +1,5 @@ """Provide the ReplyableMixin class.""" + from __future__ import annotations from typing import TYPE_CHECKING diff --git a/asyncpraw/models/reddit/mixins/reportable.py b/asyncpraw/models/reddit/mixins/reportable.py index d3c3c5e7..732d5d0e 100644 --- a/asyncpraw/models/reddit/mixins/reportable.py +++ b/asyncpraw/models/reddit/mixins/reportable.py @@ -1,4 +1,5 @@ """Provide the ReportableMixin class.""" + from ....const import API_PATH diff --git a/asyncpraw/models/reddit/mixins/savable.py b/asyncpraw/models/reddit/mixins/savable.py index 59194e14..1e9c78f9 100644 --- a/asyncpraw/models/reddit/mixins/savable.py +++ b/asyncpraw/models/reddit/mixins/savable.py @@ -1,4 +1,5 @@ """Provide the SavableMixin class.""" + from __future__ import annotations from ....const import API_PATH diff --git a/asyncpraw/models/reddit/mixins/votable.py b/asyncpraw/models/reddit/mixins/votable.py index c49a5755..9f97eb02 100644 --- a/asyncpraw/models/reddit/mixins/votable.py +++ b/asyncpraw/models/reddit/mixins/votable.py @@ -1,4 +1,5 @@ """Provide the VotableMixin class.""" + from __future__ import annotations from ....const import API_PATH diff --git a/asyncpraw/models/reddit/modmail.py b/asyncpraw/models/reddit/modmail.py index 4f4f5071..7004708a 100644 --- a/asyncpraw/models/reddit/modmail.py +++ b/asyncpraw/models/reddit/modmail.py @@ -1,4 +1,5 @@ """Provide models for new modmail.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any diff --git a/asyncpraw/models/reddit/more.py b/asyncpraw/models/reddit/more.py index 05cf3b17..1a55391a 100644 --- a/asyncpraw/models/reddit/more.py +++ b/asyncpraw/models/reddit/more.py @@ -1,4 +1,5 @@ """Provide the MoreComments class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any diff --git a/asyncpraw/models/reddit/multi.py b/asyncpraw/models/reddit/multi.py index 584c8f36..ff025e1b 100644 --- a/asyncpraw/models/reddit/multi.py +++ b/asyncpraw/models/reddit/multi.py @@ -1,4 +1,5 @@ """Provide the Multireddit class.""" + from __future__ import annotations import re @@ -215,8 +216,9 @@ async def remove(self, subreddit: asyncpraw.models.Subreddit): async def update( self, - **updated_settings: str - | list[str | asyncpraw.models.Subreddit | dict[str, str]], + **updated_settings: ( + str | list[str | asyncpraw.models.Subreddit | dict[str, str]] + ), ): """Update this multireddit. diff --git a/asyncpraw/models/reddit/poll.py b/asyncpraw/models/reddit/poll.py index a13d488e..2e956949 100644 --- a/asyncpraw/models/reddit/poll.py +++ b/asyncpraw/models/reddit/poll.py @@ -1,4 +1,5 @@ """Provide poll-related classes.""" + from __future__ import annotations from typing import Any diff --git a/asyncpraw/models/reddit/redditor.py b/asyncpraw/models/reddit/redditor.py index 3f403dbd..dca29dd6 100644 --- a/asyncpraw/models/reddit/redditor.py +++ b/asyncpraw/models/reddit/redditor.py @@ -1,4 +1,5 @@ """Provide the Redditor class.""" + from __future__ import annotations from json import dumps diff --git a/asyncpraw/models/reddit/removal_reasons.py b/asyncpraw/models/reddit/removal_reasons.py index b12a4f1f..984398f3 100644 --- a/asyncpraw/models/reddit/removal_reasons.py +++ b/asyncpraw/models/reddit/removal_reasons.py @@ -1,4 +1,5 @@ """Provide the Removal Reason class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any, AsyncIterator diff --git a/asyncpraw/models/reddit/rules.py b/asyncpraw/models/reddit/rules.py index a2afa8f4..1c892e19 100644 --- a/asyncpraw/models/reddit/rules.py +++ b/asyncpraw/models/reddit/rules.py @@ -1,4 +1,5 @@ """Provide the Rule class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any, AsyncIterator @@ -423,9 +424,9 @@ async def add( "description": description, "kind": kind, "short_name": short_name, - "violation_reason": short_name - if violation_reason is None - else violation_reason, + "violation_reason": ( + short_name if violation_reason is None else violation_reason + ), } response = await self.subreddit_rules._reddit.post( API_PATH["add_subreddit_rule"], data=data diff --git a/asyncpraw/models/reddit/submission.py b/asyncpraw/models/reddit/submission.py index 90e410c8..999c6f3f 100644 --- a/asyncpraw/models/reddit/submission.py +++ b/asyncpraw/models/reddit/submission.py @@ -1,4 +1,5 @@ """Provide the Submission class.""" + from __future__ import annotations import re diff --git a/asyncpraw/models/reddit/subreddit.py b/asyncpraw/models/reddit/subreddit.py index 9f9ff17f..db86c608 100644 --- a/asyncpraw/models/reddit/subreddit.py +++ b/asyncpraw/models/reddit/subreddit.py @@ -1,4 +1,5 @@ """Provide the Subreddit class.""" + from __future__ import annotations import contextlib @@ -2317,9 +2318,7 @@ async def get_page(self, page_name: str, fetch: bool = True, **_: Any) -> WikiPa await wikipage._fetch() return wikipage - def revisions( - self, **generator_kwargs: Any - ) -> AsyncGenerator[ + def revisions(self, **generator_kwargs: Any) -> AsyncGenerator[ dict[str, asyncpraw.models.Redditor | WikiPage | str | int | bool | None], None, ]: diff --git a/asyncpraw/models/reddit/user_subreddit.py b/asyncpraw/models/reddit/user_subreddit.py index ddc7c951..aca56b4f 100644 --- a/asyncpraw/models/reddit/user_subreddit.py +++ b/asyncpraw/models/reddit/user_subreddit.py @@ -1,4 +1,5 @@ """Provide the :class:`.UserSubreddit` class.""" + from __future__ import annotations import inspect diff --git a/asyncpraw/models/reddit/widgets.py b/asyncpraw/models/reddit/widgets.py index 12a2e205..c9111107 100644 --- a/asyncpraw/models/reddit/widgets.py +++ b/asyncpraw/models/reddit/widgets.py @@ -1,4 +1,5 @@ """Provide classes related to widgets.""" + from __future__ import annotations from json import JSONEncoder, dumps diff --git a/asyncpraw/models/reddit/wikipage.py b/asyncpraw/models/reddit/wikipage.py index 2b9389cf..e991e8ac 100644 --- a/asyncpraw/models/reddit/wikipage.py +++ b/asyncpraw/models/reddit/wikipage.py @@ -1,4 +1,5 @@ """Provide the WikiPage class.""" + from __future__ import annotations from typing import ( diff --git a/asyncpraw/models/redditors.py b/asyncpraw/models/redditors.py index 87b72e58..499a652f 100644 --- a/asyncpraw/models/redditors.py +++ b/asyncpraw/models/redditors.py @@ -1,4 +1,5 @@ """Provide the Redditors class.""" + from __future__ import annotations from itertools import islice diff --git a/asyncpraw/models/subreddits.py b/asyncpraw/models/subreddits.py index f10fcf9d..cbaa423d 100644 --- a/asyncpraw/models/subreddits.py +++ b/asyncpraw/models/subreddits.py @@ -1,4 +1,5 @@ """Provide the Subreddits class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any, AsyncIterator diff --git a/asyncpraw/models/trophy.py b/asyncpraw/models/trophy.py index dbc9926c..c6a88ea0 100644 --- a/asyncpraw/models/trophy.py +++ b/asyncpraw/models/trophy.py @@ -1,4 +1,5 @@ """Represent the :class:`.Trophy` class.""" + from __future__ import annotations from typing import TYPE_CHECKING, Any diff --git a/asyncpraw/models/user.py b/asyncpraw/models/user.py index 72aa82e7..6e8f239d 100644 --- a/asyncpraw/models/user.py +++ b/asyncpraw/models/user.py @@ -1,4 +1,5 @@ """Provides the User class.""" + from __future__ import annotations from typing import TYPE_CHECKING, AsyncIterator diff --git a/asyncpraw/models/util.py b/asyncpraw/models/util.py index e5161860..5d4f1c87 100644 --- a/asyncpraw/models/util.py +++ b/asyncpraw/models/util.py @@ -1,4 +1,5 @@ """Provide helper classes used by other models.""" + from __future__ import annotations import asyncio diff --git a/asyncpraw/objector.py b/asyncpraw/objector.py index 9eafeb62..c2ca5056 100644 --- a/asyncpraw/objector.py +++ b/asyncpraw/objector.py @@ -1,4 +1,5 @@ """Provides the Objector class.""" + from __future__ import annotations from datetime import datetime @@ -181,9 +182,11 @@ def _objectify_dict( # noqa: PLR0912,PLR0915 subreddit_parser = self.parsers[self._reddit.config.kinds["subreddit"]] user_subreddit_parser = self.parsers["UserSubreddit"] subreddits = { - subreddit["name"]: user_subreddit_parser.parse(subreddit, self._reddit) - if subreddit["display_name_prefixed"].startswith("u/") - else subreddit_parser.parse(subreddit, self._reddit) + subreddit["name"]: ( + user_subreddit_parser.parse(subreddit, self._reddit) + if subreddit["display_name_prefixed"].startswith("u/") + else subreddit_parser.parse(subreddit, self._reddit) + ) for subreddit in data.pop("subreddits") } for draft in data["drafts"]: diff --git a/asyncpraw/reddit.py b/asyncpraw/reddit.py index b91df0db..225a72e5 100644 --- a/asyncpraw/reddit.py +++ b/asyncpraw/reddit.py @@ -1,4 +1,5 @@ """Provide the Reddit class.""" + from __future__ import annotations import asyncio diff --git a/asyncpraw/util/cache.py b/asyncpraw/util/cache.py index acd77761..8a49f865 100644 --- a/asyncpraw/util/cache.py +++ b/asyncpraw/util/cache.py @@ -1,4 +1,5 @@ """Caching utilities.""" + from __future__ import annotations from typing import Any, Callable diff --git a/asyncpraw/util/deprecate_args.py b/asyncpraw/util/deprecate_args.py index f11cf436..83736ecb 100644 --- a/asyncpraw/util/deprecate_args.py +++ b/asyncpraw/util/deprecate_args.py @@ -1,4 +1,5 @@ """Positional argument deprecation decorator.""" + from __future__ import annotations import inspect diff --git a/asyncpraw/util/snake.py b/asyncpraw/util/snake.py index 778a33e8..fa04accc 100644 --- a/asyncpraw/util/snake.py +++ b/asyncpraw/util/snake.py @@ -1,4 +1,5 @@ """Contains functions dealing with snake case conversions.""" + from __future__ import annotations import re diff --git a/asyncpraw/util/token_manager.py b/asyncpraw/util/token_manager.py index 4f61ab6b..59041e83 100644 --- a/asyncpraw/util/token_manager.py +++ b/asyncpraw/util/token_manager.py @@ -11,6 +11,7 @@ Tokens managers have been deprecated and will be removed in the near future. """ + from __future__ import annotations from abc import ABC, abstractmethod diff --git a/tests/conftest.py b/tests/conftest.py index 6f2ab891..56c83da7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,4 +1,5 @@ """Prepare pytest.""" + import asyncio import os from base64 import b64encode diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py index 3128bd01..e3f1efe1 100644 --- a/tests/integration/__init__.py +++ b/tests/integration/__init__.py @@ -1,4 +1,5 @@ """Async PRAW Integration test suite.""" + import asyncio import os diff --git a/tests/integration/models/listing/test_generator.py b/tests/integration/models/listing/test_generator.py index 767811c9..2a232404 100644 --- a/tests/integration/models/listing/test_generator.py +++ b/tests/integration/models/listing/test_generator.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.listing.generator.""" + from ... import IntegrationTest diff --git a/tests/integration/models/reddit/test_subreddit.py b/tests/integration/models/reddit/test_subreddit.py index c20d3b39..cc080b32 100644 --- a/tests/integration/models/reddit/test_subreddit.py +++ b/tests/integration/models/reddit/test_subreddit.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.subreddit.""" + import socket from asyncio import TimeoutError diff --git a/tests/integration/models/test_auth.py b/tests/integration/models/test_auth.py index e1aaf369..0810a2b5 100644 --- a/tests/integration/models/test_auth.py +++ b/tests/integration/models/test_auth.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.auth.""" + import pytest from asyncprawcore import InvalidToken diff --git a/tests/integration/models/test_front.py b/tests/integration/models/test_front.py index 641284b1..6c66df0b 100644 --- a/tests/integration/models/test_front.py +++ b/tests/integration/models/test_front.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.front.""" + from .. import IntegrationTest diff --git a/tests/integration/test_github_actions.py b/tests/integration/test_github_actions.py index 2555c202..5909c0aa 100644 --- a/tests/integration/test_github_actions.py +++ b/tests/integration/test_github_actions.py @@ -4,6 +4,7 @@ GitHub Actions. """ + import os import pytest diff --git a/tests/integration/test_objector.py b/tests/integration/test_objector.py index 7427a417..8add35d3 100644 --- a/tests/integration/test_objector.py +++ b/tests/integration/test_objector.py @@ -1,4 +1,5 @@ """Test asyncpraw.objector.""" + import pytest from asyncpraw.exceptions import RedditAPIException diff --git a/tests/integration/test_reddit.py b/tests/integration/test_reddit.py index c3cbddda..7a419918 100644 --- a/tests/integration/test_reddit.py +++ b/tests/integration/test_reddit.py @@ -1,4 +1,5 @@ """Test asyncpraw.reddit.""" + from base64 import urlsafe_b64encode import pytest diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py index cb3c757b..6488f37b 100644 --- a/tests/unit/__init__.py +++ b/tests/unit/__init__.py @@ -1,4 +1,5 @@ """Async PRAW Unit test suite.""" + from tests import HelperMethodMixin diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py index bb7c9894..0975f922 100644 --- a/tests/unit/conftest.py +++ b/tests/unit/conftest.py @@ -1,4 +1,5 @@ """Prepare pytest for unit tests.""" + import pytest from asyncpraw import Reddit diff --git a/tests/unit/models/list/test_base.py b/tests/unit/models/list/test_base.py index de3d3ac1..77636851 100644 --- a/tests/unit/models/list/test_base.py +++ b/tests/unit/models/list/test_base.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.list.base.""" + import pytest from asyncpraw.models.list.base import BaseList diff --git a/tests/unit/models/listing/test_generator.py b/tests/unit/models/listing/test_generator.py index 755819cf..ca597fd0 100644 --- a/tests/unit/models/listing/test_generator.py +++ b/tests/unit/models/listing/test_generator.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.listing.generator.""" + import pytest from asyncpraw.models.listing.generator import ListingGenerator diff --git a/tests/unit/models/listing/test_listing.py b/tests/unit/models/listing/test_listing.py index 34f72c29..b381554a 100644 --- a/tests/unit/models/listing/test_listing.py +++ b/tests/unit/models/listing/test_listing.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.listing.listing.""" + from asyncpraw.models.listing.listing import ModmailConversationsListing, ModNoteListing from ... import UnitTest diff --git a/tests/unit/models/reddit/test_collections.py b/tests/unit/models/reddit/test_collections.py index 8013469c..0d821771 100644 --- a/tests/unit/models/reddit/test_collections.py +++ b/tests/unit/models/reddit/test_collections.py @@ -1,4 +1,5 @@ """Test classes from collections.py.""" + import pytest from asyncpraw.models import Collection diff --git a/tests/unit/models/test_auth.py b/tests/unit/models/test_auth.py index 79a75112..b1d15a52 100644 --- a/tests/unit/models/test_auth.py +++ b/tests/unit/models/test_auth.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.auth.""" + import pytest from asyncpraw import Reddit diff --git a/tests/unit/models/test_front.py b/tests/unit/models/test_front.py index 1be981c5..265361ef 100644 --- a/tests/unit/models/test_front.py +++ b/tests/unit/models/test_front.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.front.""" + import pytest from .. import UnitTest diff --git a/tests/unit/models/test_mod_note.py b/tests/unit/models/test_mod_note.py index 35f7dddd..4d653e94 100644 --- a/tests/unit/models/test_mod_note.py +++ b/tests/unit/models/test_mod_note.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.ModNote.""" + from asyncpraw.models.mod_note import ModNote from .. import UnitTest diff --git a/tests/unit/models/test_preferences.py b/tests/unit/models/test_preferences.py index 2a88df8c..752a38b8 100644 --- a/tests/unit/models/test_preferences.py +++ b/tests/unit/models/test_preferences.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.preferences.""" + from asyncpraw.models import Preferences from .. import UnitTest diff --git a/tests/unit/models/test_subreddits.py b/tests/unit/models/test_subreddits.py index 8493765b..1c9fcf60 100644 --- a/tests/unit/models/test_subreddits.py +++ b/tests/unit/models/test_subreddits.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.subreddits.""" + import pytest from .. import UnitTest diff --git a/tests/unit/models/test_trophy.py b/tests/unit/models/test_trophy.py index 19a70ba6..13844479 100644 --- a/tests/unit/models/test_trophy.py +++ b/tests/unit/models/test_trophy.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.Trophy.""" + import pytest from asyncpraw.models.trophy import Trophy diff --git a/tests/unit/models/test_util.py b/tests/unit/models/test_util.py index 2d6ccfe4..379f2adc 100644 --- a/tests/unit/models/test_util.py +++ b/tests/unit/models/test_util.py @@ -1,4 +1,5 @@ """Test asyncpraw.models.util.""" + from collections import namedtuple from asyncpraw.models.util import ( diff --git a/tests/unit/util/test_deprecate_args.py b/tests/unit/util/test_deprecate_args.py index b48d6d5d..4ce99dc1 100644 --- a/tests/unit/util/test_deprecate_args.py +++ b/tests/unit/util/test_deprecate_args.py @@ -1,4 +1,5 @@ """This file should be updated as files/classes/functions are deprecated.""" + import inspect from contextlib import contextmanager from enum import IntFlag, auto diff --git a/tests/unit/util/test_token_manager.py b/tests/unit/util/test_token_manager.py index 843838f4..5a8d473e 100644 --- a/tests/unit/util/test_token_manager.py +++ b/tests/unit/util/test_token_manager.py @@ -1,4 +1,5 @@ """Test asyncpraw.util.refresh_token_manager.""" + import sys from tempfile import NamedTemporaryFile