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.1/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.1"},
    "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 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.4.6.tar.gz (477.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.4.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

rocraters-0.4.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (6.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

rocraters-0.4.6-cp313-cp313-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.13Windows x86-64

rocraters-0.4.6-cp313-cp313-win32.whl (5.0 MB view details)

Uploaded CPython 3.13Windows x86

rocraters-0.4.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rocraters-0.4.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (6.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

rocraters-0.4.6-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (11.4 MB view details)

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

rocraters-0.4.6-cp312-cp312-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.12Windows x86-64

rocraters-0.4.6-cp312-cp312-win32.whl (5.0 MB view details)

Uploaded CPython 3.12Windows x86

rocraters-0.4.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rocraters-0.4.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (6.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

rocraters-0.4.6-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (11.4 MB view details)

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

rocraters-0.4.6-cp311-cp311-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.11Windows x86-64

rocraters-0.4.6-cp311-cp311-win32.whl (5.0 MB view details)

Uploaded CPython 3.11Windows x86

rocraters-0.4.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rocraters-0.4.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (6.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

rocraters-0.4.6-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (11.4 MB view details)

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

rocraters-0.4.6-cp310-cp310-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.10Windows x86-64

rocraters-0.4.6-cp310-cp310-win32.whl (5.0 MB view details)

Uploaded CPython 3.10Windows x86

rocraters-0.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rocraters-0.4.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (6.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

rocraters-0.4.6-cp310-cp310-macosx_11_0_arm64.whl (5.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rocraters-0.4.6-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (11.4 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.4.6.tar.gz.

File metadata

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

File hashes

Hashes for rocraters-0.4.6.tar.gz
Algorithm Hash digest
SHA256 2b43fbd9144287a4ef34ec9f9bbbaab81407df9d2d8730c933460a49df914213
MD5 786119d63c47a1847e870a61c6f03a49
BLAKE2b-256 360d084519b76a0ab731691639d27ec20b5a013072a397b3586b6e6a51b3f727

See more details on using hashes here.

File details

Details for the file rocraters-0.4.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rocraters-0.4.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8a3fdde32a5d463b2dfcfbc158ef4935b64018db7e647e1ee451aaf91166d64f
MD5 065a4c86c8a55643e19078707628f1be
BLAKE2b-256 2e94c21c16d27ae322a7c6eef1069a4d6bac948c3897b4a50120f446a0841d55

See more details on using hashes here.

File details

Details for the file rocraters-0.4.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.4.6-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 26d5721668f497fb97b1e41bda8b09cbcc02c3ff21580512467de7e16993d64a
MD5 68a39c67fdf72a17470fa2c6f8dee684
BLAKE2b-256 c7e62228ef57d3d9b508ea07041cff9eba7bdbcdd5e44d6c43eafa424f288d07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8fdb9aa38c1132b9dffb27ccf64c76a7f9ac10d7d9c5f753aa2dbfc2d035b1f0
MD5 33a0eca382ceb36015508f6c1658b877
BLAKE2b-256 49a1c70a913c7daddc30e50ee1e5e6867eb3cfdb26fa24534063fc78b1836e65

See more details on using hashes here.

File details

Details for the file rocraters-0.4.6-cp313-cp313-win32.whl.

File metadata

  • Download URL: rocraters-0.4.6-cp313-cp313-win32.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.2

File hashes

Hashes for rocraters-0.4.6-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 1dd29aa01908ac465921a253464ccab72c04a31bf9d46b57880f365d8d0f0209
MD5 1a690f367c1ab04795818fc1884458a5
BLAKE2b-256 5287a2f2027e457038f181de879729bc24ab4c567061ebb75ad40594151616c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ec70f78a69c008a0678188d73bbfe73ef5ad81fe1abdf2fab509aeb906873ab
MD5 649b972c63a56404b1c288263e6948f9
BLAKE2b-256 6566102ff5c2d3cd752150b261e0e25bd84556557fd5e51e911bd8c6169e6d45

See more details on using hashes here.

File details

Details for the file rocraters-0.4.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.4.6-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ea14d93e291e3a86a818323b79be1c1e9a161aeaebdeb5c474b5960a4c393745
MD5 8d1dac4b3aa3ee8627b97705bf20ec7f
BLAKE2b-256 b552b60939e97e3a6e1133e7a145d59c7a42c9fc864fec06eb58084dcc99f8d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 7437009087c2e6e2ace82da0774c4532225126adae5feca71cde92cab92e14fb
MD5 06641aa9f50d2b759ceab04c037ca6ca
BLAKE2b-256 b550e77c3dc2b095a8368338dbf003bf00ca5be2b83df49a87edad794b839d01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 478e26b3e9577f42c2edb91df3237d4fedd4904917301eb8d52f129fb6198e48
MD5 180bbaf5e94af1e081fd2b0382eaf41f
BLAKE2b-256 a746cfe922b243270f2394acfaec0ce48d18a659b67a04d8d29bd262b286cf20

See more details on using hashes here.

File details

Details for the file rocraters-0.4.6-cp312-cp312-win32.whl.

File metadata

  • Download URL: rocraters-0.4.6-cp312-cp312-win32.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.2

File hashes

Hashes for rocraters-0.4.6-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 a7de2383b2212e045cd61c6bd50e77aee1359bc903dea6a3b5f1a8b5bbaffa35
MD5 911f193c9f4b9ddc691911531241011d
BLAKE2b-256 4f3dd13c5115c2889548a187522e9bb71769be71e4ff7c16db56f8a602839b95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dec2a6d50b3549db555cb20ec4132390d3d77d0fec4ca4701498b3b309714d5e
MD5 888b22d2cd91acb4a264f81d23d24eed
BLAKE2b-256 0922e4595c5c0b31994905eacf5fd528cab4c841de0336867fa418f9863b9f3e

See more details on using hashes here.

File details

Details for the file rocraters-0.4.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.4.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 585f01dd590b6935befb73ed8195eb6ec67588f8c4043d9f3d971fa4c136af44
MD5 6d0a3f551e4a2394e73d4bf2e756db38
BLAKE2b-256 3250426a5370a17929f9138dd7ff4cabb43eb90ab5eb9ed7fb5b9730e51ba771

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 1947daca21889a427f7f2eb1e9e6826db76c1639dd2c09ce54e00621284be339
MD5 761618ac89c18f421d2672d54a00d9a1
BLAKE2b-256 f6f822d0b916e61408807b14fa2fc4bace46bd4ec86275b6098626c4c65627f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8cde2c60b43ced7952941e59566d0e8a38e62029f849a5a4ca2f3f0b67f644b6
MD5 d06f208ab1dc9548c2808f8b0406b852
BLAKE2b-256 2d79d10f2cf34ff76ba13b4351fa038b2d25f3737094c478a3e9a375f8d95782

See more details on using hashes here.

File details

Details for the file rocraters-0.4.6-cp311-cp311-win32.whl.

File metadata

  • Download URL: rocraters-0.4.6-cp311-cp311-win32.whl
  • Upload date:
  • Size: 5.0 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.2

File hashes

Hashes for rocraters-0.4.6-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 6cdcd3f3c4796689fd704a4375880d091e3d2c882b294dec3e8b36450d34e769
MD5 2d8c2cbc31470ff122a1bc08a90e2cf5
BLAKE2b-256 b3c6373ba363ca0e612c8ee527fa81718d5f1914fdce53e613d6b66baf9dcd94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06360e5aa925b9f85833a590e4236f3f504a44b6a14e675894addedba296f138
MD5 5913e0a1eb92f3c7bace8fc2fd2c3a0d
BLAKE2b-256 49171c9a5412a9d387145930c33516645cc9cf1c581003e47c4d785f6c8b8c17

See more details on using hashes here.

File details

Details for the file rocraters-0.4.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.4.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 23ace74fa178fa5c09f98bf1bbd4d32ea634eac0cde1af9ef1ae7d35c5edb454
MD5 c641799f3200ad50309cb3e06c28d244
BLAKE2b-256 0c45bcb9fb6e3bb1063bc478e0d1aac61e28c2630c5d29682f2cce6a2790fb12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 a5fd34c53702dd9e64c43912ac62c55789664851e5b927f90cbf0378e97f2ef1
MD5 e48e454f979d6fb31e6ea820da0218f4
BLAKE2b-256 88d65d940a10b55419765d8fbcf7f84064aefa4a5f4644b15dd8e67d207a52ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 53eaaa08a6132e1c6342cd6da0c8cf18e558294d9034f08751ce4b9534c089b8
MD5 fb4c62471ba72eea8d607787a8b00088
BLAKE2b-256 26410fa97f905f6e379baea23cd657e3e7d24154b11bbb712772cb695c1a981b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for rocraters-0.4.6-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 3e924c083cd8b86acb5338f85d535613fe64706e60d4cb5fa83eaa700511adf4
MD5 23b61094fa8598e83998044f58946645
BLAKE2b-256 88c9ba105eea74e2177bb371319a3f001e38d006a7696bb71ce25cf128aa9d5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5b22c94bd2a827e30c0d55c9896b3ea340761840b4b55fa97baa58d14ac1a64
MD5 68b89fe9f68b3e0647ff4bc86bc0cca7
BLAKE2b-256 f24cf6311fb4e8b073ad162819dc67d4e3cb941bd39c889b75785c63ab4a2d83

See more details on using hashes here.

File details

Details for the file rocraters-0.4.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for rocraters-0.4.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 144f2c4f7ae6cabe364ee00e6732172400e57863e7942b6e5927e6f7e16b21f9
MD5 a559329a325c2476a88d2c9407efe4b4
BLAKE2b-256 e73b645be427411e09352d65a4c110952ca1e8b759e3d44316aa98b9c8a094a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca3221a6cd53fa97ce63ef762b825355642735691b95db19c46deb9c846cb706
MD5 a0af8d70f5b0e3925490572c4d4e36f6
BLAKE2b-256 e8c89dffc78149889bf9c1506d0e7e466d17f80da13a0bdc2189a8194d41a6a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rocraters-0.4.6-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 b07e9b9bcebeb13f44010df1e4bade33e16fb609838daf447adbddb6662bd044
MD5 da5f0d399a2af56404e2334c138771f6
BLAKE2b-256 46892a3350fce2652705b06e7ff4e66487aa5487f130b4e477d8ca3fb9f60a70

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