U
    4Jeê  ã                   @   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	 ddl
mZ ddlmZ edœd	d
„Zedœdd„Zedœdd„Zedœdd„Zeeedœdd„Zedœdd„Zeedœdd„ZdS )z:SQLite adapters and converters for unsupported data types.é    )ÚdateÚ	timedelta)ÚDecimal)Úversion)ÚVersion)Úparse)Ú	unidecode)Úreturnc                 C   s   t | ƒS )z"Convert decimal.Decimal to string.)Ústr©Úvalue© r   úA/tmp/pip-unpacked-wheel-6qcj4cmz/sqlite3_to_mysql/sqlite_utils.pyÚadapt_decimal   s    r   c                 C   s   t t|  ¡ ƒƒS )z!Convert string to decimalDecimal.)r   r
   Údecoder   r   r   r   Úconvert_decimal   s    r   c                 C   s:   t |  ¡ dƒ\}}t |dƒ\}}d t|ƒt|ƒt|ƒ¡S )z.Convert datetime.timedelta to %H:%M:%S string.i  é<   z{:02}:{:02}:{:02})ÚdivmodÚtotal_secondsÚformatÚint)r   ÚhoursÚ	remainderÚminutesÚsecondsr   r   r   Úadapt_timedelta   s    r   c                 C   s   t t|  ¡ ƒdS )z.Convert %H:%M:%S string to datetime.timedelta.)r   )r   r   r   r   r   r   r   Úconvert_timedelta   s    r   )Ústring_1Ústring_2r	   c                 C   s4   t | ƒ ¡ }t |ƒ ¡ }||kr$dS ||k r0dS dS )zSTaken from https://github.com/patarapolw/ankisync2/issues/3#issuecomment-768687431.é   éÿÿÿÿr   )r   Úlower)r   r   Z	_string_1Z	_string_2r   r   r   Úunicase_compare"   s    r"   c              
   C   sF   zt  |  ¡ ¡W S  tk
r@ } ztd|› ƒ‚W 5 d}~X Y nX dS )zHandle SQLite date conversion.zDATE field contains N)r   Úfromisoformatr   Ú
ValueError)r   Úerrr   r   r   Úconvert_date)   s    r&   )Úversion_stringr	   c                 C   s(   t  | ¡}|jdkp&|jdko&|jdkS )z%Check for SQLite table_xinfo support.é   é   )r   r   ÚmajorÚminor)r'   Zsqlite_versionr   r   r   Ú check_sqlite_table_xinfo_support1   s    
r,   N)Ú__doc__Údatetimer   r   Údecimalr   Ú	packagingr   Zpackaging.versionr   Zpytimeparse2r   r   r
   r   r   r   r   r   r"   r&   Úboolr,   r   r   r   r   Ú<module>   s   