| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- """
- Provides the default implementation of :class:`ArrowFactory <arrow.factory.ArrowFactory>`
- methods for use as a module API.
- """
- from datetime import date, datetime
- from datetime import tzinfo as dt_tzinfo
- from time import struct_time
- from typing import Any, List, Optional, Tuple, Type, Union, overload
- from arrow.arrow import TZ_EXPR, Arrow
- from arrow.constants import DEFAULT_LOCALE
- from arrow.factory import ArrowFactory
- # internal default factory.
- _factory = ArrowFactory()
- # TODO: Use Positional Only Argument (https://www.python.org/dev/peps/pep-0570/)
- # after Python 3.7 deprecation
- @overload
- def get(
- *,
- locale: str = DEFAULT_LOCALE,
- tzinfo: Optional[TZ_EXPR] = None,
- normalize_whitespace: bool = False,
- ) -> Arrow: ... # pragma: no cover
- @overload
- def get(
- *args: int,
- locale: str = DEFAULT_LOCALE,
- tzinfo: Optional[TZ_EXPR] = None,
- normalize_whitespace: bool = False,
- ) -> Arrow: ... # pragma: no cover
- @overload
- def get(
- __obj: Union[
- Arrow,
- datetime,
- date,
- struct_time,
- dt_tzinfo,
- int,
- float,
- str,
- Tuple[int, int, int],
- ],
- *,
- locale: str = DEFAULT_LOCALE,
- tzinfo: Optional[TZ_EXPR] = None,
- normalize_whitespace: bool = False,
- ) -> Arrow: ... # pragma: no cover
- @overload
- def get(
- __arg1: Union[datetime, date],
- __arg2: TZ_EXPR,
- *,
- locale: str = DEFAULT_LOCALE,
- tzinfo: Optional[TZ_EXPR] = None,
- normalize_whitespace: bool = False,
- ) -> Arrow: ... # pragma: no cover
- @overload
- def get(
- __arg1: str,
- __arg2: Union[str, List[str]],
- *,
- locale: str = DEFAULT_LOCALE,
- tzinfo: Optional[TZ_EXPR] = None,
- normalize_whitespace: bool = False,
- ) -> Arrow: ... # pragma: no cover
- def get(*args: Any, **kwargs: Any) -> Arrow:
- """Calls the default :class:`ArrowFactory <arrow.factory.ArrowFactory>` ``get`` method."""
- return _factory.get(*args, **kwargs)
- get.__doc__ = _factory.get.__doc__
- def utcnow() -> Arrow:
- """Calls the default :class:`ArrowFactory <arrow.factory.ArrowFactory>` ``utcnow`` method."""
- return _factory.utcnow()
- utcnow.__doc__ = _factory.utcnow.__doc__
- def now(tz: Optional[TZ_EXPR] = None) -> Arrow:
- """Calls the default :class:`ArrowFactory <arrow.factory.ArrowFactory>` ``now`` method."""
- return _factory.now(tz)
- now.__doc__ = _factory.now.__doc__
- def factory(type: Type[Arrow]) -> ArrowFactory:
- """Returns an :class:`.ArrowFactory` for the specified :class:`Arrow <arrow.arrow.Arrow>`
- or derived type.
- :param type: the type, :class:`Arrow <arrow.arrow.Arrow>` or derived.
- """
- return ArrowFactory(type)
- __all__ = ["get", "utcnow", "now", "factory"]
|