diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 17:10:39 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 17:10:39 +0000 |
commit | a278eee38eebe61db7f41ad6cb3b6bf5259615b1 (patch) | |
tree | 6ca44a94ce39028f251bab6be77a6aceadf0a59f /python-py-lz4framed.spec | |
parent | 1068641fe33388e9c8fbbc4f2c12bb9b520678da (diff) |
automatic import of python-py-lz4framed
Diffstat (limited to 'python-py-lz4framed.spec')
-rw-r--r-- | python-py-lz4framed.spec | 339 |
1 files changed, 339 insertions, 0 deletions
diff --git a/python-py-lz4framed.spec b/python-py-lz4framed.spec new file mode 100644 index 0000000..8734782 --- /dev/null +++ b/python-py-lz4framed.spec @@ -0,0 +1,339 @@ +%global _empty_manifest_terminate_build 0 +Name: python-py-lz4framed +Version: 0.14.0 +Release: 1 +Summary: LZ4Frame library for Python (via C bindings) +License: Apache License 2.0 +URL: https://github.com/Iotic-Labs/py-lz4framed +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/67/e0/214f227244c725f27a64bdb56781eb1666886c863a01ce8c9dfce0aa7efa/py-lz4framed-0.14.0.tar.gz +BuildArch: noarch + + +%description +# Overview + +This is an [LZ4](http://lz4.org)-frame compression library for Python v3.2+ (and 2.7+), bound to Yann Collet's [LZ4 C implementation](https://github.com/lz4/lz4). + + +# Installing / packaging +```shell +# To get from PyPI +pip3 install py-lz4framed + +# To only build extension modules inline (e.g. in repository) +python3 setup.py build_ext -i + +# To build & install globally +python3 setup.py install +``` +**Notes** + +- The above as well as all other python3-using commands should also run with v2.7+ +- This module is also available via [Anaconda (conda-forge)](https://anaconda.org/conda-forge/py-lz4framed) (with binaries for Linux, OSX and Windows) +- PyPI releases are signed with the [Iotic Labs Software release signing key](https://developer.iotic-labs.com/iotic-labs.com.asc) + + +# Usage +Single-function operation: +```python +import lz4framed + +compressed = lz4framed.compress(b'binary data') + +uncompressed = lz4framed.decompress(compressed) +``` +To iteratively compress (to a file or e.g. BytesIO instance): +```python +with open('myFile', 'wb') as f: + # Context automatically finalises frame on completion, unless an exception occurs + with Compressor(f) as c: + try: + while (...): + c.update(moreData) + except Lz4FramedNoDataError: + pass +``` +To decompress from a file-like object: +```python +with open('myFile', 'rb') as f: + try: + for chunk in Decompressor(f): + decoded.append(chunk) + except Lz4FramedNoDataError: + # Compress frame data incomplete - error case + ... +``` +See also [lz4framed/\_\_main\_\_.py](lz4framed/__main__.py) for example usage. + +# Documentation +```python +import lz4framed +print(lz4framed.__version__, lz4framed.LZ4_VERSION, lz4framed.LZ4F_VERSION) +help(lz4framed) +``` + +# Command-line utility +```shell +python3 -mlz4framed +USAGE: lz4framed (compress|decompress) (INFILE|-) [OUTFILE] + +(De)compresses an lz4 frame. Input is read from INFILE unless set to '-', in +which case stdin is used. If OUTFILE is not specified, output goes to stdout. +``` + + +# 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 -m unittest discover -v . +``` + +# Why? +The only existing lz4-frame interoperable implementation I was aware of at the time of writing ([lz4tools](https://github.com/darkdragn/lz4tools)) had the following limitations: + +- Incomplete implementation in terms of e.g. reference & memory leaks on failure +- Lack of unit tests +- Not thread safe +- Does not release GIL during low level (de)compression operations +- Did not address the requirements for an external project + +%package -n python3-py-lz4framed +Summary: LZ4Frame library for Python (via C bindings) +Provides: python-py-lz4framed +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-py-lz4framed +# Overview + +This is an [LZ4](http://lz4.org)-frame compression library for Python v3.2+ (and 2.7+), bound to Yann Collet's [LZ4 C implementation](https://github.com/lz4/lz4). + + +# Installing / packaging +```shell +# To get from PyPI +pip3 install py-lz4framed + +# To only build extension modules inline (e.g. in repository) +python3 setup.py build_ext -i + +# To build & install globally +python3 setup.py install +``` +**Notes** + +- The above as well as all other python3-using commands should also run with v2.7+ +- This module is also available via [Anaconda (conda-forge)](https://anaconda.org/conda-forge/py-lz4framed) (with binaries for Linux, OSX and Windows) +- PyPI releases are signed with the [Iotic Labs Software release signing key](https://developer.iotic-labs.com/iotic-labs.com.asc) + + +# Usage +Single-function operation: +```python +import lz4framed + +compressed = lz4framed.compress(b'binary data') + +uncompressed = lz4framed.decompress(compressed) +``` +To iteratively compress (to a file or e.g. BytesIO instance): +```python +with open('myFile', 'wb') as f: + # Context automatically finalises frame on completion, unless an exception occurs + with Compressor(f) as c: + try: + while (...): + c.update(moreData) + except Lz4FramedNoDataError: + pass +``` +To decompress from a file-like object: +```python +with open('myFile', 'rb') as f: + try: + for chunk in Decompressor(f): + decoded.append(chunk) + except Lz4FramedNoDataError: + # Compress frame data incomplete - error case + ... +``` +See also [lz4framed/\_\_main\_\_.py](lz4framed/__main__.py) for example usage. + +# Documentation +```python +import lz4framed +print(lz4framed.__version__, lz4framed.LZ4_VERSION, lz4framed.LZ4F_VERSION) +help(lz4framed) +``` + +# Command-line utility +```shell +python3 -mlz4framed +USAGE: lz4framed (compress|decompress) (INFILE|-) [OUTFILE] + +(De)compresses an lz4 frame. Input is read from INFILE unless set to '-', in +which case stdin is used. If OUTFILE is not specified, output goes to stdout. +``` + + +# 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 -m unittest discover -v . +``` + +# Why? +The only existing lz4-frame interoperable implementation I was aware of at the time of writing ([lz4tools](https://github.com/darkdragn/lz4tools)) had the following limitations: + +- Incomplete implementation in terms of e.g. reference & memory leaks on failure +- Lack of unit tests +- Not thread safe +- Does not release GIL during low level (de)compression operations +- Did not address the requirements for an external project + +%package help +Summary: Development documents and examples for py-lz4framed +Provides: python3-py-lz4framed-doc +%description help +# Overview + +This is an [LZ4](http://lz4.org)-frame compression library for Python v3.2+ (and 2.7+), bound to Yann Collet's [LZ4 C implementation](https://github.com/lz4/lz4). + + +# Installing / packaging +```shell +# To get from PyPI +pip3 install py-lz4framed + +# To only build extension modules inline (e.g. in repository) +python3 setup.py build_ext -i + +# To build & install globally +python3 setup.py install +``` +**Notes** + +- The above as well as all other python3-using commands should also run with v2.7+ +- This module is also available via [Anaconda (conda-forge)](https://anaconda.org/conda-forge/py-lz4framed) (with binaries for Linux, OSX and Windows) +- PyPI releases are signed with the [Iotic Labs Software release signing key](https://developer.iotic-labs.com/iotic-labs.com.asc) + + +# Usage +Single-function operation: +```python +import lz4framed + +compressed = lz4framed.compress(b'binary data') + +uncompressed = lz4framed.decompress(compressed) +``` +To iteratively compress (to a file or e.g. BytesIO instance): +```python +with open('myFile', 'wb') as f: + # Context automatically finalises frame on completion, unless an exception occurs + with Compressor(f) as c: + try: + while (...): + c.update(moreData) + except Lz4FramedNoDataError: + pass +``` +To decompress from a file-like object: +```python +with open('myFile', 'rb') as f: + try: + for chunk in Decompressor(f): + decoded.append(chunk) + except Lz4FramedNoDataError: + # Compress frame data incomplete - error case + ... +``` +See also [lz4framed/\_\_main\_\_.py](lz4framed/__main__.py) for example usage. + +# Documentation +```python +import lz4framed +print(lz4framed.__version__, lz4framed.LZ4_VERSION, lz4framed.LZ4F_VERSION) +help(lz4framed) +``` + +# Command-line utility +```shell +python3 -mlz4framed +USAGE: lz4framed (compress|decompress) (INFILE|-) [OUTFILE] + +(De)compresses an lz4 frame. Input is read from INFILE unless set to '-', in +which case stdin is used. If OUTFILE is not specified, output goes to stdout. +``` + + +# 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 -m unittest discover -v . +``` + +# Why? +The only existing lz4-frame interoperable implementation I was aware of at the time of writing ([lz4tools](https://github.com/darkdragn/lz4tools)) had the following limitations: + +- Incomplete implementation in terms of e.g. reference & memory leaks on failure +- Lack of unit tests +- Not thread safe +- Does not release GIL during low level (de)compression operations +- Did not address the requirements for an external project + +%prep +%autosetup -n py-lz4framed-0.14.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-py-lz4framed -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.14.0-1 +- Package Spec generated |