The CIDC data model and tools for working with it.
Project description
cidc-schemas
| Branch | Status | Maintainability | Test Coverage | Code Style |
|---|---|---|---|---|
| master |
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 inschemas/templates, and.csvs auto-generated from those.xlsxs that allow to transparently keep track of changes in them.tests/- tests for thecidc_schemasmodule..githooks/- git hooks, e.g. for auto-generating.csvs intemplate_examples/and.htmldocumentation 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
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cidc_schemas-0.26.12.tar.gz.
File metadata
- Download URL: cidc_schemas-0.26.12.tar.gz
- Upload date:
- Size: 298.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
350a33b328430ed815a843415407187f5cd98e52ac847fc88238ceae2483a66b
|
|
| MD5 |
52741a1d26baaa8a17cb4c1ef6f79024
|
|
| BLAKE2b-256 |
e1ded89c8a11d1fbec7ecbe90133125ce8011e705495dd4ba46cd93d847bedf4
|
File details
Details for the file cidc_schemas-0.26.12-py2.py3-none-any.whl.
File metadata
- Download URL: cidc_schemas-0.26.12-py2.py3-none-any.whl
- Upload date:
- Size: 192.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a775b29a6d0c07858fe58109614ba8be35388ee60258b3119c8df2f948afc99a
|
|
| MD5 |
1f96edf6a026ac14d2f4bc4964ccab36
|
|
| BLAKE2b-256 |
f4479addce481dac08395c8b4ca1e02e0492af8b1c6b88870d4c52a8aee9625b
|