o
    ‹åg^  ã                   @  st  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 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)ÚIterator)ÚOptional)ÚTextIO)ÚUnion)ÚurlÚ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   úR/var/www/html/flaskapp/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    Ústatus6   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    ÚerrF   s   
r0   Ú	input_urlc                 C  s   t  | ¡jdd�S )NT)Úhide_password)r	   Úmake_urlÚrender_as_string)r1   r   r   r    Úobfuscate_url_pwL   s   r5   é   r'   Ú
stacklevelÚintc                 C  s   t j| t|d� d S )N)r7   )ÚwarningsÚwarnÚUserWarning)r'   r7   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.d}tj| t ||d�}t|ƒdkr8|dd… D ]	}ttj|dƒ q.ttj|d |rBdndƒ |rNtj ¡  d S d S )NÚ
z  )Úinitial_indentÚsubsequent_indenté   r   r,   Ú )Ú	TERMWIDTHr!   r(   r)   ÚtextwrapÚwrapÚlenr&   )r'   r$   r&   r   ÚindentÚ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)rH   r   r   r    Úformat_as_comman   s   


rL   )r   r   r   r   r   r   r   r   )FF)r"   r#   r$   r   r   r   r   r%   )F)r+   r#   r   r   r   r   )r1   r#   r   r#   )r6   )r'   r#   r7   r8   r   r   )TFF)
r'   r#   r$   r   r&   r   r   r   r   r   )rH   rI   r   r#   )*Ú
__future__r   Úcollections.abcr   Ú
contextlibr   Úloggingr(   rB   Útypingr   r   r   r   r9   Úsqlalchemy.enginer	   Ú	getLoggerÚ__name__r-   Ú
addHandlerÚNullHandlerÚfcntlÚtermiosÚstructÚioctlÚ
TIOCGWINSZÚpackÚunpackÚ_hrA   Ú_hpÚ_wpÚImportErrorr   r!   r*   r0   r5   r:   r'   rL   r   r   r   r    Ú<module>   sJ    
€ÿÿÿ
ÿ