diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-20 03:39:43 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-20 03:39:43 +0000 |
commit | 60752a94066bee475660fbd2b30e5626fbd4bdfa (patch) | |
tree | 3975eab84acd4db416d86cf582c15d759d6535d6 | |
parent | 2a26d1a15287c5571c5bc43440a8326b72ca3d63 (diff) |
automatic import of python-zmqflpopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-zmqflp.spec | 224 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 226 insertions, 0 deletions
@@ -0,0 +1 @@ +/zmqflp-0.8.3.tar.gz diff --git a/python-zmqflp.spec b/python-zmqflp.spec new file mode 100644 index 0000000..57c5f10 --- /dev/null +++ b/python-zmqflp.spec @@ -0,0 +1,224 @@ +%global _empty_manifest_terminate_build 0 +Name: python-zmqflp +Version: 0.8.3 +Release: 1 +Summary: PyZMQ server/client implementing asyncio freelance protocol based on Min RK's starter code +License: Mozilla Public License 2.0 (MPL 2.0) +URL: https://github.com/curtywang/zmqflp +Source0: https://mirrors.aliyun.com/pypi/web/packages/8d/f4/d165176c39462b266946d143cdc922387d01cc316c9f69dd914690e3a5a9/zmqflp-0.8.3.tar.gz +BuildArch: noarch + +Requires: python3-pyzmq +Requires: python3-cbor2 + +%description +# zmqflp + +Improvements to the Freelance protocol-based zeromq server/client (Python) +The client and server talk using cbor2, so the api accepts dictionaries as input. + +## To create a zmqflp server: + +```python +# create the server object (it runs in an asyncio zmq context) +self.server = zmqflp_server.ZMQFLPServer(self.config.identity, self.config.zmq_port) + +# use the following code to process messages received by the server and send them back +async def process_messages(self): + (serialized_request, orig_headers) = await self.server.receive() + if serialized_request == 'EXIT': + await self.server.send(orig_headers, 'exiting') + return False + elif serialized_request != "PING": + try: + request = serialized_request + response = self.process_request(request) + await self.server.send(orig_headers, response) + return True + except Exception as e: + logging.exception(e) + return False + return True +``` + +## To create a client without using a context manager: + +```python +# create the client object (this does NOT run in an asyncio context) +self.client = zmqflp_client.ZMQFLPClient(self.config.list_of_servers) + +# to send and receive with the client +msg_to_send = {'message': 'hello!', 'other-key': 'stuff goes here'} +status = self.client.send_and_receive(msg_to_send) +``` + +## To create a client using a context manager (for example, to run on AWS Lambda): + +```python +# create the client object (this does NOT run in an asyncio context) +with zmqflp_client.ZMQFLPClient(self.config.list_of_servers) as client: + # to send and receive with the client + msg_to_send = {'message': 'hello!', 'other-key': 'stuff goes here'} + status = client.send_and_receive(msg_to_send) +``` + + + +%package -n python3-zmqflp +Summary: PyZMQ server/client implementing asyncio freelance protocol based on Min RK's starter code +Provides: python-zmqflp +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-zmqflp +# zmqflp + +Improvements to the Freelance protocol-based zeromq server/client (Python) +The client and server talk using cbor2, so the api accepts dictionaries as input. + +## To create a zmqflp server: + +```python +# create the server object (it runs in an asyncio zmq context) +self.server = zmqflp_server.ZMQFLPServer(self.config.identity, self.config.zmq_port) + +# use the following code to process messages received by the server and send them back +async def process_messages(self): + (serialized_request, orig_headers) = await self.server.receive() + if serialized_request == 'EXIT': + await self.server.send(orig_headers, 'exiting') + return False + elif serialized_request != "PING": + try: + request = serialized_request + response = self.process_request(request) + await self.server.send(orig_headers, response) + return True + except Exception as e: + logging.exception(e) + return False + return True +``` + +## To create a client without using a context manager: + +```python +# create the client object (this does NOT run in an asyncio context) +self.client = zmqflp_client.ZMQFLPClient(self.config.list_of_servers) + +# to send and receive with the client +msg_to_send = {'message': 'hello!', 'other-key': 'stuff goes here'} +status = self.client.send_and_receive(msg_to_send) +``` + +## To create a client using a context manager (for example, to run on AWS Lambda): + +```python +# create the client object (this does NOT run in an asyncio context) +with zmqflp_client.ZMQFLPClient(self.config.list_of_servers) as client: + # to send and receive with the client + msg_to_send = {'message': 'hello!', 'other-key': 'stuff goes here'} + status = client.send_and_receive(msg_to_send) +``` + + + +%package help +Summary: Development documents and examples for zmqflp +Provides: python3-zmqflp-doc +%description help +# zmqflp + +Improvements to the Freelance protocol-based zeromq server/client (Python) +The client and server talk using cbor2, so the api accepts dictionaries as input. + +## To create a zmqflp server: + +```python +# create the server object (it runs in an asyncio zmq context) +self.server = zmqflp_server.ZMQFLPServer(self.config.identity, self.config.zmq_port) + +# use the following code to process messages received by the server and send them back +async def process_messages(self): + (serialized_request, orig_headers) = await self.server.receive() + if serialized_request == 'EXIT': + await self.server.send(orig_headers, 'exiting') + return False + elif serialized_request != "PING": + try: + request = serialized_request + response = self.process_request(request) + await self.server.send(orig_headers, response) + return True + except Exception as e: + logging.exception(e) + return False + return True +``` + +## To create a client without using a context manager: + +```python +# create the client object (this does NOT run in an asyncio context) +self.client = zmqflp_client.ZMQFLPClient(self.config.list_of_servers) + +# to send and receive with the client +msg_to_send = {'message': 'hello!', 'other-key': 'stuff goes here'} +status = self.client.send_and_receive(msg_to_send) +``` + +## To create a client using a context manager (for example, to run on AWS Lambda): + +```python +# create the client object (this does NOT run in an asyncio context) +with zmqflp_client.ZMQFLPClient(self.config.list_of_servers) as client: + # to send and receive with the client + msg_to_send = {'message': 'hello!', 'other-key': 'stuff goes here'} + status = client.send_and_receive(msg_to_send) +``` + + + +%prep +%autosetup -n zmqflp-0.8.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-zmqflp -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.8.3-1 +- Package Spec generated @@ -0,0 +1 @@ +79607bf4ba6c3759d849d33ab1aa791f zmqflp-0.8.3.tar.gz |