[dateparser] Update to ~=1.3.0 (#15376)

This commit is contained in:
Semyon Moroz
2026-02-05 15:53:51 +00:00
committed by GitHub
parent 4fab761f93
commit d7595e2b32
13 changed files with 88 additions and 43 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
version = "~=1.2.2"
version = "~=1.3.0"
upstream_repository = "https://github.com/scrapinghub/dateparser"
[tool.stubtest]
+7
View File
@@ -18,6 +18,7 @@ class _Settings(TypedDict, total=False):
TIMEZONE: str
TO_TIMEZONE: str
RETURN_AS_TIMEZONE_AWARE: bool
PREFER_MONTH_OF_YEAR: Literal["current", "first", "last"]
PREFER_DAY_OF_MONTH: Literal["current", "first", "last"]
PREFER_DATES_FROM: Literal["current_period", "future", "past"]
RELATIVE_BASE: datetime.datetime
@@ -26,7 +27,13 @@ class _Settings(TypedDict, total=False):
SKIP_TOKENS: list[str]
NORMALIZE: bool
RETURN_TIME_AS_PERIOD: bool
RETURN_TIME_SPAN: bool
DEFAULT_START_OF_WEEK: Literal["monday", "sunday"]
DEFAULT_DAYS_IN_MONTH: int
PARSERS: list[_ParserKind]
DEFAULT_LANGUAGES: list[str]
LANGUAGE_DETECTION_CONFIDENCE_THRESHOLD: float
CACHE_SIZE_LIMIT: int
def parse(
date_string: str,
@@ -1,22 +1,21 @@
from _typeshed import Incomplete
from abc import abstractmethod
from typing import Any
from dateparser.conf import Settings
from dateparser.parser import _parser
class CalendarBase:
parser: Any
source: Any
parser: Incomplete
source: Incomplete
def __init__(self, source) -> None: ...
def get_date(self): ...
class non_gregorian_parser(_parser):
calendar_converter: Any
default_year: Any
default_month: Any
default_day: Any
non_gregorian_date_cls: Any
calendar_converter: Incomplete
default_year: Incomplete
default_month: Incomplete
default_day: Incomplete
non_gregorian_date_cls: Incomplete
@classmethod
def to_latin(cls, source): ...
@abstractmethod
@@ -1,4 +1,5 @@
from typing import Any, SupportsIndex
from _typeshed import Incomplete
from typing import SupportsIndex
from dateparser.calendars import non_gregorian_parser
@@ -13,9 +14,9 @@ class hijri:
def month_length(cls, year: int, month: int) -> int: ...
class HijriDate:
year: Any
month: Any
day: Any
year: Incomplete
month: Incomplete
day: Incomplete
def __init__(self, year, month, day) -> None: ...
def weekday(self): ...
@@ -1,16 +1,16 @@
from typing import Any
from _typeshed import Incomplete
from dateparser.calendars import non_gregorian_parser
class PersianDate:
year: Any
month: Any
day: Any
year: Incomplete
month: Incomplete
day: Incomplete
def __init__(self, year, month, day) -> None: ...
def weekday(self): ...
class jalali_parser(non_gregorian_parser):
calendar_converter: Any
calendar_converter: Incomplete
default_year: int
default_month: int
default_day: int
@@ -10,7 +10,9 @@ PATTERN: Final[re.Pattern[str]]
class FreshnessDateDataParser:
def get_local_tz(self) -> ZoneInfo: ...
def parse(self, date_string: str, settings) -> tuple[Incomplete | None, str | None]: ...
def get_kwargs(self, date_string: str) -> dict[str, float]: ...
def get_kwargs(
self, date_string: str
) -> tuple[dict[str, float], dict[str, Incomplete]] | dict[None, None]: ... # return empty dict if pattern not found
def get_date_data(self, date_string: str, settings=None) -> DateData: ...
freshness_date_parser: FreshnessDateDataParser
@@ -1,6 +1,7 @@
import re
from _typeshed import Incomplete
from typing import Any, Final, overload
from itertools import chain
from typing import Final, overload
PARSER_HARDCODED_TOKENS: Final[list[str]]
PARSER_KNOWN_TOKENS: Final[list[str]]
@@ -13,11 +14,11 @@ KEEP_TOKEN_PATTERN: Final[re.Pattern[str]]
class UnknownTokenError(Exception): ...
class Dictionary:
info: Any
info: Incomplete
def __init__(self, locale_info: dict[str, Incomplete], settings=None) -> None: ...
def __contains__(self, key): ...
def __getitem__(self, key): ...
def __iter__(self) -> Any: ...
def __iter__(self) -> chain[Incomplete]: ...
def are_tokens_valid(self, tokens: list[str]) -> bool: ...
@overload
def split(self, string: None, keep_formatting: bool = False) -> None: ...
@@ -1,7 +1,7 @@
import re
from collections import OrderedDict
from collections.abc import Iterator
from typing import Any, Final
from typing import Final
from .locale import Locale
@@ -15,7 +15,7 @@ class LocaleDataLoader:
region: str | None = None,
use_given_order: bool = False,
allow_conflicting_locales: bool = False,
) -> OrderedDict[str, list[Any] | str | int]: ...
) -> OrderedDict[str, Locale]: ...
def get_locales(
self,
languages: list[str] | None = None,
@@ -1,15 +1,15 @@
from typing import Any
from _typeshed import Incomplete
class BaseLanguageDetector:
languages: Any
languages: Incomplete
def __init__(self, languages) -> None: ...
def iterate_applicable_languages(self, date_string, modify: bool = False, settings=None) -> None: ...
class AutoDetectLanguage(BaseLanguageDetector):
language_pool: Any
allow_redetection: Any
language_pool: Incomplete
allow_redetection: Incomplete
def __init__(self, languages, allow_redetection: bool = False) -> None: ...
languages: Any
languages: Incomplete
def iterate_applicable_languages(self, date_string, modify: bool = False, settings=None) -> None: ...
class ExactLanguages(BaseLanguageDetector):
+11 -9
View File
@@ -1,15 +1,17 @@
import re
from _typeshed import Incomplete
from collections.abc import Collection
from typing import Any
from typing import Final
from ..date import _DetectLanguagesFunction
RELATIVE_REG: Any
RELATIVE_REG: Final[re.Pattern[str]]
def date_is_relative(translation): ...
class _ExactLanguageSearch:
loader: Any
language: Any
loader: Incomplete
language: Incomplete
def __init__(self, loader) -> None: ...
def get_current_language(self, shortname) -> None: ...
def search(self, shortname, text, settings): ...
@@ -20,14 +22,14 @@ class _ExactLanguageSearch:
def split_if_not_parsed(self, item, original): ...
def parse_item(self, parser, item, translated_item, parsed, need_relative_base): ...
def parse_found_objects(self, parser, to_parse, original, translated, settings): ...
def search_parse(self, shortname, text, settings): ...
def search_parse(self, shortname, text, settings) -> list[tuple[Incomplete, Incomplete]]: ...
class DateSearchWithDetection:
loader: Any
available_language_map: Any
search: Any
loader: Incomplete
available_language_map: Incomplete
search: Incomplete
def __init__(self) -> None: ...
language_detector: Any
language_detector: Incomplete
def detect_language(
self, text, languages, settings=None, detect_languages_function: _DetectLanguagesFunction | None = None
): ...
@@ -1,11 +1,11 @@
from typing import Any
from _typeshed import Incomplete
from dateparser.search.detection import BaseLanguageDetector
class FullTextLanguageDetector(BaseLanguageDetector):
languages: Any
language_unique_chars: Any
language_chars: Any
languages: Incomplete
language_unique_chars: Incomplete
language_chars: Incomplete
def __init__(self, languages) -> None: ...
def get_unique_characters(self, settings) -> None: ...
def character_check(self, date_string, settings) -> None: ...
@@ -1,3 +1,4 @@
from _typeshed import MaybeNone
from collections import OrderedDict
from collections.abc import Mapping
from logging import Logger
@@ -8,7 +9,7 @@ def normalize_unicode(string: str, form: str = "NFKD") -> str: ...
def combine_dicts(
primary_dict: Mapping[Any, Any], supplementary_dict: Mapping[Any, Any]
) -> OrderedDict[str, str | list[Any]]: ...
def find_date_separator(format) -> Any: ...
def find_date_separator(format: str) -> str | MaybeNone | None: ...
def localize_timezone(date_time, tz_string): ...
def apply_tzdatabase_timezone(date_time, pytz_string): ...
def apply_dateparser_timezone(utc_datetime, offset_or_timezone_abb): ...
@@ -0,0 +1,32 @@
from datetime import date, datetime
from typing import TypedDict, overload, type_check_only
from typing_extensions import NotRequired
from dateparser import _Settings
@type_check_only
class _SpanInformation(TypedDict):
type: str
direction: str
matched_text: str
start_pos: int
end_pos: int
number: NotRequired[int]
@overload
def get_week_start(date: datetime, start_of_week: str = "monday") -> datetime: ...
@overload
def get_week_start(date: date, start_of_week: str = "monday") -> date: ...
@overload
def get_week_end(date: datetime, start_of_week: str = "monday") -> datetime: ...
@overload
def get_week_end(date: date, start_of_week: str = "monday") -> date: ...
def detect_time_span(text: str) -> _SpanInformation | None: ...
@overload
def generate_time_span(
span_info: _SpanInformation, base_date: datetime | None = None, settings: _Settings | None = None
) -> tuple[datetime, datetime]: ...
@overload
def generate_time_span(
span_info: _SpanInformation, base_date: date = ..., settings: _Settings | None = None
) -> tuple[date, date]: ...