aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/dateutil-stubs
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/dateutil-stubs
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/dateutil-stubs')
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/METADATA.toml6
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/__init__.pyi0
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/_common.pyi9
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/easter.pyi8
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/parser/__init__.pyi68
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/parser/isoparser.pyi15
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/py.typed1
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/relativedelta.pyi89
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/rrule.pyi111
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/tz/__init__.pyi15
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/tz/_common.pyi28
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/tz/tz.pyi115
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/utils.pyi5
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/zoneinfo/__init__.pyi17
-rw-r--r--.venv/lib/python3.12/site-packages/dateutil-stubs/zoneinfo/rebuild.pyi11
15 files changed, 498 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/METADATA.toml b/.venv/lib/python3.12/site-packages/dateutil-stubs/METADATA.toml
new file mode 100644
index 00000000..5f2be1e4
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/METADATA.toml
@@ -0,0 +1,6 @@
+version = "2.9.*"
+upstream_repository = "https://github.com/dateutil/dateutil"
+partial_stub = true
+
+[tool.stubtest]
+ignore_missing_stub = true
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/__init__.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/__init__.pyi
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/__init__.pyi
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/_common.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/_common.pyi
new file mode 100644
index 00000000..75bf74c5
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/_common.pyi
@@ -0,0 +1,9 @@
+from typing_extensions import Self
+
+class weekday:
+ def __init__(self, weekday: int, n: int | None = None) -> None: ...
+ def __call__(self, n: int) -> Self: ...
+ def __eq__(self, other: object) -> bool: ...
+ def __hash__(self) -> int: ...
+ weekday: int
+ n: int
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/easter.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/easter.pyi
new file mode 100644
index 00000000..952d1191
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/easter.pyi
@@ -0,0 +1,8 @@
+from datetime import date
+from typing import Literal
+
+EASTER_JULIAN: Literal[1]
+EASTER_ORTHODOX: Literal[2]
+EASTER_WESTERN: Literal[3]
+
+def easter(year: int, method: Literal[1, 2, 3] = 3) -> date: ...
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/parser/__init__.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/parser/__init__.pyi
new file mode 100644
index 00000000..68f96ff2
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/parser/__init__.pyi
@@ -0,0 +1,68 @@
+from collections.abc import Callable, Mapping
+from datetime import datetime, tzinfo
+from typing import IO, Any
+from typing_extensions import TypeAlias
+
+from .isoparser import isoparse as isoparse, isoparser as isoparser
+
+_FileOrStr: TypeAlias = bytes | str | IO[str] | IO[Any]
+_TzData: TypeAlias = tzinfo | int | str | None
+_TzInfo: TypeAlias = Mapping[str, _TzData] | Callable[[str, int], _TzData]
+
+class parserinfo:
+ JUMP: list[str]
+ WEEKDAYS: list[tuple[str, ...]]
+ MONTHS: list[tuple[str, ...]]
+ HMS: list[tuple[str, str, str]]
+ AMPM: list[tuple[str, str]]
+ UTCZONE: list[str]
+ PERTAIN: list[str]
+ TZOFFSET: dict[str, int]
+ def __init__(self, dayfirst: bool = False, yearfirst: bool = False) -> None: ...
+ def jump(self, name: str) -> bool: ...
+ def weekday(self, name: str) -> int | None: ...
+ def month(self, name: str) -> int | None: ...
+ def hms(self, name: str) -> int | None: ...
+ def ampm(self, name: str) -> int | None: ...
+ def pertain(self, name: str) -> bool: ...
+ def utczone(self, name: str) -> bool: ...
+ def tzoffset(self, name: str) -> int | None: ...
+ def convertyear(self, year: int) -> int: ...
+ def validate(self, res: datetime) -> bool: ...
+
+class parser:
+ def __init__(self, info: parserinfo | None = None) -> None: ...
+ def parse(
+ self,
+ timestr: _FileOrStr,
+ default: datetime | None = None,
+ ignoretz: bool = False,
+ tzinfos: _TzInfo | None = None,
+ *,
+ dayfirst: bool | None = ...,
+ yearfirst: bool | None = ...,
+ fuzzy: bool = ...,
+ fuzzy_with_tokens: bool = ...,
+ ) -> datetime: ...
+
+DEFAULTPARSER: parser
+
+def parse(
+ timestr: _FileOrStr,
+ parserinfo: parserinfo | None = None,
+ *,
+ dayfirst: bool | None = ...,
+ yearfirst: bool | None = ...,
+ ignoretz: bool = ...,
+ fuzzy: bool = ...,
+ fuzzy_with_tokens: bool = ...,
+ default: datetime | None = ...,
+ tzinfos: _TzInfo | None = ...,
+) -> datetime: ...
+
+class _tzparser: ...
+
+DEFAULTTZPARSER: _tzparser
+
+class ParserError(ValueError): ...
+class UnknownTimezoneWarning(RuntimeWarning): ...
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/parser/isoparser.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/parser/isoparser.pyi
new file mode 100644
index 00000000..fc5e46d9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/parser/isoparser.pyi
@@ -0,0 +1,15 @@
+from _typeshed import SupportsRead
+from datetime import date, datetime, time, tzinfo
+from typing_extensions import TypeAlias
+
+_Readable: TypeAlias = SupportsRead[str | bytes]
+_TakesAscii: TypeAlias = str | bytes | _Readable
+
+class isoparser:
+ def __init__(self, sep: str | bytes | None = None): ...
+ def isoparse(self, dt_str: _TakesAscii) -> datetime: ...
+ def parse_isodate(self, datestr: _TakesAscii) -> date: ...
+ def parse_isotime(self, timestr: _TakesAscii) -> time: ...
+ def parse_tzstr(self, tzstr: _TakesAscii, zero_as_utc: bool = True) -> tzinfo: ...
+
+def isoparse(dt_str: _TakesAscii) -> datetime: ...
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/py.typed b/.venv/lib/python3.12/site-packages/dateutil-stubs/py.typed
new file mode 100644
index 00000000..b648ac92
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/py.typed
@@ -0,0 +1 @@
+partial
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/relativedelta.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/relativedelta.pyi
new file mode 100644
index 00000000..9de92815
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/relativedelta.pyi
@@ -0,0 +1,89 @@
+from datetime import date, timedelta
+from typing import SupportsFloat, TypeVar, overload
+from typing_extensions import Self, TypeAlias
+
+# See #9817 for why we reexport this here
+from ._common import weekday as weekday
+
+_DateT = TypeVar("_DateT", bound=date)
+# Work around attribute and type having the same name.
+_Weekday: TypeAlias = weekday
+
+MO: weekday
+TU: weekday
+WE: weekday
+TH: weekday
+FR: weekday
+SA: weekday
+SU: weekday
+
+class relativedelta:
+ years: int
+ months: int
+ days: int
+ leapdays: int
+ hours: int
+ minutes: int
+ seconds: int
+ microseconds: int
+ year: int | None
+ month: int | None
+ weekday: _Weekday | None
+ day: int | None
+ hour: int | None
+ minute: int | None
+ second: int | None
+ microsecond: int | None
+ def __init__(
+ self,
+ dt1: date | None = None,
+ dt2: date | None = None,
+ years: int = 0,
+ months: int = 0,
+ days: int = 0,
+ leapdays: int = 0,
+ weeks: int = 0,
+ hours: int = 0,
+ minutes: int = 0,
+ seconds: int = 0,
+ microseconds: int = 0,
+ year: int | None = None,
+ month: int | None = None,
+ day: int | None = None,
+ weekday: int | _Weekday | None = None,
+ yearday: int | None = None,
+ nlyearday: int | None = None,
+ hour: int | None = None,
+ minute: int | None = None,
+ second: int | None = None,
+ microsecond: int | None = None,
+ ) -> None: ...
+ @property
+ def weeks(self) -> int: ...
+ @weeks.setter
+ def weeks(self, value: int) -> None: ...
+ def normalized(self) -> Self: ...
+ @overload
+ def __add__(self, other: timedelta | relativedelta) -> Self: ...
+ @overload
+ def __add__(self, other: _DateT) -> _DateT: ...
+ @overload
+ def __radd__(self, other: timedelta | relativedelta) -> Self: ...
+ @overload
+ def __radd__(self, other: _DateT) -> _DateT: ...
+ @overload
+ def __rsub__(self, other: timedelta | relativedelta) -> Self: ...
+ @overload
+ def __rsub__(self, other: _DateT) -> _DateT: ...
+ def __sub__(self, other: relativedelta) -> Self: ...
+ def __neg__(self) -> Self: ...
+ def __bool__(self) -> bool: ...
+ def __nonzero__(self) -> bool: ...
+ def __mul__(self, other: SupportsFloat) -> Self: ...
+ def __rmul__(self, other: SupportsFloat) -> Self: ...
+ def __eq__(self, other: object) -> bool: ...
+ def __ne__(self, other: object) -> bool: ...
+ def __div__(self, other: SupportsFloat) -> Self: ...
+ def __truediv__(self, other: SupportsFloat) -> Self: ...
+ def __abs__(self) -> Self: ...
+ def __hash__(self) -> int: ...
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/rrule.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/rrule.pyi
new file mode 100644
index 00000000..f091cfbd
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/rrule.pyi
@@ -0,0 +1,111 @@
+import datetime
+from _typeshed import Incomplete
+from collections.abc import Iterable, Iterator, Sequence
+from typing_extensions import TypeAlias
+
+from ._common import weekday as weekdaybase
+
+YEARLY: int
+MONTHLY: int
+WEEKLY: int
+DAILY: int
+HOURLY: int
+MINUTELY: int
+SECONDLY: int
+
+class weekday(weekdaybase): ...
+
+weekdays: tuple[weekday, weekday, weekday, weekday, weekday, weekday, weekday]
+MO: weekday
+TU: weekday
+WE: weekday
+TH: weekday
+FR: weekday
+SA: weekday
+SU: weekday
+
+class rrulebase:
+ def __init__(self, cache: bool = False) -> None: ...
+ def __iter__(self) -> Iterator[datetime.datetime]: ...
+ def __getitem__(self, item): ...
+ def __contains__(self, item): ...
+ def count(self): ...
+ def before(self, dt, inc: bool = False): ...
+ def after(self, dt, inc: bool = False): ...
+ def xafter(self, dt, count: Incomplete | None = None, inc: bool = False): ...
+ def between(self, after, before, inc: bool = False, count: int = 1): ...
+
+class rrule(rrulebase):
+ def __init__(
+ self,
+ freq,
+ dtstart: datetime.date | None = None,
+ interval: int = 1,
+ wkst: weekday | int | None = None,
+ count: int | None = None,
+ until: datetime.date | int | None = None,
+ bysetpos: int | Iterable[int] | None = None,
+ bymonth: int | Iterable[int] | None = None,
+ bymonthday: int | Iterable[int] | None = None,
+ byyearday: int | Iterable[int] | None = None,
+ byeaster: int | Iterable[int] | None = None,
+ byweekno: int | Iterable[int] | None = None,
+ byweekday: int | weekday | Iterable[int] | Iterable[weekday] | None = None,
+ byhour: int | Iterable[int] | None = None,
+ byminute: int | Iterable[int] | None = None,
+ bysecond: int | Iterable[int] | None = None,
+ cache: bool = False,
+ ) -> None: ...
+ def replace(self, **kwargs): ...
+
+_RRule: TypeAlias = rrule
+
+class _iterinfo:
+ rrule: _RRule
+ def __init__(self, rrule: _RRule) -> None: ...
+ yearlen: int | None
+ nextyearlen: int | None
+ yearordinal: int | None
+ yearweekday: int | None
+ mmask: Sequence[int] | None
+ mdaymask: Sequence[int] | None
+ nmdaymask: Sequence[int] | None
+ wdaymask: Sequence[int] | None
+ mrange: Sequence[int] | None
+ wnomask: Sequence[int] | None
+ nwdaymask: Sequence[int] | None
+ eastermask: Sequence[int] | None
+ lastyear: int | None
+ lastmonth: int | None
+ def rebuild(self, year, month): ...
+ def ydayset(self, year, month, day): ...
+ def mdayset(self, year, month, day): ...
+ def wdayset(self, year, month, day): ...
+ def ddayset(self, year, month, day): ...
+ def htimeset(self, hour, minute, second): ...
+ def mtimeset(self, hour, minute, second): ...
+ def stimeset(self, hour, minute, second): ...
+
+class rruleset(rrulebase):
+ class _genitem:
+ dt: Incomplete
+ genlist: list[Incomplete]
+ gen: Incomplete
+ def __init__(self, genlist, gen) -> None: ...
+ def __next__(self) -> None: ...
+ next = __next__
+ def __lt__(self, other) -> bool: ...
+ def __gt__(self, other) -> bool: ...
+ def __eq__(self, other) -> bool: ...
+ def __ne__(self, other) -> bool: ...
+
+ def __init__(self, cache: bool = False) -> None: ...
+ def rrule(self, rrule: _RRule): ...
+ def rdate(self, rdate): ...
+ def exrule(self, exrule): ...
+ def exdate(self, exdate): ...
+
+class _rrulestr:
+ def __call__(self, s, **kwargs) -> rrule | rruleset: ...
+
+rrulestr: _rrulestr
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/tz/__init__.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/tz/__init__.pyi
new file mode 100644
index 00000000..334ca482
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/tz/__init__.pyi
@@ -0,0 +1,15 @@
+from .tz import (
+ datetime_ambiguous as datetime_ambiguous,
+ datetime_exists as datetime_exists,
+ gettz as gettz,
+ resolve_imaginary as resolve_imaginary,
+ tzfile as tzfile,
+ tzical as tzical,
+ tzlocal as tzlocal,
+ tzoffset as tzoffset,
+ tzrange as tzrange,
+ tzstr as tzstr,
+ tzutc as tzutc,
+)
+
+UTC: tzutc
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/tz/_common.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/tz/_common.pyi
new file mode 100644
index 00000000..4e64822f
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/tz/_common.pyi
@@ -0,0 +1,28 @@
+import abc
+from datetime import datetime, timedelta, tzinfo
+from typing import ClassVar
+
+def tzname_in_python2(namefunc): ...
+def enfold(dt: datetime, fold: int = 1): ...
+
+class _DatetimeWithFold(datetime):
+ @property
+ def fold(self): ...
+
+# Doesn't actually have ABCMeta as the metaclass at runtime,
+# but mypy complains if we don't have it in the stub.
+# See discussion in #8908
+class _tzinfo(tzinfo, metaclass=abc.ABCMeta):
+ def is_ambiguous(self, dt: datetime) -> bool: ...
+ def fromutc(self, dt: datetime) -> datetime: ...
+
+class tzrangebase(_tzinfo):
+ def __init__(self) -> None: ...
+ def utcoffset(self, dt: datetime | None) -> timedelta | None: ...
+ def dst(self, dt: datetime | None) -> timedelta | None: ...
+ def tzname(self, dt: datetime | None) -> str: ...
+ def fromutc(self, dt: datetime) -> datetime: ...
+ def is_ambiguous(self, dt: datetime) -> bool: ...
+ __hash__: ClassVar[None] # type: ignore[assignment]
+ def __ne__(self, other): ...
+ __reduce__ = object.__reduce__
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/tz/tz.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/tz/tz.pyi
new file mode 100644
index 00000000..6addba65
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/tz/tz.pyi
@@ -0,0 +1,115 @@
+import datetime
+from _typeshed import Incomplete
+from typing import ClassVar, Literal, Protocol, TypeVar
+
+from ..relativedelta import relativedelta
+from ._common import _tzinfo as _tzinfo, enfold as enfold, tzname_in_python2 as tzname_in_python2, tzrangebase as tzrangebase
+
+_DT = TypeVar("_DT", bound=datetime.datetime)
+
+ZERO: datetime.timedelta
+EPOCH: datetime.datetime
+EPOCHORDINAL: int
+
+class tzutc(datetime.tzinfo):
+ def utcoffset(self, dt: datetime.datetime | None) -> datetime.timedelta | None: ...
+ def dst(self, dt: datetime.datetime | None) -> datetime.timedelta | None: ...
+ def tzname(self, dt: datetime.datetime | None) -> str: ...
+ def is_ambiguous(self, dt: datetime.datetime | None) -> bool: ...
+ def fromutc(self, dt: _DT) -> _DT: ...
+ def __eq__(self, other): ...
+ __hash__: ClassVar[None] # type: ignore[assignment]
+ def __ne__(self, other): ...
+ __reduce__ = object.__reduce__
+
+class tzoffset(datetime.tzinfo):
+ def __init__(self, name, offset) -> None: ...
+ def utcoffset(self, dt: datetime.datetime | None) -> datetime.timedelta | None: ...
+ def dst(self, dt: datetime.datetime | None) -> datetime.timedelta | None: ...
+ def is_ambiguous(self, dt: datetime.datetime | None) -> bool: ...
+ def tzname(self, dt: datetime.datetime | None) -> str: ...
+ def fromutc(self, dt: _DT) -> _DT: ...
+ def __eq__(self, other): ...
+ __hash__: ClassVar[None] # type: ignore[assignment]
+ def __ne__(self, other): ...
+ __reduce__ = object.__reduce__
+ @classmethod
+ def instance(cls, name, offset) -> tzoffset: ...
+
+class tzlocal(_tzinfo):
+ def __init__(self) -> None: ...
+ def utcoffset(self, dt: datetime.datetime | None) -> datetime.timedelta | None: ...
+ def dst(self, dt: datetime.datetime | None) -> datetime.timedelta | None: ...
+ def tzname(self, dt: datetime.datetime | None) -> str: ...
+ def is_ambiguous(self, dt: datetime.datetime | None) -> bool: ...
+ def __eq__(self, other): ...
+ __hash__: ClassVar[None] # type: ignore[assignment]
+ def __ne__(self, other): ...
+ __reduce__ = object.__reduce__
+
+class _ttinfo:
+ def __init__(self) -> None: ...
+ def __eq__(self, other): ...
+ __hash__: ClassVar[None] # type: ignore[assignment]
+ def __ne__(self, other): ...
+
+class _TZFileReader(Protocol):
+ # optional attribute:
+ # name: str
+ def read(self, size: int, /) -> bytes: ...
+ def seek(self, target: int, whence: Literal[1], /) -> object: ...
+
+class tzfile(_tzinfo):
+ def __init__(self, fileobj: str | _TZFileReader, filename: str | None = None) -> None: ...
+ def is_ambiguous(self, dt: datetime.datetime | None, idx: int | None = None) -> bool: ...
+ def utcoffset(self, dt: datetime.datetime | None) -> datetime.timedelta | None: ...
+ def dst(self, dt: datetime.datetime | None) -> datetime.timedelta | None: ...
+ def tzname(self, dt: datetime.datetime | None) -> str: ...
+ def __eq__(self, other): ...
+ __hash__: ClassVar[None] # type: ignore[assignment]
+ def __ne__(self, other): ...
+ def __reduce__(self): ...
+ def __reduce_ex__(self, protocol): ...
+
+class tzrange(tzrangebase):
+ hasdst: bool
+ def __init__(
+ self,
+ stdabbr: str,
+ stdoffset: int | datetime.timedelta | None = None,
+ dstabbr: str | None = None,
+ dstoffset: int | datetime.timedelta | None = None,
+ start: relativedelta | None = None,
+ end: relativedelta | None = None,
+ ) -> None: ...
+ def transitions(self, year: int) -> tuple[datetime.datetime, datetime.datetime]: ...
+ def __eq__(self, other): ...
+
+class tzstr(tzrange):
+ hasdst: bool
+ def __init__(self, s: str, posix_offset: bool = False) -> None: ...
+ @classmethod
+ def instance(cls, name, offset) -> tzoffset: ...
+
+class _ICalReader(Protocol):
+ # optional attribute:
+ # name: str
+ def read(self) -> str: ...
+
+class tzical:
+ def __init__(self, fileobj: str | _ICalReader) -> None: ...
+ def keys(self): ...
+ def get(self, tzid: Incomplete | None = None): ...
+
+TZFILES: list[str]
+TZPATHS: list[str]
+
+def datetime_exists(dt: datetime.datetime, tz: datetime.tzinfo | None = None) -> bool: ...
+def datetime_ambiguous(dt: datetime.datetime, tz: datetime.tzinfo | None = None) -> bool: ...
+def resolve_imaginary(dt: datetime.datetime) -> datetime.datetime: ...
+
+class _GetTZ:
+ def __call__(self, name: str | None = ...) -> datetime.tzinfo | None: ...
+ def nocache(self, name: str | None) -> datetime.tzinfo | None: ...
+
+gettz: _GetTZ
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/utils.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/utils.pyi
new file mode 100644
index 00000000..8c9f5e44
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/utils.pyi
@@ -0,0 +1,5 @@
+from datetime import datetime, timedelta, tzinfo
+
+def default_tzinfo(dt: datetime, tzinfo: tzinfo) -> datetime: ...
+def today(tzinfo: tzinfo | None = None) -> datetime: ...
+def within_delta(dt1: datetime, dt2: datetime, delta: timedelta) -> bool: ...
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/zoneinfo/__init__.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/zoneinfo/__init__.pyi
new file mode 100644
index 00000000..7bd2845a
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/zoneinfo/__init__.pyi
@@ -0,0 +1,17 @@
+from _typeshed import Incomplete
+from typing import IO
+from typing_extensions import TypeAlias
+
+__all__ = ["get_zonefile_instance", "gettz", "gettz_db_metadata"]
+
+_MetadataType: TypeAlias = dict[str, Incomplete]
+
+class ZoneInfoFile:
+ zones: dict[Incomplete, Incomplete]
+ metadata: _MetadataType | None
+ def __init__(self, zonefile_stream: IO[bytes] | None = None) -> None: ...
+ def get(self, name, default: Incomplete | None = None): ...
+
+def get_zonefile_instance(new_instance: bool = False) -> ZoneInfoFile: ...
+def gettz(name): ...
+def gettz_db_metadata() -> _MetadataType: ...
diff --git a/.venv/lib/python3.12/site-packages/dateutil-stubs/zoneinfo/rebuild.pyi b/.venv/lib/python3.12/site-packages/dateutil-stubs/zoneinfo/rebuild.pyi
new file mode 100644
index 00000000..e3845926
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/dateutil-stubs/zoneinfo/rebuild.pyi
@@ -0,0 +1,11 @@
+from _typeshed import Incomplete, StrOrBytesPath
+from collections.abc import Sequence
+from tarfile import TarInfo
+
+def rebuild(
+ filename: StrOrBytesPath,
+ tag: Incomplete | None = None,
+ format: str = "gz",
+ zonegroups: Sequence[str | TarInfo] = [],
+ metadata: Incomplete | None = None,
+) -> None: ...