Skip to main content

Polyglot library (.NET, Python, Javascript) for creation of RO-Crate Profile Crates.

Project description

RO-Crate Profile Crate Creator

Polyglot library for creation of RO-Crate Profile Crates according to the official documentation, and based on the examples of profile run crate and workflow crate.

Version Downloads
Nuget Nuget
NPM NPM
PyPI PyPI

Install

.NET

#r "nuget: ROCratePCC"
<PackageReference Include="ROCratePCC" Version="1.1.0" />

JavaScript

npm i @nfdi4plants/rocratepcc

Python

pip install rocratepcc

Documentation

FSharp

open ROCratePCC

let types : ResizeArray<UsedType> = ResizeArray [
    UsedType(iri = "https://schema.org/CreativeWork", name = "CreativeWork");
    UsedType(iri = "http://www.w3.org/ns/dx/prof/Profile", name = "Profile");
]

let authors : ResizeArray<Author> = ResizeArray [
    Author(orcid = "0000-0002-5526-71389", name = "Florian Wetzels");
    Author(orcid = "0000-0003-1945-6342", name = "Heinrich Lukas Weil");
]

let version = "1.0.0-draft.2"

let id = $"https://github.com/nfdi4plants/isa-ro-crate-profile/tree/{version}/profile"

let name = "ISA RO-Crate Profile"

let description = "An RO-Crate profile for representing ISA data in Research Object Crates (RO-Crates). This profile defines how to represent ISA Investigation, Study, and Assay data using RO-Crate metadata."

let license = License(iri = "https://mit-license.org/", name = "MIT License")

let specifications = ResizeArray[
    TextualResource(
        name = "ISA RO-Crate Profile description",
        filePath = "isa_ro_crate.md",
        encodingFormat = "text/markdown",
        rootDataEntityId = id
    )
]


let resourceDescriptors = ResizeArray [
    Specification(specifications) :> ResourceDescriptor
]

let rootEntity = 
    RootDataEntity(
        id = id,
        name = name,
        description = description,
        license = license,
        usedTypes = types,
        resourceDescriptors = resourceDescriptors,
        authors = ResizeArray authors
    )

let profile = 
    Profile(
        rootEntity,
        license = license
    )

let string = profile.ToROCrateJsonString(spaces = 2)

System.IO.File.WriteAllText("profile/ro-crate-metadata.json", string)

Development

Requirements

  • nodejs and npm
    • verify with node --version (Tested with v18.16.1)
    • verify with npm --version (Tested with v9.2.0)
  • .NET SDK
    • verify with dotnet --version (Tested with 7.0.306)
  • Python
    • verify with py --version (Tested with 3.12.2, known to work only for >=3.11)

Local Setup

On windows you can use the setup.cmd to run the following steps automatically!

  1. Setup dotnet tools

    dotnet tool restore

  2. Install NPM dependencies

    npm install

  3. Setup python environment

    py -m venv .venv

  4. Install uv and dependencies

    1. .\.venv\Scripts\python.exe -m pip install -U pip setuptools
    2. .\.venv\Scripts\python.exe -m pip install uv
    3. .\.venv\Scripts\python.exe -m uv pip install -r pyproject.toml --group dev

Verify correct setup with ./build.cmd runtests

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

rocratepcc-0.0.3.tar.gz (541.6 kB view details)

Uploaded Source

Built Distribution

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

rocratepcc-0.0.3-py3-none-any.whl (821.4 kB view details)

Uploaded Python 3

File details

Details for the file rocratepcc-0.0.3.tar.gz.

File metadata

  • Download URL: rocratepcc-0.0.3.tar.gz
  • Upload date:
  • Size: 541.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for rocratepcc-0.0.3.tar.gz
Algorithm Hash digest
SHA256 13aefe0a86903b9fef49bff2d1f64d94984ff2440a7564e24801b87236c9ddaa
MD5 37c87a0a004873ed3fc879e9c3978357
BLAKE2b-256 ad0f6c200c94e53b197fe9583769fcf9373719bba35722807d60d5ac4620acdd

See more details on using hashes here.

File details

Details for the file rocratepcc-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: rocratepcc-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 821.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for rocratepcc-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 104ef3a4324ba64f9cb014800a31a9b23a3b45ca3614c4f099a44240b120c86a
MD5 7b76b5aafc2b3aa2e67f1cf5835fc6b5
BLAKE2b-256 b92edfb9e12d2f291bc6b1a7ef9f5687cb21f4125a546e6b3bcf6e03b94fb4ee

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