Skip to main content

an extensible async background server

Project description

servir

PyPI - Version PyPI - Python Version

an extensible async background server for python


table of contents

installation

pip install servir

usage

import pathlib

import requests
from servir import Provider

# create a provider
provider = Provider()


### File (supports range requests)

path = pathlib.Path("hello.txt")
path.write_text("hello, world")

file_resource = provider.create(path)
response = requests.get(file_resource.url)
assert response.text == "hello, world"
assert "text/plain" in response.headers["Content-Type"]

### Directory (supports range requests)

root = pathlib.Path("data_dir")
root.mkdir()
(root / "hello.txt").write_text("hello, world")

dir_resource = provider.create(root)
response = requests.get(file_resource.url + "/hello.txt")
assert response.text == "hello, world"
assert "text/plain" in response.headers["Content-Type"]


### In-Memory

data = "a,b,c,\n1,2,3,\n4,5,6"

content_resource = provider.create(data, extension=".csv")
response = requests.get(content_resource.url)
assert response.text == data
assert "text/csv" in response.headers["Content-Type"]

Note: the Provider holds a weak reference to each resource it creates. This allows the provider to cleanup unused resources and prevent memory leaks. As an end user, you must hold a strong reference each resource returned by the provider so long as you'd like that endpoint to remain avaiable.

license

servir is distributed under the terms of the MIT license.

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

servir-0.2.1.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

servir-0.2.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file servir-0.2.1.tar.gz.

File metadata

  • Download URL: servir-0.2.1.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for servir-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f71f1d9015b661c7b1681565bcd3c6366e703f67202ba8ffcc195edb7ed3f105
MD5 e8af4f21edd8d2d2ff24e8b3b26d5604
BLAKE2b-256 4d10b1a0852c7382b4e2ceba2a0d5bca2e1524309ae10fdb7f43d21732b68425

See more details on using hashes here.

Provenance

File details

Details for the file servir-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: servir-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for servir-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e946e2bfc07aebf48913eeec3c69ca3aaf3da41bde5407cebfcca4881b9153d9
MD5 e7cfcde186be85b49989523647da63e9
BLAKE2b-256 986d16d4304c32be8fcc54802e216946af0dee815516eb2562dfca692c1b5ec4

See more details on using hashes here.

Provenance

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