summaryrefslogtreecommitdiff
path: root/python-cidc-schemas.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-cidc-schemas.spec')
-rw-r--r--python-cidc-schemas.spec479
1 files changed, 479 insertions, 0 deletions
diff --git a/python-cidc-schemas.spec b/python-cidc-schemas.spec
new file mode 100644
index 0000000..2d5a84c
--- /dev/null
+++ b/python-cidc-schemas.spec
@@ -0,0 +1,479 @@
+%global _empty_manifest_terminate_build 0
+Name: python-cidc-schemas
+Version: 0.26.20
+Release: 1
+Summary: The CIDC data model and tools for working with it.
+License: MIT license
+URL: https://github.com/CIMAC-CIDC/schemas
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/7f/f8/4898c18133fe471d3700d14ed02aa2a07bd1ca186d8be6e944b538d133d1/cidc_schemas-0.26.20.tar.gz
+BuildArch: noarch
+
+Requires: python3-dateparser
+Requires: python3-xlsxwriter
+Requires: python3-argparse
+Requires: python3-pyyaml
+Requires: python3-jsonschema
+Requires: python3-openpyxl
+Requires: python3-jsonmerge
+Requires: python3-deepdiff
+Requires: python3-jsonpointer
+Requires: python3-pandas
+Requires: python3-jinja2
+Requires: python3-cidc-ngs-pipeline-api
+Requires: python3-markupsafe
+Requires: python3-regex
+
+%description
+# cidc-schemas
+
+| Branch | Status | Maintainability | Test Coverage | Code Style |
+| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
+| [master](https://cimac-cidc.github.io/cidc-schemas/) | ![Continuous Integration](https://github.com/CIMAC-CIDC/cidc-schemas/workflows/Continuous%20Integration/badge.svg?branch=master) | [![Maintainability](https://api.codeclimate.com/v1/badges/3f989b974663df81ef45/maintainability)](https://codeclimate.com/github/CIMAC-CIDC/cidc-schemas/maintainability) | [![Test Coverage](https://api.codeclimate.com/v1/badges/3f989b974663df81ef45/test_coverage)](https://codeclimate.com/github/CIMAC-CIDC/cidc-schemas/test_coverage) | <a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a> |
+
+This repository contains formal definitions of the CIDC metadata model using [json-schema](https://json-schema.org/) syntax and vocabulary.
+
+### View documentation at https://cimac-cidc.github.io/cidc-schemas/
+
+## Installation
+
+To install the latest released version, run:
+
+```bash
+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 `.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.
+- **`.githooks/`** - git hooks, e.g. for auto-generating `.csv`s in `template_examples/` and `.html` documentation files.
+
+### Developer Setup
+
+Install necessary dependencies.
+
+```bash
+pip install -r requirements.dev.txt
+```
+
+Install and configure pre-commit hooks.
+
+```bash
+pre-commit install
+```
+
+## JIRA Integration
+
+To set-up the git hook for JIRA integration, run:
+
+```bash
+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](https://github.com/pre-commit/pre-commit/issues/1198). The `commit-msg` hook [runs after](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) 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
+
+```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://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
+
+```bash
+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)
+
+```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
+```
+
+
+%package -n python3-cidc-schemas
+Summary: The CIDC data model and tools for working with it.
+Provides: python-cidc-schemas
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-cidc-schemas
+# cidc-schemas
+
+| Branch | Status | Maintainability | Test Coverage | Code Style |
+| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
+| [master](https://cimac-cidc.github.io/cidc-schemas/) | ![Continuous Integration](https://github.com/CIMAC-CIDC/cidc-schemas/workflows/Continuous%20Integration/badge.svg?branch=master) | [![Maintainability](https://api.codeclimate.com/v1/badges/3f989b974663df81ef45/maintainability)](https://codeclimate.com/github/CIMAC-CIDC/cidc-schemas/maintainability) | [![Test Coverage](https://api.codeclimate.com/v1/badges/3f989b974663df81ef45/test_coverage)](https://codeclimate.com/github/CIMAC-CIDC/cidc-schemas/test_coverage) | <a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a> |
+
+This repository contains formal definitions of the CIDC metadata model using [json-schema](https://json-schema.org/) syntax and vocabulary.
+
+### View documentation at https://cimac-cidc.github.io/cidc-schemas/
+
+## Installation
+
+To install the latest released version, run:
+
+```bash
+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 `.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.
+- **`.githooks/`** - git hooks, e.g. for auto-generating `.csv`s in `template_examples/` and `.html` documentation files.
+
+### Developer Setup
+
+Install necessary dependencies.
+
+```bash
+pip install -r requirements.dev.txt
+```
+
+Install and configure pre-commit hooks.
+
+```bash
+pre-commit install
+```
+
+## JIRA Integration
+
+To set-up the git hook for JIRA integration, run:
+
+```bash
+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](https://github.com/pre-commit/pre-commit/issues/1198). The `commit-msg` hook [runs after](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) 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
+
+```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://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
+
+```bash
+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)
+
+```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
+```
+
+
+%package help
+Summary: Development documents and examples for cidc-schemas
+Provides: python3-cidc-schemas-doc
+%description help
+# cidc-schemas
+
+| Branch | Status | Maintainability | Test Coverage | Code Style |
+| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
+| [master](https://cimac-cidc.github.io/cidc-schemas/) | ![Continuous Integration](https://github.com/CIMAC-CIDC/cidc-schemas/workflows/Continuous%20Integration/badge.svg?branch=master) | [![Maintainability](https://api.codeclimate.com/v1/badges/3f989b974663df81ef45/maintainability)](https://codeclimate.com/github/CIMAC-CIDC/cidc-schemas/maintainability) | [![Test Coverage](https://api.codeclimate.com/v1/badges/3f989b974663df81ef45/test_coverage)](https://codeclimate.com/github/CIMAC-CIDC/cidc-schemas/test_coverage) | <a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a> |
+
+This repository contains formal definitions of the CIDC metadata model using [json-schema](https://json-schema.org/) syntax and vocabulary.
+
+### View documentation at https://cimac-cidc.github.io/cidc-schemas/
+
+## Installation
+
+To install the latest released version, run:
+
+```bash
+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 `.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.
+- **`.githooks/`** - git hooks, e.g. for auto-generating `.csv`s in `template_examples/` and `.html` documentation files.
+
+### Developer Setup
+
+Install necessary dependencies.
+
+```bash
+pip install -r requirements.dev.txt
+```
+
+Install and configure pre-commit hooks.
+
+```bash
+pre-commit install
+```
+
+## JIRA Integration
+
+To set-up the git hook for JIRA integration, run:
+
+```bash
+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](https://github.com/pre-commit/pre-commit/issues/1198). The `commit-msg` hook [runs after](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks) 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
+
+```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://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
+
+```bash
+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)
+
+```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
+```
+
+
+%prep
+%autosetup -n cidc-schemas-0.26.20
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-cidc-schemas -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.26.20-1
+- Package Spec generated