From 8ba1cbfb9c367ca19549715db24dc10dbebe0a66 Mon Sep 17 00:00:00 2001 From: donbarbos Date: Fri, 4 Sep 2026 21:43:52 +0400 Subject: [PATCH] [dateparser] Update to 1.4.3 Closes: #16341 --- stubs/dateparser/METADATA.toml | 2 +- stubs/dateparser/dateparser/__init__.pyi | 2 +- stubs/dateparser/dateparser/conf.pyi | 2 +- stubs/dateparser/dateparser/date_parser.pyi | 6 ++++- stubs/dateparser/dateparser/parser.pyi | 23 ++++++++++++++----- stubs/dateparser/dateparser/search/search.pyi | 5 ++-- 6 files changed, 27 insertions(+), 13 deletions(-) diff --git a/stubs/dateparser/METADATA.toml b/stubs/dateparser/METADATA.toml index 2e688a20eb1c..cc9a77d9559d 100644 --- a/stubs/dateparser/METADATA.toml +++ b/stubs/dateparser/METADATA.toml @@ -1,4 +1,4 @@ -version = "1.4.2" +version = "1.4.3" upstream-repository = "https://github.com/scrapinghub/dateparser" [tool.stubtest] diff --git a/stubs/dateparser/dateparser/__init__.pyi b/stubs/dateparser/dateparser/__init__.pyi index 2b91d4db2992..2f772d4714cb 100644 --- a/stubs/dateparser/dateparser/__init__.pyi +++ b/stubs/dateparser/dateparser/__init__.pyi @@ -11,7 +11,7 @@ _default_parser: DateDataParser @type_check_only class _Settings(TypedDict, total=False): # noqa: Y049 - DATE_ORDER: str + DATE_ORDER: Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"] PREFER_LOCALE_DATE_ORDER: bool TIMEZONE: str TO_TIMEZONE: str diff --git a/stubs/dateparser/dateparser/conf.pyi b/stubs/dateparser/dateparser/conf.pyi index 26202baaf9e9..ad80b028637e 100644 --- a/stubs/dateparser/dateparser/conf.pyi +++ b/stubs/dateparser/dateparser/conf.pyi @@ -9,7 +9,7 @@ _R = TypeVar("_R") class Settings: # Next attributes are optional and may be missing. # Please keep in sync with _Settings TypedDict - DATE_ORDER: str + DATE_ORDER: Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"] PREFER_LOCALE_DATE_ORDER: bool TIMEZONE: str TO_TIMEZONE: str diff --git a/stubs/dateparser/dateparser/date_parser.pyi b/stubs/dateparser/dateparser/date_parser.pyi index 73a70cc9b735..0c9a24d02f62 100644 --- a/stubs/dateparser/dateparser/date_parser.pyi +++ b/stubs/dateparser/dateparser/date_parser.pyi @@ -1,5 +1,6 @@ from collections.abc import Callable from datetime import datetime, tzinfo +from typing import Literal from dateparser.conf import Settings @@ -7,8 +8,11 @@ class DateParser: def parse( self, date_string: str, - parse_method: Callable[[str, Settings, tzinfo | None], tuple[datetime, str]], + parse_method: Callable[ + [str, Settings, tzinfo | None, Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"] | None], tuple[datetime, str] + ], settings: Settings | None = None, + date_order: Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"] | None = None, ) -> tuple[datetime, str]: ... date_parser: DateParser diff --git a/stubs/dateparser/dateparser/parser.pyi b/stubs/dateparser/dateparser/parser.pyi index 1bede7cd2b9d..eef0dd768f85 100644 --- a/stubs/dateparser/dateparser/parser.pyi +++ b/stubs/dateparser/dateparser/parser.pyi @@ -19,12 +19,12 @@ HOUR_MINUTE_REGEX: Final[re.Pattern[str]] def no_space_parser_eligibile(datestring: str) -> bool: ... def get_unresolved_attrs(parser_object: object) -> tuple[list[_Component], list[_Component]]: ... -date_order_chart: Final[dict[str, str]] +date_order_chart: Final[dict[Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"], str]] @overload -def resolve_date_order(order: str, lst: Literal[True]) -> list[_Component]: ... +def resolve_date_order(order: Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"], lst: Literal[True]) -> list[_Component]: ... @overload -def resolve_date_order(order: str, lst: Literal[False] | None = None) -> str: ... +def resolve_date_order(order: Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"], lst: Literal[False] | None = None) -> str: ... class _time_parser: time_directives: list[str] @@ -37,7 +37,9 @@ class _no_spaces_parser: date_formats: dict[str, list[str]] def __init__(self, *args, **kwargs) -> None: ... @classmethod - def parse(cls, datestring: str, settings: Settings) -> tuple[datetime.datetime, str]: ... + def parse( + cls, datestring: str, settings: Settings, date_order: Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"] | None = None + ) -> tuple[datetime.datetime, str]: ... class _parser: alpha_directives: ClassVar[dict[str, list[str]]] @@ -54,10 +56,19 @@ class _parser: auto_order: list[str] ordered_num_directives: OrderedDict[str, list[str]] - def __init__(self, tokens: Iterable[tuple[str, _TokenType]], settings: Settings) -> None: ... + def __init__( + self, + tokens: Iterable[tuple[str, _TokenType]], + settings: Settings, + date_order: Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"] | None = None, + ) -> None: ... @classmethod def parse( - cls, datestring: str, settings: Settings, tz: datetime.tzinfo | None = None + cls, + datestring: str, + settings: Settings, + tz: datetime.tzinfo | None = None, + date_order: Literal["DMY", "DYM", "MDY", "MYD", "YDM", "YMD"] | None = None, ) -> tuple[datetime.datetime, str | None]: ... class tokenizer: diff --git a/stubs/dateparser/dateparser/search/search.pyi b/stubs/dateparser/dateparser/search/search.pyi index 274e86130e01..a1d58f12fae3 100644 --- a/stubs/dateparser/dateparser/search/search.pyi +++ b/stubs/dateparser/dateparser/search/search.pyi @@ -9,7 +9,7 @@ from dateparser.conf import Settings from dateparser.date import DateData, DateDataParser, _DetectLanguagesFunction from dateparser.languages.loader import LocaleDataLoader from dateparser.languages.locale import Locale -from dateparser.search.text_detection import FullTextLanguageDetector +from dateparser.search.ngram_search import _NgramDateSearch @type_check_only class _SearchDates(TypedDict): @@ -22,7 +22,6 @@ def date_is_relative(translation: str) -> bool: ... class _ExactLanguageSearch: loader: LocaleDataLoader - language: Locale | None def __init__(self, loader: LocaleDataLoader) -> None: ... def get_current_language(self, shortname: str) -> None: ... def search(self, shortname: str, text: str, settings: Settings | None) -> tuple[list[str], list[str]]: ... @@ -57,7 +56,7 @@ class DateSearchWithDetection: loader: LocaleDataLoader available_language_map: OrderedDict[str, Locale] search: _ExactLanguageSearch - language_detector: FullTextLanguageDetector + ngram_search: _NgramDateSearch def __init__(self) -> None: ... def detect_language( self,