B
    ç¹`@  ã               @   sr   d dl Z d dlZd dlZd dlZddlmZ G dd„ deƒZedƒZdd„ Z	d	d
„ Z
dd„ Zddd„Zdd„ ZdS )é    Né   )ÚWINc               @   s   e Zd Zdd„ Zdd„ ZdS )ÚSentinelc             C   s
   || _ d S )N)Úname)Úselfr   © r   úT/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/hupper/utils.pyÚ__init__
   s    zSentinel.__init__c             C   s   d  | j¡S )Nz<{0}>)Úformatr   )r   r   r   r   Ú__repr__   s    zSentinel.__repr__N)Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   r   r   	   s   r   Údefaultc             C   s(   |   dd¡\}}t |¡}t||ƒ}|S )NÚ.r   )ÚrsplitÚ	importlibÚimport_moduleÚgetattr)ÚspecÚmodnameÚfuncnameÚmoduleÚfuncr   r   r   Úresolve_spec   s    

r   c              C   s&   yddl } W n tk
r    dS X dS )z* Return ``True`` if watchdog is available.r   NFT)ÚwatchdogÚImportError)r   r   r   r   Úis_watchdog_supported   s
    r   c              C   s0   t rdS ytƒ } t| ƒS  tk
r*   dS X dS )z* Return ``True`` if watchman is available.FN)r   Úget_watchman_sockpathÚboolÚ	Exception)Zsockpathr   r   r   Úis_watchman_supported$   s    r!   Úwatchmanc             C   s8   t  d¡}|r|S | ddg}t |¡}t |¡}|d S )z# Find the watchman socket or raise.ZWATCHMAN_SOCKz--output-encoding=jsonzget-socknameÚsockname)ÚosÚgetenvÚ
subprocessÚcheck_outputÚjsonÚloads)ZbinpathÚpathÚcmdÚresultr   r   r   r   1   s    



r   c             C   s   | d k	o|   ¡ S )N)Úisatty)Ústreamr   r   r   Úis_stream_interactive=   s    r/   )r"   )r   r(   r$   r&   Úcompatr   Úobjectr   r   r   r   r!   r   r/   r   r   r   r   Ú<module>   s   	
