a
    g	g%                     @  s  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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  z\d 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rdZW n e"e#fy"   dZY n0 dddddZ$ddddddZ%ddddZ&dddddZ'd.dd dd!d"d#Z(d/dd&d&dd'd(d)Z)d*dd+d,d-Z*dS )0    )annotations)IterableN)Any)Callable)Optional)TextIO)Union)url   )sqla_compatZalembicZHHHHr   None)streamreturnc              	   G  sf   t | ddpd}|D ]L}t|ts.||d}||}z| | W q ty^   Y  qbY q0 qd S )Nencodingasciireplace)getattr
isinstancebytesencodedecodewriteOSError)r   textr   t r   Y/var/www/html/llm_bihealth/app/venv/lib/python3.9/site-packages/alembic/util/messaging.pywrite_outstream%   s    

r   strr   r   )_statmsgfnr   c                 O  s\   | dd}t| d |d z ||i |}ttjd |W S    ttjd  Y n0 d S )NnewlineFz ...Tz  done
z	  FAILED
)popmsgr   sysstdout)r   r    argkwr!   retr   r   r   status4   s    r)   messagec                 C  s$   t |  td|   td d S )Nz
FAILED: %s)logerrorr#   r$   exitr*   r   r   r   err@   s    
r0   )	input_urlr   c                 C  s   t | }tj|ddS )NT)Zhide_password)r	   Zmake_urlr   Zurl_render_as_string)r1   ur   r   r   obfuscate_url_pwF   s    
r3      int)r#   
stacklevelr   c                 C  s   t j| t|d d S )N)r6   )warningswarnUserWarning)r#   r6   r   r   r   r8   K   s    r8   TFbool)r#   r!   flushr   c                 C  s   t d u r&ttj|  |r|ttjd nVt| t }t|dkr`|dd D ]}ttjd|d qJttjd|d |rvdnd |rtj  d S )N
r
   r   r,   z   )	TERMWIDTHr   r$   r%   textwrapwraplenr;   )r#   r!   r;   linesliner   r   r   r#   O   s    r#   z#Optional[Union[str, Iterable[str]]])valuer   c                 C  s>   | d u rdS t | tr| S t | tr.d| S td|  d S )Nr=   z, z!Don't know how to comma-format %r)r   r   r   join
ValueError)rD   r   r   r   format_as_comma_   s    


rG   )r4   )TF)+
__future__r   collections.abcr   loggingr$   r?   typingr   r   r   r   r   r7   Zsqlalchemy.enginer	   r=   r   	getLogger__name__r-   
addHandlerNullHandlerZfcntltermiosstructZioctl
TIOCGWINSZpackunpackZ_hr>   Z_hpZ_wpImportErrorr   r   r)   r0   r3   r8   r#   rG   r   r   r   r   <module>   s>   


