summaryrefslogtreecommitdiff
path: root/python-py-ubjson.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-11 18:17:00 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-11 18:17:00 +0000
commit733782777b0b9cd2af626130c70c4008fd464ef3 (patch)
treea9f5eddc4e104738f775fb769d773ee3fe22e148 /python-py-ubjson.spec
parentbf104a7f5ab05a5b33850f5849ce33694c08dabf (diff)
automatic import of python-py-ubjson
Diffstat (limited to 'python-py-ubjson.spec')
-rw-r--r--python-py-ubjson.spec327
1 files changed, 327 insertions, 0 deletions
diff --git a/python-py-ubjson.spec b/python-py-ubjson.spec
new file mode 100644
index 0000000..51c3ffa
--- /dev/null
+++ b/python-py-ubjson.spec
@@ -0,0 +1,327 @@
+%global _empty_manifest_terminate_build 0
+Name: python-py-ubjson
+Version: 0.16.1
+Release: 1
+Summary: Universal Binary JSON encoder/decoder
+License: Apache License 2.0
+URL: https://github.com/Iotic-Labs/py-ubjson
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/1d/c7/28220d37e041fe1df03e857fe48f768dcd30cd151480bf6f00da8713214a/py-ubjson-0.16.1.tar.gz
+BuildArch: noarch
+
+
+%description
+# Overview
+
+This is a Python v3.2+ (and 2.7+) [Universal Binary JSON](http://ubjson.org) encoder/decoder based on the [draft-12](UBJSON-Specification.md) specification.
+
+
+# Installing / packaging
+```shell
+# To get from PyPI
+pip3 install py-ubjson
+
+# To only build extension modules inline (e.g. in repository)
+python3 setup.py build_ext -i
+
+# To build & install globally
+python3 setup.py install
+
+# To skip building of extensions when installing (or building)
+PYUBJSON_NO_EXTENSION=1 python3 setup.py install
+```
+**Notes**
+
+- The extension module is not required but provide a significant speed boost.
+- The above can also be run with v2.7+
+- This module is also available via [Anaconda (conda-forge)](https://anaconda.org/conda-forge/py-ubjson)
+- PyPI releases are signed with the [Iotic Labs Software release signing key](https://developer.iotic-labs.com/iotic-labs.com.asc)
+- At run time, one can check whether compiled version is in use via the _ubjson.EXTENSION_ENABLED_ boolean
+
+
+# Usage
+It's meant to behave very much like Python's built-in [JSON module](https://docs.python.org/3/library/json.html), e.g.:
+```python
+import ubjson
+
+encoded = ubjson.dumpb({u'a': 1})
+
+decoded = ubjson.loadb(encoded)
+```
+**Note**: Only unicode strings in Python 2 will be encoded as strings, plain *str* will be encoded as a byte array.
+
+
+# Documentation
+```python
+import ubsjon
+help(ubjson.dump)
+help(ubjson.load)
+```
+
+# Command-line utility
+This converts between JSON and UBJSON formats:
+```shell
+python3 -mubjson
+USAGE: ubjson (fromjson|tojson) (INFILE|-) [OUTFILE]
+```
+
+
+# Tests
+
+## Static
+This library has been checked using [flake8](https://pypi.python.org/pypi/flake8) and [pylint](http://www.pylint.org), using a modified configuration - see _pylint.rc_ and _flake8.cfg_.
+
+## Unit
+```shell
+python3 -mvenv py
+. py/bin/activate
+pip install -U pip setuptools
+pip install -e .[dev]
+
+./coverage_test.sh
+```
+**Note**: See `coverage_test.sh` for additional requirements.
+
+
+# Limitations
+- The **No-Op** type is only supported by the decoder. (This should arguably be a protocol-level rather than serialisation-level option.) Specifically, it is **only** allowed to occur at the start or between elements of a container and **only** inside un-typed containers. (In a typed container it is impossible to tell the difference between an encoded element and a No-Op.)
+- Strongly-typed containers are only supported by the decoder (apart from for **bytes**/**bytearray**) and not for No-Op.
+- Encoder/decoder extensions are not supported at this time.
+
+
+# Why?
+The only existing implementation I was aware of at the time of writing ([simpleubjson](https://github.com/brainwater/simpleubjson)) had the following limitations:
+
+- Does not support efficient binary encoding
+- Only supports draft-9
+- Only supports individual Python types rather than anything implementing an interface (e.g. _Mapping_)
+- Does not decode nested arrays or objects in expected form
+- Lacks C extension speed-up
+
+%package -n python3-py-ubjson
+Summary: Universal Binary JSON encoder/decoder
+Provides: python-py-ubjson
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-py-ubjson
+# Overview
+
+This is a Python v3.2+ (and 2.7+) [Universal Binary JSON](http://ubjson.org) encoder/decoder based on the [draft-12](UBJSON-Specification.md) specification.
+
+
+# Installing / packaging
+```shell
+# To get from PyPI
+pip3 install py-ubjson
+
+# To only build extension modules inline (e.g. in repository)
+python3 setup.py build_ext -i
+
+# To build & install globally
+python3 setup.py install
+
+# To skip building of extensions when installing (or building)
+PYUBJSON_NO_EXTENSION=1 python3 setup.py install
+```
+**Notes**
+
+- The extension module is not required but provide a significant speed boost.
+- The above can also be run with v2.7+
+- This module is also available via [Anaconda (conda-forge)](https://anaconda.org/conda-forge/py-ubjson)
+- PyPI releases are signed with the [Iotic Labs Software release signing key](https://developer.iotic-labs.com/iotic-labs.com.asc)
+- At run time, one can check whether compiled version is in use via the _ubjson.EXTENSION_ENABLED_ boolean
+
+
+# Usage
+It's meant to behave very much like Python's built-in [JSON module](https://docs.python.org/3/library/json.html), e.g.:
+```python
+import ubjson
+
+encoded = ubjson.dumpb({u'a': 1})
+
+decoded = ubjson.loadb(encoded)
+```
+**Note**: Only unicode strings in Python 2 will be encoded as strings, plain *str* will be encoded as a byte array.
+
+
+# Documentation
+```python
+import ubsjon
+help(ubjson.dump)
+help(ubjson.load)
+```
+
+# Command-line utility
+This converts between JSON and UBJSON formats:
+```shell
+python3 -mubjson
+USAGE: ubjson (fromjson|tojson) (INFILE|-) [OUTFILE]
+```
+
+
+# Tests
+
+## Static
+This library has been checked using [flake8](https://pypi.python.org/pypi/flake8) and [pylint](http://www.pylint.org), using a modified configuration - see _pylint.rc_ and _flake8.cfg_.
+
+## Unit
+```shell
+python3 -mvenv py
+. py/bin/activate
+pip install -U pip setuptools
+pip install -e .[dev]
+
+./coverage_test.sh
+```
+**Note**: See `coverage_test.sh` for additional requirements.
+
+
+# Limitations
+- The **No-Op** type is only supported by the decoder. (This should arguably be a protocol-level rather than serialisation-level option.) Specifically, it is **only** allowed to occur at the start or between elements of a container and **only** inside un-typed containers. (In a typed container it is impossible to tell the difference between an encoded element and a No-Op.)
+- Strongly-typed containers are only supported by the decoder (apart from for **bytes**/**bytearray**) and not for No-Op.
+- Encoder/decoder extensions are not supported at this time.
+
+
+# Why?
+The only existing implementation I was aware of at the time of writing ([simpleubjson](https://github.com/brainwater/simpleubjson)) had the following limitations:
+
+- Does not support efficient binary encoding
+- Only supports draft-9
+- Only supports individual Python types rather than anything implementing an interface (e.g. _Mapping_)
+- Does not decode nested arrays or objects in expected form
+- Lacks C extension speed-up
+
+%package help
+Summary: Development documents and examples for py-ubjson
+Provides: python3-py-ubjson-doc
+%description help
+# Overview
+
+This is a Python v3.2+ (and 2.7+) [Universal Binary JSON](http://ubjson.org) encoder/decoder based on the [draft-12](UBJSON-Specification.md) specification.
+
+
+# Installing / packaging
+```shell
+# To get from PyPI
+pip3 install py-ubjson
+
+# To only build extension modules inline (e.g. in repository)
+python3 setup.py build_ext -i
+
+# To build & install globally
+python3 setup.py install
+
+# To skip building of extensions when installing (or building)
+PYUBJSON_NO_EXTENSION=1 python3 setup.py install
+```
+**Notes**
+
+- The extension module is not required but provide a significant speed boost.
+- The above can also be run with v2.7+
+- This module is also available via [Anaconda (conda-forge)](https://anaconda.org/conda-forge/py-ubjson)
+- PyPI releases are signed with the [Iotic Labs Software release signing key](https://developer.iotic-labs.com/iotic-labs.com.asc)
+- At run time, one can check whether compiled version is in use via the _ubjson.EXTENSION_ENABLED_ boolean
+
+
+# Usage
+It's meant to behave very much like Python's built-in [JSON module](https://docs.python.org/3/library/json.html), e.g.:
+```python
+import ubjson
+
+encoded = ubjson.dumpb({u'a': 1})
+
+decoded = ubjson.loadb(encoded)
+```
+**Note**: Only unicode strings in Python 2 will be encoded as strings, plain *str* will be encoded as a byte array.
+
+
+# Documentation
+```python
+import ubsjon
+help(ubjson.dump)
+help(ubjson.load)
+```
+
+# Command-line utility
+This converts between JSON and UBJSON formats:
+```shell
+python3 -mubjson
+USAGE: ubjson (fromjson|tojson) (INFILE|-) [OUTFILE]
+```
+
+
+# Tests
+
+## Static
+This library has been checked using [flake8](https://pypi.python.org/pypi/flake8) and [pylint](http://www.pylint.org), using a modified configuration - see _pylint.rc_ and _flake8.cfg_.
+
+## Unit
+```shell
+python3 -mvenv py
+. py/bin/activate
+pip install -U pip setuptools
+pip install -e .[dev]
+
+./coverage_test.sh
+```
+**Note**: See `coverage_test.sh` for additional requirements.
+
+
+# Limitations
+- The **No-Op** type is only supported by the decoder. (This should arguably be a protocol-level rather than serialisation-level option.) Specifically, it is **only** allowed to occur at the start or between elements of a container and **only** inside un-typed containers. (In a typed container it is impossible to tell the difference between an encoded element and a No-Op.)
+- Strongly-typed containers are only supported by the decoder (apart from for **bytes**/**bytearray**) and not for No-Op.
+- Encoder/decoder extensions are not supported at this time.
+
+
+# Why?
+The only existing implementation I was aware of at the time of writing ([simpleubjson](https://github.com/brainwater/simpleubjson)) had the following limitations:
+
+- Does not support efficient binary encoding
+- Only supports draft-9
+- Only supports individual Python types rather than anything implementing an interface (e.g. _Mapping_)
+- Does not decode nested arrays or objects in expected form
+- Lacks C extension speed-up
+
+%prep
+%autosetup -n py-ubjson-0.16.1
+
+%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-py-ubjson -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.16.1-1
+- Package Spec generated