From 58fea718094acd395e7b97e370a52e17751ddfe7 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 10 May 2023 07:50:35 +0000 Subject: automatic import of python-jsonsubschema --- .gitignore | 1 + python-jsonsubschema.spec | 368 ++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 370 insertions(+) create mode 100644 python-jsonsubschema.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..ddd678c 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/jsonsubschema-0.0.6.tar.gz diff --git a/python-jsonsubschema.spec b/python-jsonsubschema.spec new file mode 100644 index 0000000..46b0855 --- /dev/null +++ b/python-jsonsubschema.spec @@ -0,0 +1,368 @@ +%global _empty_manifest_terminate_build 0 +Name: python-jsonsubschema +Version: 0.0.6 +Release: 1 +Summary: A tool to check whether a JSON schema is subset/subschema of another JSON schema +License: Apache License 2.0 +URL: https://github.com/IBM/jsonsubschema +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/8e/05/ac6abfb3de2fffbad863d47122fd12811b78618f376c08561789679481c5/jsonsubschema-0.0.6.tar.gz +BuildArch: noarch + +Requires: python3-portion +Requires: python3-greenery +Requires: python3-jsonschema +Requires: python3-jsonref +Requires: python3-numpy + +%description +# jsonsubschema # + + [![Travis build status](https://travis-ci.com/IBM/jsonsubschema.svg?branch=master)](https://travis-ci.com/IBM/jsonsubschema) [![Codecov code coverage](https://codecov.io/gh/IBM/jsonsubschema/branch/master/graph/badge.svg)](https://codecov.io/gh/IBM/jsonsubschema) + +**jsonsubschema** checks if one JSON schema is a subschema (subtype) of another. + +For any two JSON schemas s1 and s2, s1 <: s2 (reads s1 is subschema/subtype of s2) +if every JSON document instance that validates against s1 also validates against s2. + +jsonsubschema is very useful in analysing schema evolution and ensuring that newer schema versions are backward compatible. +jsonsubschema also enables static type checking on different components of a system that uses JSON schema to describe data +interfaces among the system's different components. + +The details of JSON subschema are covered in our [**ISSTA 2021** paper](https://andrewhabib.org/publications/issta21-paper-JSONSubschema.pdf), +which received a [Distinguished Artifact Award](https://conf.researchr.org/details/issta-2021/issta-2021-technical-papers/2/Finding-Data-Compatibility-Bugs-with-JSON-Subschema-Checking): + +``` +@InProceedings{issta21JSONsubschema, + author = {Habib, Andrew and Shinnar, Avraham and Hirzel, Martin and Pradel, Michael}, + title = {Finding Data Compatibility Bugs with JSON Subschema Checking}, + booktitle = {The ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)}, + year = {2021}, + pages = {620--632}, + url = {https://doi.org/10.1145/3460319.3464796}, +} +``` + + +## I) Obtaining the tool ## + +### Requirements ### + +* python 3.8.* +* Other python dependencies will be installed during the below setup process + +You can either install subschema from the source code from github or the pypy package. + +### A) Install from github source code ### +Execute the following: +``` +git clone https://github.com/IBM/jsonsubschema.git +cd jsonsubschema +python setup.py install +cd .. +``` + +### B) Install from pypy ### +Execute the following: +``` +pip install jsonsubschema +``` + +## II) Running subschema ## + +JSON subschema provides two usage interfaces: + +### A) CLI interface ### +1. Create two JSON schema examples by executing the following: +``` +echo '{"type": ["null", "string"]}' > s1.json +echo '{"type": ["string", "null"], "not": {"enum": [""]}}' > s2.json +``` + +2. Invoke the CLI by executing: +``` +python -m jsonsubschema.cli s2.json s1.json +``` + +### B) python API ### +``` +from jsonsubschema import isSubschema + +def main(): + s1 = {'type': "integer"} + s2 = {'type': ["integer", "string"]} + + print(f'LHS <: RHS {isSubschema(s1, s2)}') + +if __name__ == "__main__": + main() +``` + + + +## License + +jsonsubschema is distributed under the terms of the Apache 2.0 +License, see [LICENSE.txt](LICENSE.txt). + +## Contributions + +json-subschema is still at an early phase of development and we +welcome contributions. Contributors are expected to submit a +'Developer's Certificate of Origin', which can be found in +[DCO1.1.txt](DCO1.1.txt). + + + + +%package -n python3-jsonsubschema +Summary: A tool to check whether a JSON schema is subset/subschema of another JSON schema +Provides: python-jsonsubschema +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-jsonsubschema +# jsonsubschema # + + [![Travis build status](https://travis-ci.com/IBM/jsonsubschema.svg?branch=master)](https://travis-ci.com/IBM/jsonsubschema) [![Codecov code coverage](https://codecov.io/gh/IBM/jsonsubschema/branch/master/graph/badge.svg)](https://codecov.io/gh/IBM/jsonsubschema) + +**jsonsubschema** checks if one JSON schema is a subschema (subtype) of another. + +For any two JSON schemas s1 and s2, s1 <: s2 (reads s1 is subschema/subtype of s2) +if every JSON document instance that validates against s1 also validates against s2. + +jsonsubschema is very useful in analysing schema evolution and ensuring that newer schema versions are backward compatible. +jsonsubschema also enables static type checking on different components of a system that uses JSON schema to describe data +interfaces among the system's different components. + +The details of JSON subschema are covered in our [**ISSTA 2021** paper](https://andrewhabib.org/publications/issta21-paper-JSONSubschema.pdf), +which received a [Distinguished Artifact Award](https://conf.researchr.org/details/issta-2021/issta-2021-technical-papers/2/Finding-Data-Compatibility-Bugs-with-JSON-Subschema-Checking): + +``` +@InProceedings{issta21JSONsubschema, + author = {Habib, Andrew and Shinnar, Avraham and Hirzel, Martin and Pradel, Michael}, + title = {Finding Data Compatibility Bugs with JSON Subschema Checking}, + booktitle = {The ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)}, + year = {2021}, + pages = {620--632}, + url = {https://doi.org/10.1145/3460319.3464796}, +} +``` + + +## I) Obtaining the tool ## + +### Requirements ### + +* python 3.8.* +* Other python dependencies will be installed during the below setup process + +You can either install subschema from the source code from github or the pypy package. + +### A) Install from github source code ### +Execute the following: +``` +git clone https://github.com/IBM/jsonsubschema.git +cd jsonsubschema +python setup.py install +cd .. +``` + +### B) Install from pypy ### +Execute the following: +``` +pip install jsonsubschema +``` + +## II) Running subschema ## + +JSON subschema provides two usage interfaces: + +### A) CLI interface ### +1. Create two JSON schema examples by executing the following: +``` +echo '{"type": ["null", "string"]}' > s1.json +echo '{"type": ["string", "null"], "not": {"enum": [""]}}' > s2.json +``` + +2. Invoke the CLI by executing: +``` +python -m jsonsubschema.cli s2.json s1.json +``` + +### B) python API ### +``` +from jsonsubschema import isSubschema + +def main(): + s1 = {'type': "integer"} + s2 = {'type': ["integer", "string"]} + + print(f'LHS <: RHS {isSubschema(s1, s2)}') + +if __name__ == "__main__": + main() +``` + + + +## License + +jsonsubschema is distributed under the terms of the Apache 2.0 +License, see [LICENSE.txt](LICENSE.txt). + +## Contributions + +json-subschema is still at an early phase of development and we +welcome contributions. Contributors are expected to submit a +'Developer's Certificate of Origin', which can be found in +[DCO1.1.txt](DCO1.1.txt). + + + + +%package help +Summary: Development documents and examples for jsonsubschema +Provides: python3-jsonsubschema-doc +%description help +# jsonsubschema # + + [![Travis build status](https://travis-ci.com/IBM/jsonsubschema.svg?branch=master)](https://travis-ci.com/IBM/jsonsubschema) [![Codecov code coverage](https://codecov.io/gh/IBM/jsonsubschema/branch/master/graph/badge.svg)](https://codecov.io/gh/IBM/jsonsubschema) + +**jsonsubschema** checks if one JSON schema is a subschema (subtype) of another. + +For any two JSON schemas s1 and s2, s1 <: s2 (reads s1 is subschema/subtype of s2) +if every JSON document instance that validates against s1 also validates against s2. + +jsonsubschema is very useful in analysing schema evolution and ensuring that newer schema versions are backward compatible. +jsonsubschema also enables static type checking on different components of a system that uses JSON schema to describe data +interfaces among the system's different components. + +The details of JSON subschema are covered in our [**ISSTA 2021** paper](https://andrewhabib.org/publications/issta21-paper-JSONSubschema.pdf), +which received a [Distinguished Artifact Award](https://conf.researchr.org/details/issta-2021/issta-2021-technical-papers/2/Finding-Data-Compatibility-Bugs-with-JSON-Subschema-Checking): + +``` +@InProceedings{issta21JSONsubschema, + author = {Habib, Andrew and Shinnar, Avraham and Hirzel, Martin and Pradel, Michael}, + title = {Finding Data Compatibility Bugs with JSON Subschema Checking}, + booktitle = {The ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA)}, + year = {2021}, + pages = {620--632}, + url = {https://doi.org/10.1145/3460319.3464796}, +} +``` + + +## I) Obtaining the tool ## + +### Requirements ### + +* python 3.8.* +* Other python dependencies will be installed during the below setup process + +You can either install subschema from the source code from github or the pypy package. + +### A) Install from github source code ### +Execute the following: +``` +git clone https://github.com/IBM/jsonsubschema.git +cd jsonsubschema +python setup.py install +cd .. +``` + +### B) Install from pypy ### +Execute the following: +``` +pip install jsonsubschema +``` + +## II) Running subschema ## + +JSON subschema provides two usage interfaces: + +### A) CLI interface ### +1. Create two JSON schema examples by executing the following: +``` +echo '{"type": ["null", "string"]}' > s1.json +echo '{"type": ["string", "null"], "not": {"enum": [""]}}' > s2.json +``` + +2. Invoke the CLI by executing: +``` +python -m jsonsubschema.cli s2.json s1.json +``` + +### B) python API ### +``` +from jsonsubschema import isSubschema + +def main(): + s1 = {'type': "integer"} + s2 = {'type': ["integer", "string"]} + + print(f'LHS <: RHS {isSubschema(s1, s2)}') + +if __name__ == "__main__": + main() +``` + + + +## License + +jsonsubschema is distributed under the terms of the Apache 2.0 +License, see [LICENSE.txt](LICENSE.txt). + +## Contributions + +json-subschema is still at an early phase of development and we +welcome contributions. Contributors are expected to submit a +'Developer's Certificate of Origin', which can be found in +[DCO1.1.txt](DCO1.1.txt). + + + + +%prep +%autosetup -n jsonsubschema-0.0.6 + +%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-jsonsubschema -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot - 0.0.6-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..fb9ff40 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +b36e62f5cbbb2765f55183109a58ad51 jsonsubschema-0.0.6.tar.gz -- cgit v1.2.3