Skip to content

Commit

Permalink
Adds types to models/listing/mixins module
Browse files Browse the repository at this point in the history
  • Loading branch information
isFakeAccount committed Jun 24, 2024
1 parent b7256db commit 4f0e568
Show file tree
Hide file tree
Showing 7 changed files with 119 additions and 5 deletions.
15 changes: 12 additions & 3 deletions src/asyncpraw-stubs/models/listing/mixins/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
"""Package providing models that pertain to listing mixins."""

from .base import BaseListingMixin
from .rising import RisingListingMixin
from asyncpraw.models.listing.mixins.base import BaseListingMixin
from asyncpraw.models.listing.mixins.redditor import RedditorListingMixin
from asyncpraw.models.listing.mixins.rising import RisingListingMixin
from asyncpraw.models.listing.mixins.submission import SubmissionListingMixin
from asyncpraw.models.listing.mixins.subreddit import SubredditListingMixin

__all__ = ["BaseListingMixin", "RisingListingMixin"]
__all__ = [
"BaseListingMixin",
"RedditorListingMixin",
"RisingListingMixin",
"SubmissionListingMixin",
"SubredditListingMixin",
]
26 changes: 25 additions & 1 deletion src/asyncpraw-stubs/models/listing/mixins/base.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,30 @@

from __future__ import annotations

from typing import Any, AsyncIterator, ClassVar

from asyncpraw.models.base import AsyncPRAWBase
from asyncpraw.util import _deprecate_args

class BaseListingMixin(AsyncPRAWBase):
VALID_TIME_FILTERS: ClassVar[set[str]]

class BaseListingMixin(AsyncPRAWBase): ...
@staticmethod
def _validate_time_filter(time_filter: str) -> None: ...
def _prepare(self, *, arguments: dict[str, Any], sort: str) -> str: ...
@_deprecate_args("time_filter")
def controversial(
self,
*,
time_filter: str = "all",
**generator_kwargs: str | int | dict[str, str],
) -> AsyncIterator[Any]: ...
def hot(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[Any]: ...
def new(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[Any]: ...
@_deprecate_args("time_filter")
def top(
self,
*,
time_filter: str = "all",
**generator_kwargs: str | int | dict[str, str],
) -> AsyncIterator[Any]: ...
10 changes: 10 additions & 0 deletions src/asyncpraw-stubs/models/listing/mixins/gilded.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
"""Provide the GildedListingMixin class."""

from __future__ import annotations

from typing import Any, AsyncIterator

from asyncpraw.models.base import AsyncPRAWBase

class GildedListingMixin(AsyncPRAWBase):
def gilded(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[Any]: ...
26 changes: 26 additions & 0 deletions src/asyncpraw-stubs/models/listing/mixins/redditor.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
"""Provide the RedditorListingMixin class."""

from __future__ import annotations

from typing import TYPE_CHECKING, AsyncIterator

from asyncpraw.models.listing.mixins.base import BaseListingMixin
from asyncpraw.models.listing.mixins.gilded import GildedListingMixin
from asyncpraw.util import cachedproperty

if TYPE_CHECKING:
import asyncpraw.models

class SubListing(BaseListingMixin):
def __init__(self, reddit: asyncpraw.Reddit, base_path: str, subpath: str) -> None: ...

class RedditorListingMixin(BaseListingMixin, GildedListingMixin):
@cachedproperty
def comments(self) -> SubListing: ...
@cachedproperty
def submissions(self) -> SubListing: ...
def downvoted(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[asyncpraw.models.Comment | asyncpraw.models.Submission]: ...
def gildings(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[asyncpraw.models.Comment | asyncpraw.models.Submission]: ...
def hidden(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[asyncpraw.models.Comment | asyncpraw.models.Submission]: ...
def saved(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[asyncpraw.models.Comment | asyncpraw.models.Submission]: ...
def upvoted(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[asyncpraw.models.Comment | asyncpraw.models.Submission]: ...
9 changes: 8 additions & 1 deletion src/asyncpraw-stubs/models/listing/mixins/rising.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

from __future__ import annotations

from typing import TYPE_CHECKING, AsyncIterator

from asyncpraw.models.base import AsyncPRAWBase

class RisingListingMixin(AsyncPRAWBase): ...
if TYPE_CHECKING:
import asyncpraw.models

class RisingListingMixin(AsyncPRAWBase):
def random_rising(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[asyncpraw.models.Submission]: ...
def rising(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[asyncpraw.models.Submission]: ...
13 changes: 13 additions & 0 deletions src/asyncpraw-stubs/models/listing/mixins/submission.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""Provide the SubmissionListingMixin class."""

from __future__ import annotations

from typing import TYPE_CHECKING, AsyncIterator

from asyncpraw.models.base import AsyncPRAWBase

if TYPE_CHECKING:
import asyncpraw.models

class SubmissionListingMixin(AsyncPRAWBase):
def duplicates(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[asyncpraw.models.Submission]: ...
25 changes: 25 additions & 0 deletions src/asyncpraw-stubs/models/listing/mixins/subreddit.pyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"""Provide the SubredditListingMixin class."""

from __future__ import annotations

from typing import TYPE_CHECKING, Any, AsyncIterator

from asyncpraw.models.base import AsyncPRAWBase
from asyncpraw.models.listing.mixins.base import BaseListingMixin
from asyncpraw.models.listing.mixins.gilded import GildedListingMixin
from asyncpraw.models.listing.mixins.rising import RisingListingMixin
from asyncpraw.util import cachedproperty

if TYPE_CHECKING: # pragma: no cover
import asyncpraw.models

class CommentHelper(AsyncPRAWBase):
@property
def _path(self) -> str: ...
def __call__(self, **generator_kwargs: str | int | dict[str, str]) -> AsyncIterator[asyncpraw.models.Comment]: ...
def __init__(self, subreddit: asyncpraw.models.Subreddit | SubredditListingMixin) -> None: ...

class SubredditListingMixin(BaseListingMixin, GildedListingMixin, RisingListingMixin):
@cachedproperty
def comments(self) -> CommentHelper: ...
def __init__(self, reddit: asyncpraw.Reddit, _data: dict[str, Any] | None) -> None: ...

0 comments on commit 4f0e568

Please sign in to comment.