From cf0cc297e2bedd8abeded05b60320b5c38fe778b Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Sat, 25 Feb 2023 03:07:42 +0000 Subject: automatic import of python3-jsonref --- .gitignore | 1 + python-jsonref.spec | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 253 insertions(+) create mode 100644 python-jsonref.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..531bbc7 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/jsonref-1.1.0.tar.gz diff --git a/python-jsonref.spec b/python-jsonref.spec new file mode 100644 index 0000000..0c3e99c --- /dev/null +++ b/python-jsonref.spec @@ -0,0 +1,251 @@ +%global _empty_manifest_terminate_build 0 +Name: python-jsonref +Version: 1.1.0 +Release: 1 +Summary: jsonref is a library for automatic dereferencing of JSON Reference objects for Python. +License: MIT +URL: https://pypi.org/project/jsonref/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/aa/0d/c1f3277e90ccdb50d33ed5ba1ec5b3f0a242ed8c1b1a85d3afeb68464dca/jsonref-1.1.0.tar.gz +BuildArch: noarch + + +%description +# jsonref + +[![image](https://github.com/gazpachoking/jsonref/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/gazpachoking/jsonref/actions/workflows/test.yml?query=branch%3Amaster) +[![image](https://readthedocs.org/projects/jsonref/badge/?version=latest)](https://jsonref.readthedocs.io/en/latest/) +[![image](https://coveralls.io/repos/gazpachoking/jsonref/badge.png?branch=master)](https://coveralls.io/r/gazpachoking/jsonref) +[![image](https://img.shields.io/pypi/v/jsonref?color=%2334D058&label=pypi%20package)](https://pypi.org/project/jsonref) + +`jsonref` is a library for automatic dereferencing of [JSON +Reference](https://datatracker.ietf.org/doc/html/draft-pbryan-zyp-json-ref-03) +objects for Python (supporting Python 3.7+). + +This library lets you use a data structure with JSON reference objects, +as if the references had been replaced with the referent data. + +```python console +>>> from pprint import pprint +>>> import jsonref + +>>> # An example json document +>>> json_str = """{"real": [1, 2, 3, 4], "ref": {"$ref": "#/real"}}""" +>>> data = jsonref.loads(json_str) +>>> pprint(data) # Reference is not evaluated until here +{'real': [1, 2, 3, 4], 'ref': [1, 2, 3, 4]} +``` + +# Features + +- References are evaluated lazily. Nothing is dereferenced until it is + used. +- Recursive references are supported, and create recursive python data + structures. + +References objects are actually replaced by lazy lookup proxy objects +which are almost completely transparent. + +```python console +>>> data = jsonref.loads('{"real": [1, 2, 3, 4], "ref": {"$ref": "#/real"}}') +>>> # You can tell it is a proxy by using the type function +>>> type(data["real"]), type(data["ref"]) +(, ) +>>> # You have direct access to the referent data with the __subject__ +>>> # attribute +>>> type(data["ref"].__subject__) + +>>> # If you need to get at the reference object +>>> data["ref"].__reference__ +{'$ref': '#/real'} +>>> # Other than that you can use the proxy just like the underlying object +>>> ref = data["ref"] +>>> isinstance(ref, list) +True +>>> data["real"] == ref +True +>>> ref.append(5) +>>> del ref[0] +>>> # Actions on the reference affect the real data (if it is mutable) +>>> pprint(data) +{'real': [2, 3, 4, 5], 'ref': [2, 3, 4, 5]} +``` + + + +%package -n python3-jsonref +Summary: jsonref is a library for automatic dereferencing of JSON Reference objects for Python. +Provides: python-jsonref +BuildRequires: python3-devel +BuildRequires: python3-setuptools +%description -n python3-jsonref +# jsonref + +[![image](https://github.com/gazpachoking/jsonref/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/gazpachoking/jsonref/actions/workflows/test.yml?query=branch%3Amaster) +[![image](https://readthedocs.org/projects/jsonref/badge/?version=latest)](https://jsonref.readthedocs.io/en/latest/) +[![image](https://coveralls.io/repos/gazpachoking/jsonref/badge.png?branch=master)](https://coveralls.io/r/gazpachoking/jsonref) +[![image](https://img.shields.io/pypi/v/jsonref?color=%2334D058&label=pypi%20package)](https://pypi.org/project/jsonref) + +`jsonref` is a library for automatic dereferencing of [JSON +Reference](https://datatracker.ietf.org/doc/html/draft-pbryan-zyp-json-ref-03) +objects for Python (supporting Python 3.7+). + +This library lets you use a data structure with JSON reference objects, +as if the references had been replaced with the referent data. + +```python console +>>> from pprint import pprint +>>> import jsonref + +>>> # An example json document +>>> json_str = """{"real": [1, 2, 3, 4], "ref": {"$ref": "#/real"}}""" +>>> data = jsonref.loads(json_str) +>>> pprint(data) # Reference is not evaluated until here +{'real': [1, 2, 3, 4], 'ref': [1, 2, 3, 4]} +``` + +# Features + +- References are evaluated lazily. Nothing is dereferenced until it is + used. +- Recursive references are supported, and create recursive python data + structures. + +References objects are actually replaced by lazy lookup proxy objects +which are almost completely transparent. + +```python console +>>> data = jsonref.loads('{"real": [1, 2, 3, 4], "ref": {"$ref": "#/real"}}') +>>> # You can tell it is a proxy by using the type function +>>> type(data["real"]), type(data["ref"]) +(, ) +>>> # You have direct access to the referent data with the __subject__ +>>> # attribute +>>> type(data["ref"].__subject__) + +>>> # If you need to get at the reference object +>>> data["ref"].__reference__ +{'$ref': '#/real'} +>>> # Other than that you can use the proxy just like the underlying object +>>> ref = data["ref"] +>>> isinstance(ref, list) +True +>>> data["real"] == ref +True +>>> ref.append(5) +>>> del ref[0] +>>> # Actions on the reference affect the real data (if it is mutable) +>>> pprint(data) +{'real': [2, 3, 4, 5], 'ref': [2, 3, 4, 5]} +``` + + + +%package help +Summary: Development documents and examples for jsonref +Provides: python3-jsonref-doc +%description help +# jsonref + +[![image](https://github.com/gazpachoking/jsonref/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/gazpachoking/jsonref/actions/workflows/test.yml?query=branch%3Amaster) +[![image](https://readthedocs.org/projects/jsonref/badge/?version=latest)](https://jsonref.readthedocs.io/en/latest/) +[![image](https://coveralls.io/repos/gazpachoking/jsonref/badge.png?branch=master)](https://coveralls.io/r/gazpachoking/jsonref) +[![image](https://img.shields.io/pypi/v/jsonref?color=%2334D058&label=pypi%20package)](https://pypi.org/project/jsonref) + +`jsonref` is a library for automatic dereferencing of [JSON +Reference](https://datatracker.ietf.org/doc/html/draft-pbryan-zyp-json-ref-03) +objects for Python (supporting Python 3.7+). + +This library lets you use a data structure with JSON reference objects, +as if the references had been replaced with the referent data. + +```python console +>>> from pprint import pprint +>>> import jsonref + +>>> # An example json document +>>> json_str = """{"real": [1, 2, 3, 4], "ref": {"$ref": "#/real"}}""" +>>> data = jsonref.loads(json_str) +>>> pprint(data) # Reference is not evaluated until here +{'real': [1, 2, 3, 4], 'ref': [1, 2, 3, 4]} +``` + +# Features + +- References are evaluated lazily. Nothing is dereferenced until it is + used. +- Recursive references are supported, and create recursive python data + structures. + +References objects are actually replaced by lazy lookup proxy objects +which are almost completely transparent. + +```python console +>>> data = jsonref.loads('{"real": [1, 2, 3, 4], "ref": {"$ref": "#/real"}}') +>>> # You can tell it is a proxy by using the type function +>>> type(data["real"]), type(data["ref"]) +(, ) +>>> # You have direct access to the referent data with the __subject__ +>>> # attribute +>>> type(data["ref"].__subject__) + +>>> # If you need to get at the reference object +>>> data["ref"].__reference__ +{'$ref': '#/real'} +>>> # Other than that you can use the proxy just like the underlying object +>>> ref = data["ref"] +>>> isinstance(ref, list) +True +>>> data["real"] == ref +True +>>> ref.append(5) +>>> del ref[0] +>>> # Actions on the reference affect the real data (if it is mutable) +>>> pprint(data) +{'real': [2, 3, 4, 5], 'ref': [2, 3, 4, 5]} +``` + + + +%prep +%autosetup -n jsonref-1.1.0 + +%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-jsonref -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Sat Feb 25 2023 Python_Bot - 1.1.0-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..989ec00 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +c6bb6e762afc840dbb246fbcfeea6800 jsonref-1.1.0.tar.gz -- cgit v1.2.3