o
    8 h                     @  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 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d3ddZ#e	d4d5ddZ$d6d7dd Z%d8d"d#Z&d9d:d(d)Z'd9d:d*d+Z(	d;d<d.d%Z)d=d1d2Z*dS )>    )annotations)Iterable)contextmanagerN)Iterator)Optional)TextIO)Union)urlalembicZ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   ^/var/www/html/figdemos/bartoux_crm/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   
r/   	input_urlc                 C  s   t | jddS )NT)hide_password)r	   make_urlrender_as_string)r0   r   r   r   obfuscate_url_pwL   s   r4      r&   
stacklevelintc                 C     t j| t|d d S N)r6   )warningswarnUserWarningr&   r6   r   r   r   r;   P      r;   c                 C  r8   r9   )r:   r;   DeprecationWarningr=   r   r   r   warn_deprecatedT   r>   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&   X   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|  )NrE   z, z!Don't know how to comma-format %r)r   r"   r   join
ValueError)rM   r   r   r   format_as_commar   s   


rQ   )r   r   r   r   r   r   r   r   )FF)r!   r"   r#   r   r   r   r   r$   )F)r*   r"   r   r   r   r   )r0   r"   r   r"   )r5   )r&   r"   r6   r7   r   r   )TFF)
r&   r"   r#   r   r%   r   r   r   r   r   )rM   rN   r   r"   )+
__future__r   collections.abcr   
contextlibr   loggingr'   rG   typingr   r   r   r   r:   sqlalchemy.enginer	   	getLogger__name__r,   
addHandlerNullHandlerfcntlZtermiosstructioctlZ
TIOCGWINSZpackunpackZ_hrF   Z_hpZ_wpImportErrorr   r    r)   r/   r4   r;   r@   r&   rQ   r   r   r   r   <module>   sL    

