summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-10 07:50:35 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-10 07:50:35 +0000
commit58fea718094acd395e7b97e370a52e17751ddfe7 (patch)
tree417818539af05bd9a3b36b20704c2a7e33889028
parent37cbc1e1ef66375cf84752050f3f4a5d8dee1189 (diff)
automatic import of python-jsonsubschema
-rw-r--r--.gitignore1
-rw-r--r--python-jsonsubschema.spec368
-rw-r--r--sources1
3 files changed, 370 insertions, 0 deletions
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 <Python_Bot@openeuler.org> - 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