diff options
Diffstat (limited to 'python-jsonstreams.spec')
-rw-r--r-- | python-jsonstreams.spec | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/python-jsonstreams.spec b/python-jsonstreams.spec new file mode 100644 index 0000000..de2c3b1 --- /dev/null +++ b/python-jsonstreams.spec @@ -0,0 +1,190 @@ +%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 <https://github.com/dcbaker/jsonstreams>`_. +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 <https://github.com/dcbaker/jsonstreams>`_. +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 <https://github.com/dcbaker/jsonstreams>`_. +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 <Python_Bot@openeuler.org> - 0.6.0-1 +- Package Spec generated |