**hdiffpatch-python** is a Python wrapper around the [HDiffPatch](https://github.com/sisong/HDiffPatch) C++ library, providing binary diff and patch operations with compression support.
<div align="center">

[](https://pypi.python.org/pypi/hdiffpatch-python)
[](https://github.com/BrianPugh/hdiffpatch-python/actions?query=workflow%3Atests)
[](https://codecov.io/github/BrianPugh/hdiffpatch-python?branch=main)
</div>
## Installation
**hdiffpatch** requires Python `>=3.9` and can be installed via:
```bash
pip install hdiffpatch
```
For development installation:
```bash
git clone https://github.com/BrianPugh/hdiffpatch-python.git
cd hdiffpatch-python
poetry install
```
## Quick Start
**hdiffpatch** primarily provides 2 simple functions:
* `diff` for creating a patch.
* `apply` for applying a patch.
### Basic Usage
```python
import hdiffpatch
# Create binary data
old_data = b"Hello, world!"
new_data = b"Hello, HDiffPatch!"
# Create a diff
diff = hdiffpatch.diff(old_data, new_data)
# Apply the diff
result = hdiffpatch.apply(old_data, diff)
assert result == new_data
```
### With Simple Compression
```python
import hdiffpatch
old_data = b"Large binary data..." * 1000
new_data = b"Modified binary data..." * 1000
# Create a compressed diff
diff = hdiffpatch.diff(old_data, new_data, compression="zlib")
# Apply patch
result = hdiffpatch.apply(old_data, diff)
assert result == new_data
```
### With Advanced Compression Configuration
```python
import hdiffpatch
old_data = b"Large binary data..." * 1000
new_data = b"Modified binary data..." * 1000
# Use configuration classes for fine-grained control
config = hdiffpatch.ZlibConfig(level=9, window=12)
diff = hdiffpatch.diff(old_data, new_data, compression=config)
result = hdiffpatch.apply(old_data, diff)
assert result == new_data
```
### Recompressing Diffs
```python
import hdiffpatch
old_data = b"Large binary data..." * 1000
new_data = b"Modified binary data..." * 1000
# Create a diff with zlib compression
diff_zlib = hdiffpatch.diff(old_data, new_data, compression="zlib")
# Recompress the same diff with zstd
diff_zstd = hdiffpatch.recompress(diff_zlib, compression="zstd")
# Remove compression entirely
diff_uncompressed = hdiffpatch.recompress(diff_zlib, compression="none")
# Both diffs produce the same result when applied
result1 = hdiffpatch.apply(old_data, diff_zlib)
result2 = hdiffpatch.apply(old_data, diff_zstd)
assert result1 == result2 == new_data
```
## API Reference
### Core Functions
```python
def diff(old_data, new_data, compression="none", *, validate=True) -> bytes
```
Create a binary diff between two byte sequences.
**Parameters:**
* `old_data` (bytes): Original data.
* `new_data` (bytes): Modified data.
* `compression` (str or config object): Compression type as string (`"none"`, `"zlib"`, `"lzma"`, `"lzma2"`, `"zstd"`, `"bzip2"`, `"tamp"`) or a compression configuration object.
* `validate` (bool): Test that the patch successfully converts `old_data` to `new_data`. This is a computationally inexpensive operation. Defaults to `True`.
**Returns:** `bytes` - Binary diff data that can be used with `apply()` and `old_data` to generate `new_data`.
---
```python
def apply(old_data, diff_data) -> bytes
```
Apply a binary patch to reconstruct new data.
**Parameters:**
* `old_data` (bytes): Original data.
* `diff_data` (bytes): Patch data from `diff()`.
**Returns:** `bytes` - Reconstructed data. The `new_data` that was passed to `diff()`.
---
```python
def recompress(diff_data, compression=None) -> bytes
```
Recompress a diff with a different compression algorithm.
**Parameters:**
* `diff_data` (bytes): The diff data to recompress.
* `compression` (str or config object, optional): Target compression type as string (`"none"`, `"zlib"`, `"lzma"`, `"lzma2"`, `"zstd"`, `"bzip2"`, `"tamp"`) or a compression configuration object. If None, removes compression.
**Returns:** `bytes` - The recompressed diff data
### Compression Configuration
For advanced compression control, **hdiffpatch** provides configuration classes for each compression algorithm:
#### ZStdConfig
Fine-grained control over Zstandard compression:
```python
# Basic configuration
config = hdiffpatch.ZStdConfig(level=15, window=20, workers=2)
# Preset configurations
config = hdiffpatch.ZStdConfig.fast() # Optimized for speed
config = hdiffpatch.ZStdConfig.balanced() # Balanced speed/compression
config = hdiffpatch.ZStdConfig.best_compression() # Maximum compression
config = hdiffpatch.ZStdConfig.minimal_memory() # Minimal memory usage
# Use with diff
diff = hdiffpatch.diff(old_data, new_data, compression=config)
```
**Parameters:**
* `level` (1-22): Compression level, higher = better compression
* `window` (10-27): Window size as log2, larger = better compression
* `workers` (0-200): Number of threads, 0 = single-threaded
#### ZlibConfig
Fine-grained control over zlib compression:
```python
# Basic configuration
config = hdiffpatch.ZlibConfig(
level=9,
memory_level=8,
window=15,
strategy=hdiffpatch.ZlibStrategy.DEFAULT
)
# Preset configurations
config = hdiffpatch.ZlibConfig.fast()
config = hdiffpatch.ZlibConfig.balanced()
config = hdiffpatch.ZlibConfig.best_compression()
config = hdiffpatch.ZlibConfig.minimal_memory()
config = hdiffpatch.ZlibConfig.png_optimized() # Optimized for PNG-like data
```
**Parameters:**
* `level` (0-9): Compression level
* `memory_level` (1-9): Memory usage level
* `window` (9-15): Window size as power of 2
* `strategy`: Compression strategy (`DEFAULT`, `FILTERED`, `HUFFMAN_ONLY`, `RLE`, `FIXED`)
#### LzmaConfig and Lzma2Config
Fine-grained control over LZMA compression:
```python
# LZMA configuration
config = hdiffpatch.LzmaConfig(level=9, window=23, thread_num=1)
# LZMA2 configuration (supports more threads)
config = hdiffpatch.Lzma2Config(level=9, window=23, thread_num=4)
# Preset configurations available for both
config = hdiffpatch.LzmaConfig.fast()
config = hdiffpatch.LzmaConfig.balanced()
config = hdiffpatch.LzmaConfig.best_compression()
config = hdiffpatch.LzmaConfig.minimal_memory()
```
**Parameters:**
* `level` (0-9): Compression level
* `window` (12-30): Window size as log2
* `thread_num`: Number of threads (1-2 for LZMA, 1-64 for LZMA2)
#### BZip2Config
Fine-grained control over bzip2 compression:
```python
config = hdiffpatch.BZip2Config(level=9, work_factor=30)
# Preset configurations
config = hdiffpatch.BZip2Config.fast()
config = hdiffpatch.BZip2Config.balanced()
config = hdiffpatch.BZip2Config.best_compression()
config = hdiffpatch.BZip2Config.minimal_memory()
```
**Parameters:**
* `level` (1-9): Compression level
* `work_factor` (0-250): Work factor for worst-case scenarios
#### TampConfig
Fine-grained control over [Tamp](https://github.com/BrianPugh/tamp) compression (embedded-friendly):
```python
config = hdiffpatch.TampConfig(window=10)
# Preset configurations
config = hdiffpatch.TampConfig.fast()
config = hdiffpatch.TampConfig.balanced()
config = hdiffpatch.TampConfig.best_compression()
config = hdiffpatch.TampConfig.minimal_memory()
```
**Parameters:**
* `window` (8-15): Window size as power of 2
### Exceptions
```python
hdiffpatch.HDiffPatchError
```
## Compression Performance
Different compression algorithms offer trade-offs between compression ratio and speed:
* **`zlib`**: Good balance of speed and compression. Very common.
* **`zstd`**: Fast compression with good ratios.
* **`lzma`/`lzma2`**: Very high compression ratios, slower.
* **`bzip2`**: Good compression, moderate speed
* **`tamp`**: Embedded-friendly compression, minimal memory usage.
### Basic Compression Comparison
```python
import hdiffpatch
# Large repetitive data
old_data = b"A" * 10000 + b"B" * 10000
new_data = b"A" * 10000 + b"C" * 10000
# Compare compression effectiveness
for compression in ["none", "zlib", "zstd", "lzma", "bzip2", "tamp"]:
diff = hdiffpatch.diff(old_data, new_data, compression=compression)
print(f"{compression}: {len(diff)} bytes")
```
### Advanced Configuration Comparison
```python
import hdiffpatch
# Compare different configuration approaches
configs = {
"zstd_fast": hdiffpatch.ZStdConfig.fast(),
"zstd_best": hdiffpatch.ZStdConfig.best_compression(),
"zlib_balanced": hdiffpatch.ZlibConfig.balanced(),
"lzma2_custom": hdiffpatch.Lzma2Config(level=6, window=20, thread_num=4),
}
for name, config in configs.items():
diff = hdiffpatch.diff(old_data, new_data, compression=config)
print(f"{name}: {len(diff)} bytes")
```
### Real-World Example: MicroPython Firmware
Here's a comprehensive comparison using actual MicroPython firmware files with a 12-bit window size (4096 bytes). This window size was chosen because it is typically a good trade-off between memory-usage and compression-performance for embedded targets.
* [RPI_PICO-20241129-v1.24.1.uf2](https://micropython.org/resources/firmware/RPI_PICO-20241129-v1.24.1.uf2): 651 KB
* [RPI_PICO-20250415-v1.25.0.uf2](https://micropython.org/resources/firmware/RPI_PICO-20250415-v1.25.0.uf2): 652 KB
Since we're using compression for the diff, a natural question would be: "If I'm adding a decompression library to my target project, then how much smaller is the patch compared to just compressing the firmware?"
To answer this question, we compare the size of the compressed patch to the compressed firmware.
| Algorithm | Size (HDiffPatch) | Size (firmware) | Improvement |
|-----------|-------------------|-----------------|-------------|
| none | 209.7 KB | 652.0 KB | 3.11x |
| tamp | 143.1 KB | 322.8 KB | 2.26x |
| zstd | 133.4 KB | 277.6 KB | 2.08x |
| zlib | 125.5 KB | 251.8 KB | 2.01x |
| bzip2 | 128.6 KB | 246.2 KB | 1.91x |
| lzma | 116.9 KB | 222.7 KB | 1.91x |
In this example, using **hdiffpatch** resulted in a ~3x smaller update when compared to a naive uncompressed firmware update, and ~2x smaller when comparing against an equivalently-compressed firmware update.
To reproduce these results:
```bash
poetry run python tools/micropython-binary-demo.py
```
Raw data
{
"_id": null,
"home_page": "https://github.com/BrianPugh/hdiffpatch-python",
"name": "hdiffpatch",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "binary, diff, patch, compression, hdiffpatch, delta, update",
"author": "Brian Pugh",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/97/8c/0c1e6e17ec7c04f21ece20a590fa9e2a038308516bd2fa66c02945bf018a/hdiffpatch-1.0.0.tar.gz",
"platform": null,
"description": "**hdiffpatch-python** is a Python wrapper around the [HDiffPatch](https://github.com/sisong/HDiffPatch) C++ library, providing binary diff and patch operations with compression support.\n\n<div align=\"center\">\n\n\n[](https://pypi.python.org/pypi/hdiffpatch-python)\n[](https://github.com/BrianPugh/hdiffpatch-python/actions?query=workflow%3Atests)\n[](https://codecov.io/github/BrianPugh/hdiffpatch-python?branch=main)\n\n</div>\n\n## Installation\n\n**hdiffpatch** requires Python `>=3.9` and can be installed via:\n\n```bash\npip install hdiffpatch\n```\n\nFor development installation:\n\n```bash\ngit clone https://github.com/BrianPugh/hdiffpatch-python.git\ncd hdiffpatch-python\npoetry install\n```\n\n## Quick Start\n\n**hdiffpatch** primarily provides 2 simple functions:\n\n* `diff` for creating a patch.\n* `apply` for applying a patch.\n\n### Basic Usage\n\n```python\nimport hdiffpatch\n\n# Create binary data\nold_data = b\"Hello, world!\"\nnew_data = b\"Hello, HDiffPatch!\"\n\n# Create a diff\ndiff = hdiffpatch.diff(old_data, new_data)\n\n# Apply the diff\nresult = hdiffpatch.apply(old_data, diff)\nassert result == new_data\n```\n\n### With Simple Compression\n\n```python\nimport hdiffpatch\n\nold_data = b\"Large binary data...\" * 1000\nnew_data = b\"Modified binary data...\" * 1000\n\n# Create a compressed diff\ndiff = hdiffpatch.diff(old_data, new_data, compression=\"zlib\")\n\n# Apply patch\nresult = hdiffpatch.apply(old_data, diff)\nassert result == new_data\n```\n\n### With Advanced Compression Configuration\n\n```python\nimport hdiffpatch\n\nold_data = b\"Large binary data...\" * 1000\nnew_data = b\"Modified binary data...\" * 1000\n\n# Use configuration classes for fine-grained control\nconfig = hdiffpatch.ZlibConfig(level=9, window=12)\n\ndiff = hdiffpatch.diff(old_data, new_data, compression=config)\nresult = hdiffpatch.apply(old_data, diff)\nassert result == new_data\n```\n\n### Recompressing Diffs\n\n```python\nimport hdiffpatch\n\nold_data = b\"Large binary data...\" * 1000\nnew_data = b\"Modified binary data...\" * 1000\n\n# Create a diff with zlib compression\ndiff_zlib = hdiffpatch.diff(old_data, new_data, compression=\"zlib\")\n\n# Recompress the same diff with zstd\ndiff_zstd = hdiffpatch.recompress(diff_zlib, compression=\"zstd\")\n\n# Remove compression entirely\ndiff_uncompressed = hdiffpatch.recompress(diff_zlib, compression=\"none\")\n\n# Both diffs produce the same result when applied\nresult1 = hdiffpatch.apply(old_data, diff_zlib)\nresult2 = hdiffpatch.apply(old_data, diff_zstd)\nassert result1 == result2 == new_data\n```\n\n## API Reference\n\n### Core Functions\n\n```python\ndef diff(old_data, new_data, compression=\"none\", *, validate=True) -> bytes\n```\n\nCreate a binary diff between two byte sequences.\n\n**Parameters:**\n\n* `old_data` (bytes): Original data.\n* `new_data` (bytes): Modified data.\n* `compression` (str or config object): Compression type as string (`\"none\"`, `\"zlib\"`, `\"lzma\"`, `\"lzma2\"`, `\"zstd\"`, `\"bzip2\"`, `\"tamp\"`) or a compression configuration object.\n* `validate` (bool): Test that the patch successfully converts `old_data` to `new_data`. This is a computationally inexpensive operation. Defaults to `True`.\n\n**Returns:** `bytes` - Binary diff data that can be used with `apply()` and `old_data` to generate `new_data`.\n\n---\n\n```python\ndef apply(old_data, diff_data) -> bytes\n```\n\nApply a binary patch to reconstruct new data.\n\n**Parameters:**\n\n* `old_data` (bytes): Original data.\n* `diff_data` (bytes): Patch data from `diff()`.\n\n**Returns:** `bytes` - Reconstructed data. The `new_data` that was passed to `diff()`.\n\n---\n\n```python\ndef recompress(diff_data, compression=None) -> bytes\n```\n\nRecompress a diff with a different compression algorithm.\n\n**Parameters:**\n\n* `diff_data` (bytes): The diff data to recompress.\n* `compression` (str or config object, optional): Target compression type as string (`\"none\"`, `\"zlib\"`, `\"lzma\"`, `\"lzma2\"`, `\"zstd\"`, `\"bzip2\"`, `\"tamp\"`) or a compression configuration object. If None, removes compression.\n\n**Returns:** `bytes` - The recompressed diff data\n\n### Compression Configuration\n\nFor advanced compression control, **hdiffpatch** provides configuration classes for each compression algorithm:\n\n#### ZStdConfig\n\nFine-grained control over Zstandard compression:\n\n```python\n# Basic configuration\nconfig = hdiffpatch.ZStdConfig(level=15, window=20, workers=2)\n\n# Preset configurations\nconfig = hdiffpatch.ZStdConfig.fast() # Optimized for speed\nconfig = hdiffpatch.ZStdConfig.balanced() # Balanced speed/compression\nconfig = hdiffpatch.ZStdConfig.best_compression() # Maximum compression\nconfig = hdiffpatch.ZStdConfig.minimal_memory() # Minimal memory usage\n\n# Use with diff\ndiff = hdiffpatch.diff(old_data, new_data, compression=config)\n```\n\n**Parameters:**\n\n* `level` (1-22): Compression level, higher = better compression\n* `window` (10-27): Window size as log2, larger = better compression\n* `workers` (0-200): Number of threads, 0 = single-threaded\n\n#### ZlibConfig\n\nFine-grained control over zlib compression:\n\n```python\n# Basic configuration\nconfig = hdiffpatch.ZlibConfig(\n level=9,\n memory_level=8,\n window=15,\n strategy=hdiffpatch.ZlibStrategy.DEFAULT\n)\n\n# Preset configurations\nconfig = hdiffpatch.ZlibConfig.fast()\nconfig = hdiffpatch.ZlibConfig.balanced()\nconfig = hdiffpatch.ZlibConfig.best_compression()\nconfig = hdiffpatch.ZlibConfig.minimal_memory()\nconfig = hdiffpatch.ZlibConfig.png_optimized() # Optimized for PNG-like data\n```\n\n**Parameters:**\n\n* `level` (0-9): Compression level\n* `memory_level` (1-9): Memory usage level\n* `window` (9-15): Window size as power of 2\n* `strategy`: Compression strategy (`DEFAULT`, `FILTERED`, `HUFFMAN_ONLY`, `RLE`, `FIXED`)\n\n#### LzmaConfig and Lzma2Config\n\nFine-grained control over LZMA compression:\n\n```python\n# LZMA configuration\nconfig = hdiffpatch.LzmaConfig(level=9, window=23, thread_num=1)\n\n# LZMA2 configuration (supports more threads)\nconfig = hdiffpatch.Lzma2Config(level=9, window=23, thread_num=4)\n\n# Preset configurations available for both\nconfig = hdiffpatch.LzmaConfig.fast()\nconfig = hdiffpatch.LzmaConfig.balanced()\nconfig = hdiffpatch.LzmaConfig.best_compression()\nconfig = hdiffpatch.LzmaConfig.minimal_memory()\n```\n\n**Parameters:**\n\n* `level` (0-9): Compression level\n* `window` (12-30): Window size as log2\n* `thread_num`: Number of threads (1-2 for LZMA, 1-64 for LZMA2)\n\n#### BZip2Config\n\nFine-grained control over bzip2 compression:\n\n```python\nconfig = hdiffpatch.BZip2Config(level=9, work_factor=30)\n\n# Preset configurations\nconfig = hdiffpatch.BZip2Config.fast()\nconfig = hdiffpatch.BZip2Config.balanced()\nconfig = hdiffpatch.BZip2Config.best_compression()\nconfig = hdiffpatch.BZip2Config.minimal_memory()\n```\n\n**Parameters:**\n\n* `level` (1-9): Compression level\n* `work_factor` (0-250): Work factor for worst-case scenarios\n\n#### TampConfig\n\nFine-grained control over [Tamp](https://github.com/BrianPugh/tamp) compression (embedded-friendly):\n\n```python\nconfig = hdiffpatch.TampConfig(window=10)\n\n# Preset configurations\nconfig = hdiffpatch.TampConfig.fast()\nconfig = hdiffpatch.TampConfig.balanced()\nconfig = hdiffpatch.TampConfig.best_compression()\nconfig = hdiffpatch.TampConfig.minimal_memory()\n```\n\n**Parameters:**\n\n* `window` (8-15): Window size as power of 2\n\n### Exceptions\n\n```python\nhdiffpatch.HDiffPatchError\n```\n\n## Compression Performance\n\nDifferent compression algorithms offer trade-offs between compression ratio and speed:\n\n* **`zlib`**: Good balance of speed and compression. Very common.\n* **`zstd`**: Fast compression with good ratios.\n* **`lzma`/`lzma2`**: Very high compression ratios, slower.\n* **`bzip2`**: Good compression, moderate speed\n* **`tamp`**: Embedded-friendly compression, minimal memory usage.\n\n### Basic Compression Comparison\n\n```python\nimport hdiffpatch\n\n# Large repetitive data\nold_data = b\"A\" * 10000 + b\"B\" * 10000\nnew_data = b\"A\" * 10000 + b\"C\" * 10000\n\n# Compare compression effectiveness\nfor compression in [\"none\", \"zlib\", \"zstd\", \"lzma\", \"bzip2\", \"tamp\"]:\n diff = hdiffpatch.diff(old_data, new_data, compression=compression)\n print(f\"{compression}: {len(diff)} bytes\")\n```\n\n### Advanced Configuration Comparison\n\n```python\nimport hdiffpatch\n\n# Compare different configuration approaches\nconfigs = {\n \"zstd_fast\": hdiffpatch.ZStdConfig.fast(),\n \"zstd_best\": hdiffpatch.ZStdConfig.best_compression(),\n \"zlib_balanced\": hdiffpatch.ZlibConfig.balanced(),\n \"lzma2_custom\": hdiffpatch.Lzma2Config(level=6, window=20, thread_num=4),\n}\n\nfor name, config in configs.items():\n diff = hdiffpatch.diff(old_data, new_data, compression=config)\n print(f\"{name}: {len(diff)} bytes\")\n```\n\n### Real-World Example: MicroPython Firmware\n\nHere's a comprehensive comparison using actual MicroPython firmware files with a 12-bit window size (4096 bytes). This window size was chosen because it is typically a good trade-off between memory-usage and compression-performance for embedded targets.\n\n* [RPI_PICO-20241129-v1.24.1.uf2](https://micropython.org/resources/firmware/RPI_PICO-20241129-v1.24.1.uf2): 651 KB\n* [RPI_PICO-20250415-v1.25.0.uf2](https://micropython.org/resources/firmware/RPI_PICO-20250415-v1.25.0.uf2): 652 KB\n\nSince we're using compression for the diff, a natural question would be: \"If I'm adding a decompression library to my target project, then how much smaller is the patch compared to just compressing the firmware?\"\nTo answer this question, we compare the size of the compressed patch to the compressed firmware.\n\n| Algorithm | Size (HDiffPatch) | Size (firmware) | Improvement |\n|-----------|-------------------|-----------------|-------------|\n| none | 209.7 KB | 652.0 KB | 3.11x |\n| tamp | 143.1 KB | 322.8 KB | 2.26x |\n| zstd | 133.4 KB | 277.6 KB | 2.08x |\n| zlib | 125.5 KB | 251.8 KB | 2.01x |\n| bzip2 | 128.6 KB | 246.2 KB | 1.91x |\n| lzma | 116.9 KB | 222.7 KB | 1.91x |\n\nIn this example, using **hdiffpatch** resulted in a ~3x smaller update when compared to a naive uncompressed firmware update, and ~2x smaller when comparing against an equivalently-compressed firmware update.\n\nTo reproduce these results:\n\n```bash\npoetry run python tools/micropython-binary-demo.py\n```\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Python wrapper around HDiffPatch C++ library for efficient binary diff/patch operations.",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/BrianPugh/hdiffpatch-python",
"Repository": "https://github.com/BrianPugh/hdiffpatch-python"
},
"split_keywords": [
"binary",
" diff",
" patch",
" compression",
" hdiffpatch",
" delta",
" update"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "097cc8fa98ded3afd0dee5f3d5b52f1e0e9d475785bd11bf10042f1d0b2abbe3",
"md5": "28f5d8680cfb4c579f276a48fecca035",
"sha256": "2648cedeca74854a8ab67acde2e805f1898c2a30e3cdd4ee8221dff1ebf2c1c2"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "28f5d8680cfb4c579f276a48fecca035",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 9857737,
"upload_time": "2025-07-16T02:40:50",
"upload_time_iso_8601": "2025-07-16T02:40:50.875143Z",
"url": "https://files.pythonhosted.org/packages/09/7c/c8fa98ded3afd0dee5f3d5b52f1e0e9d475785bd11bf10042f1d0b2abbe3/hdiffpatch-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cba276b29c74cbdad0515d97480634badcd7238db11cdd4fe8677aad19be87b3",
"md5": "3ccbf00a35da58371f30d8792db52c92",
"sha256": "671ef4406db7115120885bac48cf9318d37f0007b253c964c72ec389cee51ee4"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "3ccbf00a35da58371f30d8792db52c92",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 9738331,
"upload_time": "2025-07-16T02:40:52",
"upload_time_iso_8601": "2025-07-16T02:40:52.855289Z",
"url": "https://files.pythonhosted.org/packages/cb/a2/76b29c74cbdad0515d97480634badcd7238db11cdd4fe8677aad19be87b3/hdiffpatch-1.0.0-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "23a72c3fcad71dacc753b88c1975222c9bc76d3b2b5f5f3582fecbb682a53aaf",
"md5": "3fa1fe0eeeeb09d3c194d5ff3e25bbc2",
"sha256": "22343a8c0f0688394f121ee821cbc6e1c038b4f76ae53fde9ab9599cacc943ee"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "3fa1fe0eeeeb09d3c194d5ff3e25bbc2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 14676049,
"upload_time": "2025-07-16T02:40:55",
"upload_time_iso_8601": "2025-07-16T02:40:55.272450Z",
"url": "https://files.pythonhosted.org/packages/23/a7/2c3fcad71dacc753b88c1975222c9bc76d3b2b5f5f3582fecbb682a53aaf/hdiffpatch-1.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d9a6643cdaceb5246fa3ebb945dbff79d72d65bfe53ed16e609536cfe350973a",
"md5": "94ee1ea9f0112f5ff6f08fe62df29941",
"sha256": "8563c14b75f2e06eb8595b7a41718c64817525d1b7d7bc563e6b0c033ddf4abf"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "94ee1ea9f0112f5ff6f08fe62df29941",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 14722547,
"upload_time": "2025-07-16T02:40:57",
"upload_time_iso_8601": "2025-07-16T02:40:57.359341Z",
"url": "https://files.pythonhosted.org/packages/d9/a6/643cdaceb5246fa3ebb945dbff79d72d65bfe53ed16e609536cfe350973a/hdiffpatch-1.0.0-cp310-cp310-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9077d8c6a84e00df897b72713459f0f7f19f651a59d436fe3ed160d7065db6fb",
"md5": "28863a7d44ab3a4e5fe0ce3c14e8cfee",
"sha256": "74c4fb2818f59c56921e953c6e89e118c6591aea2c1036211e128d53512cef0c"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"has_sig": false,
"md5_digest": "28863a7d44ab3a4e5fe0ce3c14e8cfee",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 14701591,
"upload_time": "2025-07-16T02:40:59",
"upload_time_iso_8601": "2025-07-16T02:40:59.418062Z",
"url": "https://files.pythonhosted.org/packages/90/77/d8c6a84e00df897b72713459f0f7f19f651a59d436fe3ed160d7065db6fb/hdiffpatch-1.0.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "45bac658e1b56c735925dadcf0366c5710501889ae68f069edbd2a5bf0c604e1",
"md5": "ed5485aae1c48e30b6c59d6ea655af96",
"sha256": "440198eff1f598af549a88ae719ab00715442b9d2742eeeac5586118b22c7abc"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "ed5485aae1c48e30b6c59d6ea655af96",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 15000016,
"upload_time": "2025-07-16T02:41:01",
"upload_time_iso_8601": "2025-07-16T02:41:01.799492Z",
"url": "https://files.pythonhosted.org/packages/45/ba/c658e1b56c735925dadcf0366c5710501889ae68f069edbd2a5bf0c604e1/hdiffpatch-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a6ab176ca0f2b5f3113cd2861330f7c80e3f9f14dd2d910762da1bc5e850047b",
"md5": "28ad4923063b84bd78f4eb2dbee7825a",
"sha256": "35ea375ea88bdf8529dae6252c144f014461421bedce0225be94ba518972c935"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "28ad4923063b84bd78f4eb2dbee7825a",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 15511109,
"upload_time": "2025-07-16T02:41:04",
"upload_time_iso_8601": "2025-07-16T02:41:04.299216Z",
"url": "https://files.pythonhosted.org/packages/a6/ab/176ca0f2b5f3113cd2861330f7c80e3f9f14dd2d910762da1bc5e850047b/hdiffpatch-1.0.0-cp310-cp310-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b5272e6305d17d37700497961ba397530a4833703a2714273a87710bbcba7c15",
"md5": "da441f2ee5ce34927e490b5c715040fb",
"sha256": "46f8542e409f78e06f0f92f2b8c4d4baec4ac73874ea9d3fffe8c9191a0640fd"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "da441f2ee5ce34927e490b5c715040fb",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 15992377,
"upload_time": "2025-07-16T02:41:06",
"upload_time_iso_8601": "2025-07-16T02:41:06.424476Z",
"url": "https://files.pythonhosted.org/packages/b5/27/2e6305d17d37700497961ba397530a4833703a2714273a87710bbcba7c15/hdiffpatch-1.0.0-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "be1d2633ff9c3d1df87c9e33216d823811de91c9ea814a545c484c2cc19eeb60",
"md5": "e753c0322f066ae7e999f1ba150094ec",
"sha256": "79089d4ac0e2ea5d92ba772d2ed5ddf31f5738bb889af833324012cf1871c14f"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl",
"has_sig": false,
"md5_digest": "e753c0322f066ae7e999f1ba150094ec",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 15735578,
"upload_time": "2025-07-16T02:41:08",
"upload_time_iso_8601": "2025-07-16T02:41:08.792746Z",
"url": "https://files.pythonhosted.org/packages/be/1d/2633ff9c3d1df87c9e33216d823811de91c9ea814a545c484c2cc19eeb60/hdiffpatch-1.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "eb1966c406ff971af6f71b8d48d86f826eb64f113edb9340c391a5db4fffff1b",
"md5": "a24291e297b2d558717f9f2b2e75441c",
"sha256": "c5b4e5b8a480776715665edac17a5c3652c4d469435f9646615c3925fd85347d"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "a24291e297b2d558717f9f2b2e75441c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 16059626,
"upload_time": "2025-07-16T02:41:10",
"upload_time_iso_8601": "2025-07-16T02:41:10.779856Z",
"url": "https://files.pythonhosted.org/packages/eb/19/66c406ff971af6f71b8d48d86f826eb64f113edb9340c391a5db4fffff1b/hdiffpatch-1.0.0-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "da14e76c6699e81893a5618634da93aff8cab14e90664f0aefa9af196d0b4de3",
"md5": "df9986e6981bb7694ba08e3ddfa80763",
"sha256": "22ebe4d0178ac1f205c7c0b7698ae31fedb2f2e3d7e7821d44541f85004acf7f"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "df9986e6981bb7694ba08e3ddfa80763",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 9418369,
"upload_time": "2025-07-16T02:41:13",
"upload_time_iso_8601": "2025-07-16T02:41:13.142509Z",
"url": "https://files.pythonhosted.org/packages/da/14/e76c6699e81893a5618634da93aff8cab14e90664f0aefa9af196d0b4de3/hdiffpatch-1.0.0-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "07133ef8e1cf4255a2f1cd098a43fd18a8f4bed3a674148d31feaba17e8e50d4",
"md5": "3e3b9ea8c52799bdcf2076cea3d0ff80",
"sha256": "192cbc9fcbd62fd1ae9ea2dcbf8de5b2b4acf427c97de3bdc0aa78ace9f5a636"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "3e3b9ea8c52799bdcf2076cea3d0ff80",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "<4.0,>=3.9",
"size": 9463404,
"upload_time": "2025-07-16T02:41:15",
"upload_time_iso_8601": "2025-07-16T02:41:15.389258Z",
"url": "https://files.pythonhosted.org/packages/07/13/3ef8e1cf4255a2f1cd098a43fd18a8f4bed3a674148d31feaba17e8e50d4/hdiffpatch-1.0.0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0d59a927e4b03993b687efcda642754f73130daa6b834feff6dba25fe3f21612",
"md5": "a2e724dbcb7eb837b05f3d451865a00b",
"sha256": "c0eea318ffdba8c2e284d8112d58dfbd1295325bc2029c2047bd8f60767fc45a"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "a2e724dbcb7eb837b05f3d451865a00b",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 9858649,
"upload_time": "2025-07-16T02:41:17",
"upload_time_iso_8601": "2025-07-16T02:41:17.478303Z",
"url": "https://files.pythonhosted.org/packages/0d/59/a927e4b03993b687efcda642754f73130daa6b834feff6dba25fe3f21612/hdiffpatch-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a0aa7d250d2faf4d8f2c8b74cb16ead676fc258a3b78609975f88b80df0f1172",
"md5": "7f3d670531f8d5ab342ab34e2a13a011",
"sha256": "0d1f3a92130783a5d5fbb1ea75477f9fe4333b5fff20ea69941651a9759e97b4"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7f3d670531f8d5ab342ab34e2a13a011",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 9739501,
"upload_time": "2025-07-16T02:41:19",
"upload_time_iso_8601": "2025-07-16T02:41:19.305194Z",
"url": "https://files.pythonhosted.org/packages/a0/aa/7d250d2faf4d8f2c8b74cb16ead676fc258a3b78609975f88b80df0f1172/hdiffpatch-1.0.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "432f98ce77119d4c43e35e7a564573c9fb29defefc5836d56dba1cf9d9242116",
"md5": "cbf9665f166a90d7450cc44d6d75e497",
"sha256": "edb27ba808ee8b2ce8f5e1da6f4d51a0f9f4aee3c0dd11805c246361204aeffd"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "cbf9665f166a90d7450cc44d6d75e497",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 14703008,
"upload_time": "2025-07-16T02:41:21",
"upload_time_iso_8601": "2025-07-16T02:41:21.168716Z",
"url": "https://files.pythonhosted.org/packages/43/2f/98ce77119d4c43e35e7a564573c9fb29defefc5836d56dba1cf9d9242116/hdiffpatch-1.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "75995147c3d1ac30ab8af55b4cf9e3c8bb37f940cbd6195f1112d237d00b2e91",
"md5": "17bc8eaa0c42924d01377f0df8bb00df",
"sha256": "aa9bdf455bf6676b55ba540d0a8fcac745818f4ec0a667758ab1f807526e821f"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "17bc8eaa0c42924d01377f0df8bb00df",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 14749706,
"upload_time": "2025-07-16T02:41:23",
"upload_time_iso_8601": "2025-07-16T02:41:23.482383Z",
"url": "https://files.pythonhosted.org/packages/75/99/5147c3d1ac30ab8af55b4cf9e3c8bb37f940cbd6195f1112d237d00b2e91/hdiffpatch-1.0.0-cp311-cp311-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8d2cd38a5a8c875aac0cb3f18eef7984ab3ccba16ce40817380df376bb1e9f74",
"md5": "d3ccd5be4ff1263e74c9f9d1014c9313",
"sha256": "cadae131dea26254a81bee35e45f7f2a90d38d0a7f3bbb1f9c23bf99f61338fc"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"has_sig": false,
"md5_digest": "d3ccd5be4ff1263e74c9f9d1014c9313",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 14728368,
"upload_time": "2025-07-16T02:41:25",
"upload_time_iso_8601": "2025-07-16T02:41:25.891436Z",
"url": "https://files.pythonhosted.org/packages/8d/2c/d38a5a8c875aac0cb3f18eef7984ab3ccba16ce40817380df376bb1e9f74/hdiffpatch-1.0.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8e8b1569659c0b50944213bf6e04bb533cc3f138dd4c3a82a8131549c79c78eb",
"md5": "6b69fea95baca8c39a67854e1f819f6c",
"sha256": "2ff1f4eab9d26fe5517ec72d1ec6d5209793be9217a302aa82d24361f9331176"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6b69fea95baca8c39a67854e1f819f6c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 15028746,
"upload_time": "2025-07-16T02:41:27",
"upload_time_iso_8601": "2025-07-16T02:41:27.961838Z",
"url": "https://files.pythonhosted.org/packages/8e/8b/1569659c0b50944213bf6e04bb533cc3f138dd4c3a82a8131549c79c78eb/hdiffpatch-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "958610cfb01417077decbad21602de789819357fd8bf05e8160e256f52b25e32",
"md5": "6ed7978b56d98f737a98f68b9835fba3",
"sha256": "4c67a08d85371e0766628480b8f75bd7c1192e67a550238f29f898b46792044a"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "6ed7978b56d98f737a98f68b9835fba3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 15538247,
"upload_time": "2025-07-16T02:41:30",
"upload_time_iso_8601": "2025-07-16T02:41:30.362350Z",
"url": "https://files.pythonhosted.org/packages/95/86/10cfb01417077decbad21602de789819357fd8bf05e8160e256f52b25e32/hdiffpatch-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c967d47723ed0c30acafe1e21cbeaa395acd2607142c3e8aaf43c037dca8d9ad",
"md5": "cf2f90d0f315818bdb71fc9c14deebe5",
"sha256": "e7a33645d7b03ea38178629fe5464925f38a605b761d4607023b6a2a5338ff1e"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "cf2f90d0f315818bdb71fc9c14deebe5",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 16016398,
"upload_time": "2025-07-16T02:41:32",
"upload_time_iso_8601": "2025-07-16T02:41:32.414920Z",
"url": "https://files.pythonhosted.org/packages/c9/67/d47723ed0c30acafe1e21cbeaa395acd2607142c3e8aaf43c037dca8d9ad/hdiffpatch-1.0.0-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a8e4ecf6d0c4f1c761f854a7da15e3cfbd5ea651c0649f8708650754cba4dc6f",
"md5": "06d7802296b7f66f6177f55f8debc1ee",
"sha256": "adc7544ecea644bed1ec964a9a9ace99266511136c008dc6b188350a1b6ef7d0"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl",
"has_sig": false,
"md5_digest": "06d7802296b7f66f6177f55f8debc1ee",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 15763265,
"upload_time": "2025-07-16T02:41:34",
"upload_time_iso_8601": "2025-07-16T02:41:34.474461Z",
"url": "https://files.pythonhosted.org/packages/a8/e4/ecf6d0c4f1c761f854a7da15e3cfbd5ea651c0649f8708650754cba4dc6f/hdiffpatch-1.0.0-cp311-cp311-musllinux_1_2_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f0def7407722c1f39ce17a11979a59aa8d58832e166758109d2cb8e9f82d558d",
"md5": "ba3eaf7c24192ce0cd9a79372f6331bd",
"sha256": "cb7a5e3ffe05418672c26daef720db5f844de2fae2311ff60a520c5060edafef"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "ba3eaf7c24192ce0cd9a79372f6331bd",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 16087201,
"upload_time": "2025-07-16T02:41:36",
"upload_time_iso_8601": "2025-07-16T02:41:36.794150Z",
"url": "https://files.pythonhosted.org/packages/f0/de/f7407722c1f39ce17a11979a59aa8d58832e166758109d2cb8e9f82d558d/hdiffpatch-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ce13afea180cb68b8eef3325f47b6889dc7a1cba693e912148df362d6fc92309",
"md5": "cc50bf08b776d6ae1d937d800901867d",
"sha256": "2003622194a0efac449f84681d172d3b6f4090c9842744f5091003c982e5fc1e"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "cc50bf08b776d6ae1d937d800901867d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 9418420,
"upload_time": "2025-07-16T02:41:38",
"upload_time_iso_8601": "2025-07-16T02:41:38.788368Z",
"url": "https://files.pythonhosted.org/packages/ce/13/afea180cb68b8eef3325f47b6889dc7a1cba693e912148df362d6fc92309/hdiffpatch-1.0.0-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1b34f8006ee1ce394f095bbbd4f0a20ec77c5fb9143636650ee04803aea5134b",
"md5": "4af02a57ac8a6f31b2181d193f1db9dd",
"sha256": "041b4e169e8c6ebc982d79886f7533c60d5a4211eb846a044350d451bd3b06ae"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "4af02a57ac8a6f31b2181d193f1db9dd",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "<4.0,>=3.9",
"size": 9463725,
"upload_time": "2025-07-16T02:41:40",
"upload_time_iso_8601": "2025-07-16T02:41:40.977493Z",
"url": "https://files.pythonhosted.org/packages/1b/34/f8006ee1ce394f095bbbd4f0a20ec77c5fb9143636650ee04803aea5134b/hdiffpatch-1.0.0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f2620c843dd2c20f98db00e0935f53756a89eb3dd9cef882740e4a7be82949ad",
"md5": "99cc78b6704f26acc9139b33c76a7896",
"sha256": "82d64f41119a8e80adfa9eb3cc8072fd586b5a833c8ecb03f6b4b994095e36d1"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "99cc78b6704f26acc9139b33c76a7896",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 9857388,
"upload_time": "2025-07-16T02:41:42",
"upload_time_iso_8601": "2025-07-16T02:41:42.762997Z",
"url": "https://files.pythonhosted.org/packages/f2/62/0c843dd2c20f98db00e0935f53756a89eb3dd9cef882740e4a7be82949ad/hdiffpatch-1.0.0-cp312-cp312-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5ae0630e12e5b84b81cbf510e785d1f7821e31e31b4ee39876b6049860179428",
"md5": "190d0051b634a673d3aa2c8ec04b9e03",
"sha256": "f0d7fb92415a7a4901b796028ac7c048cd150ffdd20b9975bb6e4bb78cb387fb"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "190d0051b634a673d3aa2c8ec04b9e03",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 9738354,
"upload_time": "2025-07-16T02:41:44",
"upload_time_iso_8601": "2025-07-16T02:41:44.541075Z",
"url": "https://files.pythonhosted.org/packages/5a/e0/630e12e5b84b81cbf510e785d1f7821e31e31b4ee39876b6049860179428/hdiffpatch-1.0.0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c76bd3f744102a152de4451f64d5a66fc6ac8542ec7db05caca217821df75898",
"md5": "a801f19d1833617486dcd2bda39219be",
"sha256": "685f048c08c5f056e9f46eddbc452ea035a19b936f47e6063d006591682d9ebb"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "a801f19d1833617486dcd2bda39219be",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 14693858,
"upload_time": "2025-07-16T02:41:46",
"upload_time_iso_8601": "2025-07-16T02:41:46.696591Z",
"url": "https://files.pythonhosted.org/packages/c7/6b/d3f744102a152de4451f64d5a66fc6ac8542ec7db05caca217821df75898/hdiffpatch-1.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bb1f606ebbc0cbf37881386f9098f26d3bda6ca89657bfc9c92591a949d41cde",
"md5": "32db87daf87c4e702a3dc9462bf8edac",
"sha256": "e3bcc9eafa1fe6aed764ba9237c14b6fe5d08691a67b67e8f12efc02521e3a00"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "32db87daf87c4e702a3dc9462bf8edac",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 14738147,
"upload_time": "2025-07-16T02:41:50",
"upload_time_iso_8601": "2025-07-16T02:41:50.240369Z",
"url": "https://files.pythonhosted.org/packages/bb/1f/606ebbc0cbf37881386f9098f26d3bda6ca89657bfc9c92591a949d41cde/hdiffpatch-1.0.0-cp312-cp312-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e9643287696c9e81d5caabbb366005f0fe77c2a38112ef8337dd87c191253b4a",
"md5": "127f76d505c06156fce667ad3104fc3a",
"sha256": "dc4f873cb2cda2cc7e42091b631e82db4ddd7a529ebb6c63833e8c7424dd1fa1"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"has_sig": false,
"md5_digest": "127f76d505c06156fce667ad3104fc3a",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 14713601,
"upload_time": "2025-07-16T02:41:52",
"upload_time_iso_8601": "2025-07-16T02:41:52.369673Z",
"url": "https://files.pythonhosted.org/packages/e9/64/3287696c9e81d5caabbb366005f0fe77c2a38112ef8337dd87c191253b4a/hdiffpatch-1.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "27ec2ae52cc9e486706da39a3e540b7aeebb52e1630d949d2d60294114324cac",
"md5": "7b51853338b829fc6d948518db09b870",
"sha256": "37adc048a6330db54ecc99cdb948e21132f7e0d784d8be62aca41e492dbd11a5"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7b51853338b829fc6d948518db09b870",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 15026137,
"upload_time": "2025-07-16T02:41:55",
"upload_time_iso_8601": "2025-07-16T02:41:55.711623Z",
"url": "https://files.pythonhosted.org/packages/27/ec/2ae52cc9e486706da39a3e540b7aeebb52e1630d949d2d60294114324cac/hdiffpatch-1.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b5e57f9332414a81edb0c5ceedcca73b977307f0d0df50749f515714a55faf0f",
"md5": "2138d90690c31ad9b8f12d55992eacb2",
"sha256": "0876a43445742c408c4101144513792159a31da51eb525efa729ab8a9b8f7ddb"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "2138d90690c31ad9b8f12d55992eacb2",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 15528875,
"upload_time": "2025-07-16T02:41:57",
"upload_time_iso_8601": "2025-07-16T02:41:57.766175Z",
"url": "https://files.pythonhosted.org/packages/b5/e5/7f9332414a81edb0c5ceedcca73b977307f0d0df50749f515714a55faf0f/hdiffpatch-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c9b52f100716eda45b98cd9f544dbbd64d2962945f906064cf17bc35550579d1",
"md5": "024066a856a5d01aa0c9f70bd4d062b9",
"sha256": "3e2920040315d166e6f18e36f8ae543fdeb3cf8e8714e6bbe9c69067c703662d"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "024066a856a5d01aa0c9f70bd4d062b9",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 16002764,
"upload_time": "2025-07-16T02:41:59",
"upload_time_iso_8601": "2025-07-16T02:41:59.819824Z",
"url": "https://files.pythonhosted.org/packages/c9/b5/2f100716eda45b98cd9f544dbbd64d2962945f906064cf17bc35550579d1/hdiffpatch-1.0.0-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7b037590694cb2483274e66cd253440cad4307cc38b128aedbdddd3920159b50",
"md5": "506d79484f11bd9e6c65b68eee459d06",
"sha256": "49695b84243832c581e64e5afff63237eca5c5215de56257195ecfee3e5e18a3"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl",
"has_sig": false,
"md5_digest": "506d79484f11bd9e6c65b68eee459d06",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 15736498,
"upload_time": "2025-07-16T02:42:02",
"upload_time_iso_8601": "2025-07-16T02:42:02.156669Z",
"url": "https://files.pythonhosted.org/packages/7b/03/7590694cb2483274e66cd253440cad4307cc38b128aedbdddd3920159b50/hdiffpatch-1.0.0-cp312-cp312-musllinux_1_2_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7056c12272552af2b1880573bb81b3093f2fb1240894f2d9dc95b0d0b9c27cc4",
"md5": "4aa1e7fb1c445846535524f49cec40fa",
"sha256": "97c1abf08ad8ed648ae8f543d22a51c7fcce39ec8a19076c936e98a9e72d2466"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "4aa1e7fb1c445846535524f49cec40fa",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 16079621,
"upload_time": "2025-07-16T02:42:04",
"upload_time_iso_8601": "2025-07-16T02:42:04.271219Z",
"url": "https://files.pythonhosted.org/packages/70/56/c12272552af2b1880573bb81b3093f2fb1240894f2d9dc95b0d0b9c27cc4/hdiffpatch-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2c0a803d7a1696af60d6a41d044c58dfcd9fb0610f43e51fdab9e8b74962cdca",
"md5": "2d856cb00a42bc1379fb1598510621bc",
"sha256": "f3028af48be4b19e4fa0e8f416d598ed3a4be58ff3fab647656aab5bf7b3fc68"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "2d856cb00a42bc1379fb1598510621bc",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 9416254,
"upload_time": "2025-07-16T02:42:06",
"upload_time_iso_8601": "2025-07-16T02:42:06.612753Z",
"url": "https://files.pythonhosted.org/packages/2c/0a/803d7a1696af60d6a41d044c58dfcd9fb0610f43e51fdab9e8b74962cdca/hdiffpatch-1.0.0-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3fd4c8ac11e67c31b1af6c24bf5b3258a667c290165bfbfc976268c7e3e09205",
"md5": "c76b8f7b99794499ee5393d6479bd001",
"sha256": "92319badcfe902c9842d03df62e32093d5962c4610ad7f524f4753ebfb3662db"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "c76b8f7b99794499ee5393d6479bd001",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "<4.0,>=3.9",
"size": 9461923,
"upload_time": "2025-07-16T02:42:08",
"upload_time_iso_8601": "2025-07-16T02:42:08.738770Z",
"url": "https://files.pythonhosted.org/packages/3f/d4/c8ac11e67c31b1af6c24bf5b3258a667c290165bfbfc976268c7e3e09205/hdiffpatch-1.0.0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cb9562a04c2f289fb57d14a1ddaa48d7a87a5ed45a30863112d2924dd585d993",
"md5": "90ba22dfcc55bfb3defc981137f3492d",
"sha256": "79f5b29b53a6a044a06754ed12b2a4c0d2136d92b31238d78dc0e2697d2bc961"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "90ba22dfcc55bfb3defc981137f3492d",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 9856996,
"upload_time": "2025-07-16T02:42:10",
"upload_time_iso_8601": "2025-07-16T02:42:10.604003Z",
"url": "https://files.pythonhosted.org/packages/cb/95/62a04c2f289fb57d14a1ddaa48d7a87a5ed45a30863112d2924dd585d993/hdiffpatch-1.0.0-cp313-cp313-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f2cc942403b19b3a650413ba62af27e9eed22d088468ebe63e7ff1c676062a65",
"md5": "60dbad2091f24358fede6687eb2acf2d",
"sha256": "6d0a11aeebdb0d04281a52c6c4909fbb106ae05fc17fd217ecd2742ff45f6906"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "60dbad2091f24358fede6687eb2acf2d",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 9737539,
"upload_time": "2025-07-16T02:42:13",
"upload_time_iso_8601": "2025-07-16T02:42:13.101325Z",
"url": "https://files.pythonhosted.org/packages/f2/cc/942403b19b3a650413ba62af27e9eed22d088468ebe63e7ff1c676062a65/hdiffpatch-1.0.0-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "946c37ae762b14aabd7b898c26acc3006df7b6ee4f5a3557230eafd3e9ba44da",
"md5": "b4b3a70c406a06e9a621fd1811685c0c",
"sha256": "c3536d372ac6a536aa4078f3a3b95c7fd9246098b0c3b86ff7f0c02120946133"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "b4b3a70c406a06e9a621fd1811685c0c",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 14688982,
"upload_time": "2025-07-16T02:42:15",
"upload_time_iso_8601": "2025-07-16T02:42:15.780252Z",
"url": "https://files.pythonhosted.org/packages/94/6c/37ae762b14aabd7b898c26acc3006df7b6ee4f5a3557230eafd3e9ba44da/hdiffpatch-1.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "999ec232ef6d53b203c4380d610b0040995f73fdc56cf11c54674787488e5576",
"md5": "23893fd0809b6a87cc0275c7ce4095b5",
"sha256": "475e81f2bce16cb48fcf2aeb4a6ba229bde50cff8f9493286b905816de604858"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "23893fd0809b6a87cc0275c7ce4095b5",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 14733702,
"upload_time": "2025-07-16T02:42:17",
"upload_time_iso_8601": "2025-07-16T02:42:17.758177Z",
"url": "https://files.pythonhosted.org/packages/99/9e/c232ef6d53b203c4380d610b0040995f73fdc56cf11c54674787488e5576/hdiffpatch-1.0.0-cp313-cp313-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4469d89441f7a1b1db6ffef68c0f7003a1e81a1587fb3ddc67d49581c0aabee0",
"md5": "1f997f4841a7c654b4982e421b661440",
"sha256": "cdf0d49e8907493dea50a65a8d3c71bf0cc11b0793a20e48b1ab6d7ca3a8a51e"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"has_sig": false,
"md5_digest": "1f997f4841a7c654b4982e421b661440",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 14708469,
"upload_time": "2025-07-16T02:42:21",
"upload_time_iso_8601": "2025-07-16T02:42:21.203247Z",
"url": "https://files.pythonhosted.org/packages/44/69/d89441f7a1b1db6ffef68c0f7003a1e81a1587fb3ddc67d49581c0aabee0/hdiffpatch-1.0.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "10237b0ae968b913fa55ff3a60ec75cbc7fb631476b3f24c8e203b80640be906",
"md5": "6faefd84e9d25a89b958fb17507a8ba0",
"sha256": "0fea666a901b65b7b219c3628e5cbb32dbf6da7debf8b3068b06e283f338fc79"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6faefd84e9d25a89b958fb17507a8ba0",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 15020618,
"upload_time": "2025-07-16T02:42:23",
"upload_time_iso_8601": "2025-07-16T02:42:23.265654Z",
"url": "https://files.pythonhosted.org/packages/10/23/7b0ae968b913fa55ff3a60ec75cbc7fb631476b3f24c8e203b80640be906/hdiffpatch-1.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e5f717fbfaeacbaba69cbd7e333eff91b981bda38033981ae5984180b73fd859",
"md5": "a33d22ac74374942ffb62fff7b7eec6f",
"sha256": "c6a5d6ef68d4d141780b322e557bd0d0503d2db3cf1baf99a77353cea483cf95"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "a33d22ac74374942ffb62fff7b7eec6f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 15524694,
"upload_time": "2025-07-16T02:42:25",
"upload_time_iso_8601": "2025-07-16T02:42:25.252878Z",
"url": "https://files.pythonhosted.org/packages/e5/f7/17fbfaeacbaba69cbd7e333eff91b981bda38033981ae5984180b73fd859/hdiffpatch-1.0.0-cp313-cp313-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ad97a7dfc393c5cccdbcb442bfcfccca73fc587981e4605ce0f12ea77ce82ddf",
"md5": "ed6dd36387b7b299198746f7897cc0e9",
"sha256": "dce8cfbd8c3bd4965e47c17875fb5abc9d1b1bfd6949f23c00d17043abd237d0"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "ed6dd36387b7b299198746f7897cc0e9",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 15998863,
"upload_time": "2025-07-16T02:42:27",
"upload_time_iso_8601": "2025-07-16T02:42:27.455953Z",
"url": "https://files.pythonhosted.org/packages/ad/97/a7dfc393c5cccdbcb442bfcfccca73fc587981e4605ce0f12ea77ce82ddf/hdiffpatch-1.0.0-cp313-cp313-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b67352cabde05e334351ce21b9b33185c23f4e5bd2b5f15c90f07b8abf6da26b",
"md5": "b88f5bf16eb4aa6464da618c1cf4b159",
"sha256": "5133838c7fe6fa09307827b4ff697419e6a0dd44efc1b58c65a5e80ef0620641"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-musllinux_1_2_ppc64le.whl",
"has_sig": false,
"md5_digest": "b88f5bf16eb4aa6464da618c1cf4b159",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 15732679,
"upload_time": "2025-07-16T02:42:29",
"upload_time_iso_8601": "2025-07-16T02:42:29.478161Z",
"url": "https://files.pythonhosted.org/packages/b6/73/52cabde05e334351ce21b9b33185c23f4e5bd2b5f15c90f07b8abf6da26b/hdiffpatch-1.0.0-cp313-cp313-musllinux_1_2_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "87b9291c6be447a35b3f35a7f1140909b2c29df2048cd81ce0de9b35edac7ec5",
"md5": "86148d684bfb9cd7c53f9566f0e84aa5",
"sha256": "f742d223ebc64b397f4e4cd7ca8ae1f715f287026c819a8a39ef2c6e8b090500"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "86148d684bfb9cd7c53f9566f0e84aa5",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 16072684,
"upload_time": "2025-07-16T02:42:31",
"upload_time_iso_8601": "2025-07-16T02:42:31.506285Z",
"url": "https://files.pythonhosted.org/packages/87/b9/291c6be447a35b3f35a7f1140909b2c29df2048cd81ce0de9b35edac7ec5/hdiffpatch-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2df98d2b2501fb06015bd8e407b6cabc6e7119d940629990eaa33151b0207665",
"md5": "1fd12913cc821ef83df0e21c32e25f3c",
"sha256": "7ccb80ae52b90d069d2abd5220696a350aca26bb0e6280863eae5268bf9095bd"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "1fd12913cc821ef83df0e21c32e25f3c",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 9416137,
"upload_time": "2025-07-16T02:42:33",
"upload_time_iso_8601": "2025-07-16T02:42:33.389525Z",
"url": "https://files.pythonhosted.org/packages/2d/f9/8d2b2501fb06015bd8e407b6cabc6e7119d940629990eaa33151b0207665/hdiffpatch-1.0.0-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "11f236ce7607ac2b78a280c3097f1dfad3432b9f7e7165a98a595a8640af94ec",
"md5": "14cd17f52ffef406caf9d82d7143eb62",
"sha256": "57d7318412f9bed26b04510f49f5a838f85419b91b96187e9ac8ca9b9c5dfcaf"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "14cd17f52ffef406caf9d82d7143eb62",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": "<4.0,>=3.9",
"size": 9461983,
"upload_time": "2025-07-16T02:42:35",
"upload_time_iso_8601": "2025-07-16T02:42:35.370111Z",
"url": "https://files.pythonhosted.org/packages/11/f2/36ce7607ac2b78a280c3097f1dfad3432b9f7e7165a98a595a8640af94ec/hdiffpatch-1.0.0-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2f31932f56c2855255a2da0e4fccd27cf7ed92d1724c7cded05367468b4f0b52",
"md5": "c9112eedb48796de444d744ab4a2b598",
"sha256": "c0f4139783aaecde6e2d4b699a00b2a9f3e5949621271183f95e34de7323c679"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "c9112eedb48796de444d744ab4a2b598",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 9858372,
"upload_time": "2025-07-16T02:42:37",
"upload_time_iso_8601": "2025-07-16T02:42:37.263044Z",
"url": "https://files.pythonhosted.org/packages/2f/31/932f56c2855255a2da0e4fccd27cf7ed92d1724c7cded05367468b4f0b52/hdiffpatch-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4d280364ecae0c7863c2364c64093488d4d8c22691f4c37ae66f744a1d4b83e6",
"md5": "cdd639ac623402ebd091fa67a42d8709",
"sha256": "af3453cd6103c5a5670f15b4892a0e1699fbed35e253fca4f07489b4103247f1"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "cdd639ac623402ebd091fa67a42d8709",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 9739119,
"upload_time": "2025-07-16T02:42:39",
"upload_time_iso_8601": "2025-07-16T02:42:39.439871Z",
"url": "https://files.pythonhosted.org/packages/4d/28/0364ecae0c7863c2364c64093488d4d8c22691f4c37ae66f744a1d4b83e6/hdiffpatch-1.0.0-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "41545fa63545824ddd8e553e5358dfb158fca09f3670869e08de961a643a46bf",
"md5": "d285d0aabad105f95cb61aec5bc83353",
"sha256": "9fea3e92a2e3e3dbc440413f85963d0e2fa4bc6a5f177fe028e7ddedfeec3d14"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "d285d0aabad105f95cb61aec5bc83353",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 14677681,
"upload_time": "2025-07-16T02:42:41",
"upload_time_iso_8601": "2025-07-16T02:42:41.860766Z",
"url": "https://files.pythonhosted.org/packages/41/54/5fa63545824ddd8e553e5358dfb158fca09f3670869e08de961a643a46bf/hdiffpatch-1.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "08866c77724ca601c75023284b5de875f684a7c9dee53bbe277e0625a150cb32",
"md5": "df4c7b6b2590cb401b081fb03ddbaebc",
"sha256": "4dadbf2182b66e731a972e62b1bd578d4ee800ffe9089a8da31f6003dd8d0b22"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "df4c7b6b2590cb401b081fb03ddbaebc",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 14724615,
"upload_time": "2025-07-16T02:42:44",
"upload_time_iso_8601": "2025-07-16T02:42:44.543257Z",
"url": "https://files.pythonhosted.org/packages/08/86/6c77724ca601c75023284b5de875f684a7c9dee53bbe277e0625a150cb32/hdiffpatch-1.0.0-cp39-cp39-manylinux_2_17_i686.manylinux_2_12_i686.manylinux2010_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7eae1bd2bf1fcf8a2f0c1b2bb17e85162c22db5c261739b7f80d8bd68b283eb7",
"md5": "9ba81f5a992bde273aaf1dc041bed5f3",
"sha256": "d573735d9c1a3a836add2ec4645a50678de9313a6161421b7941279168810e24"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"has_sig": false,
"md5_digest": "9ba81f5a992bde273aaf1dc041bed5f3",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 14704650,
"upload_time": "2025-07-16T02:42:46",
"upload_time_iso_8601": "2025-07-16T02:42:46.509077Z",
"url": "https://files.pythonhosted.org/packages/7e/ae/1bd2bf1fcf8a2f0c1b2bb17e85162c22db5c261739b7f80d8bd68b283eb7/hdiffpatch-1.0.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b3bf4492a0cdac19c4bed1f71742c3b7b2a5889b45d4714070b4fbaa5dbecce3",
"md5": "1edd95972148bba9b177437373bf8d07",
"sha256": "75891a8e61ef7abfa71959bf50caf44c99589a8bf41398c4039eb09054dd9fdc"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1edd95972148bba9b177437373bf8d07",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 15000912,
"upload_time": "2025-07-16T02:42:48",
"upload_time_iso_8601": "2025-07-16T02:42:48.913773Z",
"url": "https://files.pythonhosted.org/packages/b3/bf/4492a0cdac19c4bed1f71742c3b7b2a5889b45d4714070b4fbaa5dbecce3/hdiffpatch-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "be836c8d99986a0943caaef1de5e5f8ba26b3e3b47482056bcc468766047232e",
"md5": "648f708b28f9470b0576a678334a0197",
"sha256": "c32be59781d3224acf8a0df80c809fe3253f8ce086975f37c7d81fe0d294bae3"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "648f708b28f9470b0576a678334a0197",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 15513172,
"upload_time": "2025-07-16T02:42:50",
"upload_time_iso_8601": "2025-07-16T02:42:50.913763Z",
"url": "https://files.pythonhosted.org/packages/be/83/6c8d99986a0943caaef1de5e5f8ba26b3e3b47482056bcc468766047232e/hdiffpatch-1.0.0-cp39-cp39-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "83fc023d069d107e903f0edc2e11c90f1437e7c3226ddc92f65a741af6c1597b",
"md5": "1360a88c4e885f8aa918c543cd2e84ef",
"sha256": "9c64b2fb5af57207cd95f48c3d890e02cb9ca6cff6c150888954e2bb7e06b82c"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "1360a88c4e885f8aa918c543cd2e84ef",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 15993662,
"upload_time": "2025-07-16T02:42:52",
"upload_time_iso_8601": "2025-07-16T02:42:52.963338Z",
"url": "https://files.pythonhosted.org/packages/83/fc/023d069d107e903f0edc2e11c90f1437e7c3226ddc92f65a741af6c1597b/hdiffpatch-1.0.0-cp39-cp39-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2ffc24b7b324977b3b77d74f122bfd7c3a9a7c971808408ae9be3ef8c0168f75",
"md5": "8e068707754dd27cae4104e9cbfafc01",
"sha256": "4abc71c2d713b24b4dc4fc64dc30399aa93ec3bb9440a4c088d5c4f31e48a11c"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-musllinux_1_2_ppc64le.whl",
"has_sig": false,
"md5_digest": "8e068707754dd27cae4104e9cbfafc01",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 15738140,
"upload_time": "2025-07-16T02:42:55",
"upload_time_iso_8601": "2025-07-16T02:42:55.704136Z",
"url": "https://files.pythonhosted.org/packages/2f/fc/24b7b324977b3b77d74f122bfd7c3a9a7c971808408ae9be3ef8c0168f75/hdiffpatch-1.0.0-cp39-cp39-musllinux_1_2_ppc64le.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "94c78e333f1e777bb257db16abe733c8d611ee339084abd9d22fab96ad375992",
"md5": "bd25d209eedc4199384a31f633e1939a",
"sha256": "afde880fdbadf96d3ff840ef59cd943480e57585b335d699d6213da292bab705"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "bd25d209eedc4199384a31f633e1939a",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 16059140,
"upload_time": "2025-07-16T02:42:57",
"upload_time_iso_8601": "2025-07-16T02:42:57.782624Z",
"url": "https://files.pythonhosted.org/packages/94/c7/8e333f1e777bb257db16abe733c8d611ee339084abd9d22fab96ad375992/hdiffpatch-1.0.0-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e6242c958ba7d8f8ff14fbae4756be8089eff5ede2231653438cf223ecb25474",
"md5": "dc6a53d114a60a0c39dbe8b933b6a788",
"sha256": "aa7364b5cfbeaea1b8ccd900133ffab598a072a749ee3324325293663f49f05e"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "dc6a53d114a60a0c39dbe8b933b6a788",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 9418911,
"upload_time": "2025-07-16T02:42:59",
"upload_time_iso_8601": "2025-07-16T02:42:59.739732Z",
"url": "https://files.pythonhosted.org/packages/e6/24/2c958ba7d8f8ff14fbae4756be8089eff5ede2231653438cf223ecb25474/hdiffpatch-1.0.0-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0ca38d366c4efe15c66da23997836d5e71fa00a67a731543b0383bbb59c2e4eb",
"md5": "d3fa3d791888c8be5c1809a2897a3103",
"sha256": "97ff1184671c7cee21d057ece95a288cee7a35ade4189b864934e0eea00e54f7"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "d3fa3d791888c8be5c1809a2897a3103",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "<4.0,>=3.9",
"size": 9463927,
"upload_time": "2025-07-16T02:43:01",
"upload_time_iso_8601": "2025-07-16T02:43:01.549034Z",
"url": "https://files.pythonhosted.org/packages/0c/a3/8d366c4efe15c66da23997836d5e71fa00a67a731543b0383bbb59c2e4eb/hdiffpatch-1.0.0-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "978c0c1e6e17ec7c04f21ece20a590fa9e2a038308516bd2fa66c02945bf018a",
"md5": "de756942fb384465bd287e2ffca26a74",
"sha256": "6c69eca18893d8272d6ee2158f587179051a3edb7ae1538ab233a5dec6abd7cf"
},
"downloads": -1,
"filename": "hdiffpatch-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "de756942fb384465bd287e2ffca26a74",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 7979395,
"upload_time": "2025-07-16T02:43:03",
"upload_time_iso_8601": "2025-07-16T02:43:03.293153Z",
"url": "https://files.pythonhosted.org/packages/97/8c/0c1e6e17ec7c04f21ece20a590fa9e2a038308516bd2fa66c02945bf018a/hdiffpatch-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-16 02:43:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "BrianPugh",
"github_project": "hdiffpatch-python",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "hdiffpatch"
}