diff options
Diffstat (limited to 'python-cidc-schemas.spec')
-rw-r--r-- | python-cidc-schemas.spec | 479 |
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/) |  | [](https://codeclimate.com/github/CIMAC-CIDC/cidc-schemas/maintainability) | [](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/) |  | [](https://codeclimate.com/github/CIMAC-CIDC/cidc-schemas/maintainability) | [](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/) |  | [](https://codeclimate.com/github/CIMAC-CIDC/cidc-schemas/maintainability) | [](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 |