o
    h                     @  sr  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  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w ddd1ddZ$ed2d3ddZ%d4d5dd Z&d6d"d#Z'd7d8d(d)Z(	d9d:d,d%Z)d;d/d0Z*dS )<    )annotations)Iterable)contextmanagerN)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    Y/var/www/html/aiguide_backend/venv/lib/python3.10/site-packages/alembic/util/messaging.pywrite_outstream$   s   

r"   
status_msgstrnewlinec                 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!   status7   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!   errE   s   
r0   	input_urlc                 C  s   t | }tj|ddS )NT)hide_password)r   make_urlr
   url_render_as_string)r1   ur    r    r!   obfuscate_url_pwK   s   
r6      r'   
stacklevelintc                 C  s   t j| t|d d S )N)r8   )warningswarnUserWarning)r'   r8   r    r    r!   r;   P   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'   T   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)rE   r    r    r!   format_as_commah   s   


rI   )r   r   r   r   r   r   r   r   )FF)r#   r$   r%   r   r   r   )F)r+   r$   r   r   )r1   r$   r   r$   )r7   )r'   r$   r8   r9   r   r   )TFF)
r'   r$   r%   r   r&   r   r   r   r   r   )rE   rF   r   r$   )+
__future__r   collections.abcr   
contextlibr   loggingr(   r@   typingr   r   r   r:   sqlalchemy.enginer   r>   r
   	getLogger__name__r-   
addHandlerNullHandlerfcntltermiosstructioctl
TIOCGWINSZpackunpack_hr?   _hp_wpImportErrorr   r"   r*   r0   r6   r;   r'   rI   r    r    r    r!   <module>   sH    

