U
    f                     @  s  d dl mZ d dlmZ d dlmZ d dlZd dlZd dlZd dl	m
Z
 d dl	mZ d dl	mZ d dlZd dlmZ d	d
lmZ eeZede  zZd dlZd dlZd dlZed ejedd d d d Zede\ZZZ Z!ed krdZW n e"e#fk
r   dZY nX dddddddddZ$ed-ddddddZ%d.dddddZ&dddddZ'd/dd!dd"d#d$Z(d0dddddd&d'd(Z)d)dd*d+d,Z*dS )1    )annotations)Iterable)contextmanagerN)Optional)TextIO)Union)url   )sqla_compatZalembicZHHHHFquietr   zUnion[str, bytes]boolNone)streamtextr   returnc             	   G  sp   |rd S t | ddpd}|D ]N}t|ts6||d}||}z| | W q tk
rh   Y  qlY qX qd S )Nencodingasciireplace)getattr
isinstancebytesencodedecodewriteOSError)r   r   r   r   t r   d/home/www/findmeahotel.co.uk/times_travel/venv/lib/python3.8/site-packages/alembic/util/messaging.pywrite_outstream$   s    

r   strZ
status_msgnewliner   c                 c  sR   t | d |d|d z
d V  W n   |s6ttjd  Y nX |sNttjd d S )Nz ...T)flushr   z	  FAILED
z  done
)msgr   sysstdoutr!   r   r   r   status7   s    
r'   messager   c                 C  s*   t |  td|  |d td d S )NzFAILED: r   )logerrorr$   r%   exitr(   r   r   r   errE   s    
r.   )	input_urlr   c                 C  s   t | }tj|ddS )NT)Zhide_password)r   Zmake_urlr
   Zurl_render_as_string)r/   ur   r   r   obfuscate_url_pwK   s    
r1      int)r$   
stacklevelr   c                 C  s   t j| t|d d S )N)r4   )warningswarnUserWarning)r$   r4   r   r   r   r6   P   s    r6   T)r$   r"   r#   r   r   c                 C  s   |rd S t d kr.ttj|  |rttjd nVt| t }t|dkrh|dd D ]}ttjd|d qRttjd|d |r~dnd |rtj  d S )N
r	   r   r*   z   )	TERMWIDTHr   r%   r&   textwrapwraplenr#   )r$   r"   r#   r   linesliner   r   r   r$   T   s    r$   z#Optional[Union[str, Iterable[str]]])valuer   c                 C  s>   | d krdS t | tr| S t | tr.d| S td|  d S )Nr9   z, z!Don't know how to comma-format %r)r   r    r   join
ValueError)r@   r   r   r   format_as_commah   s    


rC   )FF)F)r2   )TFF)+
__future__r   collections.abcr   
contextlibr   loggingr%   r;   typingr   r   r   r5   Zsqlalchemy.enginer   r9   r
   	getLogger__name__r+   
addHandlerNullHandlerZfcntltermiosstructioctl
TIOCGWINSZpackunpackZ_hr:   Z_hpZ_wpImportErrorr   r   r'   r.   r1   r6   r$   rC   r   r   r   r   <module>   sF   

     