o
    ]³X  ã                   @   sv   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r9ede	ƒ ƒ edeƒ ƒ dS 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
   ú-/usr/lib/python3/dist-packages/jeepney/bus.pyÚrepl   s   zunescape.<locals>.repl)Ú_escape_patÚsub)Úvr   r
   r
   r   Úunescape   s   r   c                 c   s`   � |   d¡D ]'}|  dd¡\}}i }|  d¡D ]}|  dd¡\}}t|ƒ||< q||fV  qd S )Nú;ú:r   ú,ú=)Úsplitr   )ÚsÚaddrÚ	transportÚinfoÚkvÚxÚkr   r
   r
   r   Úparse_addresses   s   €úr   )Úunixc                 c   s„   � t ƒ }d}t| ƒD ]+\}}|tvr| |¡ q
|dkr5d|v r*d|d  V  d}q
d|v r5|d V  d}q
|s@td |t¡ƒ‚d S )NFr   Úabstractú TÚpathz1DBus transports ({}) not supported. Supported: {})Úsetr   ÚSUPPORTED_TRANSPORTSÚaddÚRuntimeErrorÚformat)r   Úunsupported_transportsÚfoundr   r   r
   r
   r   Úget_connectable_addresses   s&   €
€ÿÿr)   c                  C   s   t jd } tt| ƒƒS )NÚ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 )NÚ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   ÿr3   c                 C   s(   | dkrt ƒ S | dkrtƒ S tt| ƒƒS )NÚSESSIONÚSYSTEM)r/   r3   r-   r)   r.   r
   r
   r   Úget_bus3   s
   r6   Ú__main__zSystem bus at:zSession bus at:)r+   ÚreÚcompiler   r   r   r#   r)   r/   r3   r6   Ú__name__Úprintr
   r
   r
   r   Ú<module>   s    
		þ