Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .github/workflows/Build_wheels_for_cpython27_x86.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,7 @@ jobs:
- name: Pepare for ${{matrix.os.pypkg}} ${{matrix.os.arch}}
if: matrix.os.matrix == 'linux'
run: |
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt-cache madison clang-18
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt install -y ${{matrix.os.pypkg}}-dev gcc pkg-config ${{matrix.os.pypkgadd}}
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt install --no-install-recommends -y ${{matrix.os.pypkg}}-dev gcc pkg-config ${{matrix.os.pypkgadd}}
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "wget ${{matrix.os.getpipurl}} -O get-pip.py && ${{matrix.os.pypkg}} get-pip.py"
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "${{matrix.os.pypkg}} -m pip install -U 'setuptools'"

Expand All @@ -107,8 +106,6 @@ jobs:
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} pkg-config libzstd --modversion
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} echo GCC
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} gcc -v
false && sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} echo CLANG
false && sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} clang-20 -v
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version && _CC=clang-20 ZSTD_ASM=1 ZSTD_WARNINGS=1 _ZSTD_WERRORS=1 _ZSTD_SMALL=1 _ZSTD_ASM_BMI2=1 ZSTD_THREADS=1 _ZSTD_EXTERNAL=1 ${{matrix.os.pypkg}} setup.py bdist_wheel "

- name: Test wheel for ${{matrix.os.pypkg}} ${{matrix.os.arch}}
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/Build_wheels_for_cpython313_x86_u16.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build wheels for CPython3.13 x86 on Ubuntu22 with GCC-10 All warnings
name: Build wheels for CPython3.13 x86 on Ubuntu16 with GCC-5 All warnings

on: [push, pull_request]

Expand All @@ -14,12 +14,12 @@ jobs:
fail-fast: false
matrix:
os:
- name: Ubuntu 24+22 x86 CPython 3.13
- name: Ubuntu 24+16 x86 CPython 3.13
runs-on: ubuntu-latest
matrix: linux
arch: i386
tag_arch: i686
release: jammy
release: xenial
mirror: http://azure.archive.ubuntu.com/ubuntu
getpipurl: https://bootstrap.pypa.io/pip/get-pip.py
pypkg: python3.13
Expand Down Expand Up @@ -60,10 +60,10 @@ jobs:
sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/proc -t proc
sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/dev/pts -t devpts
sudo mount none ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/sys -t sysfs
echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/python ubuntu-${{matrix.os.release}} main" > rusoft-python.list
echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/backports ubuntu-${{matrix.os.release}} main" > rusoft-backports.list
echo "# deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/packages ubuntu-${{matrix.os.release}} main" > rusoft-packages.list
echo " deb [trusted=yes] http://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu ${{matrix.os.release}} main" > deadsnakes.list
echo " deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/python ubuntu-${{matrix.os.release}} main" > rusoft-python.list
echo " deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/backports ubuntu-${{matrix.os.release}} main" > rusoft-backports.list
echo " deb [trusted=yes] http://packages.rusoft.ru/ppa/rusoft/packages ubuntu-${{matrix.os.release}} main" > rusoft-packages.list
echo "# deb [trusted=yes] http://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu ${{matrix.os.release}} main" > deadsnakes.list
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /usr/bin/apt update
sudo cp -v ./*.list ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/etc/apt/sources.list.d
false && sudo rm -fv ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/etc/apt/trusted.gpg.d/* && sudo rm -fv ./ubuntu-xenial-x86/etc/apt/trusted.gpg
Expand Down Expand Up @@ -96,7 +96,7 @@ jobs:
sudo tar -xvf dist/zstd-$version.tar.gz -C ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}}/build_wheel/
false && sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} env
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} pkg-config libzstd --modversion
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} echo GCC
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} echo GCC-5
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} gcc -v
sudo chroot ./ubuntu-${{matrix.os.release}}-${{matrix.os.arch}} /bin/bash -c "cd /build_wheel/zstd-$version/ && ZSTD_ASM=1 ZSTD_WARNINGS=1 _ZSTD_SMALL=1 LDFLAGS='-Wl,--as-needed -Wl,-s' ZSTD_BUILD_STRIP=1 _ZSTD_SPEED=0 _ZSTD_SPEEDMAX=0 _ZSTD_ASM_BMI2=1 ZSTD_THREADS=1 _ZSTD_EXTERNAL=0 ${{matrix.os.pypkg}} setup.py bdist_wheel"

Expand Down
4 changes: 2 additions & 2 deletions PKG-INFO
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Metadata-Version: 1.1
Name: zstd
Version: 1.5.7.2
Version: 1.5.7.3
Summary: Simple python bindings to Yann Collet ZSTD compression library
Home-page: https://github.com/sergey-dryabzhinsky/python-zstd
Author: Sergey Dryabzhinsky
Author-email: [email protected]
License: BSD
Download-URL: https://github.com/sergey-dryabzhinsky/python-zstd/archive/v1.5.7.2.tar.gz
Download-URL: https://github.com/sergey-dryabzhinsky/python-zstd/archive/v1.5.7.3.tar.gz
Description: Simple ZSTandarD bindings for Python
Keywords: zstd,zstandard,compression
Platform: POSIX
13 changes: 6 additions & 7 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -497,28 +497,27 @@ version (): string|bytes
Since: 1.3.4.3

ZSTD_version (): string|bytes
Returns ZSTD library doted version string.
Returns ZSTD library doted version string, with which are compiled.

Since: 1.3.4.3

ZSTD_version_compiled (): string|bytes
Returns ZSTD library doted version string, wi which are compiled.

Since: 1.5.7.3
Aliases:
- ZSTD_version_compiled (): string|bytes Since: 1.5.7.3

ZSTD_version_loaded (): string|bytes
Returns ZSTD library doted version string, with which currently loaded.

Since: 1.5.7.3

ZSTD_version_number (): int
Returns ZSTD library version in format: MAJOR*100*100 + MINOR*100 + RELEASE.
Returns ZSTD library version, compiled with, in format: MAJOR*100*100 + MINOR*100 + RELEASE.

Since: 1.3.4.3

ZSTD_threads_count (): int
Returns ZSTD determined CPU cores count.
Better to get this nuber as early as possible befor compression starts.
Better to get this nuber as early as possible befor compression starts.

Since: 1.5.4.1

ZSTD_max_threads_count (): int
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# Package version, even external
PKG_VERSION = VERSION
# Minor revision
PKG_VERSION += (2,)
PKG_VERSION += (3,)
PKG_VERSION_STR = ".".join([str(x) for x in PKG_VERSION])
vpath="./version"
if not os.path.exists(vpath):
Expand Down
1 change: 1 addition & 0 deletions src/python-zstd.c
Original file line number Diff line number Diff line change
Expand Up @@ -735,6 +735,7 @@ static int init_py_zstd(PyObject *module) {
Py_INCREF(ZstdError);
PyModule_AddObject(module, "Error", ZstdError);

int32_t threads = UTIL_countAvailableCores();
init_cContext(1, 3);
return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion tests/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class BaseTestZSTD(unittest.TestCase):
VERSION_INT = 10507
# minimal external version, must be >=1.4.0
VERSION_INT_MIN = 1 * 100*100 + 4* 1*100 + 0
PKG_VERSION = "1.5.7.2"
PKG_VERSION = "1.5.7.3"

def helper_version(self):
#if zstd.ZSTD_external():
Expand Down
84 changes: 80 additions & 4 deletions tests/test_speed.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def test_00_system_info(self):
log.info("Bundled libzstd uses assembler? : %r" % zstd.ZSTD_with_asm())
log.info("Bundled libzstd uses threads? :%r" % zstd.ZSTD_with_threads())

def test_compression_speed(self):
def test_compression_speed3(self):
wait = 10
if "ZSTD_FULLTIME_TESTS" in os.environ:
wait = 30
Expand All @@ -27,10 +27,48 @@ def test_compression_speed(self):

endMemoryUsage=get_real_memory_usage()
log.info("end Compression memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
log.info("Compression speed average = %6.2f Mb/sec" % (1.0*sum/1024/1024/wait,))
log.info("Compression speed 3 average = %6.2f Mb/sec" % (1.0*sum/1024/1024/wait,))
log.info("diff Compression memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))

def test_compression_speed19(self):
wait = 10
if "ZSTD_FULLTIME_TESTS" in os.environ:
wait = 30
log.info("\nWait %d seconds..." % wait)
sum = 0
l=len(tDATA)
tbegin = time()
beginMemoryUsage=get_real_memory_usage()
log.info("begin Compression memory usage = %6.2f kb" % (1.0*beginMemoryUsage/1024,))
while time()-tbegin<wait:
cdata = zstd.compress(tDATA,19,0)
sum+=l

endMemoryUsage=get_real_memory_usage()
log.info("end Compression memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
log.info("Compression speed 19 average = %6.2f Mb/sec" % (1.0*sum/1024/1024/wait,))
log.info("diff Compression memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))

def test_compression_speed_minus1(self):
wait = 10
if "ZSTD_FULLTIME_TESTS" in os.environ:
wait = 30
log.info("\nWait %d seconds..." % wait)
sum = 0
l=len(tDATA)
tbegin = time()
beginMemoryUsage=get_real_memory_usage()
log.info("begin Compression memory usage = %6.2f kb" % (1.0*beginMemoryUsage/1024,))
while time()-tbegin<wait:
cdata = zstd.compress(tDATA,-1,0)
sum+=l

endMemoryUsage=get_real_memory_usage()
log.info("end Compression memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
log.info("Compression speed -1 average = %6.2f Mb/sec" % (1.0*sum/1024/1024/wait,))
log.info("diff Compression memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))

def test_compression2_speed_init_context_once(self):
def test_compression2_speed3_init_context_once(self):
wait = 10
if "ZSTD_FULLTIME_TESTS" in os.environ:
wait = 30
Expand All @@ -46,7 +84,45 @@ def test_compression2_speed_init_context_once(self):

endMemoryUsage=get_real_memory_usage()
log.info("end Compression2 memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
log.info("Compression2 speed average = %6.2f Mb/sec" % (1.0*sum/1024/1024/wait,))
log.info("Compression2 speed 3 average = %6.2f Mb/sec" % (1.0*sum/1024/1024/wait,))
log.info("diff Compression2 memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))

def test_compression2_speed19_init_context_once(self):
wait = 10
if "ZSTD_FULLTIME_TESTS" in os.environ:
wait = 30
log.info("\nWait %d seconds..." % wait)
sum = 0
l=len(tDATA)
tbegin = time()
beginMemoryUsage=get_real_memory_usage()
log.info("begin Compression2 memory usage = %6.2f kb" % (1.0*beginMemoryUsage/1024,))
while time()-tbegin<wait:
cdata = zstd.compress2(tDATA,19,0)
sum+=l

endMemoryUsage=get_real_memory_usage()
log.info("end Compression2 memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
log.info("Compression2 speed 19 average = %6.2f Mb/sec" % (1.0*sum/1024/1024/wait,))
log.info("diff Compression2 memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))

def test_compression2_speed_minus1_init_context_once(self):
wait = 10
if "ZSTD_FULLTIME_TESTS" in os.environ:
wait = 30
log.info("\nWait %d seconds..." % wait)
sum = 0
l=len(tDATA)
tbegin = time()
beginMemoryUsage=get_real_memory_usage()
log.info("begin Compression2 memory usage = %6.2f kb" % (1.0*beginMemoryUsage/1024,))
while time()-tbegin<wait:
cdata = zstd.compress2(tDATA,-1,0)
sum+=l

endMemoryUsage=get_real_memory_usage()
log.info("end Compression2 memory usage = %6.2f kb" % (1.0*endMemoryUsage/1024,))
log.info("Compression2 speed -1 average = %6.2f Mb/sec" % (1.0*sum/1024/1024/wait,))
log.info("diff Compression2 memory usage = %6.2f kb" % (1.0*(endMemoryUsage-beginMemoryUsage)/1024,))

def test_compression_speed_no_cpu_cores_cache(self):
Expand Down
2 changes: 1 addition & 1 deletion version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.5.7.2
1.5.7.3
Loading