Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions stubs/python-dateutil/@tests/test_cases/check_rrule.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from typing import Union
from typing_extensions import assert_type

from dateutil.rrule import rrule, rruleset, rrulestr

rs1 = rrulestr("", forceset=True)
assert_type(rs1, rruleset)

rs2 = rrulestr("", compatible=True)
assert_type(rs2, rruleset)

rs3 = rrulestr("")
assert_type(rs3, Union[rrule, rruleset])
31 changes: 30 additions & 1 deletion stubs/python-dateutil/dateutil/rrule.pyi
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import datetime
from _typeshed import Incomplete
from collections.abc import Generator, Iterable, Iterator, Sequence
from typing import Final, Literal
from typing import Final, Literal, overload
from typing_extensions import Self, TypeAlias

from ._common import weekday as weekdaybase
Expand Down Expand Up @@ -174,6 +174,35 @@ class rruleset(rrulebase):
def exdate(self, exdate) -> None: ...

class _rrulestr:
@overload
def __call__(
self,
s: str,
*,
forceset: Literal[True],
dtstart: datetime.date | None = None,
cache: bool | None = None,
unfold: bool = False,
compatible: bool = False,
ignoretz: bool = False,
tzids=None,
tzinfos=None,
) -> rruleset: ...
@overload
def __call__(
self,
s: str,
*,
compatible: Literal[True],
dtstart: datetime.date | None = None,
cache: bool | None = None,
unfold: bool = False,
forceset: bool = False,
ignoretz: bool = False,
tzids=None,
tzinfos=None,
) -> rruleset: ...
@overload
def __call__(
self,
s: str,
Expand Down