# cidc-schemas
This repository contains formal definitions of the CIDC metadata model using [json-schema](https://json-schema.org/) syntax and vocabulary.
### View documentation at https://nci-cidc.github.io/cidc-schemas/
## Installation
To install the latest released version, run:
```bash
pip install nci-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 `.csv`s auto-generated from those `.xlsx`s that allow to transparently keep track of changes in them.
- **`tests/`** - tests for the `cidc_schemas` module.
### Developer Setup
Install necessary dependencies.
```bash
pip install -r requirements.dev.txt
```
Install and configure pre-commit hooks.
```bash
pre-commit install
```
### Running tests
This repository has unit tests in the _tests_ folder. After installing dependencies
the tests can be run via the command
```bash
pytest tests
```
### Building documentation
Pre-commit hooks ensure documentation is automatically up-to date. To build the documentation manually, run the following commands:
```bash
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://nci-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
```bash
git clone git@github.com:NCI-CIDC/cidc-schemas.git
cd cidc-schemas
```
Install the `cidc_schemas` package (this adds the `cidc_schemas` CLI to your console)
```bash
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
```bash
python3 -m cidc_schemas.cli [args]
```
### Generate templates
Create a template for a given template configuration.
```bash
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.
```bash
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.
```bash
cidc_schemas validate_schema -f shipping_core.json
```
Raw data
{
"_id": null,
"home_page": "https://github.com/NCI-CIDC/cidc-schemas",
"name": "nci-cidc-schemas",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.11,>=3.9",
"maintainer_email": null,
"keywords": "cidc_schemas",
"author": "NCI",
"author_email": "nci-cidc-tools-admin@mail.nih.gov",
"download_url": "https://files.pythonhosted.org/packages/b3/71/3bb2ec0efc9dc0d24622cdda936543c610bf31b2ea6a2a3b7d4bc83d11eb/nci_cidc_schemas-0.26.38.tar.gz",
"platform": null,
"description": "# cidc-schemas\n\nThis repository contains formal definitions of the CIDC metadata model using [json-schema](https://json-schema.org/) syntax and vocabulary.\n\n### View documentation at https://nci-cidc.github.io/cidc-schemas/\n\n## Installation\n\nTo install the latest released version, run:\n\n```bash\npip install nci-cidc-schemas\n```\n\n## Development\n\n### Project Structure\n\n- **`cidc_schemas/`** - a python module for generating, validating, and reading manifest and assay templates.\n - **`schemas/`** - json specifications defining the CIDC metadata model.\n - `templates/` - schemas for generating and validating manifest and assay templates.\n - `assays/` - schemas for defining assay data models.\n - `artifacts/` - schemas for defining artifacts.\n- **`docs/`** - the most recent build of the data model documentation, along with templates and scripts for re-generating the documentation.\n- **`template_examples/`** - example populated Excel files for template specifications in `schemas/templates`, and `.csv`s auto-generated from those `.xlsx`s that allow to transparently keep track of changes in them.\n- **`tests/`** - tests for the `cidc_schemas` module.\n\n### Developer Setup\n\nInstall necessary dependencies.\n\n```bash\npip install -r requirements.dev.txt\n```\n\nInstall and configure pre-commit hooks.\n\n```bash\npre-commit install\n```\n\n### Running tests\n\nThis repository has unit tests in the _tests_ folder. After installing dependencies\nthe tests can be run via the command\n\n```bash\npytest tests\n```\n\n### Building documentation\n\nPre-commit hooks ensure documentation is automatically up-to date. To build the documentation manually, run the following commands:\n\n```bash\npython setup.py install # install helpers from the cidc_schemas library\npython docs/generate_docs.py\n```\n\nThis 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://nci-cidc.github.io/cidc-schemas/.\n\n## Using the Command-Line Interface\n\nThis project comes with a command-line interface for validating schemas and generating/validating assay and manifest templates.\n\n### Install the CLI\n\nClone the repository and cd into it\n\n```bash\ngit clone git@github.com:NCI-CIDC/cidc-schemas.git\ncd cidc-schemas\n```\n\nInstall the `cidc_schemas` package (this adds the `cidc_schemas` CLI to your console)\n\n```bash\npython setup.py install\n```\n\nRun `cidc_schemas --help` to see available options.\n\nIf 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\n\n```bash\npython3 -m cidc_schemas.cli [args]\n```\n\n### Generate templates\n\nCreate a template for a given template configuration.\n\n```bash\ncidc_schemas generate_template -m templates/manifests/pbmc_template.json -o pbmc.xlsx\n```\n\n### Validate filled-out templates\n\nCheck that a populated template file is valid with respect to a template specification.\n\n```bash\ncidc_schemas validate_template -m templates/manifests/pbmc_template.json -x template_examples/pbmc_template.xlsx\n```\n\n### Validate JSON schemas\n\nCheck that a JSON schema conforms to the JSON Schema specifications.\n\n```bash\ncidc_schemas validate_schema -f shipping_core.json\n```\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "The CIDC data model and tools for working with it.",
"version": "0.26.38",
"project_urls": {
"Homepage": "https://github.com/NCI-CIDC/cidc-schemas"
},
"split_keywords": [
"cidc_schemas"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6ce304d40ccd163f0bc6d8ac2567841e2ad797f256acfff0ebb3ce418237adc0",
"md5": "aa11e177a9aa3869018266bce13f12da",
"sha256": "04a6f47461a16be36e88bdbaae1bac8a9bde3c864e89db0918c6c43f30507da8"
},
"downloads": -1,
"filename": "nci_cidc_schemas-0.26.38-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "aa11e177a9aa3869018266bce13f12da",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": "<3.11,>=3.9",
"size": 194586,
"upload_time": "2024-11-15T18:54:18",
"upload_time_iso_8601": "2024-11-15T18:54:18.170098Z",
"url": "https://files.pythonhosted.org/packages/6c/e3/04d40ccd163f0bc6d8ac2567841e2ad797f256acfff0ebb3ce418237adc0/nci_cidc_schemas-0.26.38-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b3713bb2ec0efc9dc0d24622cdda936543c610bf31b2ea6a2a3b7d4bc83d11eb",
"md5": "78fccc64981e083475f139bc4560f183",
"sha256": "11565916dd1d854dec5f62d9a2445496aa3394f549b2d86c47403d4987a66d4c"
},
"downloads": -1,
"filename": "nci_cidc_schemas-0.26.38.tar.gz",
"has_sig": false,
"md5_digest": "78fccc64981e083475f139bc4560f183",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.11,>=3.9",
"size": 322253,
"upload_time": "2024-11-15T18:54:20",
"upload_time_iso_8601": "2024-11-15T18:54:20.032906Z",
"url": "https://files.pythonhosted.org/packages/b3/71/3bb2ec0efc9dc0d24622cdda936543c610bf31b2ea6a2a3b7d4bc83d11eb/nci_cidc_schemas-0.26.38.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-15 18:54:20",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "NCI-CIDC",
"github_project": "cidc-schemas",
"github_not_found": true,
"lcname": "nci-cidc-schemas"
}