Files
ServerSync/lib/jeepney/io/__pycache__/trio.cpython-314.pyc

204 lines
25 KiB
Plaintext
Raw Normal View History

2026-02-19 00:55:27 +02:00
+
<00>;<3B>i<EFBFBD>:<00><00><><00>^RIt^RIt^RIt^RIt^RIHtHt^RIHt^RI H
t
^RI H t H t ^RIt^RIHt^RIHtHt^RIHt^R IHtHt^R
IHtHtHt^R IHtHt^R I H!t!^R I"H#t#H$t$H%t%H&t&H't']PP!])4t*.ROt+]R4t,!RR]4t-RRR/RRlllt.!RR]$4t/!RR4t0!RR4t1!RR]4t2]RRR/Rll4t3R#) <20>N)<02>asynccontextmanager<65>contextmanager)<01>count)<01>Optional)<02>Value<75>Error)<01>Channel)<02> Authenticator<6F>BEGIN)<01>get_bus)<02>FileDescriptor<6F> fds_buf_size)<03>Parser<65> MessageType<70>Message)<02> ProxyBase<73>
unwrap_msg)<01> message_bus)<05>MessageFilters<72> FilterHandle<6C> ReplyMatcher<65> RouterClosed<65>check_replyable<6C>Proxyc#<00>"<00>Rx<00>R# \drpTP\P\P09d\P
!R4Rh\P !RPT44ThRp?ii;i5i)Nzthis socket was already closedzsocket connection broken: {})<08>OSError<6F>errno<6E>EBADF<44>ENOTSOCK<43>trio<69>ClosedResourceError<6F>BrokenResourceError<6F>format)<01>excs <20>6/tmp/pip-target-ugtna5l2/lib/python/jeepney/io/trio.py<70>)_translate_socket_errors_to_stream_errorsr&,sn<00><00><00> <17> <0A><> <12><17> <0E>9<EFBFBD>9<EFBFBD><15><1B><1B>e<EFBFBD>n<EFBFBD>n<EFBFBD>5<> 5<><16>*<2A>*<2A>+K<>L<>RV<52> V<><16>*<2A>*<2A>.<2E>5<>5<>c<EFBFBD>:<3A><0E><16> <17><> <17>s%<00>B <01>
<00>B <01> B<03>A,B<03>B<03>B c<00><>a<00>]tRt^;toRtRRltRR/V3RlRlltV3RlRltRV3R lR
lltV3R lR lt R t
Rt Rt ] R4tRtVtR#)<14>DBusConnectionavA plain D-Bus connection with no matching of replies.
This doesn't run any separate tasks: sending and receiving are done in
the task that calls those methods. It's suitable for implementing servers:
several worker tasks can receive requests and send replies.
For a typical client pattern, see :class:`DBusRouter`.
Implements trio's channel interface for Message objects.
c<08><><00>WnW n\4Vn\ ^R7VnRVn\P!4Vn \P!4Vn
RVn R#)<03>)<01>startN) <0C>socket<65>
enable_fdsr<00>parserr<00>outgoing_serial<61> unique_namer <00>Lock<63> send_lock<63> recv_lock<63>_leftover_to_send)<03>selfr,r-s&&&r%<00>__init__<5F>DBusConnection.__init__EsK<00><00><1C> <0B>$<24><0F><1C>h<EFBFBD><04> <0B>$<24>1<EFBFBD>~<7E><04><1C><1F><04><18><1D><19><19><1B><04><0E><1D><19><19><1B><04><0E>!%<25><04><1E><00>serialNc<00> <<01>V^8<>dQhRS[/#)<02><00>message<67>r)r#<00> __classdict__s"<22>r%<00> __annotate__<5F>DBusConnection.__annotate__Os<00><><00>-<2D>-<2D>'<27>-r8c<00> <0C><>"<00>VP;_uu_4GRjx<01>L
Vf\VP4pVP'd\P!R4MRpVP W#R7pVP WC4GRjx<01>L
RRR4GRjx<01>L
R#L<>LL
+GRjx<01>L
'giR#;i5i)z.Serialise and send a :class:`~.Message` objectN<74>i)<01>fds)r2<00>nextr/r-<00>array<61> serialise<73>
_send_data)r5r<r9rC<00>datas&&$ r%<00>send<6E>DBusConnection.sendOs{<00><00><00><17>><3E>><3E>><3E>><3E><15>~<7E><1D>d<EFBFBD>2<>2<>3<><06>&*<2A>o<EFBFBD>o<EFBFBD>o<EFBFBD>%<25>+<2B>+<2B>c<EFBFBD>"<22>4<EFBFBD>C<EFBFBD><1A>$<24>$<24>V<EFBFBD>$<24>5<>D<EFBFBD><16>/<2F>/<2F>$<24>,<2C> ,<2C> ,<2C> "<22>><3E>><3E>
-<2D> "<22>><3E>><3E>><3E>sb<00>C<01>B <08>C<01>+B&<05> >B&<05> B"<08>
B&<05> C<01>B$<04>C<01>"B&<05>$C<01>&C <09>,B/<0E>-
C <09>8C <09>: Cc<00> <<01>V^8<>dQhRS[/#<00>r;rH)<01>bytes)r#r>s"<22>r%r?r@Zs<00><><00>7<>7<>U<EFBFBD>7r8c
<00><08><>"<00>VPP'd\P!R4h\ 4;_uu_4VP
'd$VP VP
4GRjx<01>L
\V4;_uu_4pV'd[VPPV.\PP\PPV3.4GRjx<01>L
pM#VPPV4GRjx<01>L
pVP W4GRjx<01>L
RRR4RRR4R#L<>LUL3L +'giL";i +'giR#;i5i)z!can't send data after sending EOFN) r,<00>did_shutdown_SHUT_WRr r!r&r4<00>_send_remainder<65>
memoryview<EFBFBD>sendmsg<73>
SOL_SOCKET<EFBFBD>
SCM_RIGHTSrI)r5rHrC<00>sents&&& r%rG<00>DBusConnection._send_dataZs <00><00><00> <0F>;<3B>;<3B> +<2B> +<2B> +<2B><16>*<2A>*<2A>+N<>O<> O<> 6<> 8<> 8<><13>%<25>%<25>%<25><1A>*<2A>*<2A>4<EFBFBD>+A<>+A<>B<>B<>B<><1B>D<EFBFBD>!<21>!<21>T<EFBFBD><16>!%<25><1B><1B>!4<>!4<>d<EFBFBD>V<EFBFBD><1C> <0B> <0B>.<2E>.<2E><04> <0B> <0B>0F<30>0F<30><03>?<16>><17>"<18><18>D<EFBFBD>"&<26><1B><1B>!1<>!1<>$<24>!7<>7<>D<EFBFBD><1A>*<2A>*<2A>4<EFBFBD>6<>6<>6<>"<22> 9<> 8<>C<01><18>8<>6<>"<22>!<21><> 9<> 8<> 8<>s<00>AE0<01>1E<05>8E<08>9E<05>AE <09>-E <0C>.#E <09>E <0C>E <09>*E <0C>+E <09>/E<05>7
E0<01>E<05>E <09>E <09>E <09> E <0A>E<05> E- <09>' E0c<00> <<01>V^8<>dQhRS[/#rL)rQ)r#r>s"<22>r%r?r@ms<00><><00> <12> <12>*<2A> r8c<00><08>4"<00>V\V48dDWR;_uu_4pVPPV4GRjx<01>L
pRRR4VX, pKSRVnR#L +'giL&;i \P
d YRTnhi;i5i<01>N)<06>lenr,rIr4r <00> Cancelled)r5rH<00> already_sent<6E> remainingrUs&&& r%rP<00>DBusConnection._send_remainderms<><00><00><00> <12><1E><13>T<EFBFBD><19>*<2A><19>-<2D>(<28>(<28>I<EFBFBD>!%<25><1B><1B>!1<>!1<>)<29>!<<3C><<3C>D<EFBFBD>)<29><1C><04>$<24> <0C>%)<29>D<EFBFBD> "<22>=<3D>)<29>(<28><><14>~<7E>~<7E> <12>&*<2A>-<2D>%8<>D<EFBFBD> "<22> <11>  <12>sD<00>B<01>A5<00>A"<05>A <08>A"<05>A5<00>B<01> A"<05>" A2 <09>-A5<00>5 B<03>Bc<00> <<01>V^8<>dQhRS[/#<00>r;<00>returnr=)r#r>s"<22>r%r?r@{s<00><><00> -<2D> -<2D>w<EFBFBD> -r8c<00> <0C><>"<00>VP;_uu_4GRjx<01>L
VPP4pVeTuuRRR4GRjx<01>L
#VP4GRjx<01>L
wr#V'g\P
!R4hVPP W#4K<>L<>L\LE +GRjx<01>L
'giR#;i5i)z5Return the next available message from the connectionNzSocket closed at the other end)r3r.<00>get_next_message<67>
_read_datar <00> EndOfChannel<65>add_data)r5<00>msg<73>brCs& r%<00>receive<76>DBusConnection.receive{s<><00><00><00><17>><3E>><3E>><3E>><3E><16><1A>k<EFBFBD>k<EFBFBD>2<>2<>4<><03><16>?<3F><1E> "<22>><3E>><3E> $<24><EFBFBD><EFBFBD>0<>0<><06><01><18><1E>+<2B>+<2B>,L<>M<>M<><14> <0B> <0B>$<24>$<24>Q<EFBFBD>,<2C>"<22>1<>"<22>><3E>><3E>><3E>si<00>C <01>B(<08>C <01>!B.<05> C <01> B*<06>C <01>B.<05>&B,<08>'AB.<05>(C <01>*C <01>,B.<05>.C <09>4B7<0E>5
C <09>C <09> C c<00><08><>"<00>VP'd<>VPP4p\4;_uu_4VPP V\ 44GRjx<01>L
wr#rERRR4X\\PR^4,'dVP4\R4hX\P!X43#\4;_uu_4VPPR4GRjx<01>L
pRRR4V.3#L<> +'giL<>;iL% +'giX.3#;i5i)N<>
MSG_CTRUNCz&Unable to receive all file descriptorsi)r-r.<00> bytes_desiredr&r,<00>recvmsgr<00>getattrr <00>_close<73> RuntimeErrorr <00> from_ancdata<74>recv)r5<00>nbytesrH<00>ancdata<74>flags<67>_s& r%rd<00>DBusConnection._read_data<74>s<><00><00><00> <0F>?<3F>?<3F>?<3F><19>[<5B>[<5B>.<2E>.<2E>0<>F<EFBFBD>:<3A><<3C><<3C>04<30> <0B> <0B>0C<30>0C<30><1A>L<EFBFBD>N<EFBFBD>1<12>+<12>'<27><04>u<EFBFBD>=<3D><15>w<EFBFBD>t<EFBFBD>{<7B>{<7B>L<EFBFBD>!<21><<3C><<3C><<3C><14> <0B> <0B> <0A>"<22>#K<>L<>L<><17><1E>4<>4<>W<EFBFBD>=<3D>=<3D> =<3D>;<3B><<3C><<3C>!<21>[<5B>[<5B>-<2D>-<2D>d<EFBFBD>3<>3<><04>=<3D><17><12>8<EFBFBD>O<EFBFBD>+<12>=<3D><<3C><>4<>=<3D><<3C><17><12>8<EFBFBD>O<EFBFBD>sZ<00>?E<01>(D<05>)D<08>*D<05>1A5E<01>&D-<05>D+<08>D-<05>
E<01>D<05> D( <09>#E<01>+D-<05>- E <09>8 Ec<08>H<00>VPP4RVnR#rY)r,<00>closer4<00>r5s&r%rp<00>DBusConnection._close<73>s<00><00> <0C> <0B> <0B><19><19><1B>!%<25><04>r8c<00> <0C>."<00>VP4R#5i)zClose the D-Bus connectionN)rpr{s&r%<00>aclose<73>DBusConnection.aclose<73>s<00><00><00> <0C> <0B> <0B> <0A>s<00>c <0C><>"<00>\P!4;_uu_4GRjx<01>L
p\V4pVPV4GRjx<01>L
V5x<00>VP 4GRjx<01>L
RRR4GRjx<01>L
R#LXL6L TP 4GRjx<01>L
i;iL* +GRjx<01>L
'giR#;i5i)a)Temporarily wrap this connection as a :class:`DBusRouter`
To be used like::
async with conn.router() as req:
reply = await req.send_and_get_reply(msg)
While the router is running, you shouldn't use :meth:`receive`.
Once the router is closed, you can use the plain connection again.
N)r <00> open_nursery<72>
DBusRouterr+r~)r5<00>nursery<72>routers& r%r<><00>DBusConnection.router<65>s<><00><00><00><18>$<24>$<24>&<26>&<26>&<26>'<27><1F><04>%<25>F<EFBFBD><18>,<2C>,<2C>w<EFBFBD>'<27> '<27> '<27> &<26><1C> <0C><1C>m<EFBFBD>m<EFBFBD>o<EFBFBD>%<25>%<25> '<27>&<26>&<26> '<27>&<26><>f<EFBFBD>m<EFBFBD>m<EFBFBD>o<EFBFBD>%<25>%<25><> '<27>&<26>&<26>&<26>s<EFBFBD><00>"C<01>A=<08>C<01> B#<05>A?<08> B#<05>B<04>B#<05>&B<08>'B#<05>+ C<01>6B!<04>7C<01>?B#<05>B#<05>B<07>B <0C>B<07>B#<05>!C<01>#B= <09>)B,<0E>*
B= <09>5B= <09>7 C)r4r-r/r.r3r2r,r0)F)r)<11>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__r6rIrGrPrirdrpr~rr<><00>__static_attributes__<5F>__classdictcell__<5F>r>s@r%r(r(;sa<00><><00><00><08>&<26>-<2D>T<EFBFBD>-<2D>-<2D>7<>7<>& <12> <12> -<2D> -<2D><1C>"&<26>
<16><19>&<26><19>&r8r(r-Fc<00>$<00>V^8<>dQhR\/#r`<00>r()r#s"r%r?r?<00>s<00><00><10><10>n<EFBFBD>r8c<00><04><>"<00>\V4p\P!V4GRjx<01>L
p\VRR7p\ \
R4'dPVP
P R.\
P\
P\R43.4GRjx<01>L
MVPR4GRjx<01>L
VFCpVPV4GRjx<01>L
TPVP4GRjx<01>L
4KE VP\4GRjx<01>L
\VP
VR7pVP4;_uu_4GRjx<01>L
pVP!\"P$!44GRjx<01>L
pVP&^,VnRRR4GRjx<01>L
V#EL<>ELL<>L<>L<>L<>LhL>L +GRjx<01>L
'giT#;i5i)z@Open a plain D-Bus connection
:return: :class:`DBusConnection`
NF)r-<00> inc_null_byte<74> SCM_CREDS<44>i<00>r-)r r <00>open_unix_socketr
<00>hasattrr,rRrSr<>rM<00>send_all<6C>feed<65> receive_somer r(r<><00>send_and_get_replyr<00>Hello<6C>bodyr0) <09>busr-<00>bus_addr<64>sock<63>authr<68>req_data<74>connr<6E><00>replys &$ r%<00>open_dbus_connectionr<6E><00>se<00><00><00>
<17>s<EFBFBD>|<7C>H<EFBFBD>%)<29>%:<3A>%:<3A>8<EFBFBD>%D<>D<>D<EFBFBD> <1A>Z<EFBFBD>u<EFBFBD> E<>E<EFBFBD><0E>v<EFBFBD>{<7B>#<23>#<23><12>k<EFBFBD>k<EFBFBD>!<21>!<21> <12>G<EFBFBD>v<EFBFBD>(<28>(<28>&<26>*:<3A>*:<3A>E<EFBFBD>#<23>J<EFBFBD>G<>H<>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<13>m<EFBFBD>m<EFBFBD>E<EFBFBD>"<22>"<22>"<22><19><08><12>m<EFBFBD>m<EFBFBD>H<EFBFBD>%<25>%<25>%<25> <0A>
<EFBFBD>
<EFBFBD><14>*<2A>*<2A>,<2C>,<2C>-<2D><1A> <0F>-<2D>-<2D><05>
<1E><1E><1E> <19>$<24>+<2B>+<2B>*<2A> =<3D>D<EFBFBD><14>{<7B>{<7B>}<7D>}<7D>}<7D><06><1C>/<2F>/<2F> <0B>0A<30>0A<30>0C<30>D<>D<><05> <20>:<3A>:<3A>a<EFBFBD>=<3D><04><18><1D>}<7D> <10>K<EFBFBD>3 E<01> 
<EFBFBD>
#<23>%<25>,<2C><1E> <1D>D<><1D>}<7D>}<7D>}<7D> <10>K<EFBFBD>s<EFBFBD><00>%G<01>F+<04>A0G<01>F.<04>G<01>2F1<04>3G<01>F3<06>"G<01>3F5
<EFBFBD>4$G<01>F7<04>7G<01>F9<08>G<01>(F?<05><F;<08>=F?<05> G<01>$F=<04>%G<01>.G<01>1G<01>3G<01>5G<01>7G<01>9G<01>;F?<05>=G<01>?G <09>G<0E>
G <09>G <09> Gc<00>`aa<01>]tRt^<5E>toV3RlV3Rllt]R4tRtRtRt Rt
Vt V;t #)<08>TrioFilterHandlec<00> <<01>V^8<>dQhRS[/#)r;<00>filters)r)r#r>s"<22>r%r?<00>TrioFilterHandle.__annotate__<5F>s<00><><00>%<25>%<25><0E>%r8c<08>4<<01>\SV`WV4W0nR#rY)<03>superr6<00> send_channel)r5r<><00>rule<6C>send_chn<68>recv_chn<68> __class__s&&&&&<26>r%r6<00>TrioFilterHandle.__init__<5F>s<00><><00> <0A><07><18><17><08>1<>$<24>r8c<08><00>VP#rY<00><01>queuer{s&r%<00>receive_channel<65> TrioFilterHandle.receive_channel<65>s <00><00><13>z<EFBFBD>z<EFBFBD>r8c<00><08>v"<00>VP4VPP4GRjx<01>L
R#L5irY)rzr<>r~r{s&r%r~<00>TrioFilterHandle.aclose<73>s&<00><00><00> <0C>
<EFBFBD>
<EFBFBD> <0C><12><1F><1F>&<26>&<26>(<28>(<28>(<28>s <00>.9<01>7<04>9c<00><08>""<00>VP#5irYr<>r{s&r%<00>
__aenter__<EFBFBD>TrioFilterHandle.__aenter__<5F>s<00><00><00><13>z<EFBFBD>z<EFBFBD><19>s<00> c<00><08>B"<00>VP4GRjx<01>L
R#L5irY)r~)r5<00>exc_type<70>exc_val<61>exc_tbs&&&&r%<00> __aexit__<5F>TrioFilterHandle.__aexit__<5F>s<00><00><00><12>k<EFBFBD>k<EFBFBD>m<EFBFBD><1B><1B>s <00><01><04>)r<>) r<>r<>r<>r<>r6<00>propertyr<79>r~r<>r<>r<>r<><00> __classcell__<5F>r<>r>s@@r%r<>r<><00>s7<00><><00><00>%<25>%<25><0E><1A><0E><1A>)<29><1A><1C>r8r<>c<00><a<00>]tRt^<5E>toRtRtRtRtRtRt Vt
R#)<08>Futurez4A very simple Future for trio based on `trio.Event`.c<08>H<00>RVn\P!4VnR#rY)<04>_outcomer <00>Event<6E>_eventr{s&r%r6<00>Future.__init__<5F>s<00><00><1C><04> <0A><1A>j<EFBFBD>j<EFBFBD>l<EFBFBD><04> r8c<08>Z<00>\V4VnVPP4R#rY)rr<>r<><00>set)r5<00>results&&r%<00>
set_result<EFBFBD>Future.set_result<6C>s<00><00><1D>f<EFBFBD> <0A><04> <0A> <0C> <0B> <0B><0F><0F>r8c<08>Z<00>\V4VnVPP4R#rY)rr<>r<>r<>)r5r$s&&r%<00> set_exception<6F>Future.set_exception<6F>s<00><00><1D>c<EFBFBD>
<EFBFBD><04> <0A> <0C> <0B> <0B><0F><0F>r8c<00><08><>"<00>VPP4GRjx<01>L
VPP4#L5irY)r<><00>waitr<74><00>unwrapr{s&r%<00>get<65>
Future.get<65>s3<00><00><00><12>k<EFBFBD>k<EFBFBD><1E><1E> <20> <20> <20><13>}<7D>}<7D>#<23>#<23>%<25>%<25> !<21>s<00>A<01>?<04>A)r<>r<>N) r<>r<>r<>r<>r<>r6r<>r<>r<>r<>r<>r<>s@r%r<>r<><00>s!<00><><00><00>><3E>#<23><1A><1A>&<26>&r8r<>c<00><>a<00>]tRtRtoRtRtRtV3RlRlt]R4t RR/Rlt
V3R lR
lt R RR ^/V3R lRllt V3RlRlt RtV3RlRlt]P"3RltRtVtR#)r<>iz|A client D-Bus connection which can wait for replies.
This runs a separate receiver task and dispatches received messages.
Nc<00> <<01>V^8<>dQhRS[/#)r;r<>r<>)r#r>s"<22>r%r?<00>DBusRouter.__annotate__
s<00><><00>)<29>)<29>^<5E>)r8c<08>N<00>Wn\4Vn\4VnR#rY)<05>_connr<00>_repliesr<00>_filters)r5r<>s&&r%r6<00>DBusRouter.__init__
s<00><00><19>
<EFBFBD>$<24><0E><04> <0A>&<26>(<28><04> r8c<08>.<00>VPP#rY)r<>r0r{s&r%r0<00>DBusRouter.unique_names<00><00><13>z<EFBFBD>z<EFBFBD>%<25>%<25>%r8r9c<00> <0C>Z"<00>VPPWR7GRjx<01>L
R#L5i)z/Send a message, don't wait for a reply
<20>r9N)r<>rI)r5r<r9s&&$r%rI<00>DBusRouter.sends<00><00><00><13>j<EFBFBD>j<EFBFBD>o<EFBFBD>o<EFBFBD>g<EFBFBD>o<EFBFBD>5<>5<>5<>s <00> +<01>)<04>+c<00> <<01>V^8<>dQhRS[/#r`r=)r#r>s"<22>r%r?r<>s<00><><00> +<2B> +<2B>7<EFBFBD> +r8c<00> <0C><>"<00>\V4VPf \R4h\VPP
4pVP PV\44;_uu_4pVPWR7GRjx<01>L
VP4GRjx<01>L
uuRRR4#L&L +'giR#;i5i)ztSend a method call message and wait for the reply
Returns the reply message (method return or error message type).
NzThis DBusRouter has stoppedr<64>) r<00>_rcv_cancel_scoperrDr<>r/r<><00>catchr<68>rIr<>)r5r<r9<00> reply_futs&& r%r<><00>DBusRouter.send_and_get_replys<><00><00><00>
<18><07> <20> <0F> !<21> !<21> )<29><1E><<3C>=<3D> =<3D><15>d<EFBFBD>j<EFBFBD>j<EFBFBD>0<>0<>1<><06> <11>]<5D>]<5D> <20> <20><16><16><18> 2<> 2<>i<EFBFBD><16>)<29>)<29>G<EFBFBD>)<29>3<> 3<> 3<>#<23>-<2D>-<2D>/<2F>)<29>3<> 2<> 3<>)<29>3<> 2<> 2<>sB<00>A0C<01>2B3<05>B/<08> B3<05> B1<08>!B3<05>$ C<01>/B3<05>1B3<05>3 C <09>> C<01>channel<65>bufsizec<00>D<<01>V^8<>dQhRS[S[P,/#)r;r<>)rr <00>MemorySendChannel)r#r>s"<22>r%r?r<>'s"<00><><00>L<01>L<01>x<EFBFBD><04>0F<30>0F<30>'G<>Lr8c <0C>n<00>Vf\P!V4wr$MRp\VPWV4#)a<>Create a filter for incoming messages
Usage::
async with router.filter(rule) as receive_channel:
matching_msg = await receive_channel.receive()
# OR:
send_chan, recv_chan = trio.open_memory_channel(1)
async with router.filter(rule, channel=send_chan):
matching_msg = await recv_chan.receive()
If the channel fills up,
The sending end of the channel is closed when leaving the ``async with``
block, whether or not it was passed in.
:param jeepney.MatchRule rule: Catch messages matching this rule
:param trio.MemorySendChannel channel: Send matching messages here
:param int bufsize: If no channel is passed in, create one with this size
N)r <00>open_memory_channelr<6C>r<>)r5r<>r<>r<><00> recv_channels&&$$ r%<00>filter<65>DBusRouter.filter's6<00><00>* <13>?<3F>$(<28>$<<3C>$<<3C>W<EFBFBD>$E<> !<21>G<EFBFBD>\<5C><1F>L<EFBFBD><1F><04> <0A> <0A>t<EFBFBD>l<EFBFBD>K<>Kr8c<00>4<<01>V^8<>dQhRS[P/#)r;r<>)r <00>Nursery)r#r>s"<22>r%r?r<>Ds<00><><00>E<01>E<01>4<EFBFBD><<3C><<3C>Er8c<00><08><>"<00>VPe \R4hVPVP4GRjx<01>L
VnR#L 5i)Nz+DBusRouter receiver task is already running)r<>rqr+<00> _receiver)r5r<>s&&r%r+<00>DBusRouter.startDs8<00><00><00> <0F> !<21> !<21> -<2D><1E>L<>M<> M<>'.<2E>}<7D>}<7D>T<EFBFBD>^<5E>^<5E>'D<>!D<><04><1E>!D<>s<00>8A<01>A<04> Ac<00> <0C><>"<00>VPe"VPP4RVn\P!^4GRjx<01>L
R#L5i)z Stop the sender & receiver tasksN)r<><00>cancelr <00>sleepr{s&r%r~<00>DBusRouter.acloseIs@<00><00><00> <10> !<21> !<21> -<2D> <10> "<22> "<22> )<29> )<29> +<2B>%)<29>D<EFBFBD> "<22><13>j<EFBFBD>j<EFBFBD><11>m<EFBFBD><1B><1B>s<00>A A<01> A<04> Ac<00> <<01>V^8<>dQhRS[/#)r;rgr=)r#r>s"<22>r%r?r<>Vs<00><><00> <15> <15>W<EFBFBD> r8c <0C><00>VPPV4'dR#VPPV4FpVPP V4K! R# \ PdK=i;i)zHandle one received messageN)r<><00>dispatchr<68><00>matchesr<73><00> send_nowaitr <00>
WouldBlock)r5rgr<>s&& r%<00> _dispatch<63>DBusRouter._dispatchVsd<00><00> <0F>=<3D>=<3D> !<21> !<21>#<23> &<26> &<26> <12><1A>m<EFBFBD>m<EFBFBD>+<2B>+<2B>C<EFBFBD>0<>F<EFBFBD> <15><16>#<23>#<23>/<2F>/<2F><03>4<>1<><31><18>?<3F>?<3F> <15><14> <15>s<00>A$<02>$A=<05><A=c <00> <0C>z"<00>\P!4;_uu_4pRVnVPV4VPP 4GRjx<01>L
pVP V4K6L RTnTPP4\P!^4;_uu_4pTPPP4F-pRTn TPP4GRjx<01>L
K/ RRR4i +'gii;i;i +'giR#;i5i)z'Receiver loop - runs in a separate taskTNF)r <00> CancelScope<70>
is_running<EFBFBD>startedr<64>rirr<><00>drop_all<6C> move_on_afterr<72>r<><00>values<65>shieldr<64>r~)r5<00> task_status<75>cscoperg<00> cleanup_scoper<65>s&& r%r<><00>DBusRouter._receiveras<><00><00><00> <11> <1D> <1D> <1F> <1F>6<EFBFBD>"<22>D<EFBFBD>O<EFBFBD> <17> <1F> <1F><06> '<27> ;<3B><1A> $<24>
<EFBFBD>
<EFBFBD> 2<> 2<> 4<>4<>C<EFBFBD><18>N<EFBFBD>N<EFBFBD>3<EFBFBD>'<27>5<><35>#(<28><04><0F><14> <0A> <0A>&<26>&<26>(<28><1A>'<27>'<27><01>*<2A>*<2A>m<EFBFBD>"&<26>-<2D>-<2D>"7<>"7<>"><3E>"><3E>"@<40><06>/3<> <0A>,<2C>$<24>1<>1<>8<>8<>:<3A>:<3A>:<3A>#A<01>+<2B>*<2A>*<2A>*<2A><> <20> <1F> <1F>sY<00>D;<01>D'<05>A2<04>A0<08>A2<04>2AD$<07>2A D <0A>>D<12>? D <0A> D$<07> D!<11>D$<07>$D'<05>' D8 <09>2 D;)r<>r<>r<>r<>r)r<>r<>r<>r<>r<><00> _nursery_mgrr<72>r6r<>r0rIr<>r<>r+r~rr <00>TASK_STATUS_IGNOREDr<44>r<>r<>r<>s@r%r<>r<>s<><00><><00><00><08><18>L<EFBFBD><1C><15>)<29>)<29>
<0E>&<26><0E>&<26>6<>D<EFBFBD>6<>
+<2B> +<2B>L<01><04>L<01>VW<56>L<01>L<01>:E<01>E<01>
<1C> <15> <15>+/<2F>*B<>*B<>;<3B>;r8r<>c<00><aa<01>]tRtRtoRtV3RltRtRtVtV;t #)riwa<>A trio proxy for calling D-Bus methods
You can call methods on the proxy object, such as ``await bus_proxy.Hello()``
to make a method call over D-Bus and wait for a reply. It will either
return a tuple of returned data, or raise :exc:`.DBusErrorResponse`.
The methods available are defined by the message generator you wrap.
:param msggen: A message generator object.
:param ~trio.DBusRouter router: Router to send and receive messages.
c<08>t<<01>\SV`V4\V\4'g \ R4hW nR#)z)Proxy can only be used with DBusRequesterN)r<>r6<00>
isinstancer<EFBFBD><00> TypeError<6F>_router)r5<00>msggenr<6E>r<>s&&&<26>r%r6<00>Proxy.__init__<5F>s.<00><><00> <0A><07><18><16> <20><19>&<26>*<2A>-<2D>-<2D><1B>G<>H<> H<><1D> r8c<08>aa<01>VV3RlpV#)c<00><00><><"<00>S!V/VBpVPP\PJgQhSPP V4GRjx<01>L
p\ V4#L5irY)<07>header<65> message_typer<00> method_callrr<>r)<06>args<67>kwargsrgr<><00>make_msgr5s*, <20><>r%<00>inner<65>!Proxy._method_call.<locals>.inner<65>sZ<00><><00><00><1A>D<EFBFBD>+<2B>F<EFBFBD>+<2B>C<EFBFBD><16>:<3A>:<3A>*<2A>*<2A>k<EFBFBD>.E<>.E<>E<> E<>E<><1E>,<2C>,<2C>9<>9<>#<23>><3E>><3E>E<EFBFBD><1D>e<EFBFBD>$<24> $<24>?<3F>s<00>AA&<01>A$<04>A&<01>)r5r"r#sff r%<00> _method_call<6C>Proxy._method_call<6C>s<00><><00> %<25> <15> r8)r)
r<EFBFBD>r<>r<>r<>r<>r6r&r<>r<>r<>r<>s@@r%rrws<00><><00><00> <08><1E> <15>r8c
<04>n"<00>\WR7GRjx<01>L
pT;_uu_4GRjx<01>L
VP4;_uu_4GRjx<01>L
pV5x<00>RRR4GRjx<01>L
RRR4GRjx<01>L
R#L_LNL/L +GRjx<01>L
'giL3;iL* +GRjx<01>L
'giR#;i5i)a{Open a D-Bus 'router' to send and receive messages.
Use as an async context manager::
async with open_dbus_router() as req:
...
:param str bus: 'SESSION' or 'SYSTEM' or a supported address.
:return: :class:`DBusRouter`
This is a shortcut for::
conn = await open_dbus_connection()
async with conn:
async with conn.router() as req:
...
r<EFBFBD>N)r<>r<>)r<>r-r<><00>rtrs&$ r%<00>open_dbus_routerr*<00>s]<00><00><00>&&<26>c<EFBFBD>A<> A<>D<EFBFBD><13>t<EFBFBD>t<EFBFBD><17>;<3B>;<3B>=<3D>=<3D>=<3D>C<EFBFBD><15>I<EFBFBD>!<21>=<3D><14>t<EFBFBD>t<EFBFBD> B<01><13> <20>=<3D>=<3D>=<3D><><14>t<EFBFBD>t<EFBFBD>t<EFBFBD>s<EFBFBD><00>B5<01>A2<04>B5<01>A4<08>B5<01>B<05>A6 <0C>B<05>
A: <09> B<05>A8<08>B<05> B5<01>+B<04>,B5<01>4B5<01>6B<05>8B<05>:B <0A>B<12>
B <0A> B <0A>B<05>B5<01>B2 <09>B!<0E>
B2 <09>*B2 <09>, B5)r<>r*r)<01>SESSION)4rEr<00>loggingr,<00>
contextlibrr<00> itertoolsr<00>typingr<00>outcomerrr <00>trio.abcr <00> jeepney.authr
r <00> jeepney.busr <00> jeepney.fdsr r<00>jeepney.low_levelrrr<00>jeepney.wrappersrr<00>jeepney.bus_messagesr<00>commonrrrrr<00> getLoggerr<72><00>log<6F>__all__r&r(r<>r<>r<>r<>rr*r%r8r%<00><module>r<s<><00><01> <0C> <0C><0E> <0A>:<3A><1B><1B> <20> <0B><1C>-<2D><1F>4<>:<3A>:<3A>2<>,<2C><02><02><0E><17><17><08>!<21><03> <02><07>&<10>
<17><10>
<17>{&<26>W<EFBFBD>{&<26>|<10>E<EFBFBD><10><10>D<1C>|<7C><1C>(&<26>&<26>&r;<3B>r;<3B>j<15>I<EFBFBD><15>6<15><16><05><16><15>r8