%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 BuildRequires: python3-pip %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 * Fri Apr 21 2023 Python_Bot - 1.1.0-1 - Package Spec generated