Skip to main content

Lightweight Python library for RO-Crate manipulation implemented in Rust

Project description

Overview

rocraters is a python library that is built upon a rust backend for interfacing with RO-Crates. This implementation was specifically created to address the challenges of data handling on automated robotic systems within an automated synthetic biology lab, however it's noted that this could have more general applicability to other environments.

It's aim is to provide a robust, portable and scalable solution to dealing with RO-Crates within the varying software environments of a synthetic biology lab stack. It's designed to be maximally flexible with minimal onboarding, allowing you to incorprate it into scrpits/ data pipelines as easily as possible. This also relies on you to have an understanding of the structure of an RO-Crate, but focuses more on the fact that some metadata is better than no metadata.

This is not the go-to python libary for RO-Crate interfacing, please see ro-crate-py for a full python implementation.

Build

Built using PyO3 and maturin. Recommended to setup python venv, then install maturin (and remember maturin[patchelf])

Installation

pip install rocraters

If pip not available for your particular platform, you can build from source by cloning this repository and building via maturin.

Basic usage

The RO-Crate specification defines an RO-Crate as a JSON-LD file, consisting of a context and a graph. As such, in python it is a dictionary containing a "context" key, with some form of vocab context (default is the RO-Crate context) and a "graph" key, which contains a list of json objects (dictionaries).

To create an empty RO-Crate, you need to do the following:

from rocraters import PyRoCrateContext, PyRoCrate, read, zip

# Define context
context = PyRoCrateContext.from_string("https://w3id.org/ro/crate/1.2/context")

# Initialise empty crate
crate = PyRoCrate(context)

# For an easy start, you can make a default crate!
default_crate = PyRoCrate.new_default()

print(f"Example of a default crate \n {default_crate}")

Now, there are 4 primary objects (dictionaries) that can be added to the crate:

  1. Metadata descriptor (only 1 per crate)
  2. Root data entity (only 1 per crate)
  3. Data entity (zero - many)
  4. Contextual entity (zero - many)

These are all based upon the specification.

To populate the basic crate, with the essential keys to conform to specification:

# Continuation of the above examples 
# Metadata descriptor
descriptor = {
    "type": "CreativeWork",
    "id": "ro-crate-metadata.json",
    "conformsTo": {"id": "https://w3id.org/ro/crate/1.2"},
    "about": {"id": "./"},
}

# Root data entity
root = {
    "id": "./",
    "type": "Dataset",
    "name": "Example Crate",
    "description": "Description of the Example Crate",
    "datePublished": "2017",
    "license": {"id": "https://creativecommons.org/licenses/by-nc-sa/3.0/au/"},
    "author": {"id": "#johndoe"},
}
# Data entity
data = {"id": "output/data_file.txt", "type": "Dataset", "name": "Data file name"}
# Contextual entity
contextual = {
    "id": "#JohnDoe",
    "type": "Person",
}

failed_data = {"id": "this_is_not_a_file.txt", "type": "Dataset"}

# Update the RO-Crate object
crate.update_descriptor(descriptor)
crate.update_root(root)
crate.update_data(data)
crate.update_contextual(contextual)

# This acts as an example of how if the file/ URI isn't valid as a potentially
# accessible data entity, it loads as a contextual entity
crate.update_data(failed_data)

To then write the crate to a ro-crate-metadata.json file in the current working directory:

# Continuation of the above examples
# Write crate 
crate.write()

To then read a ro-crate-metadata.json file and load it in as a structured object:

# New example

# Read RO-Crate at specified path with validation level 1
crate = read("ro-crate-metadata.json", 1)

If required, you can also use read_object to read in a string of a ro-crate if querying as json response.

Additionally, you can read the ro-crate directly from a zip file using read_zip

To get structured validation errors (instead of parsing exception strings), use:

from rocraters import validate

report = validate("ro-crate-metadata.json")
print(report)
# {
#   "is_valid": False,
#   "invalid_keys": ["journal"],
#   "invalid_ids": [],
#   "invalid_types": [],
#   "error_type": None,
#   "error_message": None,
# }

To zip the folder and all contained directories within the ro-crate-metadata.json directory:

# new example 
from rocraters import zip

# This zips the target ro-crate up into a zip file, pulling in externally 
# definined files from their paths, with validation level 1, without flattening 
# and naming the zip file as the UUID as defined in the URN. If you flatten
# the zip file will not preserve directory structure
zip("ro-crate-metadata.json", True, 1, False, True)

Modifying a RO-Crate

As per the libraries purpose, modification, ie the deletion, update and addition of entites is intended to be as simple as possible, whilst ensuring minimal conformance:

# Example based upon previously made crate
from rocraters import read

crate = read("ro-crate-metadata.json", True) 

# Update the data entity and make modification 
data_target = crate.get_entity("data_file.txt")
data_target["description"] = "A text file dataset containing information"

# Update the contextual entity and make modification
contextual_target = crate.get_entity("#JohnDoe")
contextual_target.update({"id" : "#JaneDoe"})
crate.update_contextual(contextual_target)

# To delete a key:value 
data_target.pop("description")

# To delete an entity - this immediately updates the crate object
contextual_target.delete_entity("#JaneDoe")

# We then update the crate the same way we make it
# The ID will be used to serach the crate and overwrites the object with an indentical "id" key
crate.update_data(data_target)
crate.write()

Custom compilation

PyO3 is used to handle python bindings. Maturin is used as the build tool.

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

rocraters-0.5.0.tar.gz (379.8 kB view details)

Uploaded Source

Built Distributions

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

rocraters-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rocraters-0.5.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view details)

Uploaded PyPymanylinux: glibc 2.5+ i686

rocraters-0.5.0-cp314-cp314-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows x86-64

rocraters-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rocraters-0.5.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.5+ i686

rocraters-0.5.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.14macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rocraters-0.5.0-cp313-cp313-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows x86-64

rocraters-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rocraters-0.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.5+ i686

rocraters-0.5.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.13macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rocraters-0.5.0-cp312-cp312-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows x86-64

rocraters-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rocraters-0.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.5+ i686

rocraters-0.5.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.12macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rocraters-0.5.0-cp311-cp311-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11Windows x86-64

rocraters-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rocraters-0.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.5+ i686

rocraters-0.5.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

rocraters-0.5.0-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

rocraters-0.5.0-cp310-cp310-win32.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86

rocraters-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rocraters-0.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (1.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.5+ i686

rocraters-0.5.0-cp310-cp310-macosx_11_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rocraters-0.5.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (2.7 MB view details)

Uploaded CPython 3.10macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file rocraters-0.5.0.tar.gz.

File metadata

  • Download URL: rocraters-0.5.0.tar.gz
  • Upload date:
  • Size: 379.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.12.6

File hashes

Hashes for rocraters-0.5.0.tar.gz
Algorithm Hash digest
SHA256 17f2763cc8c33c3b1577feeb1ec6a2d8a69d3eee3c07952dadbb652a8aee9c31
MD5 feb7558174bdf0b3096137701f0cbea9
BLAKE2b-256 a1c15565538fa056ef1b2c85ba975fba374427e47a3456a44ed73cad5573e299

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 860a0eaa5f6fd39132121f3f43da540a49304789d157fdf6fcd77962847baf84
MD5 7ca5c83650d369e42d3ec5abbf2fc119
BLAKE2b-256 c2969a2ae33b2a0741862dfe091809de828a50e595cd861f0c3b67d1e5fee8a0

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 47e98e14c44531360f5192c2762f196d3b21b2615af1c74a48197eb3b3c4edc6
MD5 dfafd4b975189c2fae2a63e1b24f633f
BLAKE2b-256 23a7024b454cbcfe84a6f8fb386fa504d90b2fc9b55edc3cd5730607eefec482

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7b15ed644f3a0eb34e89503d91d72a7d3592183b529b46bd1eeec565b1a5f5ec
MD5 fb8fe9245e7e723ab8f6dfe9975ad30a
BLAKE2b-256 8139cfe7f3cda657ee3d2d8ecf451ad28aa651f338f926831d9083f9b9684d79

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1242d7c7f6586c6f0b9301ba1f94371da2ff1a3e3999d02327710164f168766d
MD5 c9593384e5979869475b00a8a6f3c1ba
BLAKE2b-256 269c7488aa71e9a938df507434a11712f41f91e32a881737fd8969344d76f058

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 5a77f2acd5ba0b6357cf71f133c1ca0022c80efc53f9c9f52b35b7085e413560
MD5 48f462890adde400a3fd2a1605228e24
BLAKE2b-256 de63e3637a34484341c3383fec932c1b1ceee3e842762b244bad29b27b889382

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 a24a34e12ea1d0b66d2a6472a82b3fc357cc953a20ee5e8d19db78dea298bfcc
MD5 6c87b8cb01cb13b6c4cee5e3031e4fbe
BLAKE2b-256 7684e648857775329a2d9992120745a60cc271a5158ad222ac7bb336390ce168

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7f35e70ad57d3e8928888e006d5170279be70f34a1df573519a9b24d9cac5e8d
MD5 98f4295734407f77bdd79f0d2f820778
BLAKE2b-256 2086b92fc57dc28adf2ed27fac18a4d4a5d73b9cb79e5182dfcdebf64164db65

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67b80891c95d9bb636818d87cc84ed133b2540b7b832477508eddd8c64ecca39
MD5 eea575e0b2797bae33588ff52a7b30ac
BLAKE2b-256 a20e6b89db89f5ba6a980be13191a63d5e09f16d74a722231f8fe120779f4df2

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 945c6f5c1cc23a6a0abf4049a2239784f523679115e42fddbba2179188fd2ca6
MD5 28c5af97e3130ca2cb0cc41935472ce3
BLAKE2b-256 8f3f08d2a2ffa8f9fa26731afa55427a6b2823a77c55f3eced86c7d6ffa35146

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 7948d5b39a9021606f1334275db7ed9287394829ffc8383e3f539146be71feea
MD5 07b9e35f8d3c981ca1d028d12a748e0d
BLAKE2b-256 d2f1da6fbcccf643536e75359287c348312a625f515d3018f6cc5e506ac5da61

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 925e8ee051c763e2192ccce6151f1abe8fc00beafbf4b313af391d6ed23ff8fa
MD5 b2bf91acd389a9921331fb9630f1cf8f
BLAKE2b-256 5df608fd4dfaed35381777331495e6488a3eec6d5b07007db5d7f477b711a748

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3702b852c829720ef58ffb97468cd04810aa23aadefc3f1d2d84a41c8c0722c5
MD5 585cfcac2a4c593966e6c55c106de854
BLAKE2b-256 af39231c6e39a4c1c5706be003306a46bf1292fea60b93bba895fa12e2f5c26c

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 e3ecd5ac955249d9ae77b3b898919d4ab0b209c4cdd685520789ebb745c72c36
MD5 c54fc63911932effa00f4fb650a883e0
BLAKE2b-256 d97e624e66c8e16a0da2eadae145602c71019fe758da297a4f3a3dc2fb699e6a

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 d6beac1d6eb3df88761c52c25da4935a97acf063e8aa0a3a98799129effb2f4a
MD5 58136a53ae737db4ca15444decbf28bf
BLAKE2b-256 ad527907a5de35e594476a410a20532fce1e5431022b451404135060e6212eef

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6bd15d3b6b51c3525b5e1168fc5a2c595e6f14daf9dd4f31e2e19203410145ec
MD5 5efb72b1dee6db804eb2c67ced18d21d
BLAKE2b-256 9933ddadbdff6c75baa52d55be2a1fd5e6a14b6393f9c8fd04be036d4141d5b7

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 833969cda5e5f060c9bad56829cb554249de654fe6aca497bd3052b1d8a7fe4e
MD5 1324df303846bc93225b90875c8efb6f
BLAKE2b-256 64c5f21523c5bdabd0ec361a0a72535c849a160e10dbea0bb9d934465cf1fb6f

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 99fedede3331721a268d086532c1c2ebae16e930ba9f2c31c28d18d96cab2b1c
MD5 85fc8ba7d1c4daa6b4cb4d2e8bfed4fc
BLAKE2b-256 22582ffd9f2b67bbc95b1a9f6175d908a9596d6eaa6c62c58a8283ca929c0438

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 8b58e4b2f4ca84d7b1f92a1f91c2a659001a899e3920e1d47773723c70a3399c
MD5 ab3a21e9cb5ff4e45402c59a6a0b9adc
BLAKE2b-256 9f96491d719cff80fca3a704e6f7f2f5ff7054ac2e4888a3e5996aff67faddf6

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ff11db6a56841501adf0a0f70c0b42b794d4ff5dd9e29aa82c9a1d320b6f41a3
MD5 5f859879b4dc6e6639439625dc3f2d02
BLAKE2b-256 8f5715381f56cb3cae3e790db1722b769353ad8d12359ef2fba2a218a571da50

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: rocraters-0.5.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.12.6

File hashes

Hashes for rocraters-0.5.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 a1470be9a4993e1572fb993325c8bc02f1f7f7af16569cd8b292dc034f1a08cf
MD5 94054d33adc1d51033b5b95167e3326b
BLAKE2b-256 1d2a17a350e87894815babddd46d7c034897216d4f4980021d918485214fadd8

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ac9741c2094015201d7ef0dd886a18f6de061ffc0c4ec7dcb2ebfe5e0fd05bb
MD5 57738c6a43fc85703bbad52a828ddc41
BLAKE2b-256 4bc05f9f1b44c3daa6295bdaaec7a9971094911556e7dbbf62bd47f517ff4c69

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 99519056b2b234576b5245118d1161fd59081ba97762c06b482800d8f8043528
MD5 45cb4d674f224e9e15d1bac836b9a54a
BLAKE2b-256 87a21ad9fc37ba7050c678d7988c811438ec2de3cbdf8499b26d6558ca57caed

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 495c4a035b36973fc9635552ce602fa9803a3b07da5a542696ab9108d1a10474
MD5 14e0d7372ab1cbc24cd5f1558f07f031
BLAKE2b-256 70f58e99b500bd36699ecdc16dc909aef277f7b1164bc4cd53f35f05869f8041

See more details on using hashes here.

File details

Details for the file rocraters-0.5.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for rocraters-0.5.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 484f67572fa2c51b8501c0ca15399ad5ef7193e2a352a52ff9115a63fc6f4c15
MD5 fad0eaff02e4dd6cdcb6fdde989c2e46
BLAKE2b-256 c86a854445c217ba3eef50c0c3593fce2734680fa3be8be1c4aecbbfb279a685

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