o
    Df<                     @  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	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rdZ W n e#e$fy   dZ Y nw ddd3ddZ%e	d4d5ddZ&d6d7d!d"Z'd8d$d%Z(d9d:d*d+Z)	d;d<d.d'Z*d=d1d2Z+dS )>    )annotations)Iterable)contextmanagerN)Iterator)Optional)TextIO)Union)url   )sqla_compatalembicHHHHFquietstreamr   textUnion[str, bytes]r   boolreturnNonec             	   G  sj   |rd S t | ddpd}|D ]$}t|ts||d}||}z| | W q ty2   Y  d S w d S )Nencodingasciireplace)getattr
isinstancebytesencodedecodewriteOSError)r   r   r   r   t r!   O/home/ubuntu/webapp/venv/lib/python3.10/site-packages/alembic/util/messaging.pywrite_outstream%   s   

r#   
status_msgstrnewlineIterator[None]c                 c  sR    t | d |d|d zd V  W n   |sttjd  |s'ttjd d S d S )Nz ...T)flushr   z	  FAILED
z  done
)msgr#   sysstdout)r$   r&   r   r!   r!   r"   status8   s   
r,   messagec                 C  s*   t |  td|  |d td d S )NzFAILED: r   )logerrorr)   r*   exit)r-   r   r!   r!   r"   errH   s   
r2   	input_urlc                 C  s   t | }tj|ddS )NT)hide_password)r	   make_urlr   url_render_as_string)r3   ur!   r!   r"   obfuscate_url_pwN   s   
r8      r)   
stacklevelintc                 C  s   t j| t|d d S )N)r:   )warningswarnUserWarning)r)   r:   r!   r!   r"   r=   S   s   r=   Tr(   c                 C  s   |rd S t d u rttj|  |rttjd n+t| t }t|dkr4|dd D ]
}ttjd|d q)ttjd|d |r?dnd |rKtj  d S d S )N
r
   r   r.   z   )	TERMWIDTHr#   r*   r+   textwrapwraplenr(   )r)   r&   r(   r   linesliner!   r!   r"   r)   W   s   value#Optional[Union[str, Iterable[str]]]c                 C  s:   | d u rdS t | tr| S t | trd| S td|  )Nr@   z, z!Don't know how to comma-format %r)r   r%   r   join
ValueError)rG   r!   r!   r"   format_as_commak   s   


rK   )r   r   r   r   r   r   r   r   )FF)r$   r%   r&   r   r   r   r   r'   )F)r-   r%   r   r   r   r   )r3   r%   r   r%   )r9   )r)   r%   r:   r;   r   r   )TFF)
r)   r%   r&   r   r(   r   r   r   r   r   )rG   rH   r   r%   ),
__future__r   collections.abcr   
contextlibr   loggingr*   rB   typingr   r   r   r   r<   sqlalchemy.enginer	   r@   r   	getLogger__name__r/   
addHandlerNullHandlerfcntltermiosstructioctl
TIOCGWINSZpackunpack_hrA   _hp_wpImportErrorr   r#   r,   r2   r8   r=   r)   rK   r!   r!   r!   r"   <module>   sL    

