未提供项目说明
dbus-objects的Python项目详细描述
dbus对象
在Python类型系统上实现DBus对象。在
集成:
importrandomfromtypingimportListimportdbus_objects.objectimportdbus_objects.integration.jeepneyclassExampleObject(dbus_objects.object.DBusObject):def__init__(self):super().__init__(default_interface_root='io.github.ffy00.dbus_objects.example')self._bets=[]self._name='something'@dbus_objects.object.dbus_method()defping(self)->str:return'Pong!'@dbus_objects.object.dbus_method()defprint(self,msg:str)->None:print(msg)@dbus_objects.object.dbus_method()defsum(self,a:int,b:int)->int:returna+b@dbus_objects.object.dbus_method()defsave_bet(self,number:int)->None:self._bets.append(number)@dbus_objects.object.dbus_method()defget_bets(self)->List[int]:returnself._bets@dbus_objects.object.dbus_method()deflotery(self)->int:winner=random.choice(self._bets)self._bets=[]returnwinner@dbus_objects.object.dbus_property()defname(self)->str:returnself._name@name.setterdefname(self,value:str):self._name=valueserver=dbus_objects.integration.jeepney.BlockingDBusServer(bus='SESSION',name='io.github.ffy00.dbus-objects')server.register_object('/io/github/ffy00/dbus_objects/example',ExampleObject())server.listen()
此示例将生成以下服务器拓扑:
^{pr2}$例如,/io/github/ffy00/dbus_objects/example
的以下DBus自省XML:
<!DOCTYPE node PUBLIC"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN""http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" ><nodexmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd"><interfacename="io.github.ffy00.dbus_objects.example.ExampleObject"><methodname="GetBets"><argdirection="out"type="ai"/></method><methodname="Lotery"><argdirection="out"type="i"/></method><methodname="Ping"><argdirection="out"type="s"/></method><methodname="Print"><argdirection="in"type="s"name="msg"/></method><methodname="SaveBet"><argdirection="in"type="i"name="number"/></method><methodname="Sum"><argdirection="in"type="i"name="a"/><argdirection="in"type="i"name="b"/><argdirection="out"type="i"/></method></interface><interfacename="org.freedesktop.DBus.Properties"><methodname="GetAll"><argdirection="in"type="s"name="interface_name"/><argdirection="out"type="a{sv}"/></method></interface><interfacename="org.freedesktop.DBus.Introspectable"><methodname="Introspect"><argdirection="out"type="s"name="xml"/></method></interface><interfacename="org.freedesktop.DBus.Peer"><methodname="Ping"/></interface></node>
许可证
麻省理工学院
- 项目
标签: