Python client for the SewerRat API
Project description
Python interface to the SewerRat API
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
Built Distribution
File details
Details for the file sewerrat-0.2.3.tar.gz
.
File metadata
- Download URL: sewerrat-0.2.3.tar.gz
- Upload date:
- Size: 28.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38f0076228969b073f8d750510886292433861fddb7a3410096792b03554c487 |
|
MD5 | d8c121dd3263b8e352d17b81153ed470 |
|
BLAKE2b-256 | 5c50d0b685cad7c6ef1a41c2f7c8f771997bf3e819c7a02c0e0a7558c6ede566 |
File details
Details for the file SewerRat-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: SewerRat-0.2.3-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1344c411a9b4af5e2ba5143d43613594860effc96a4874e0677503b0f69218e8 |
|
MD5 | 922f8f6840e46eaac99aa5fc0cdbc48f |
|
BLAKE2b-256 | 72fd7432bd370557b4afe4b11d7707eb37fd92b05ccfd659f0dc8bd063da43c4 |