PPMd compression/decompression library
Project description
PPM(Prediction by partial matching) is a compression algorithm which has several variations of implementations. PPMd is the implementation by Dmitry Shkarin. It is used in the RAR by default and by 7-Zip as one of several possible methods.
ppmd, aka. ppmd-cffi, is a python bindings with PPMd implementation by C language. Core codes are derived from p7zip, portable 7-zip implementation, and now only consist of Ppmd7, PPMd ver.H.
Since 7-zip uses PPMd ver.H and RAR uses PPMd ver.I, the ppmd-cffi is considered compatible with 7-zip’s implementation.
Installation
As usual, you can install ppmd-cffi using python standard pip command. CAUTION: Since it is a bindings with C source code, C compiler should be installed on your operating system.
` pip install ppmd-cffi `
All C source codes are bundled with ppmd-cffi package.
Usage
ppmd-cffi provide two classes. Both class supports context manager, ie. with … as .. syntax.
Encoder
Encoder class provide PPMd encoder. It has encode(), flush() and close() methos.
Decoder
Decoder class pvoride PPMd decoder. It has decode() and close() methods.
Please see test code for a detailed usage.
License
Copyright (C) 2020 Hiroshi Miura
7-Zip Copyright (C) 1999-2010 Igor Pavlov
LZMA SDK Copyright (C) 1999-2010 Igor Pavlov
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for ppmd_cffi-0.2.4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1d501fda5bb07944ab4573c63d6c35b67e8ab473a43bdb93fab21881d7abb41 |
|
MD5 | 0ca7d8a9a55c5443f61e5a318638f383 |
|
BLAKE2b-256 | 320ea6ad453bf0b0af956b3f5bc9ee0427e9a0ec23a16a6737c3c5eebcf9fe3b |
Hashes for ppmd_cffi-0.2.4-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34e8060e42f283c9eee9f6693500219f5bc2426c31a17ec3cfa2833c27a6bf2a |
|
MD5 | ce036d03a74dd0401ec1e0f0f61d10b1 |
|
BLAKE2b-256 | f7b1410d7ca718cbed93c03b9db7b1855681ec21e0b1a3f5eaca9104865d3b2b |
Hashes for ppmd_cffi-0.2.4-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6535becd8923dce4a993c1ad99bbbac6f995b376d33dae5e2923214b26ec46b |
|
MD5 | 6a95d3bdac513d526b032219541d42e5 |
|
BLAKE2b-256 | 689b5e6afcb73d70ef5dba1e7e91d3544badaec017f8e9774994514ca901568c |
Hashes for ppmd_cffi-0.2.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49c369f54dcd0b34f198c9c2150e98b211e0ad90fd878d1f6d5e54467af35723 |
|
MD5 | caf38a63016c1e0aa36ef1d474efc3f1 |
|
BLAKE2b-256 | 4ed11b3909ab8bd549fff6127d06e1ef393c8d71a94231d2c21e6ed18a63f71a |
Hashes for ppmd_cffi-0.2.4-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 393a12f9c00e4cd5db74fb3cad6eaba05869d64a1a0e9daf2eb08fed474aee94 |
|
MD5 | 3064f4632052c559f2a53cde322ad18e |
|
BLAKE2b-256 | 028bbf6a154b185ca3610963de7884166ab7bdcc74a8e2d4883c4bf6a5a5dba5 |
Hashes for ppmd_cffi-0.2.4-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d6c184e69a495505a5c3b1e6fb946b92b3007fa83ea9f3902c029eab1c3187d |
|
MD5 | 7d4153aa9576b0c472efcbec0876c070 |
|
BLAKE2b-256 | 09ee8e32b54941b66b5264f66f3c5445b618999f297daaf465bd02a522c3383a |
Hashes for ppmd_cffi-0.2.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b363e86b6e003ef2a19647f1fed67c0f8a4c68e88542ddfec0a66f25aaa1efa |
|
MD5 | d1f7d6aed5a9ab2b996293132fd634f1 |
|
BLAKE2b-256 | 08250443ad86db2523eb5b5c9c88b65ddfa7be68f77faa2feab857bca8ec864d |
Hashes for ppmd_cffi-0.2.4-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3dc0fe03243bef148b72c62c199a625d33f42ebb5f47a6be402e788291e3e4dc |
|
MD5 | eb0f486c66da47d5ba63c2eba05fe5ec |
|
BLAKE2b-256 | 42176ffaddc77ea8ade35c4b52df9a401a8ab8768eabeb6184c9dcfe2936da9d |
Hashes for ppmd_cffi-0.2.4-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d6ce25592ee8a14a4baf4b27abc037f1d4bb74b86bd3367f45070ef5884111a |
|
MD5 | d7417efeb291ca5bbdfe863061196aa2 |
|
BLAKE2b-256 | 0f6844d1feb0281449d3b8072541d5ba26e852749223beb358783a9315523fec |
Hashes for ppmd_cffi-0.2.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d2b216d1744ace5481a8ef08e8f2335254048ed28966bd4a7a6617bcbcc13eb |
|
MD5 | 918ceffd8074504a1d1a757a62ecad24 |
|
BLAKE2b-256 | 2de82ac8d407f3a57fe0b065bfa1338aabed0ffeda3230c54ce975cc9cdd9161 |
Hashes for ppmd_cffi-0.2.4-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85b4829dacb4375b2244b07df8e8bb696b0f94ff1417d63eb34666ddf7c1fc1a |
|
MD5 | 1bab5286727202a11b9d485876b5b004 |
|
BLAKE2b-256 | ecb6bac60c15574d69c74b4a29541c3a35e1b825f4156851efaa86ec0e2ec4ea |
Hashes for ppmd_cffi-0.2.4-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18bc4d33b3592cce69eaf12a6282c2e1765765851f117645ed18b73e7ac2a27b |
|
MD5 | a2e0dd2b784dff0c6af45cdf18aa9432 |
|
BLAKE2b-256 | c8954b831e11adeab85450facc41e6970db33298d9af5ec6f4804b426d012cc3 |