3 from _typeshed import Self as Self
4 from datetime import datetime
5 from typing import ClassVar, Iterable, Iterator, Type, overload
7 from dateparser import _Settings
8 from dateparser.conf import Settings
9 from dateparser.languages.loader import LocaleDataLoader
10 from dateparser.languages.locale import Locale
12 if sys.version_info >= (3, 8):
13 from re import Pattern
14 from typing import Literal
16 from typing import Pattern
17 from typing_extensions import Literal
19 _Period = Literal["time", "day", "week", "month", "year"]
20 APOSTROPHE_LOOK_ALIKE_CHARS: list[str]
22 RE_SPACES: Pattern[str]
23 RE_TRIM_SPACES: Pattern[str]
24 RE_TRIM_COLONS: Pattern[str]
25 RE_SANITIZE_SKIP: Pattern[str]
26 RE_SANITIZE_RUSSIAN: Pattern[str]
27 RE_SANITIZE_PERIOD: Pattern[str]
28 RE_SANITIZE_ON: Pattern[str]
29 RE_SANITIZE_APOSTROPHE: Pattern[str]
30 RE_SEARCH_TIMESTAMP: Pattern[str]
32 def sanitize_spaces(date_string: str) -> str: ...
33 def date_range(begin, end, **kwargs) -> None: ...
34 def get_intersecting_periods(low, high, period: str = ...) -> None: ...
35 def sanitize_date(date_string: str) -> str: ...
36 def get_date_from_timestamp(date_string: str, settings: Settings) -> datetime | None: ...
37 def parse_with_formats(date_string: str, date_formats: Iterable[str], settings: Settings) -> DateData: ...
39 class _DateLocaleParser:
42 date_formats: list[str] | tuple[str] | set[str] | None
47 date_formats: list[str] | tuple[str] | set[str] | None,
48 settings: Settings | None = ...,
55 date_formats: list[str] | tuple[str] | set[str] | None = ...,
56 settings: Settings | None = ...,
58 def _parse(self) -> DateData | None: ...
59 def _try_timestamp(self) -> DateData: ...
60 def _try_freshness_parser(self) -> DateData | None: ...
61 def _try_absolute_parser(self) -> DateData | None: ...
62 def _try_nospaces_parser(self) -> DateData | None: ...
63 def _try_parser(self, parse_method) -> DateData | None: ...
64 def _try_given_formats(self) -> DateData | None: ...
65 def _get_translated_date(self) -> str: ...
66 def _get_translated_date_with_formatting(self) -> str: ...
67 def _is_valid_date_data(self, date_data: DateData) -> bool: ...
70 date_obj: datetime | None
72 period: _Period | None
73 def __init__(self, *, date_obj: datetime | None = ..., period: _Period | None = ..., locale: str | None = ...) -> None: ...
75 def __getitem__(self, k: Literal["date_obj"]) -> datetime | None: ...
77 def __getitem__(self, k: Literal["locale"]) -> str | None: ...
79 def __getitem__(self, k: Literal["period"]) -> _Period | None: ...
81 def __setitem__(self, k: Literal["date_obj"], v: datetime) -> None: ...
83 def __setitem__(self, k: Literal["locale"], v: str) -> None: ...
85 def __setitem__(self, k: Literal["period"], v: _Period) -> None: ...
89 locale_loader: ClassVar[LocaleDataLoader | None]
90 try_previous_locales: bool
92 languages: list[str] | None
93 locales: list[str] | tuple[str] | set[str] | None
95 previous_locales: collections.OrderedDict[Locale, None]
98 languages: list[str] | tuple[str] | set[str] | None = ...,
99 locales: list[str] | tuple[str] | set[str] | None = ...,
100 region: str | None = ...,
101 try_previous_locales: bool = ...,
102 use_given_order: bool = ...,
103 settings: _Settings | None = ...,
105 def get_date_data(self, date_string: str, date_formats: list[str] | tuple[str] | set[str] | None = ...) -> DateData: ...
106 def get_date_tuple(self, date_string: str, date_formats: list[str] | tuple[str] | set[str] | None = ...): ...
107 def _get_applicable_locales(self, date_string: str) -> Iterator[Locale]: ...
108 def _is_applicable_locale(self, locale: Locale, date_string: str) -> bool: ...
110 def _get_locale_loader(cls: Type[DateDataParser]) -> LocaleDataLoader: ...