Skip to main content

Turn any Python function into a service that receives JSON payloads on some port.

Project description

Service-it

Version status License Python version compatibility Version on GitHub Version on PyPi
Build (Actions) Coverage (coveralls) Maintainability (Code Climate) Scrutinizer Code Quality Created with Tyrannosaurus

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

serviceit-0.2.0.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

serviceit-0.2.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file serviceit-0.2.0.tar.gz.

File metadata

  • Download URL: serviceit-0.2.0.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.9.4 Linux/5.4.0-1043-azure

File hashes

Hashes for serviceit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f7e257b5d0b9db07aad76750a5462a5bd49c119f35fe825462b831f0428539e0
MD5 6e7931a00160a5b563839c0ffc830895
BLAKE2b-256 9a5b17435d0b3be0af5d92d3eab94b2315a1891323fe3bf93c0b38bea8de36ea

See more details on using hashes here.

File details

Details for the file serviceit-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: serviceit-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.9.4 Linux/5.4.0-1043-azure

File hashes

Hashes for serviceit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fadb7050a9ff471a3ef69b462d3bbc0d71c52b976fc69af7041252e14a2986f3
MD5 a407718cc8bf7a871285bda923148fa7
BLAKE2b-256 c7dd8dc9ef87706dfe4e19c2feb1f38bbb1ecf15073a58e806cb38ba48db37fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page