o
    #a
                     @   s"  d Z ddlmZmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZmZ ddlmZmZ ddlmZ ddlmZ e Zeed	d
ddede
e dedefddZeed	d
ddedede
e dedef
ddZeed	d
ddeeeeeeeeeeeeef f	 dede
e dedef
ddZeed	d
ddeeef dedede
e dedefddZeed	d
ddedeee	e f dede
e dedefddZdededefddZejj e_ defddZejj e_ d%de
e defdd Zejj e_ d!ee defd"d#Zg d$Zd	S )&z}
Provides the default implementation of :class:`ArrowFactory <arrow.factory.ArrowFactory>`
methods for use as a module API.

    )datedatetime)tzinfo)struct_time)AnyListOptionalTupleTypeUnionoverload)TZ_EXPRArrow)DEFAULT_LOCALEArrowFactoryNFlocaler   normalize_whitespacer   r   r   returnc                 C      d S N r   r   r   -usr/lib/python3.10/site-packages/arrow/api.pyget      r   argsc                 G   r   r   r   )r   r   r   r   r   r   r   r   !   r   __objc                C   r   r   r   )r   r   r   r   r   r   r   r   +   s   __arg1__arg2c                C   r   r   r   r   r   r   r   r   r   r   r   r   @      	c                C   r   r   r   r    r   r   r   r   L   r!   kwargsc                  O   s   t j| i |S )zTCalls the default :class:`ArrowFactory <arrow.factory.ArrowFactory>` ``get`` method.)_factoryr   )r   r"   r   r   r   r   X   s   c                   C   s   t  S )zWCalls the default :class:`ArrowFactory <arrow.factory.ArrowFactory>` ``utcnow`` method.)r#   utcnowr   r   r   r   r$   a   s   r$   tzc                 C   s
   t | S )zTCalls the default :class:`ArrowFactory <arrow.factory.ArrowFactory>` ``now`` method.)r#   now)r%   r   r   r   r&   j   s   
r&   typec                 C   s   t | S )zReturns 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.

    r   )r'   r   r   r   factorys   s   r(   )r   r$   r&   r(   r   ) __doc__r   r   r   Z	dt_tzinfotimer   typingr   r   r   r	   r
   r   r   Zarrow.arrowr   r   Zarrow.constantsr   Zarrow.factoryr   r#   strboolr   intfloatr$   r&   r(   __all__r   r   r   r   <module>   s    $		



