RO-Crate metadata generator/parser
Project description
ro-crate-py
Create/parse rocrate_ (Research Object Crate) metadata.
Note: Under development
Contribute
Source code: https://github.com/researchobject/ro-crate-py
Feel free to raise a pull request at https://github.com/researchobject/ro-crate-py/pulls or an issue at https://github.com/researchobject/ro-crate-py/issues.
Submitted contributions are assumed to be covered by section 5 of the Apache License 2.0.
Installing
You will need Python 3.6 or later (Recommended: 3.7).
If you want to install manually from this code base, then try:
pip install .
..or if you use don't use pip
:
python setup.py install
.. _rocrate: https://w3id.org/ro/crate .. _pip: https://docs.python.org/3/installing/
General usage
The package contains a The standard use case is by instantiating ROCrate class. This can be a new one: crate = ROCrate() or an existing RO-crate package can be load from a directory or zip file:
crate = ROCrate('/path/to/crate/')
crate = ROCrate('/path/to/crate/file.zip')
In addition, there is a set of higher level functions in the form of an interface to help users create some predefined types of crates. As an example here is the code to create a workflow RO-Crate, containing a workflow template. This is a good starting point if you want to wrap up a workflow template to register at workflowhub.eu
from rocrate import rocrate_api
wf_path = "test/test-data/test_galaxy_wf.ga"
files_list = ["test/test-data/test_file_galaxy.txt"]
# Create base package
wf_crate = rocrate_api.make_workflow_rocrate(workflow_path=wf_path,wf_type="Galaxy",include_files=files_list)
# Write to zip file
out_path = "/home/test_user/wf_crate"
wf_crate.write_zip(out_path)
Independently of the initialization method, once an instance of ROCrate is created it can be manipulated to extend the content and metadata.
Data entities can be added with:
## adding a File entity:
sample_file = '/path/to/sample_file.txt'
file_entity = crate.add_file(sample_file)
# Adding a File entity with a reference to an external (absolute) URI
remote_file = crate.add_file('https://github.com/ResearchObject/ro-crate-py/blob/master/test/test-data/test_galaxy_wf.ga', fetch_remote = False)
# adding a Dataset
sample_dir = '/path/to/dir'
dataset_entity = crate.add_directory(sample_dir, 'relative/rocrate/path')
Contextual entities are used in a ro-crate to adequately describe a Data Entity. The following example shows how to add them to the RO-Crate root:
# Add authors info
joe_metadata = {'name': 'Joe Bloggs'}
crate.add_person('#joe', joe_metadata)
In order to write the crate object contents to a zip file package or a decompressed directory, there are 2 write methods that can be used:
# Write to zip file
out_path = "/home/test_user/crate"
crate.write_zip(out_path)
# write crate to disk
out_path = "/home/test_user/crate_base"
crate.write_crate(out_path)
License
- © 2019-2020 The University of Manchester, UK
- © 2020 Vlaams Instituut voor Biotechnologie (VIB), BE
- © 2020 Barcelona Supercomputing Center (BSC), ES
Licensed under the Apache License, version 2.0 https://www.apache.org/licenses/LICENSE-2.0, see the file LICENSE.txt for details.
Project details
Release history Release notifications | RSS feed
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 rocrate-0.1.0.tar.gz
.
File metadata
- Download URL: rocrate-0.1.0.tar.gz
- Upload date:
- Size: 154.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e2beb57ff8f7017404b6194dcb8084c00bc27f150da0434458825e7a7415371 |
|
MD5 | e56e5057e4f1d989a0384453dac79672 |
|
BLAKE2b-256 | 44e8b21b040e0842404e8ec53a5a8216d1a70a40eab2edef3b6b052e225731bc |
File details
Details for the file rocrate-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: rocrate-0.1.0-py3-none-any.whl
- Upload date:
- Size: 169.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | da8bd94b626b35e8266e770cabf7bc47527caec917845153c5b938091309439e |
|
MD5 | b6b2d96b2845577275d8831bebcafbda |
|
BLAKE2b-256 | 2bbcfda81bdb1021abdd3795947ca0c101513580b0aade1d6631bec70bf313e5 |