3
���h � @ s� d dl m Z mZ d dlmZmZ d dlZd dlmZ d dl m
Z
d dlmZ d dl
mZ dd
d�Zdd
ddddddgZdd� ZdS )� )�datetime�time)�List�OptionalN)�is_list_like)� ABCSeries)�notna)�IndexF�raisec s� � �fdd�}| dkr| S t | t�r(| S t | t�rR|| j|�}| j|| j| jd�S t | t�rf|| |�S t| �rx|| |�S |t j
| g�|�d S )a�
Parse time strings to time objects using fixed strptime formats ("%H:%M",
"%H%M", "%I:%M%p", "%I%M%p", "%H:%M:%S", "%H%M%S", "%I:%M:%S%p",
"%I%M%S%p")
Use infer_time_format if all the strings are in the same format to speed
up conversion.
Parameters
----------
arg : string in time format, datetime.time, list, tuple, 1-d array, Series
format : str, default None
Format used to convert arg into a time object. If None, fixed formats
are used.
infer_time_format: bool, default False
Infer the time format based on the first non-NaN element. If all
strings are in the same format, this will speed up conversion.
errors : {'ignore', 'raise', 'coerce'}, default 'raise'
- If 'raise', then invalid parsing will raise an exception
- If 'coerce', then invalid parsing will be set as None
- If 'ignore', then invalid parsing will return the input
Returns
-------
datetime.time
c s� t | ttf�rtj| dd�} nt| dd�dkr6td��tj| dd�} �rX|d krXt| �}g }|d k r�x�| D ]�}y|j t
j||�j� � W qj t
tfk
r� } z@� dkr�d|� d|� �}t
|�|�n� d kr�| S |j d � W Y d d }~X qjX qjW n�td d � }d
}x�| D ]�}d }xj|D ]b} y<t
j|| �j� }|�sP|j|j| ��}
|jd|
� d}P W n t
tfk
�rr �wY nX �qW |d k �r�|j |� n4� dk�r�t
d
| � d���n� d k�r�| S |j d � �qW |S )N�O)Zdtype�ndim� zAarg must be a string, datetime, list, tuple, 1-d array, or Seriesr
zCannot convert z to a time with given format �ignoreFr TzCannot convert arg z
to a time)�
isinstance�list�tuple�np�array�getattr� TypeErrorZasarray�_guess_time_format_for_array�appendr �strptimer �
ValueError�
_time_formats�pop�index�insert)�arg�format�times�element�err�msg�formatsZformat_foundZtime_object�time_format�fmt)�errors�infer_time_format� �9/tmp/pip-build-5_djhm0z/pandas/pandas/core/tools/times.py�_convert_listlike* sT
"
z"to_time.<locals>._convert_listlikeN)r �namer )r r r Z_valuesZ_constructorr r, r r r r )r r r( r' |