diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-11 18:17:00 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 18:17:00 +0000 |
| commit | 733782777b0b9cd2af626130c70c4008fd464ef3 (patch) | |
| tree | a9f5eddc4e104738f775fb769d773ee3fe22e148 | |
| parent | bf104a7f5ab05a5b33850f5849ce33694c08dabf (diff) | |
automatic import of python-py-ubjson
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-py-ubjson.spec | 327 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 329 insertions, 0 deletions
@@ -0,0 +1 @@ +/py-ubjson-0.16.1.tar.gz 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 @@ -0,0 +1 @@ +0f9f2b4d68ae8e70c6f624b1cdaca161 py-ubjson-0.16.1.tar.gz |
