Turn any Python function into a service that receives JSON payloads on some port.
Project description
Service-it
Turn any Python function into a service that receives JSON payloads on some port.
Here’s a trivial example:
import serviceit
def receiver(payload):
print(payload)
server = serviceit.server(1533, receiver)
# Now it will receive JSON on 1533. For convenience:
server.client().send(dict(message="hi"))
print(server.bytes_processed)
More complex example: isolate code
You can use this to isolate a component of you code. For example, rdkit can be installed through Conda but not Pip (or Poetry). So, create a service and import it in an Anaconda environment to create a server, and in your pip-installed client code.
In a Conda environment, create a service that listens on port 1533:
import serviceit
def _receiver(payload):
# noinspection PyUnresolvedReferences
from rdkit.Chem.inchi import InchiToInchiKey
inchikey = InchiToInchiKey(payload["inchi"])
print(inchikey)
server = serviceit.server(1533, _receiver)
On your pip-install client side:
import serviceit
client = serviceit.client(1533)
client.send(dict(inchi="InChI=1S/H2O/h1H2"))
New issues and pull requests are welcome.
Please refer to the contributing guide.
Generated with Tyrannosaurus.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for serviceit-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fadb7050a9ff471a3ef69b462d3bbc0d71c52b976fc69af7041252e14a2986f3 |
|
MD5 | a407718cc8bf7a871285bda923148fa7 |
|
BLAKE2b-256 | c7dd8dc9ef87706dfe4e19c2feb1f38bbb1ecf15073a58e806cb38ba48db37fb |