%global _empty_manifest_terminate_build 0 Name: python-jsonstreams Version: 0.6.0 Release: 1 Summary: A JSON streaming writer License: MIT URL: https://github.com/dcbaker/jsonstreams Source0: https://mirrors.nju.edu.cn/pypi/web/packages/85/8c/01333839805428590015bb4cbc3b730876609e536954eb1140d24b410bd0/jsonstreams-0.6.0.tar.gz BuildArch: noarch Requires: python3-six Requires: python3-enum34 Requires: python3-simplejson Requires: python3-tox %description Source code is available at `github `_. The code is licensed MIT. See the included LICENSE file for the exact terms. Description ########### JSONstreams is a package that attempts to making writing JSON in a streaming format easier. In contrast to the core json module, this package doesn't require building a complete tree of dicts and lists before writing, instead it provides a straightforward way to to write a JSON document **without** building the whole data structure ahead of time. JSONstreams considers there to be two basic types, the JSON array and the JSON object, which correspond to Python's list and dict respectively, and can encode any types that the json.JSONEncoder can, or can use an subclass to handle additional types. The interface is designed to be context manger centric. The Stream class, and the Array and Object classes returned by the subarray and subobject methods (respectively), can be used as context managers or not, but use as context managers are recommended to ensure that each container is closed properly. Basic Usage ########### A simple example looks like this import jsonstreams with jsonstreams.Stream(jsonstreams.Type.OBJECT, filename='foo') as s: s.write('foo', 'bar') with s.subobject('a') as a: a.write('foo', 1) a.write('bar', 2) s.write('bar', 'foo') Writing into a closed group will raise an exception, which should not be handled, this exception is always an error in programming and should be corrected. It is possible to write any value that the encoder (json.JSONEncoder by default) can encode, so iterating over lists or dictionaries to write them in is unnecessary: import jsonstreams mylist = list(range(10)) mydict = {a: b for a in range(10) for b in 'abcdefghij'} with jsonstreams.Stream(jsonstreams.Type.OBJECT, filename='foo') as s: s.write('list', mylist) s.write('dict', mydict) %package -n python3-jsonstreams Summary: A JSON streaming writer Provides: python-jsonstreams BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-jsonstreams Source code is available at `github `_. The code is licensed MIT. See the included LICENSE file for the exact terms. Description ########### JSONstreams is a package that attempts to making writing JSON in a streaming format easier. In contrast to the core json module, this package doesn't require building a complete tree of dicts and lists before writing, instead it provides a straightforward way to to write a JSON document **without** building the whole data structure ahead of time. JSONstreams considers there to be two basic types, the JSON array and the JSON object, which correspond to Python's list and dict respectively, and can encode any types that the json.JSONEncoder can, or can use an subclass to handle additional types. The interface is designed to be context manger centric. The Stream class, and the Array and Object classes returned by the subarray and subobject methods (respectively), can be used as context managers or not, but use as context managers are recommended to ensure that each container is closed properly. Basic Usage ########### A simple example looks like this import jsonstreams with jsonstreams.Stream(jsonstreams.Type.OBJECT, filename='foo') as s: s.write('foo', 'bar') with s.subobject('a') as a: a.write('foo', 1) a.write('bar', 2) s.write('bar', 'foo') Writing into a closed group will raise an exception, which should not be handled, this exception is always an error in programming and should be corrected. It is possible to write any value that the encoder (json.JSONEncoder by default) can encode, so iterating over lists or dictionaries to write them in is unnecessary: import jsonstreams mylist = list(range(10)) mydict = {a: b for a in range(10) for b in 'abcdefghij'} with jsonstreams.Stream(jsonstreams.Type.OBJECT, filename='foo') as s: s.write('list', mylist) s.write('dict', mydict) %package help Summary: Development documents and examples for jsonstreams Provides: python3-jsonstreams-doc %description help Source code is available at `github `_. The code is licensed MIT. See the included LICENSE file for the exact terms. Description ########### JSONstreams is a package that attempts to making writing JSON in a streaming format easier. In contrast to the core json module, this package doesn't require building a complete tree of dicts and lists before writing, instead it provides a straightforward way to to write a JSON document **without** building the whole data structure ahead of time. JSONstreams considers there to be two basic types, the JSON array and the JSON object, which correspond to Python's list and dict respectively, and can encode any types that the json.JSONEncoder can, or can use an subclass to handle additional types. The interface is designed to be context manger centric. The Stream class, and the Array and Object classes returned by the subarray and subobject methods (respectively), can be used as context managers or not, but use as context managers are recommended to ensure that each container is closed properly. Basic Usage ########### A simple example looks like this import jsonstreams with jsonstreams.Stream(jsonstreams.Type.OBJECT, filename='foo') as s: s.write('foo', 'bar') with s.subobject('a') as a: a.write('foo', 1) a.write('bar', 2) s.write('bar', 'foo') Writing into a closed group will raise an exception, which should not be handled, this exception is always an error in programming and should be corrected. It is possible to write any value that the encoder (json.JSONEncoder by default) can encode, so iterating over lists or dictionaries to write them in is unnecessary: import jsonstreams mylist = list(range(10)) mydict = {a: b for a in range(10) for b in 'abcdefghij'} with jsonstreams.Stream(jsonstreams.Type.OBJECT, filename='foo') as s: s.write('list', mylist) s.write('dict', mydict) %prep %autosetup -n jsonstreams-0.6.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-jsonstreams -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 0.6.0-1 - Package Spec generated