Skip to main content

Python client for the SewerRat API

Project description

Python interface to the SewerRat API

Unit tests Documentation PyPI-Server

Pretty much as it says on the tin: provides a Python client for the API of the same name. It is assumed that the users of the sewerrat client and the SewerRat API itself are accessing the same shared filesystem; this is typically the case for high-performance computing clusters in scientific institutions. To demonstrate, let's spin up a mock SewerRat instance:

import sewerrat as sr
_, url = sr.start_sewerrat()

Let's mock up a directory of metadata files:

import tempfile
import os

mydir = tempfile.mkdtemp()
with open(os.path.join(mydir, "metadata.json"), "w") as handle:
    handle.write('{ "first": "foo", "last": "bar" }')

os.mkdir(os.path.join(mydir, "diet"))
with open(os.path.join(mydir, "diet", "metadata.json"), "w") as handle:
    handle.write('{ "fish": "barramundi" }')

We can then easily register it via the register() function. Similarly, we can deregister this directory with deregister(mydir).

# Only indexing metadata files named 'metadata.json'.
sr.register(mydir, names=["metadata.json"], url=url)

To search the index, we use the query() function to perform free-text searches. This does not require filesystem access and can be done remotely.

sr.query(url, "foo")
sr.query(url, "bar*") # partial match to 'bar...'
sr.query(url, "bar* AND foo") # boolean operations
sr.query(url, "fish:bar*") # match in the 'fish' field

We can also search on the user, path components, and time of creation:

sr.query(url, user="LTLA") # created by myself
sr.query(url, path="diet/") # path has 'diet/' in it

import time
sr.query(url, after=time.time() - 3600) # created less than 1 hour ago

Once we find a file of interest from a registered directory, we can retrieve its metadata, or other files in the same directory, or the entire directory itself:

sr.retrieve_metadata(mydir + "/metadata.json", url)
sr.list_files(mydir, url)
sr.retrieve_file(mydir + "/diet/metadata.json", url)
sr.retrieve_directory(mydir, url)

Check out the API documentation for more details on each function. For the concepts underlying the SewerRat itself, check out the repository for a detailed explanation.

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

sewerrat-0.2.8.tar.gz (30.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sewerrat-0.2.8-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file sewerrat-0.2.8.tar.gz.

File metadata

  • Download URL: sewerrat-0.2.8.tar.gz
  • Upload date:
  • Size: 30.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sewerrat-0.2.8.tar.gz
Algorithm Hash digest
SHA256 2eb6545586173c8a743e754767ebc0aafbdab9fd3e64d99d0aa319e32f3056f5
MD5 cd550a7549a67a553bbb34879abdb837
BLAKE2b-256 7617ae3f90fe80651246dc2913c06cb124940c5aec940a40c57e598281d4e788

See more details on using hashes here.

File details

Details for the file sewerrat-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: sewerrat-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for sewerrat-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6024a4c5d39f0e52e76dd85b06f44d8014c1c904558048af55213f43a316843f
MD5 5c47fc36b3e6c2c2e3da7430f93521f2
BLAKE2b-256 a1a596d18e99a03e7e6d480b8720237b6999157fc6e5c70b0265f5046a7dca7f

See more details on using hashes here.

Supported by

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