Skip to content
Merged
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
2 changes: 1 addition & 1 deletion stubs/dateparser/METADATA.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version = "~=1.2.2"
version = "~=1.3.0"
upstream_repository = "https://github.com/scrapinghub/dateparser"

[tool.stubtest]
Expand Down
7 changes: 7 additions & 0 deletions stubs/dateparser/dateparser/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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,
Expand Down
15 changes: 7 additions & 8 deletions stubs/dateparser/dateparser/calendars/__init__.pyi
Original file line number Diff line number Diff line change
@@ -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
Expand Down
9 changes: 5 additions & 4 deletions stubs/dateparser/dateparser/calendars/hijri_parser.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import Any, SupportsIndex
from _typeshed import Incomplete
from typing import SupportsIndex

from dateparser.calendars import non_gregorian_parser

Expand All @@ -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): ...

Expand Down
10 changes: 5 additions & 5 deletions stubs/dateparser/dateparser/calendars/jalali_parser.pyi
Original file line number Diff line number Diff line change
@@ -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
Expand Down
4 changes: 3 additions & 1 deletion stubs/dateparser/dateparser/freshness_date_parser.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -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
7 changes: 4 additions & 3 deletions stubs/dateparser/dateparser/languages/dictionary.pyi
Original file line number Diff line number Diff line change
@@ -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]]
Expand All @@ -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: ...
Expand Down
4 changes: 2 additions & 2 deletions stubs/dateparser/dateparser/languages/loader.pyi
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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,
Expand Down
10 changes: 5 additions & 5 deletions stubs/dateparser/dateparser/search/detection.pyi
Original file line number Diff line number Diff line change
@@ -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):
Expand Down
20 changes: 11 additions & 9 deletions stubs/dateparser/dateparser/search/search.pyi
Original file line number Diff line number Diff line change
@@ -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): ...
Expand All @@ -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
): ...
Expand Down
8 changes: 4 additions & 4 deletions stubs/dateparser/dateparser/search/text_detection.pyi
Original file line number Diff line number Diff line change
@@ -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: ...
3 changes: 2 additions & 1 deletion stubs/dateparser/dateparser/utils/__init__.pyi
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from _typeshed import MaybeNone
from collections import OrderedDict
from collections.abc import Mapping
from logging import Logger
Expand All @@ -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): ...
Expand Down
32 changes: 32 additions & 0 deletions stubs/dateparser/dateparser/utils/time_spans.pyi
Original file line number Diff line number Diff line change
@@ -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]: ...