<p align="center">
<a href="https://github.com/pydicom/pylibjpeg-rle/actions?query=workflow%3Aunit-tests"><img alt="Build status" src="https://github.com/pydicom/pylibjpeg-rle/workflows/unit-tests/badge.svg"></a>
<a href="https://codecov.io/gh/pydicom/pylibjpeg-rle"><img alt="Test coverage" src="https://codecov.io/gh/pydicom/pylibjpeg-rle/branch/main/graph/badge.svg"></a>
<a href="https://pypi.org/project/pylibjpeg-rle/"><img alt="PyPI versions" src="https://img.shields.io/pypi/v/pylibjpeg-rle"></a>
<a href="https://www.python.org/"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/pylibjpeg-rle.svg"></a>
<a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
</p>
## pylibjpeg-rle
A fast DICOM ([PackBits](https://en.wikipedia.org/wiki/PackBits)) RLE plugin for [pylibjpeg](https://github.com/pydicom/pylibjpeg), written in Rust with a Python wrapper.
Linux, MacOS and Windows are all supported.
### Installation
#### Installing the current release
```bash
pip install pylibjpeg-rle
```
#### Installing the development version
Make sure [Python](https://www.python.org/), [Git](https://git-scm.com/) and
[Rust](https://www.rust-lang.org/) are installed. For Windows, you also need to install
[Microsoft's C++ Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16).
```bash
git clone https://github.com/pydicom/pylibjpeg-rle
cd pylibjpeg-rle
python -m pip install .
```
### Supported Transfer Syntaxes
| UID | Description | Decoding | Encoding |
| --- | --- | --- | --- |
| 1.2.840.10008.1.2.5 | RLE Lossless | Yes | Yes |
### Usage
#### Decoding
##### With pylibjpeg
```python
from pydicom import dcmread
from pydicom.data import get_testdata_file
ds = dcmread(get_testdata_file("OBXXXX1A_rle.dcm"))
arr = ds.pixel_array
```
##### Standalone with pydicom
Alternatively you can use the included functions to decode a given dataset:
```python
from rle import pixel_array, generate_frames
# Return the entire Pixel Data as an ndarray
arr = pixel_array(ds)
# Generator function that only processes 1 frame at a time,
# may help reduce memory usage when dealing with large Pixel Data
for arr in generate_frames(ds):
print(arr.shape)
```
#### Encoding
##### Standalone with pydicom
Convert uncompressed pixel data to RLE encoding and save:
```python
from pydicom import dcmread
from pydicom.data import get_testdata_file
from pydicom.uid import RLELossless
from rle import pixel_data
# Get the uncompressed pixel data
ds = dcmread(get_testdata_file("OBXXXX1A.dcm"))
arr = ds.pixel_array
# RLE encode and encapsulate `arr`
ds.PixelData = pixel_data(arr, ds)
# Set the correct *Transfer Syntax UID*
ds.file_meta.TransferSyntaxUID = RLELossless
ds.save_as('as_rle.dcm')
```
### Benchmarks
#### Decoding
Time per 1000 decodes, pydicom's default RLE decoder vs. pylibjpeg-rle:
| Dataset | Pixels | Bytes | pydicom | pylibjpeg-rle |
| --- | --- | --- | --- | --- |
| OBXXXX1A_rle.dcm | 480,000 | 480,000 | 5.7 s | 1.1 s |
| OBXXXX1A_rle_2frame.dcm | 960,000 | 960,000 | 11.5 s | 2.1 s |
| SC_rgb_rle.dcm | 10,000 | 30,000 | 0.28 s | 0.19 s |
| SC_rgb_rle_2frame.dcm | 20,000 | 60,000 | 0.45 s | 0.28 s |
| MR_small_RLE.dcm | 4,096 | 8,192 | 0.46 s | 0.15 s |
| emri_small_RLE.dcm | 40,960 | 81,920 | 1.8 s | 0.67 s |
| SC_rgb_rle_16bit.dcm | 10,000 | 60,000 | 0.48 s | 0.25 s |
| SC_rgb_rle_16bit_2frame.dcm | 20,000 | 120,000 | 0.86 s | 0.39 s |
| rtdose_rle_1frame.dcm | 100 | 400 | 0.16 s | 0.13 s |
| rtdose_rle.dcm | 1,500 | 6,000 | 1.0 s | 0.64 s |
| SC_rgb_rle_32bit.dcm | 10,000 | 120,000 | 0.82 s | 0.35 s |
| SC_rgb_rle_32bit_2frame.dcm | 20,000 | 240,000 | 1.5 s | 0.60 s |
#### Encoding
Time per 1000 encodes, pydicom's default RLE encoder vs. pylibjpeg-rle and [python-gdcm](https://github.com/tfmoraes/python-gdcm):
| Dataset | Pixels | Bytes | pydicom | pylibjpeg-rle | python-gdcm |
| --- | --- | --- | --- | --- | --- |
| OBXXXX1A.dcm | 480,000 | 480,000 | 30.6 s | 1.4 s | 1.5 s |
| SC_rgb.dcm | 10,000 | 30,000 | 1.9 s | 0.11 s | 0.21 s |
| MR_small.dcm | 4,096 | 8,192 | 3.0 s | 0.11 s | 0.29 s |
| SC_rgb_16bit.dcm | 10,000 | 60,000 | 3.6 s | 0.18 s | 0.28 s |
| rtdose_1frame.dcm | 100 | 400 | 0.28 s | 0.04 s | 0.14 s |
| SC_rgb_32bit.dcm | 10,000 | 120,000 | 7.1 s | 0.32 s | 0.43 s |
Raw data
{
"_id": null,
"home_page": null,
"name": "pylibjpeg-rle",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "dicom pydicom python rle pylibjpeg rust",
"author": "pylibjpeg-rle contributors",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/65/30/d5b334bd0038a9def052398ef588b5e99d7ed274ef513bb2ab041ad18f91/pylibjpeg_rle-2.2.0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n<a href=\"https://github.com/pydicom/pylibjpeg-rle/actions?query=workflow%3Aunit-tests\"><img alt=\"Build status\" src=\"https://github.com/pydicom/pylibjpeg-rle/workflows/unit-tests/badge.svg\"></a>\n<a href=\"https://codecov.io/gh/pydicom/pylibjpeg-rle\"><img alt=\"Test coverage\" src=\"https://codecov.io/gh/pydicom/pylibjpeg-rle/branch/main/graph/badge.svg\"></a>\n<a href=\"https://pypi.org/project/pylibjpeg-rle/\"><img alt=\"PyPI versions\" src=\"https://img.shields.io/pypi/v/pylibjpeg-rle\"></a>\n<a href=\"https://www.python.org/\"><img alt=\"Python versions\" src=\"https://img.shields.io/pypi/pyversions/pylibjpeg-rle.svg\"></a>\n<a href=\"https://github.com/psf/black\"><img alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"></a>\n</p>\n\n## pylibjpeg-rle\n\nA fast DICOM ([PackBits](https://en.wikipedia.org/wiki/PackBits)) RLE plugin for [pylibjpeg](https://github.com/pydicom/pylibjpeg), written in Rust with a Python wrapper.\n\nLinux, MacOS and Windows are all supported.\n\n### Installation\n#### Installing the current release\n```bash\npip install pylibjpeg-rle\n```\n#### Installing the development version\n\nMake sure [Python](https://www.python.org/), [Git](https://git-scm.com/) and\n[Rust](https://www.rust-lang.org/) are installed. For Windows, you also need to install\n[Microsoft's C++ Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16).\n```bash\ngit clone https://github.com/pydicom/pylibjpeg-rle\ncd pylibjpeg-rle\npython -m pip install .\n```\n\n### Supported Transfer Syntaxes\n\n| UID | Description | Decoding | Encoding |\n| --- | --- | --- | --- |\n| 1.2.840.10008.1.2.5 | RLE Lossless | Yes | Yes |\n\n### Usage\n#### Decoding\n##### With pylibjpeg\n\n```python\nfrom pydicom import dcmread\nfrom pydicom.data import get_testdata_file\n\nds = dcmread(get_testdata_file(\"OBXXXX1A_rle.dcm\"))\narr = ds.pixel_array\n```\n\n##### Standalone with pydicom\nAlternatively you can use the included functions to decode a given dataset:\n```python\nfrom rle import pixel_array, generate_frames\n\n# Return the entire Pixel Data as an ndarray\narr = pixel_array(ds)\n\n# Generator function that only processes 1 frame at a time,\n# may help reduce memory usage when dealing with large Pixel Data\nfor arr in generate_frames(ds):\n print(arr.shape)\n```\n\n#### Encoding\n##### Standalone with pydicom\n\nConvert uncompressed pixel data to RLE encoding and save:\n```python\nfrom pydicom import dcmread\nfrom pydicom.data import get_testdata_file\nfrom pydicom.uid import RLELossless\n\nfrom rle import pixel_data\n\n# Get the uncompressed pixel data\nds = dcmread(get_testdata_file(\"OBXXXX1A.dcm\"))\narr = ds.pixel_array\n\n# RLE encode and encapsulate `arr`\nds.PixelData = pixel_data(arr, ds)\n# Set the correct *Transfer Syntax UID*\nds.file_meta.TransferSyntaxUID = RLELossless\nds.save_as('as_rle.dcm')\n```\n\n### Benchmarks\n#### Decoding\n\nTime per 1000 decodes, pydicom's default RLE decoder vs. pylibjpeg-rle:\n\n| Dataset | Pixels | Bytes | pydicom | pylibjpeg-rle |\n| --- | --- | --- | --- | --- |\n| OBXXXX1A_rle.dcm | 480,000 | 480,000 | 5.7 s | 1.1 s |\n| OBXXXX1A_rle_2frame.dcm | 960,000 | 960,000 | 11.5 s | 2.1 s |\n| SC_rgb_rle.dcm | 10,000 | 30,000 | 0.28 s | 0.19 s |\n| SC_rgb_rle_2frame.dcm | 20,000 | 60,000 | 0.45 s | 0.28 s |\n| MR_small_RLE.dcm | 4,096 | 8,192 | 0.46 s | 0.15 s |\n| emri_small_RLE.dcm | 40,960 | 81,920 | 1.8 s | 0.67 s |\n| SC_rgb_rle_16bit.dcm | 10,000 | 60,000 | 0.48 s | 0.25 s |\n| SC_rgb_rle_16bit_2frame.dcm | 20,000 | 120,000 | 0.86 s | 0.39 s |\n| rtdose_rle_1frame.dcm | 100 | 400 | 0.16 s | 0.13 s |\n| rtdose_rle.dcm | 1,500 | 6,000 | 1.0 s | 0.64 s |\n| SC_rgb_rle_32bit.dcm | 10,000 | 120,000 | 0.82 s | 0.35 s |\n| SC_rgb_rle_32bit_2frame.dcm | 20,000 | 240,000 | 1.5 s | 0.60 s |\n\n#### Encoding\n\nTime per 1000 encodes, pydicom's default RLE encoder vs. pylibjpeg-rle and [python-gdcm](https://github.com/tfmoraes/python-gdcm):\n\n| Dataset | Pixels | Bytes | pydicom | pylibjpeg-rle | python-gdcm |\n| --- | --- | --- | --- | --- | --- |\n| OBXXXX1A.dcm | 480,000 | 480,000 | 30.6 s | 1.4 s | 1.5 s |\n| SC_rgb.dcm | 10,000 | 30,000 | 1.9 s | 0.11 s | 0.21 s |\n| MR_small.dcm | 4,096 | 8,192 | 3.0 s | 0.11 s | 0.29 s |\n| SC_rgb_16bit.dcm | 10,000 | 60,000 | 3.6 s | 0.18 s | 0.28 s |\n| rtdose_1frame.dcm | 100 | 400 | 0.28 s | 0.04 s | 0.14 s |\n| SC_rgb_32bit.dcm | 10,000 | 120,000 | 7.1 s | 0.32 s | 0.43 s |\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Python bindings for a fast RLE decoder/encoder, with a focus on use as a plugin for pylibjpeg",
"version": "2.2.0",
"project_urls": {
"homepage": "https://github.com/pydicom/pylibjpeg-rle"
},
"split_keywords": [
"dicom",
"pydicom",
"python",
"rle",
"pylibjpeg",
"rust"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0ce8f3393cb318972276711f9a9a13fd586948c3ee23d525614a0601a2937504",
"md5": "d26abaeb5e5a665f0d08857d448123cf",
"sha256": "779593af6d9e8c0af55627c8388558535693a98c4069ed942dd0f765d13b228b"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp310-cp310-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "d26abaeb5e5a665f0d08857d448123cf",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 252397,
"upload_time": "2025-09-07T23:21:06",
"upload_time_iso_8601": "2025-09-07T23:21:06.210958Z",
"url": "https://files.pythonhosted.org/packages/0c/e8/f3393cb318972276711f9a9a13fd586948c3ee23d525614a0601a2937504/pylibjpeg_rle-2.2.0-cp310-cp310-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a322808f76e1843e14cda87bd8910940859829a9efdfa91c2c9641f0022263cc",
"md5": "b4c2e1174941fff99ab6182d169f55a3",
"sha256": "d1d7f5e3df1873359b6d859a9c68cdfe7e4b14c539c175ba2f94607fb5df64af"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "b4c2e1174941fff99ab6182d169f55a3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 244494,
"upload_time": "2025-09-07T23:21:07",
"upload_time_iso_8601": "2025-09-07T23:21:07.972827Z",
"url": "https://files.pythonhosted.org/packages/a3/22/808f76e1843e14cda87bd8910940859829a9efdfa91c2c9641f0022263cc/pylibjpeg_rle-2.2.0-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2d21b372103a6ba965f0fe4417529d83dce4c0870bf1760c04ea99a6e378505a",
"md5": "b4cf4cc43ade3b78a2ecf28c5d37e845",
"sha256": "750c9a9665f4ee946aedd8f02d1dbc6dae9966c77b0a3accb0165ccb73fe04f8"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "b4cf4cc43ade3b78a2ecf28c5d37e845",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 273118,
"upload_time": "2025-09-07T23:21:09",
"upload_time_iso_8601": "2025-09-07T23:21:09.493986Z",
"url": "https://files.pythonhosted.org/packages/2d/21/b372103a6ba965f0fe4417529d83dce4c0870bf1760c04ea99a6e378505a/pylibjpeg_rle-2.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ad183c7d0bcc535be65e1b026aeee9ec3f10b1999546555716706fd30f0f8634",
"md5": "30c7bd7441fc8f1672e7f8ca6e470b26",
"sha256": "ca37f2d3c79d5442ea40bcb51e8bbcc5e1c83415970659ba67efed0fa067e30f"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp310-cp310-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "30c7bd7441fc8f1672e7f8ca6e470b26",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 270816,
"upload_time": "2025-09-07T23:21:11",
"upload_time_iso_8601": "2025-09-07T23:21:11.052919Z",
"url": "https://files.pythonhosted.org/packages/ad/18/3c7d0bcc535be65e1b026aeee9ec3f10b1999546555716706fd30f0f8634/pylibjpeg_rle-2.2.0-cp310-cp310-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "90d66134e6eb8f067242a98446d61fe6a77fd05ce13f34c1d11a207408da212e",
"md5": "500c75675168b2e3ef6ee08c683c3bc1",
"sha256": "bef7b241ff3ae40c650fe2713695d7d8f7203506a66f3661cecf7e06310b57dc"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "500c75675168b2e3ef6ee08c683c3bc1",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 134758,
"upload_time": "2025-09-07T23:21:12",
"upload_time_iso_8601": "2025-09-07T23:21:12.521804Z",
"url": "https://files.pythonhosted.org/packages/90/d6/6134e6eb8f067242a98446d61fe6a77fd05ce13f34c1d11a207408da212e/pylibjpeg_rle-2.2.0-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1d7ffba8a2869ca7b0da1912e828193321c5893dd366a9b05267a2c698865b31",
"md5": "5106310acfa5f65f6f65bf00fdcd754a",
"sha256": "28d410b8453086394542b168a6a2b540f9e942ee79131bac518a88429c33a6bc"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "5106310acfa5f65f6f65bf00fdcd754a",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 140782,
"upload_time": "2025-09-07T23:21:13",
"upload_time_iso_8601": "2025-09-07T23:21:13.979197Z",
"url": "https://files.pythonhosted.org/packages/1d/7f/fba8a2869ca7b0da1912e828193321c5893dd366a9b05267a2c698865b31/pylibjpeg_rle-2.2.0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "eb7d898ad272e3fc8804aa2fac5acbc3a47a0ffa5a0ec55b9475104037b9c68b",
"md5": "443fc4b0db1460c1737514f16e972b2e",
"sha256": "5924e29f5a57f5f75b72f94d167197f7a5fd637a046d0c226e45dd7333a4197e"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp311-cp311-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "443fc4b0db1460c1737514f16e972b2e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 252129,
"upload_time": "2025-09-07T23:21:15",
"upload_time_iso_8601": "2025-09-07T23:21:15.431926Z",
"url": "https://files.pythonhosted.org/packages/eb/7d/898ad272e3fc8804aa2fac5acbc3a47a0ffa5a0ec55b9475104037b9c68b/pylibjpeg_rle-2.2.0-cp311-cp311-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7f7fd1905b074d5f11c828cff15d1e090fb3c6b68b5c468edc550fd1b226afb9",
"md5": "83cfbc7da27a7e4d688eb80d0f658e15",
"sha256": "0381aac3efecb46cbbd80a06a5e3f6bad74be72257d7e2eaf0c55a1018afa0c8"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "83cfbc7da27a7e4d688eb80d0f658e15",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 244297,
"upload_time": "2025-09-07T23:21:16",
"upload_time_iso_8601": "2025-09-07T23:21:16.940624Z",
"url": "https://files.pythonhosted.org/packages/7f/7f/d1905b074d5f11c828cff15d1e090fb3c6b68b5c468edc550fd1b226afb9/pylibjpeg_rle-2.2.0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bcc8b519ba8d911c345ecf957e0bc6a356a73298d0cdb3a959e0134d07457856",
"md5": "d3f1ce85e5902a52eed1c0f3dc8f6c53",
"sha256": "882e0bf2a40b9b5785592bc8ddd8c578387dac9c223e782d15827b2a87ceb2ac"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "d3f1ce85e5902a52eed1c0f3dc8f6c53",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 272842,
"upload_time": "2025-09-07T23:21:18",
"upload_time_iso_8601": "2025-09-07T23:21:18.492522Z",
"url": "https://files.pythonhosted.org/packages/bc/c8/b519ba8d911c345ecf957e0bc6a356a73298d0cdb3a959e0134d07457856/pylibjpeg_rle-2.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "831eb4b52e226d5caedec4fc88bec38c1c212c918af7df327a24ca4718fd2f77",
"md5": "c50aca631491c103b95256db5f514248",
"sha256": "3be3bdd09c0de3ccd127a01160df63a07d9a661dcbc2ae96febce21c87380329"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp311-cp311-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "c50aca631491c103b95256db5f514248",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 270725,
"upload_time": "2025-09-07T23:21:20",
"upload_time_iso_8601": "2025-09-07T23:21:20.090981Z",
"url": "https://files.pythonhosted.org/packages/83/1e/b4b52e226d5caedec4fc88bec38c1c212c918af7df327a24ca4718fd2f77/pylibjpeg_rle-2.2.0-cp311-cp311-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fbc21e412ad3bef5e315020248efce2817ba6e7b4190b515aaa69349fb40e0f2",
"md5": "f69caae19868f8e5dd8120f2a1d09660",
"sha256": "8d5224bec45a82e97785885c322a3f67035bcc7f0bb4323b5e12ef5c96d68791"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "f69caae19868f8e5dd8120f2a1d09660",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 134530,
"upload_time": "2025-09-07T23:21:21",
"upload_time_iso_8601": "2025-09-07T23:21:21.615050Z",
"url": "https://files.pythonhosted.org/packages/fb/c2/1e412ad3bef5e315020248efce2817ba6e7b4190b515aaa69349fb40e0f2/pylibjpeg_rle-2.2.0-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "eb6adccfe360462c0737172dc0db4e65edd1bd9b9d59e57c0e466eba9a4fad1d",
"md5": "bfb85c21378f5cc460c9a7ea0ad9ae98",
"sha256": "bab7fa8a0729683157ca5c02e6eea95d4a2e173d7e4a7a8fb7db137bc4ffcdae"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "bfb85c21378f5cc460c9a7ea0ad9ae98",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.10",
"size": 140661,
"upload_time": "2025-09-07T23:21:22",
"upload_time_iso_8601": "2025-09-07T23:21:22.651874Z",
"url": "https://files.pythonhosted.org/packages/eb/6a/dccfe360462c0737172dc0db4e65edd1bd9b9d59e57c0e466eba9a4fad1d/pylibjpeg_rle-2.2.0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9208a098a5e12520fd2d3d59ca592732a93c131d6adba0affe15e0b83e2855c1",
"md5": "be5d099dcf464ba2115c5ec4837a1cbf",
"sha256": "d00e78fdc4f70e2123918207ca0af1fd17fb088b819c25747912c2b01460bbcc"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "be5d099dcf464ba2115c5ec4837a1cbf",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 249616,
"upload_time": "2025-09-07T23:21:23",
"upload_time_iso_8601": "2025-09-07T23:21:23.899533Z",
"url": "https://files.pythonhosted.org/packages/92/08/a098a5e12520fd2d3d59ca592732a93c131d6adba0affe15e0b83e2855c1/pylibjpeg_rle-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9955ee870489c4f1dba428a5fa4d969d5dc8b2cc16ece8ed347744bbc8ebb4da",
"md5": "5bc923dbf29f8552b3596ff359409cc6",
"sha256": "1a945db095aedfc6f9293968549d751e33b8255405eca5fd3a5eab3c21adc820"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "5bc923dbf29f8552b3596ff359409cc6",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 241600,
"upload_time": "2025-09-07T23:21:25",
"upload_time_iso_8601": "2025-09-07T23:21:25.435178Z",
"url": "https://files.pythonhosted.org/packages/99/55/ee870489c4f1dba428a5fa4d969d5dc8b2cc16ece8ed347744bbc8ebb4da/pylibjpeg_rle-2.2.0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dad24d49d9df67d4d4d240d9fc26c16764ee8e5bb9ef1ca678785cfaf8f4e2d3",
"md5": "f0e9b1a7a64489a042832b237a00f26b",
"sha256": "1efa710f773d5d1e6420568d4fcc3c00fc8bb8147f9c6ef9f032483eb625d6f5"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "f0e9b1a7a64489a042832b237a00f26b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 272308,
"upload_time": "2025-09-07T23:21:26",
"upload_time_iso_8601": "2025-09-07T23:21:26.591394Z",
"url": "https://files.pythonhosted.org/packages/da/d2/4d49d9df67d4d4d240d9fc26c16764ee8e5bb9ef1ca678785cfaf8f4e2d3/pylibjpeg_rle-2.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f14ed0d3fb656b0938572d27dbf553fba96af98cf5416f8b28658bba4512cf9d",
"md5": "1c6a90893a95c412df04c1b1bbc36c5b",
"sha256": "1c3982a48bb0fdbd37828b861730903f3ffcce87115fb267cd1a3e0e906aac35"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp312-cp312-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "1c6a90893a95c412df04c1b1bbc36c5b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 270218,
"upload_time": "2025-09-07T23:21:28",
"upload_time_iso_8601": "2025-09-07T23:21:28.057496Z",
"url": "https://files.pythonhosted.org/packages/f1/4e/d0d3fb656b0938572d27dbf553fba96af98cf5416f8b28658bba4512cf9d/pylibjpeg_rle-2.2.0-cp312-cp312-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7de2cc8e620396088332e5a3dd5b3e8328bfe19bd0455636da8a06599aa8b231",
"md5": "3985c8e2a5170c7e7ebdfec36cfe50e5",
"sha256": "75528d2c545dbc516976fc5fb56d66a206b72319a739cd2e99d74051e8ea503a"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "3985c8e2a5170c7e7ebdfec36cfe50e5",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 134988,
"upload_time": "2025-09-07T23:21:29",
"upload_time_iso_8601": "2025-09-07T23:21:29.225944Z",
"url": "https://files.pythonhosted.org/packages/7d/e2/cc8e620396088332e5a3dd5b3e8328bfe19bd0455636da8a06599aa8b231/pylibjpeg_rle-2.2.0-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1cfedcdcf54846b7d5c4fd8f5471e686c9e36cc729023eafb4addc8ffe4a68c8",
"md5": "5c1d8a561f18b0f16752d7662feb3141",
"sha256": "f6002b44b14ebfa2df6bde6598bef95d31a76a839f511df5a52027e5785bcc5e"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "5c1d8a561f18b0f16752d7662feb3141",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.10",
"size": 140675,
"upload_time": "2025-09-07T23:21:30",
"upload_time_iso_8601": "2025-09-07T23:21:30.625232Z",
"url": "https://files.pythonhosted.org/packages/1c/fe/dcdcf54846b7d5c4fd8f5471e686c9e36cc729023eafb4addc8ffe4a68c8/pylibjpeg_rle-2.2.0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e851681c58a7c4600ca1a0aca89f37627adc794f0bf22d5caa428064efd401fa",
"md5": "20e8095fccdd08c1987e3ff3630a703c",
"sha256": "175a603cf0424a0323f971e50fe34658dee2b55e5ba2cd4c05b8233762bffa9e"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "20e8095fccdd08c1987e3ff3630a703c",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 249904,
"upload_time": "2025-09-07T23:21:31",
"upload_time_iso_8601": "2025-09-07T23:21:31.815605Z",
"url": "https://files.pythonhosted.org/packages/e8/51/681c58a7c4600ca1a0aca89f37627adc794f0bf22d5caa428064efd401fa/pylibjpeg_rle-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ce580074614fce005fef49bf0f3179b2742fed6d0d00498ac59158e7fd1551b1",
"md5": "35228976dee5c6049a03ef879f8d729f",
"sha256": "6e09a8a094fa396b25282f113592371d3b9f2c223de2c13069b7621fb707f9fb"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "35228976dee5c6049a03ef879f8d729f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 241742,
"upload_time": "2025-09-07T23:21:33",
"upload_time_iso_8601": "2025-09-07T23:21:33.081322Z",
"url": "https://files.pythonhosted.org/packages/ce/58/0074614fce005fef49bf0f3179b2742fed6d0d00498ac59158e7fd1551b1/pylibjpeg_rle-2.2.0-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d12cdecd2b9b8747cd70d407f3bd9f94ea05f025620e02a74baaee9f2be87b0d",
"md5": "4520b20d151ae90efe0a281a1bce07d1",
"sha256": "3ed4a5bd0e95266609c66773f01d0c1f769297f0f1a734cfeddb3e5da2a31259"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "4520b20d151ae90efe0a281a1bce07d1",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 272687,
"upload_time": "2025-09-07T23:21:34",
"upload_time_iso_8601": "2025-09-07T23:21:34.251092Z",
"url": "https://files.pythonhosted.org/packages/d1/2c/decd2b9b8747cd70d407f3bd9f94ea05f025620e02a74baaee9f2be87b0d/pylibjpeg_rle-2.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1fdce2bb31b6760dd2bd27474e594b18719870d0849268493d9652664ced49f7",
"md5": "128c77ed2fe44bafbffe1be745542968",
"sha256": "b608b5df84b6b60c9b1b21fa0a4c2f49094d34eb68386d040fbb23ddb769ffb4"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp313-cp313-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "128c77ed2fe44bafbffe1be745542968",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 270593,
"upload_time": "2025-09-07T23:21:35",
"upload_time_iso_8601": "2025-09-07T23:21:35.519280Z",
"url": "https://files.pythonhosted.org/packages/1f/dc/e2bb31b6760dd2bd27474e594b18719870d0849268493d9652664ced49f7/pylibjpeg_rle-2.2.0-cp313-cp313-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "95cf1ec283fe78921c333d966f12af7218f08cbd66f35250e6fe93f511fa1ac4",
"md5": "64abc1a9dee061c8ed18e77be312c6e1",
"sha256": "f6901768e0c80f6ed805467a65f535eab941d261d34d2bc787b44b4101130e16"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "64abc1a9dee061c8ed18e77be312c6e1",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 135178,
"upload_time": "2025-09-07T23:21:36",
"upload_time_iso_8601": "2025-09-07T23:21:36.754378Z",
"url": "https://files.pythonhosted.org/packages/95/cf/1ec283fe78921c333d966f12af7218f08cbd66f35250e6fe93f511fa1ac4/pylibjpeg_rle-2.2.0-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2805ed075b9ba7c0bf942dc5794278382379f9b1ea39616af0a9b7711d63ebf8",
"md5": "d694928063789dd14b853494d0fd7db0",
"sha256": "0664634915a50967165df569e31f44e6dbbc2390164dea02b556254c352e9ab0"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "d694928063789dd14b853494d0fd7db0",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.10",
"size": 140865,
"upload_time": "2025-09-07T23:21:38",
"upload_time_iso_8601": "2025-09-07T23:21:38.429610Z",
"url": "https://files.pythonhosted.org/packages/28/05/ed075b9ba7c0bf942dc5794278382379f9b1ea39616af0a9b7711d63ebf8/pylibjpeg_rle-2.2.0-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9a611f7cc2d0accc66cf6c5b7e30f32b194f20d1ab78a1ec9e969668559aacf3",
"md5": "46b7344f8cbf2116dff6cd9c8c3360a7",
"sha256": "a62027a6e4dffc944010fa7799c788146fd07087db13fd40a86857de4aa4f0c6"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp314-cp314-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "46b7344f8cbf2116dff6cd9c8c3360a7",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.10",
"size": 249371,
"upload_time": "2025-09-07T23:21:39",
"upload_time_iso_8601": "2025-09-07T23:21:39.892295Z",
"url": "https://files.pythonhosted.org/packages/9a/61/1f7cc2d0accc66cf6c5b7e30f32b194f20d1ab78a1ec9e969668559aacf3/pylibjpeg_rle-2.2.0-cp314-cp314-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "efac22c57146eb46fe1dc290d29b7c46b9ffb8c1860a6f928264a993d0e08d65",
"md5": "e3abd737fc85b9c9df305ef326f2b4c9",
"sha256": "35a992d3b2145733068f94a85297dbbc0ff1645f59142e3a004259de7007feda"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp314-cp314-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "e3abd737fc85b9c9df305ef326f2b4c9",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.10",
"size": 241217,
"upload_time": "2025-09-07T23:21:41",
"upload_time_iso_8601": "2025-09-07T23:21:41.401747Z",
"url": "https://files.pythonhosted.org/packages/ef/ac/22c57146eb46fe1dc290d29b7c46b9ffb8c1860a6f928264a993d0e08d65/pylibjpeg_rle-2.2.0-cp314-cp314-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b4e3fe3d7d374137cae072f83428557a7f8cc3017d4497748d07ab88f6bb35f8",
"md5": "3431764bbc8e200ce3703df319a9d024",
"sha256": "408c1138232368643040494aae9e4dd503631bb8c9f04336c95b511ae1006d17"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "3431764bbc8e200ce3703df319a9d024",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.10",
"size": 272460,
"upload_time": "2025-09-07T23:21:42",
"upload_time_iso_8601": "2025-09-07T23:21:42.548358Z",
"url": "https://files.pythonhosted.org/packages/b4/e3/fe3d7d374137cae072f83428557a7f8cc3017d4497748d07ab88f6bb35f8/pylibjpeg_rle-2.2.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "907cfa4b488dee45433e06a1e97d54486c1ff8bd8d1561996f6f16e0b5a357d6",
"md5": "4efb3b43294c3c3d0f2238b0e1449ba9",
"sha256": "bc5aefa9740a931ea0156ab28eab23ffffd3e95d71af04df8339ff584c091ced"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp314-cp314-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "4efb3b43294c3c3d0f2238b0e1449ba9",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.10",
"size": 270590,
"upload_time": "2025-09-07T23:21:43",
"upload_time_iso_8601": "2025-09-07T23:21:43.827819Z",
"url": "https://files.pythonhosted.org/packages/90/7c/fa4b488dee45433e06a1e97d54486c1ff8bd8d1561996f6f16e0b5a357d6/pylibjpeg_rle-2.2.0-cp314-cp314-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2faa31d4149df07fdc9c83647d3de89104aa45393c957788f85617dd8c9c433f",
"md5": "68818934c46fd7a2c57c42dc2750bdf9",
"sha256": "1564ef6c725c5a85b93d5ca835172d4d8f2380818dd5f46aea8735722a8f6d19"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp314-cp314-win32.whl",
"has_sig": false,
"md5_digest": "68818934c46fd7a2c57c42dc2750bdf9",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.10",
"size": 135326,
"upload_time": "2025-09-07T23:21:45",
"upload_time_iso_8601": "2025-09-07T23:21:45.031072Z",
"url": "https://files.pythonhosted.org/packages/2f/aa/31d4149df07fdc9c83647d3de89104aa45393c957788f85617dd8c9c433f/pylibjpeg_rle-2.2.0-cp314-cp314-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b2aea30af1a34d2222fac58dba41a3695c2aa1fd213d03e2552469490413c77b",
"md5": "3f9b08fd28bbf7999db47d4033ce45ca",
"sha256": "7b12c7bcefe49bd19f6d827cdcd7b13d4779c77bbf1525ede083facf2ca5dafa"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0-cp314-cp314-win_amd64.whl",
"has_sig": false,
"md5_digest": "3f9b08fd28bbf7999db47d4033ce45ca",
"packagetype": "bdist_wheel",
"python_version": "cp314",
"requires_python": ">=3.10",
"size": 140995,
"upload_time": "2025-09-07T23:21:46",
"upload_time_iso_8601": "2025-09-07T23:21:46.111589Z",
"url": "https://files.pythonhosted.org/packages/b2/ae/a30af1a34d2222fac58dba41a3695c2aa1fd213d03e2552469490413c77b/pylibjpeg_rle-2.2.0-cp314-cp314-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6530d5b334bd0038a9def052398ef588b5e99d7ed274ef513bb2ab041ad18f91",
"md5": "b0dfe3eca9e2c69136bfe7b66ac3f97f",
"sha256": "1a37353afbdd6f67aa3c2007879fff8ca30a98552cab7ed7f2aa00725ea4bb27"
},
"downloads": -1,
"filename": "pylibjpeg_rle-2.2.0.tar.gz",
"has_sig": false,
"md5_digest": "b0dfe3eca9e2c69136bfe7b66ac3f97f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 29072,
"upload_time": "2025-09-07T23:21:47",
"upload_time_iso_8601": "2025-09-07T23:21:47.504369Z",
"url": "https://files.pythonhosted.org/packages/65/30/d5b334bd0038a9def052398ef588b5e99d7ed274ef513bb2ab041ad18f91/pylibjpeg_rle-2.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-07 23:21:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pydicom",
"github_project": "pylibjpeg-rle",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "pylibjpeg-rle"
}