From 1044d6224a4eb5953a6829f3f311e34caf8e8ba9 Mon Sep 17 00:00:00 2001 From: DBras Date: Thu, 13 Jun 2024 11:19:23 +0200 Subject: [PATCH] step 1.5: abandon due to differing async versions --- rpc/__pycache__/util.cpython-312.pyc | Bin 0 -> 2875 bytes .../__pycache__/client.cpython-312.pyc | Bin 0 -> 8246 bytes rpc/aioxmlrpc/client.py | 24 +++++++++++++----- rpc/rpc_pi_async_runner.py | 3 ++- 4 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 rpc/__pycache__/util.cpython-312.pyc create mode 100644 rpc/aioxmlrpc/__pycache__/client.cpython-312.pyc diff --git a/rpc/__pycache__/util.cpython-312.pyc b/rpc/__pycache__/util.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3ba4aa0629a9830278c2ce328e68479c8459861 GIT binary patch literal 2875 zcmeHJQEU`N7@oPkynkoV&)?mB6-S!stcCRzL zY41Fe28gk-i8T_yzykyxsEtWqG$tBD;-fFtl0a6BCcfCW+Veqp@}J$?y_WK7d~tI7 z-@h~e{PWLz|Nrg$P+PkNLHqus4qycQ@crEXBJA{oh8Lqq&Opy4bY!kFuV z7RU-iLN+)Qg!kYjG$hI*$dDWYS(V4}suk{NFpljIm2}z2#sjvP&Pb|mhg7DiX(jC~ z#SN?B*$Yo81L8G=VQCYC>a-$SDC_3~#XuiA6GP~{U<&@YFpf>pe+v|`j0>>Eh4KpC z{}p@{!k;BUln;C%OyamuxI&I)Ed3lKl1@}pp^|A(GNO$TRVPd>C}cz**+QW8(s9=9 zX#7nh`(G_vzuT+l&&0deJMhhPvR~Cr7<612W6r=^ifK`OowJmpy9+z69Gexs-@&+G z2YFC52yc{cFdnqAW@FtBd%@b`m`a(+xCxK!NoO)+WR;{W>8he7`>2r{HKvk%r%or2 zw|68vx>`FrlPu3PX*5Z5>7-?^qI#_+!`_KYd^0we50+s>h0-Q+^6>1+QcR=>MLfTsV{x?;kGCo}= zQZ7f0DJM{wNQ`ul1ksHa*ISb4l}W0ev&>2sa=dxS_`Ar^NZrr~bd3DnuMAAw<+ zo4qOJ69cDXnj!Jr z58JvDxGH=gioohcY;vY|8vkr?Hur$`W)%RR^LVx^h-7g?i3>&HBszj-pLe)BBw@hQ z&*uLBOZ{Ijb^ovvi9y3ux)TY%2ND;E0vHW`@F|s8UQYwr>V^ef*_@_i72T9f)zE>7 zB-14&wqbf(Ypcu3jEpM4Gr+WylIpUoL8zjs`h=yj43IBWwxPMSNO@7O$RGwcrTTxs zLbL%Qp}bh>HW2G6hc-b+Vc)vK9(IoD8I;q>r&cH@n)*1TtpVizMyPa9Y zx6Um!wJn}lYU+B>cw{M>dQ5llMS&nuTy#F)^f}P&DrXJVutlaRN{;U020@2`=x%NR zmom5jQHSL?S#cy?4r+hvBW41qk=vw)@f4a(!wkoSF%)irjoPgz6ifqOjE} zRK4d3tAo`p9PZtXzr?+}LSMZAT0BhmL9fH`b~V2ZnTDaU%2mld15TYz)bofEt~=x( v?#UXmr71@#XH?EsjGx7-fHD3VMSej$enorNLR)ax+Rj?sSR#$M(V6}ag!;Io literal 0 HcmV?d00001 diff --git a/rpc/aioxmlrpc/__pycache__/client.cpython-312.pyc b/rpc/aioxmlrpc/__pycache__/client.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d83226982fd8fb5eb310d392e8841dbc2ed2c373 GIT binary patch literal 8246 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 Ljb9R|Fq-}^?Y|61 literal 0 HcmV?d00001 diff --git a/rpc/aioxmlrpc/client.py b/rpc/aioxmlrpc/client.py index e612cf9..ab73451 100644 --- a/rpc/aioxmlrpc/client.py +++ b/rpc/aioxmlrpc/client.py @@ -10,9 +10,21 @@ import sys import asyncio import logging import aiohttp +import inspect +import functools from xmlrpc import client as xmlrpc +def coroutine(fn): + if inspect.iscoroutinefunction(fn): + return fn + + @functools.wraps(fn) + async def _wrapper(*args, **kwargs): + return fn(*args, **kwargs) + + return _wrapper + __ALL__ = ['ServerProxy', 'Fault', 'ProtocolError'] @@ -34,7 +46,7 @@ class _Method: def __getattr__(self, name): return _Method(self.__send, "%s.%s" % (self.__name, name)) - @asyncio.coroutine + @coroutine def __call__(self, *args): ret = yield from self.__send(self.__name, args) return ret @@ -61,7 +73,7 @@ class AioTransport(xmlrpc.Transport): self.headers = headers - @asyncio.coroutine + @coroutine def request(self, host, handler, request_body, verbose=False): """ Send the XML-RPC request, return the response. @@ -136,7 +148,7 @@ class ServerProxy(xmlrpc.ServerProxy): super().__init__(uri, transport, encoding, verbose, allow_none, use_datetime, use_builtin_types) - @asyncio.coroutine + @coroutine def __request(self, methodname, params): # call a method on the remote server request = xmlrpc.dumps(params, methodname, encoding=self.__encoding, @@ -154,7 +166,7 @@ class ServerProxy(xmlrpc.ServerProxy): return response - @asyncio.coroutine + @coroutine def close(self): if self._close_session: yield from self._session.close() @@ -164,11 +176,11 @@ class ServerProxy(xmlrpc.ServerProxy): if PY35: - @asyncio.coroutine + @coroutine def __aenter__(self): return self - @asyncio.coroutine + @coroutine def __aexit__(self, exc_type, exc_val, exc_tb): if self._close_session: yield from self._session.close() diff --git a/rpc/rpc_pi_async_runner.py b/rpc/rpc_pi_async_runner.py index c1b0a3a..54b51c1 100644 --- a/rpc/rpc_pi_async_runner.py +++ b/rpc/rpc_pi_async_runner.py @@ -15,7 +15,8 @@ async def remote_estimate(n): # Create the proxy in a nice way so it gets closed when we are done. async with ServerProxy('http://localhost:9000') as proxy: pi_remote = await proxy.estimate_pi(n) - print(f"Result of remote estimation: pi={pi_remote:.010f}") + # print(f"Result of remote estimation: pi={pi_remote:.010f}") + print(pi_remote) return pi_remote