python-snappy
python-snappy copied to clipboard
0.6.1: pytest is failing
I'm trying to package your module as an rpm package. So I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.
python3 -sBm build -w --no-isolation- because I'm calling
buildwith--no-isolationI'm using during all processes only locally installed modules - install .whl file in </install/prefix>
- run pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
Here is pytest output:
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-snappy-0.6.1-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-snappy-0.6.1-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/python-snappy-0.6.1
plugins: forked-1.4.0, xdist-2.5.0
collected 28 items
test_formats.py ......... [ 32%]
test_hadoop_snappy.py .. [ 39%]
test_snappy.py ............... [ 92%]
test_snappy_cffi.py FF [100%]
================================================================================= FAILURES =================================================================================
__________________________________________________________________________ test_snappy_cffi_enum ___________________________________________________________________________
def test_snappy_cffi_enum():
> from snappy.snappy_cffi import lib
test_snappy_cffi.py:9:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
from __future__ import absolute_import
> from ._snappy_cffi import ffi, lib
E ModuleNotFoundError: No module named 'snappy._snappy_cffi'
../../BUILDROOT/python-snappy-0.6.1-2.fc35.x86_64/usr/lib64/python3.8/site-packages/snappy/snappy_cffi.py:3: ModuleNotFoundError
___________________________________________________________________________ test_snappy_all_cffi ___________________________________________________________________________
def test_snappy_all_cffi():
> from snappy.snappy_cffi import ffi, lib
test_snappy_cffi.py:16:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
from __future__ import absolute_import
> from ._snappy_cffi import ffi, lib
E ModuleNotFoundError: No module named 'snappy._snappy_cffi'
../../BUILDROOT/python-snappy-0.6.1-2.fc35.x86_64/usr/lib64/python3.8/site-packages/snappy/snappy_cffi.py:3: ModuleNotFoundError
========================================================================= short test summary info ==========================================================================
FAILED test_snappy_cffi.py::test_snappy_cffi_enum - ModuleNotFoundError: No module named 'snappy._snappy_cffi'
FAILED test_snappy_cffi.py::test_snappy_all_cffi - ModuleNotFoundError: No module named 'snappy._snappy_cffi'
======================================================================= 2 failed, 26 passed in 1.14s =======================================================================
[tkloczko@devel-g2v python-snappy-0.6.1-2.fc35.x86_64]$ ls -lR usr/lib64/python3.8/site-packages/snappy/
usr/lib64/python3.8/site-packages/snappy/:
total 68
-rw-r--r--. 1 tkloczko tkloczko 7552 May 21 19:23 hadoop_snappy.py
-rw-r--r--. 1 tkloczko tkloczko 347 May 21 19:23 __init__.py
-rw-r--r--. 1 tkloczko tkloczko 2412 May 21 19:23 __main__.py
drwxr-xr-x. 1 tkloczko tkloczko 1272 May 21 19:23 __pycache__
-rw-r--r--. 1 tkloczko tkloczko 5581 May 21 19:23 snappy_cffi_builder.py
-rw-r--r--. 1 tkloczko tkloczko 2124 May 21 19:23 snappy_cffi.py
-rwxr-xr-x. 1 tkloczko tkloczko 16400 May 21 19:23 _snappy.cpython-38-x86_64-linux-gnu.so
-rw-r--r--. 1 tkloczko tkloczko 2901 May 21 19:23 snappy_formats.py
-rw-r--r--. 1 tkloczko tkloczko 13136 May 21 19:23 snappy.py
usr/lib64/python3.8/site-packages/snappy/__pycache__:
total 124
-rw-r--r--. 1 tkloczko tkloczko 7229 May 21 19:23 hadoop_snappy.cpython-38.opt-1.pyc
-rw-r--r--. 1 tkloczko tkloczko 3917 May 21 19:23 hadoop_snappy.cpython-38.opt-2.pyc
-rw-r--r--. 1 tkloczko tkloczko 7229 May 21 19:23 hadoop_snappy.cpython-38.pyc
-rw-r--r--. 1 tkloczko tkloczko 539 May 21 19:23 __init__.cpython-38.opt-1.pyc
-rw-r--r--. 1 tkloczko tkloczko 539 May 21 19:23 __init__.cpython-38.opt-2.pyc
-rw-r--r--. 1 tkloczko tkloczko 539 May 21 19:23 __init__.cpython-38.pyc
-rw-r--r--. 1 tkloczko tkloczko 1952 May 21 19:23 __main__.cpython-38.opt-1.pyc
-rw-r--r--. 1 tkloczko tkloczko 1845 May 21 19:23 __main__.cpython-38.opt-2.pyc
-rw-r--r--. 1 tkloczko tkloczko 1952 May 21 19:23 __main__.cpython-38.pyc
-rw-r--r--. 1 tkloczko tkloczko 5770 May 21 19:23 snappy_cffi_builder.cpython-38.opt-1.pyc
-rw-r--r--. 1 tkloczko tkloczko 5770 May 21 19:23 snappy_cffi_builder.cpython-38.opt-2.pyc
-rw-r--r--. 1 tkloczko tkloczko 5770 May 21 19:23 snappy_cffi_builder.cpython-38.pyc
-rw-r--r--. 1 tkloczko tkloczko 2242 May 21 19:23 snappy_cffi.cpython-38.opt-1.pyc
-rw-r--r--. 1 tkloczko tkloczko 2242 May 21 19:23 snappy_cffi.cpython-38.opt-2.pyc
-rw-r--r--. 1 tkloczko tkloczko 2242 May 21 19:23 snappy_cffi.cpython-38.pyc
-rw-r--r--. 1 tkloczko tkloczko 9751 May 21 19:23 snappy.cpython-38.opt-1.pyc
-rw-r--r--. 1 tkloczko tkloczko 5592 May 21 19:23 snappy.cpython-38.opt-2.pyc
-rw-r--r--. 1 tkloczko tkloczko 9792 May 21 19:23 snappy.cpython-38.pyc
-rw-r--r--. 1 tkloczko tkloczko 1929 May 21 19:23 snappy_formats.cpython-38.opt-1.pyc
-rw-r--r--. 1 tkloczko tkloczko 1400 May 21 19:23 snappy_formats.cpython-38.opt-2.pyc
-rw-r--r--. 1 tkloczko tkloczko 1929 May 21 19:23 snappy_formats.cpython-38.pyc
I don't see anything about missing module in pep517 build as well
+ /usr/bin/python3 -sBm build -w --no-isolation
* Getting dependencies for wheel...
running egg_info
creating src/python_snappy.egg-info
writing src/python_snappy.egg-info/PKG-INFO
writing dependency_links to src/python_snappy.egg-info/dependency_links.txt
writing top-level names to src/python_snappy.egg-info/top_level.txt
writing manifest file 'src/python_snappy.egg-info/SOURCES.txt'
reading manifest file 'src/python_snappy.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
adding license file 'AUTHORS'
writing manifest file 'src/python_snappy.egg-info/SOURCES.txt'
* Building wheel...
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-38
creating build/lib.linux-x86_64-cpython-38/snappy
copying src/snappy/__init__.py -> build/lib.linux-x86_64-cpython-38/snappy
copying src/snappy/__main__.py -> build/lib.linux-x86_64-cpython-38/snappy
copying src/snappy/hadoop_snappy.py -> build/lib.linux-x86_64-cpython-38/snappy
copying src/snappy/snappy.py -> build/lib.linux-x86_64-cpython-38/snappy
copying src/snappy/snappy_cffi.py -> build/lib.linux-x86_64-cpython-38/snappy
copying src/snappy/snappy_cffi_builder.py -> build/lib.linux-x86_64-cpython-38/snappy
copying src/snappy/snappy_formats.py -> build/lib.linux-x86_64-cpython-38/snappy
running build_ext
building 'snappy._snappy' extension
creating build/temp.linux-x86_64-cpython-38
creating build/temp.linux-x86_64-cpython-38/src
creating build/temp.linux-x86_64-cpython-38/src/snappy
/usr/bin/gcc -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -D_GNU_SOURCE -fPIC -fwrapv -ffat-lto-objects -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -D_GNU_SOURCE -fPIC -fwrapv -ffat-lto-objects -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -D_GNU_SOURCE -fPIC -fwrapv -ffat-lto-objects -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -fPIC -I/usr/include/python3.8 -c src/snappy/crc32c.c -o build/temp.linux-x86_64-cpython-38/src/snappy/crc32c.o
/usr/bin/gcc -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -D_GNU_SOURCE -fPIC -fwrapv -ffat-lto-objects -D_GNU_SOURCE -fPIC -fwrapv -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -D_GNU_SOURCE -fPIC -fwrapv -ffat-lto-objects -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -D_GNU_SOURCE -fPIC -fwrapv -ffat-lto-objects -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -fPIC -I/usr/include/python3.8 -c src/snappy/snappymodule.cc -o build/temp.linux-x86_64-cpython-38/src/snappy/snappymodule.o
/usr/bin/g++ -shared -Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1 -Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1 -Wl,-z,relro -Wl,--as-needed -Wl,--gc-sections -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -flto=auto -flto-partition=none -fuse-linker-plugin -Wl,--build-id=sha1 -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none build/temp.linux-x86_64-cpython-38/src/snappy/crc32c.o build/temp.linux-x86_64-cpython-38/src/snappy/snappymodule.o -L/usr/lib64 -lsnappy -o build/lib.linux-x86_64-cpython-38/snappy/_snappy.cpython-38-x86_64-linux-gnu.so
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/snappy
copying build/lib.linux-x86_64-cpython-38/snappy/__init__.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib.linux-x86_64-cpython-38/snappy/__main__.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib.linux-x86_64-cpython-38/snappy/hadoop_snappy.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib.linux-x86_64-cpython-38/snappy/snappy.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib.linux-x86_64-cpython-38/snappy/snappy_cffi.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib.linux-x86_64-cpython-38/snappy/snappy_cffi_builder.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib.linux-x86_64-cpython-38/snappy/snappy_formats.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib.linux-x86_64-cpython-38/snappy/_snappy.cpython-38-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/wheel/snappy
running install_egg_info
running egg_info
writing src/python_snappy.egg-info/PKG-INFO
writing dependency_links to src/python_snappy.egg-info/dependency_links.txt
writing top-level names to src/python_snappy.egg-info/top_level.txt
reading manifest file 'src/python_snappy.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
adding license file 'AUTHORS'
writing manifest file 'src/python_snappy.egg-info/SOURCES.txt'
Copying src/python_snappy.egg-info to build/bdist.linux-x86_64/wheel/python_snappy-0.6.1-py3.8.egg-info
running install_scripts
adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
adding license file "AUTHORS" (matched pattern "AUTHORS*")
creating build/bdist.linux-x86_64/wheel/python_snappy-0.6.1.dist-info/WHEEL
creating '/home/tkloczko/rpmbuild/BUILD/python-snappy-0.6.1/dist/tmp0oru3cxt/python_snappy-0.6.1-cp38-cp38-linux_x86_64.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'snappy/__init__.py'
adding 'snappy/__main__.py'
adding 'snappy/_snappy.cpython-38-x86_64-linux-gnu.so'
adding 'snappy/hadoop_snappy.py'
adding 'snappy/snappy.py'
adding 'snappy/snappy_cffi.py'
adding 'snappy/snappy_cffi_builder.py'
adding 'snappy/snappy_formats.py'
adding 'python_snappy-0.6.1.dist-info/AUTHORS'
adding 'python_snappy-0.6.1.dist-info/LICENSE'
adding 'python_snappy-0.6.1.dist-info/METADATA'
adding 'python_snappy-0.6.1.dist-info/WHEEL'
adding 'python_snappy-0.6.1.dist-info/top_level.txt'
adding 'python_snappy-0.6.1.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built python_snappy-0.6.1-cp38-cp38-linux_x86_64.whl
_cffi is probably to do with missing snappy system binaries
_cffi is probably to do with missing snappy system binaries
In build env there is no snappy installed because I'm building it 😄
As you see snappy._snappy_cffi was not build.
Question remains .. why? 🤔
Gentle ping .. any though/updates? Did you try to reproduce this effect using procedure which I've provided? 🤔
In version 0.7.0, we no longer build ... anything. You should have an easier time installing and running snappy.
I did't know anbout new version because I've not received email notification about that (this is why I've created RFE about start use gh releases 😋 )
I found that 0.7.0 has some new build dependencies like use some crc modules.
May I ask why has been chosen some external crc module? 🤔
Python provides et least two standard modules (as DSOs) which provides calculate some checksums.
Are you sure that cramjam and crc32c are really needed on build module stage? 🤔
Yep just tested below patch
--- a/setup.py
+++ b/setup.py
@@ -40,7 +40,6 @@
packages = ['snappy']
install_requires = ['cramjam>=2.6.0', 'crc32c']
-setup_requires = ['cramjam>=2.6.0', 'crc32c']
setup(
name='python-snappy',
@@ -71,6 +71,5 @@
],
packages=packages,
install_requires=install_requires,
- setup_requires=setup_requires,
package_dir={'': 'src'},
)
and looks like build is OK.
+ /usr/bin/python3 -sBm build -w --no-isolation
* Getting build dependencies for wheel...
running egg_info
creating src/python_snappy.egg-info
writing src/python_snappy.egg-info/PKG-INFO
writing dependency_links to src/python_snappy.egg-info/dependency_links.txt
writing requirements to src/python_snappy.egg-info/requires.txt
writing top-level names to src/python_snappy.egg-info/top_level.txt
writing manifest file 'src/python_snappy.egg-info/SOURCES.txt'
ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any
reading manifest file 'src/python_snappy.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'src/snappy/*.h'
adding license file 'LICENSE'
adding license file 'AUTHORS'
writing manifest file 'src/python_snappy.egg-info/SOURCES.txt'
* Building wheel...
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/snappy
copying src/snappy/__init__.py -> build/lib/snappy
copying src/snappy/__main__.py -> build/lib/snappy
copying src/snappy/hadoop_snappy.py -> build/lib/snappy
copying src/snappy/snappy_formats.py -> build/lib/snappy
copying src/snappy/snappy.py -> build/lib/snappy
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/snappy
copying build/lib/snappy/__init__.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib/snappy/__main__.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib/snappy/hadoop_snappy.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib/snappy/snappy_formats.py -> build/bdist.linux-x86_64/wheel/snappy
copying build/lib/snappy/snappy.py -> build/bdist.linux-x86_64/wheel/snappy
running install_egg_info
running egg_info
writing src/python_snappy.egg-info/PKG-INFO
writing dependency_links to src/python_snappy.egg-info/dependency_links.txt
writing requirements to src/python_snappy.egg-info/requires.txt
writing top-level names to src/python_snappy.egg-info/top_level.txt
ERROR setuptools_scm._file_finders.git listing git files failed - pretending there aren't any
reading manifest file 'src/python_snappy.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'src/snappy/*.h'
adding license file 'LICENSE'
adding license file 'AUTHORS'
writing manifest file 'src/python_snappy.egg-info/SOURCES.txt'
Copying src/python_snappy.egg-info to build/bdist.linux-x86_64/wheel/python_snappy-0.7.0-py3.9.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/python_snappy-0.7.0.dist-info/WHEEL
creating '/home/tkloczko/rpmbuild/BUILD/python-snappy-0.7.0/dist/.tmp-dg6tvoqd/python_snappy-0.7.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'snappy/__init__.py'
adding 'snappy/__main__.py'
adding 'snappy/hadoop_snappy.py'
adding 'snappy/snappy.py'
adding 'snappy/snappy_formats.py'
adding 'python_snappy-0.7.0.dist-info/AUTHORS'
adding 'python_snappy-0.7.0.dist-info/LICENSE'
adding 'python_snappy-0.7.0.dist-info/METADATA'
adding 'python_snappy-0.7.0.dist-info/WHEEL'
adding 'python_snappy-0.7.0.dist-info/top_level.txt'
adding 'python_snappy-0.7.0.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built python_snappy-0.7.0-py3-none-any.whl
Please let me know if you want that patch as PR.
Hmmm .. cramjam is written in rust so DSO will be probably +30 times bigger that libarchive 😞
Why no add snapper compression to libarchive and use libarchive module? 🤔
If compression needs to be fastest-as-possible all that will be wasted in case of use rust (only because higher CPU cache misses/hits ratio). 🤔
You are most welcome to propose changes to libarchive if you want, or indeed to do benchmarking.