B
    R[                 @   sr   d dl Z d dlZedZdd Zdd ZdZdd	 Zd
d Zdd Z	dd Z
edkrnede	  ede  dS )    Nz%([0-9A-Fa-f]{2})c             C   s   dd }t || S )Nc             S   s   t | ddd}t|S )N      )base)intgroupchr)matchn r
   *lib/python3.7/site-packages/jeepney/bus.pyrepl   s    zunescape.<locals>.repl)_escape_patsub)vr   r
   r
   r   unescape   s    r   c             c   sf   x`|  dD ]R}| dd\}}i }x.| dD ] }| dd\}}t|||< q0W ||fV  qW d S )N;:r   ,=)splitr   )saddr	transportinfokvxkr   r
   r
   r   parse_addresses   s    r   )unixc             c   s   t  }d}xbt| D ]V\}}|tkr0|| q|dkrd|krTd|d  V  d}qd|kr|d V  d}qW |std|td S )NFr   Zabstract Tpathz1DBus transports ({}) not supported. Supported: {})setr   SUPPORTED_TRANSPORTSaddRuntimeErrorformat)r   Zunsupported_transportsfoundr   r   r
   r
   r   get_connectable_addresses   s    
r'   c              C   s   t jd } tt| S )NZDBUS_SESSION_BUS_ADDRESS)osenvironnextr'   )r   r
   r
   r   find_session_bus)   s    
r+   c              C   s   t jddpd} tt| S )NZDBUS_SYSTEM_BUS_ADDRESS z)unix:path=/var/run/dbus/system_bus_socket)r(   r)   getr*   r'   )r   r
   r
   r   find_system_bus.   s    r.   c             C   s,   | dkrt  S | dkrt S tt| S d S )NZSESSIONZSYSTEM)r+   r.   r*   r'   )r   r
   r
   r   get_bus3   s
    r/   __main__zSystem bus at:zSession bus at:)r(   recompiler   r   r   r"   r'   r+   r.   r/   __name__printr
   r
   r
   r   <module>   s   
		