
    5i[              
       H   d Z ddlZddlZddl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ZddlZej                  j                         rO	  ee ej"                  ddg eej&                  d      	      j)                               \  ZZ eedz
  d
      Zdan	d\  ZZdZdada G d de      Zej:                  d        Zd)dZd)dZ d)dZ!d)dZ"d)dZ#d)dZ$d)dZ%d)dZ&d)dZ'd Z(d Z)d Z*d*dZ+d)dZ,d)d Z-d! Z.d+d"Z/d,d#Z0d-d$Z1d% Z2d.d&Z3d' Z4d( Z5y#  d\  ZZdZY xY w)/zD
This submodule gives basic utilities for printing to the terminal.
    N   )sys_encoding)
DXCLIErrorsttysizew)stderrd   )   P   N   TFc                       e Zd Zd Zy)	DummyFilec                      y N )selfxs     u/home/marpiech/ifpan-abm-pgxpred/analysis/marpiech-gwas-test/venv/lib/python3.12/site-packages/dxpy/utils/printing.pywritezDummyFile.write/   s        N)__name__
__module____qualname__r   r   r   r   r   r   .   s    r   r   c               #   p   K   t         j                  } t               t         _        d  | t         _        y wr   )sysr	   r   )save_stderrs    r   nostderrr   1   s"     **KCJ	CJs   46c                 J    | 
t         rdS dS t               | z   t               z   S )Nz[36m )color_stateCYANENDCmessages    r   r"   r"   8   (    (z0b0v$&((r   c                 J    | 
t         rdS dS t               | z   t               z   S )Nz[1;34mr    )r!   	LIGHTBLUEr#   r$   s    r   r(   r(   >   s(    *|22{W$tv--r   c                 J    | 
t         rdS dS t               | z   t               z   S )Nz[34mr    )r!   BLUEr#   r$   s    r   r*   r*   D   r&   r   c                 J    | 
t         rdS dS t               | z   t               z   S )Nz[33mr    )r!   YELLOWr#   r$   s    r   r,   r,   J   s(    (z0b0x'!DF**r   c                 J    | 
t         rdS dS t               | z   t               z   S )Nz[32mr    )r!   GREENr#   r$   s    r   r.   r.   P   (    (z0b0w 46))r   c                 J    | 
t         rdS dS t               | z   t               z   S )Nz[31mr    )r!   REDr#   r$   s    r   r1   r1   V   s'    (z0b0uw''r   c                 J    | 
t         rdS dS t               | z   t               z   S )Nz[37mr    )r!   WHITEr#   r$   s    r   r3   r3   \   r/   r   c                 J    | 
t         rdS dS t               | z   t               z   S )Nz[4mr    )r!   	UNDERLINEr#   r$   s    r   r5   r5   b   s(    'y/R/{W$tv--r   c                 J    | 
t         rdS dS t               | z   t               z   S )Nz[1mr    )r!   BOLDr#   r$   s    r   r7   r7   h   s(    'y/R/v$&((r   c                      t         rdS dS )Nz[0mr    r!   r   r   r   r#   r#   n   s    #9++r   c                      t               t               z   dz   t               z   dz   t               z   dz   t               z   S )NDNAner   us)r7   r3   r"   r#   r   r   r   DNANEXUS_LOGOr=   q   s5    6EGg%.4uw>ENNr   c                  ^    t               t               z   dz   t               z   t               z   S )Nr   )r7   r"   r3   r#   r   r   r   
DNANEXUS_Xr?   t   s#    6DF?S 57*TV33r   c                     | a y r   r9   )states    r   
set_colorsrB   w   s    Kr   c                     | a y r   	delimiterdelims    r   set_delimiterrH   {   s    Ir   c                     t         S r   rD   rF   s    r   get_delimiterrJ      s    r   c                     t         | S t         S r   rD   )	alt_delims    r   	DELIMITERrM      s    !)98y8r   c                 t    d|vrt        t        |z   d      |d<   d|vrd|d<   t        j                  | fi |S )Nwidth   break_on_hyphensF)max	std_widthtextwrapfill)stringwidth_adjustmentkwargss      r   rU   rU      sG    fi*::B?w'%*!"==*6**r   c                    |t         j                  }d }	 |t         j                  k7  s|j                         s
t               | j	                         }t        |      }t        d |D              }t        |kD  rt        |kD  r
t               | t        j                  j                  dd      }t        j                         dk(  r	 t        j                  |       t        j                   |dt        j"                  |      }|j$                  j'                  | j)                  t*                     |j$                  j-                          |j/                          |j0                  t        j2                  k7  r
t               	 	 |j5                          y #  t               xY w#  |j'                  |        Y 6xY w#  Y y xY w# 	 |j5                          w #  Y w xY wxY w)Nc              3   2   K   | ]  }t        |        y wr   )len).0is     r   	<genexpr>zpager.<locals>.<genexpr>   s     9a3q69s   PAGERzless -RSWindowsT)shellstdinstdout)r   rc   isattyr   
splitlinesr[   rR   tty_rowstty_colsosenvirongetplatformsystem
subprocesscallPopenPIPErb   r   encoder   closewait
returncodeEX_OK	terminate)contentpagerfilepager_processcontent_linescontent_rowscontent_colss          r   rx   rx      s{   |zzM3::T[[],**,=)9=99l"x,'>,=JJNN7J7E??	)#& #((d*//Z^_!!'..">?!!###rxx/, 0
	##%# l"

7		##%	s[   B/F# F B&F# G F; F  F# #F86G ;F?GGGGGc                     | j                  d      }|D cg c]   }|j                  |      st        |      n|" }}dj                  |      j	                  d      S c c}w )a  Refills the given text, where the text is composed of paragraphs
    separated by blank lines (i.e. '

'). Lines that begin with
    ignored_prefix are not touched; this can be used to keep indented
    code snippets from being incorrectly reformatted.

    z


)split
startswithrU   joinstrip)rV   ignored_prefix
paragraphs	paragraphrefilled_paragraphss        r   refill_paragraphsr      sl     f%J xB  Cjs)2F2F~2V4	?\ee  C  C;;*+11$77 Cs   %Ac                     | D ]C  }t        |d   t        d      z   |d   d   z   t        d      z   |d   z   t        d      z          E y )Nid : describename (level)printrM   resultsresults     r   _format_find_projects_resultsr      s`     BfTlYu--z0B60JJo &w02;C.A 	BBr   c           	      F   d }|sk| D ]e  }t         ||      t        d      z   |d   j                  d|d   d         z   t        d      z   |d   d   z   t        d      z   |d   d   z          g y | D ]  }t         ||      t        d      z   |d	   z   t        d      z   |d   j                  d|d   d         z   t        d      z   |d   d   z   t        d      z   |d   d   z   t        d      z   |d   j                  d
d      dkD  rd
ndz   t        d      z           y )Nc                 .    | d   d   dv r
t               S dS )Nr   billTo)zorg-dnanexuszorg-dnanexus_apps )r?   )r   s    r   maybe_xz*_format_find_apps_results.<locals>.maybe_x   s"    %j1(;?ddz|mjmmr   r   r   titler   r   z), vversionr   	publishedr   unpublishedr   )r   rM   rj   )r   verboser   r   s       r   _format_find_apps_resultsr      sq   n  	UF'&/IcN2VJ5G5K5KGU[\fUghnUo5pps|  ~B  tC  C  FL  MW  FX  Y_  F`  `  cl  ms  ct  t  w}  ~H  wI  JS  wT  T  U	U  	iF'&/IcN2VD\AIcNRU[\fUgUkUklsu{  }G  vH  IO  vP  VQ  Q  T]  ^b  Tc  c  fl  mw  fx  y  f@  @  CL  MS  CT  T  W]  ^h  Wi  js  Wt  t  w@  AE  wF  F  Y_  `j  Yk  Yo  Yo  p{  }~  Y  BC  YC  JU  IV  W  Zc  dg  Zh  h  i	ir   c                     | D ]d  }t        |d   t        d      z   |d   d   z   t        d      z   |d   d   z   t        d      z   t        d      z   |d   z   t        d	      z          f y )
Nr   r   r   firstr   lastr   r   r   r   r   s     r    _format_find_org_members_resultsr      s     fTlYu--z0B70KKiX[n\Z ()+4S>:<EdOLNTU\o^n 	r   c                    | j                   r*t        t        j                  t        |      d             y| j                  r|D ]  }t        |d           y| j
                  j                  dv rt        |       y| j
                  j                  dv rt        |       y| j
                  j                  dv rt        || j                         yy)	a  
    Formats the output of ``dx find ...`` commands for `--json` and `--brief` arguments; also formats if no formatting
    arguments are given.
    Currently used for ``dx find projects``, ``dx find org_projects``, ``dx find org_apps``,
    and ``dx find org_members``
       )indentr   )find_projectsorg_find_projectsorg_find_membersorg_find_apps)r   N)jsonr   dumpslistbrieffuncr   r   r   r   r   )argsr   r   s      r   format_find_resultsr      s     yydjjgq12	 	 F&,	  99!GG)'2YY$67,W5YYO4%gt||D 5r   r   )T)r   )NN)z    )F)6__doc__rT   rm   rh   r   r   rk   compatr   
exceptionsr   
contextlibiorc   rd   mapintcheck_outputopendevnullr   rf   rg   minrS   r!   rE   objectr   contextmanagerr   r"   r(   r*   r,   r.   r1   r3   r5   r7   r#   r=   r?   rB   rH   rJ   rM   rU   rx   r   r   r   r   r   r   r   r   <module>r      s]  " % $   ! #  	:: &=j&=&=vv>NW[\^\f\fhkWl&m&s&s&uv(1c*	 KHhIK	   ).)+*(*.),O49+$L	8B	iEm#(	s   
AD 	D!