Skip to main content

cidc-schemas

Branch Status Maintainability Test Coverage Code Style
master Continuous Integration Maintainability Test Coverage Code style: black

This repository contains formal definitions of the CIDC metadata model using json-schema syntax and vocabulary.

View documentation at https://cimac-cidc.github.io/cidc-schemas/

Installation

To install the latest released version, run:

pip install cidc-schemas

Development

Project Structure

  • cidc_schemas/ - a python module for generating, validating, and reading manifest and assay templates.
    • schemas/ - json specifications defining the CIDC metadata model.
      • templates/ - schemas for generating and validating manifest and assay templates.
      • assays/ - schemas for defining assay data models.
      • artifacts/ - schemas for defining artifacts.
  • docs/ - the most recent build of the data model documentation, along with templates and scripts for re-generating the documentation.
  • template_examples/ - example populated Excel files for template specifications in schemas/templates, and .csvs auto-generated from those .xlsxs that allow to transparently keep track of changes in them.
  • tests/ - tests for the cidc_schemas module.
  • .githooks/ - git hooks, e.g. for auto-generating .csvs in template_examples/ and .html documentation files.

Developer Setup

Install necessary dependencies.

pip install -r requirements.dev.txt

Install and configure pre-commit hooks.

pre-commit install

JIRA Integration

To set-up the git hook for JIRA integration, run:

ln -s ../../.githooks/commit-msg .git/hooks/commit-msg
chmod +x .git/hooks/commit-msg
rm .git/hooks/commit-msg.sample

This symbolic link is necessary to correctly link files in .githooks to .git/hooks. Note that setting the core.hooksPath configuration variable would lead to pre-commit failing. The commit-msg hook runs after the pre-commit hook, hence the two are de-coupled in this workflow.

To associate a commit with an issue, you will need to reference the JIRA Issue key (For eg 'CIDC-1111') in the corresponding commit message.

Running tests

This repository has unit tests in the tests folder. After installing dependencies the tests can be run via the command

pytest tests

Building documentation

Pre-commit hooks ensure documentation is automatically up-to date. To build the documentation manually, run the following commands:

python setup.py install # install helpers from the cidc_schemas library
python docs/generate_docs.py

This will output the generated html documents in docs/docs. If the updated docs are pushed up and merged into master, they will be viewable at https://cimac-cidc.github.io/cidc-schemas/.

Using the Command-Line Interface

This project comes with a command-line interface for validating schemas and generating/validating assay and manifest templates.

Install the CLI

Clone the repository and cd into it

git clone git@github.com:CIMAC-CIDC/cidc-schemas.git
cd cidc-schemas

Install the cidc_schemas package (this adds the cidc_schemas CLI to your console)

python setup.py install

Run cidc_schemas --help to see available options.

If you're making changes to the module and want those changes to be reflected in the CLI without reinstalling the cidc_schemas module every time, run

python3 -m cidc_schemas.cli [args]

Generate templates

Create a template for a given template configuration.

cidc_schemas generate_template -m templates/manifests/pbmc_template.json -o pbmc.xlsx

Validate filled-out templates

Check that a populated template file is valid with respect to a template specification.

cidc_schemas validate_template -m templates/manifests/pbmc_template.json -x template_examples/pbmc_template.xlsx

Validate JSON schemas

Check that a JSON schema conforms to the JSON Schema specifications.

cidc_schemas validate_schema -f shipping_core.json

Metadata

Release files for cidc-schemas 0.26.23

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cidc-schemas 0.26.23
File Size Uploaded Provenance
cidc_schemas-0.26.23.tar.gz 298.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for cidc-schemas 0.26.23
File Interpreter ABI Platform
cidc_schemas-0.26.23-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 490.1 kB

Release files / cidc_schemas-0.26.23.tar.gz

Download URL cidc_schemas-0.26.23.tar.gz
Size 298.0 kB
Tags Source
SHA-256 checksum
How to use checksums
feda4463ba1633e9f610cb3cd977337f7356d39917849808b3a2d4aec6e52a5c
BLAKE2b-256 checksum
How to use checksums
20991f6fba3b99faff03be9adbdbf997c0b0e2359e1e0d565a52b499fcbbc271
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release files / cidc_schemas-0.26.23-py2.py3-none-any.whl

Download URL cidc_schemas-0.26.23-py2.py3-none-any.whl
Size 192.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
b4777b2c6bede95fafe5ada49ca479402ca00eec4489106c8b9b59028767b65e
BLAKE2b-256 checksum
How to use checksums
50bda3d0df12c33031fb7cf0164de82481b559d3762789502977cf4c36be45f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Security for cidc-schemas 0.26.23

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.26.23 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page