3 iRV` @ s d dl Z yd dlmZ W n ek r8 d dlmZ Y nX d dlZd dlmZ d dlm Z m Z mZmZ dZ e jdZd dlmZmZmZmZmZ d dlmZ G d d d ZG dd dZG d d deZG dd deZdS ) N)RLock)process_introspection_data) DBusExceptionIntrospectionParserExceptionMissingErrorHandlerExceptionMissingReplyHandlerExceptionZrestructuredtextzdbus.proxies)BUS_DAEMON_IFACEBUS_DAEMON_NAMEBUS_DAEMON_PATHINTROSPECTABLE_IFACE LOCAL_PATH)is_py2c @ s( e Zd ZdZdd Zdd Zdd ZdS ) _DeferredMethodzXA proxy method which will only get called once we have its introspection reply. c C s || _ |j| _|| _|| _d S )N) _proxy_method_method_name_append_block)selfproxy_methodappendblock r /usr/lib64/python3.6/proxies.py__init__6 s z_DeferredMethod.__init__c O s@ d|ks|j ddr(| j| j|| d S | j | j||S d S )N reply_handlerignore_replyF)getr r r )r argskeywordsr r r __call__= s z_DeferredMethod.__call__c O s | j | j|| d S )N)r r )r r r r r r call_asyncH s z_DeferredMethod.call_asyncN)__name__ __module____qualname____doc__r r r r r r r r 2 s r c @ s( e Zd ZdZdd Zdd Zdd ZdS ) _ProxyMethodzA proxy method. Typically a member of a ProxyObject. Calls to the method produce messages that travel over the Bus and are routed to a specific named Service. c C sX |t krtdt || _|| _|| _|| _tj| || _|d k rNtj | || _ d S )Nz1Methods may not be called on the reserved path %s)r r _proxy_connection_named_service_object_path_dbus_bindingsZvalidate_member_namer Zvalidate_interface_name_dbus_interface)r proxyZ connectionbus_nameobject_pathZmethod_nameZifacer r r r S s z_ProxyMethod.__init__c O s |j dd }|j dd }|j dd}|j dd }|d k s@|d k rl|d krPt n|d kr`t n|rltd|j d| j}|d kr|d kr| j}n|d | j }| jjj|d }|s|d k r| j j | j| j|| j||||f| n | j j | j| j|| j||f|S d S ) Nr error_handlerr F signaturez6ignore_reply and reply_handler cannot be used togetherdbus_interface.)popr r TypeErrorr+ r r&