# pyoxipng
[](https://github.com/nfrasser/pyoxipng/actions/workflows/CI.yml)
[](https://pypi.org/project/pyoxipng/)
Python wrapper for multithreaded .png image file optimizer
[oxipng](https://github.com/shssoichiro/oxipng) (written in Rust). Use
`pyoxipng` to reduce the file size of your PNG images.
Jump to a section
- [Installation](#installation)
- [API](#api)
- [optimize](#oxipngoptimizeinput-outputnone-kwargs)
- [optimize_from_memory](#oxipngoptimize_from_memorydata-kwargs)
- [RawImage](#oxipngrawimage)
- [Options](#options)
- [filter](#filter)
- [interlace](#interlace)
- [strip](#strip)
- [deflate](#deflate)
- [Development](#development)
- [License](#license)
## Installation
Install from PyPI:
```sh
pip install pyoxipng
```
Import in your Python code:
```py
import oxipng
```
## API
### oxipng.optimize(input, output=None, \*\*kwargs)
Optimize a file on disk.
**Parameters**:
- **input** _(str | bytes | PathLike)_ – path to input file to optimize
- **output** _(str | bytes | PathLike, optional)_ – path to optimized output result file. If not specified, overwrites input. Defaults to None
- **\*\*kwargs** – [Options](#options)
**Returns**
- None
**Raises**
- **oxipng.PngError** – optimization could not be completed
**Examples:**
Optimize a file on disk and overwrite
```py
oxipng.optimize("/path/to/image.png")
```
Optimize a file and save to a new location:
```py
oxipng.optimize("/path/to/image.png", "/path/to/image-optimized.png")
```
### oxipng.optimize_from_memory(data, \*\*kwargs)
Optimize raw data from a PNG file loaded in Python as a `bytes` object:
**Parameters**:
- **data** _(bytes)_ – raw PNG data to optimize
- **\*\*kwargs** – [Options](#options)
**Returns**
- _(bytes)_ – optimized raw PNG data
**Raises**
- **oxipng.PngError** – optimization could not be completed
**Examples:**
```py
data = ... # bytes of png data
optimized_data = oxipng.optimize_from_memory(data)
with open("/path/to/image-optimized.png", "wb") as f:
f.write(optimized_data)
```
### oxipng.RawImage
Create an optimized PNG file from raw image data:
```python
raw = oxipng.RawImage(data, width, height)
optimized_data = raw.create_optimized_png()
```
By default, assumes the input data is 8-bit, row-major RGBA, where every 4 bytes represents one pixel with Red-Green-Blue-Alpha channels. To interpret non-RGBA data, specify a `color_type` parameter with the `oxipng.ColorType` class:
| Method | Description |
| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| `oxipng.ColorType.grayscale(int \| None)` | Grayscale, with one color channel. Specify optional shade of gray that should be rendered as transparent. |
| `oxipng.ColorType.rgb(tuple[int, int, int])` | RGB, with three color channels. Specify optional color value that should be rendered as transparent. |
| `oxipng.ColorType.indexed(list[[tuple[int, int, int, int]])` | Indexed, with one byte per pixel representing a color from the palette. Specify palette containing the colors used, up to 256 entries. |
| `oxipng.ColorType.grayscale_alpha()` | Grayscale + Alpha, with two color channels. |
| `oxipng.ColorType.rgba()` | RGBA, with four color channels. |
**Parameters:**
- **data** _(bytes | bytearray)_ – Raw image data bytes. Format depends on `color_type` and `bit_depth` parameters
- **width** _(int)_ – Width of raw image, in pixels
- **height** _(int)_ – Height of raw image, in pixels
- **color_type** _([oxipng.ColorType, optional)_ – Descriptor for color type used to represent this image. Optional, defaults to `oxipng.ColorType.rgba()`
- **bit_depth** _(int, optional)_ – Bit depth of raw image. Optional, defaults to 8
**Examples:**
Save RGB image data from a JPEG file, interpreting black pixels as transparent.
```python
from PIL import Image
import numpy as np
# Load an image file with Pillow
jpg = Image.open("/path/to/image.jpg")
# Convert to RGB numpy array
rgb_array = np.array(jpg.convert("RGB"), dtype=np.uint8)
height, width, channels = rgb_array.shape
# Create raw image with sRGB color profile
data = rgb_array.tobytes()
color_type = oxipng.ColorType.rgb((0, 0, 0)) # black is transparent
raw = oxipng.RawImage(data, width, height, color_type=color_type)
raw.add_png_chunk(b"sRGB", b"\0")
# Optimize and save
optimized = raw.create_optimized_png(level=6)
with open("/path/to/image/optimized.png", "wb") as f:
f.write(optimized)
```
Save with data where bytes reference a color palette
```python
data = b"\0\1\2..." # get index data
palette = [[0, 0, 0, 255], [1, 23, 234, 255], ...]
color_type = oxipng.ColorType.indexed(palette)
raw = oxipng.RawImage(data, 100, 100, color_type=color_type)
optimized = raw.create_optimized_png()
```
**Methods:**
#### add_png_chunk(name, data)
Add a png chunk, such as `b"iTXt"`, to be included in the output
**Parameters:**
- **name** _(bytes)_ – PNG chunk identifier
- **data** _(bytes | bytarray)_
**Returns:**
- None
#### add_icc_profile(data)
Add an ICC profile for the image
**Parameters:**
- **data** _(bytes)_ – ICC profile data
**Returns:**
- None
#### create_optimized_png(\*\*kwargs)
Create an optimized png from the raw image data using the options provided
**Parameters:**
- **\*\*kwargs** – [Options](#options)
**Returns:**
- _(bytes)_ optimized PNG image data
## Options
`optimize` , `optimize_from_memory` and `RawImage.create_optimized_png` accept the following options as keyword arguments.
**Example:**
```py
oxipng.optimize("/path/to/image.png", level=6, fix_errors=True, interlace=oxipng.Interlacing.Adam7)
```
| Option | Description | Type | Default |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ------------------------- |
| `level` | Set the optimization level to an integer between 0 and 6 (inclusive) | int | `2` |
| `fix_errors` | Attempt to fix errors when decoding the input file rather than throwing `PngError` | bool | `False` |
| `force` | Write to output even if there was no improvement in compression | bool | `False` |
| `filter` | Which filters to try on the file. Use Use enum values from `oxipng.RowFilter` | Sequence[[RowFilter](#filter)] | `[RowFilter.NoOp]` |
| `interlace` | Whether to change the interlacing type of the file. `None` will not change current interlacing type | [Interlacing](#interlace) \| None | `None` |
| `optimize_alpha` | Whether to allow transparent pixels to be altered to improve compression | bool | `False` |
| `bit_depth_reduction` | Whether to attempt bit depth reduction | bool | `True` |
| `color_type_reduction` | Whether to attempt color type reduction | bool | `True` |
| `palette_reduction` | Whether to attempt palette reduction | bool | `True` |
| `grayscale_reduction` | Whether to attempt grayscale reduction | bool | `True` |
| `idat_recoding` | If any type of reduction is performed, IDAT recoding will be performed regardless of this setting | bool | `True` |
| `scale_16` | Whether to forcibly reduce 16-bit to 8-bit by scaling | bool | `False` |
| `strip` | Which headers to strip from the PNG file, if any. Specify with `oxipng.StripChunks` | [StripChunks](#strip) | `StripChunks.none()` |
| `deflate` | Which DEFLATE algorithm to use. Specify with `oxipng.Deflaters` | [Deflaters](#deflate) | `Deflaters.libdeflater()` |
| `fast_evaluation` | Whether to use fast evaluation to pick the best filter | bool | `False` |
| `timeout` | Maximum amount of time to spend (in seconds) on optimizations. Further potential optimizations skipped if the timeout is exceeded | float \| None | `None` |
### filter
Initialize a `filter` list or tuple with any of the following `oxipng.RowFilter` enum options:
- `oxipng.RowFilter.NoOp`
- `oxipng.RowFilter.Sub`
- `oxipng.RowFilter.Up`
- `oxipng.RowFilter.Average`
- `oxipng.RowFilter.Paeth`
- `oxipng.RowFilter.Bigrams`
- `oxipng.RowFilter.BigEnt`
- `oxipng.RowFilter.Brute`
### interlace
Set `interlace` to `None` to keep existing interlacing or to one of following `oxipng.Interlacing` enum options:
- `oxipng.Interlacing.Off` (interlace disabled)
- `oxipng.Interlacing.Adam7` (interlace enabled)
### strip
Initialize the `strip` option with one of the following static methods in the
`oxipng.StripChunks` class.
| Method | Description |
| ------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `oxipng.StripChunks.none()` | None |
| `oxipng.StripChunks.strip(Sequence[bytes])` | Strip chunks specified in the given list |
| `oxipng.StripChunks.safe()` | Strip chunks that won't affect rendering (all but cICP, iCCP, sRGB, pHYs, acTL, fcTL, fdAT) |
| `oxipng.StripChunks.keep(Sequence[bytes])` | Strip all non-critical chunks except those in the given list |
| `oxipng.StripChunks.all()` | Strip all non-critical chunks |
### deflate
Initialize the `deflate` option with one of the following static methods in the
`oxipng.Deflaters` class.
| Method | Description |
| ----------------------------------- | ---------------------------------------------------------- |
| `oxipng.Deflaters.libdeflater(int)` | Libdeflater with compression level [0-12] |
| `oxipng.Deflaters.zopfli(int)` | Zopfli with number of compression iterations to do [1-255] |
## Development
1. Install [Rust](https://www.rust-lang.org/tools/install)
1. Install [Python 3.8+](https://www.python.org/downloads/)
1. Install [Pipenv](https://pipenv.pypa.io/en/latest/)
1. Clone this repository and navigate to it via command line
```sh
git clone https://github.com/nfrasser/pyoxipng.git
cd pyoxipng
```
1. Install dependencies
```sh
pipenv install --dev
```
1. Activate the dev environment
```
pipenv shell
```
1. Build
```sh
maturin develop
```
1. Run tests
```
pytest
```
1. Format code
```
ruff check .
ruff format .
```
## License
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "pyoxipng",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "rust, image, optimize, optimizer, optimization, compress, png",
"author": "Nick Frasser <nfrasser@users.noreply.github.com>",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/ee/cc/25a4e3e3e0dc41103337144aacfccbda34562ef6b3fa6b1afa4975e0cc11/pyoxipng-9.1.1.tar.gz",
"platform": null,
"description": "# pyoxipng\n\n[](https://github.com/nfrasser/pyoxipng/actions/workflows/CI.yml)\n[](https://pypi.org/project/pyoxipng/)\n\nPython wrapper for multithreaded .png image file optimizer\n[oxipng](https://github.com/shssoichiro/oxipng) (written in Rust). Use\n`pyoxipng` to reduce the file size of your PNG images.\n\nJump to a section\n\n- [Installation](#installation)\n- [API](#api)\n\n - [optimize](#oxipngoptimizeinput-outputnone-kwargs)\n - [optimize_from_memory](#oxipngoptimize_from_memorydata-kwargs)\n - [RawImage](#oxipngrawimage)\n\n- [Options](#options)\n - [filter](#filter)\n - [interlace](#interlace)\n - [strip](#strip)\n - [deflate](#deflate)\n- [Development](#development)\n- [License](#license)\n\n## Installation\n\nInstall from PyPI:\n\n```sh\npip install pyoxipng\n```\n\nImport in your Python code:\n\n```py\nimport oxipng\n```\n\n## API\n\n### oxipng.optimize(input, output=None, \\*\\*kwargs)\n\nOptimize a file on disk.\n\n**Parameters**:\n\n- **input** _(str | bytes | PathLike)_ \u2013 path to input file to optimize\n- **output** _(str | bytes | PathLike, optional)_ \u2013 path to optimized output result file. If not specified, overwrites input. Defaults to None\n- **\\*\\*kwargs** \u2013 [Options](#options)\n\n**Returns**\n\n- None\n\n**Raises**\n\n- **oxipng.PngError** \u2013 optimization could not be completed\n\n**Examples:**\n\nOptimize a file on disk and overwrite\n\n```py\noxipng.optimize(\"/path/to/image.png\")\n```\n\nOptimize a file and save to a new location:\n\n```py\noxipng.optimize(\"/path/to/image.png\", \"/path/to/image-optimized.png\")\n```\n\n### oxipng.optimize_from_memory(data, \\*\\*kwargs)\n\nOptimize raw data from a PNG file loaded in Python as a `bytes` object:\n\n**Parameters**:\n\n- **data** _(bytes)_ \u2013 raw PNG data to optimize\n- **\\*\\*kwargs** \u2013 [Options](#options)\n\n**Returns**\n\n- _(bytes)_ \u2013\u00a0optimized raw PNG data\n\n**Raises**\n\n- **oxipng.PngError** \u2013 optimization could not be completed\n\n**Examples:**\n\n```py\ndata = ... # bytes of png data\noptimized_data = oxipng.optimize_from_memory(data)\nwith open(\"/path/to/image-optimized.png\", \"wb\") as f:\n f.write(optimized_data)\n```\n\n### oxipng.RawImage\n\nCreate an optimized PNG file from raw image data:\n\n```python\nraw = oxipng.RawImage(data, width, height)\noptimized_data = raw.create_optimized_png()\n```\n\nBy default, assumes the input data is 8-bit, row-major RGBA, where every 4 bytes represents one pixel with Red-Green-Blue-Alpha channels. To interpret non-RGBA data, specify a `color_type` parameter with the `oxipng.ColorType` class:\n\n| Method | Description |\n| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |\n| `oxipng.ColorType.grayscale(int \\| None)` | Grayscale, with one color channel. Specify optional shade of gray that should be rendered as transparent. |\n| `oxipng.ColorType.rgb(tuple[int, int, int])` | RGB, with three color channels. Specify optional color value that should be rendered as transparent. |\n| `oxipng.ColorType.indexed(list[[tuple[int, int, int, int]])` | Indexed, with one byte per pixel representing a color from the palette. Specify palette containing the colors used, up to 256 entries. |\n| `oxipng.ColorType.grayscale_alpha()` | Grayscale + Alpha, with two color channels. |\n| `oxipng.ColorType.rgba()` | RGBA, with four color channels. |\n\n**Parameters:**\n\n- **data** _(bytes | bytearray)_ \u2013 Raw image data bytes. Format depends on `color_type` and `bit_depth` parameters\n- **width** _(int)_ \u2013\u00a0Width of raw image, in pixels\n- **height** _(int)_ \u2013 Height of raw image, in pixels\n- **color_type** _([oxipng.ColorType, optional)_ \u2013 Descriptor for color type used to represent this image. Optional, defaults to `oxipng.ColorType.rgba()`\n- **bit_depth** _(int, optional)_ \u2013\u00a0Bit depth of raw image. Optional, defaults to 8\n\n**Examples:**\n\nSave RGB image data from a JPEG file, interpreting black pixels as transparent.\n\n```python\nfrom PIL import Image\nimport numpy as np\n\n# Load an image file with Pillow\njpg = Image.open(\"/path/to/image.jpg\")\n\n# Convert to RGB numpy array\nrgb_array = np.array(jpg.convert(\"RGB\"), dtype=np.uint8)\nheight, width, channels = rgb_array.shape\n\n# Create raw image with sRGB color profile\ndata = rgb_array.tobytes()\ncolor_type = oxipng.ColorType.rgb((0, 0, 0)) # black is transparent\nraw = oxipng.RawImage(data, width, height, color_type=color_type)\nraw.add_png_chunk(b\"sRGB\", b\"\\0\")\n\n# Optimize and save\noptimized = raw.create_optimized_png(level=6)\nwith open(\"/path/to/image/optimized.png\", \"wb\") as f:\n f.write(optimized)\n```\n\nSave with data where bytes reference a color palette\n\n```python\ndata = b\"\\0\\1\\2...\" # get index data\npalette = [[0, 0, 0, 255], [1, 23, 234, 255], ...]\ncolor_type = oxipng.ColorType.indexed(palette)\nraw = oxipng.RawImage(data, 100, 100, color_type=color_type)\noptimized = raw.create_optimized_png()\n```\n\n**Methods:**\n\n#### add_png_chunk(name, data)\n\nAdd a png chunk, such as `b\"iTXt\"`, to be included in the output\n\n**Parameters:**\n\n- **name** _(bytes)_ \u2013 PNG chunk identifier\n- **data** _(bytes | bytarray)_\n\n**Returns:**\n\n- None\n\n#### add_icc_profile(data)\n\nAdd an ICC profile for the image\n\n**Parameters:**\n\n- **data** _(bytes)_ \u2013 ICC profile data\n\n**Returns:**\n\n- None\n\n#### create_optimized_png(\\*\\*kwargs)\n\nCreate an optimized png from the raw image data using the options provided\n\n**Parameters:**\n\n- **\\*\\*kwargs** \u2013\u00a0[Options](#options)\n\n**Returns:**\n\n- _(bytes)_ optimized PNG image data\n\n## Options\n\n`optimize` , `optimize_from_memory` and `RawImage.create_optimized_png` accept the following options as keyword arguments.\n\n**Example:**\n\n```py\noxipng.optimize(\"/path/to/image.png\", level=6, fix_errors=True, interlace=oxipng.Interlacing.Adam7)\n```\n\n| Option | Description | Type | Default |\n| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ------------------------- |\n| `level` | Set the optimization level to an integer between 0 and 6 (inclusive) | int | `2` |\n| `fix_errors` | Attempt to fix errors when decoding the input file rather than throwing `PngError` | bool | `False` |\n| `force` | Write to output even if there was no improvement in compression | bool | `False` |\n| `filter` | Which filters to try on the file. Use Use enum values from `oxipng.RowFilter` | Sequence[[RowFilter](#filter)] | `[RowFilter.NoOp]` |\n| `interlace` | Whether to change the interlacing type of the file. `None` will not change current interlacing type | [Interlacing](#interlace) \\| None | `None` |\n| `optimize_alpha` | Whether to allow transparent pixels to be altered to improve compression | bool | `False` |\n| `bit_depth_reduction` | Whether to attempt bit depth reduction | bool | `True` |\n| `color_type_reduction` | Whether to attempt color type reduction | bool | `True` |\n| `palette_reduction` | Whether to attempt palette reduction | bool | `True` |\n| `grayscale_reduction` | Whether to attempt grayscale reduction | bool | `True` |\n| `idat_recoding` | If any type of reduction is performed, IDAT recoding will be performed regardless of this setting | bool | `True` |\n| `scale_16` | Whether to forcibly reduce 16-bit to 8-bit by scaling | bool | `False` |\n| `strip` | Which headers to strip from the PNG file, if any. Specify with `oxipng.StripChunks` | [StripChunks](#strip) | `StripChunks.none()` |\n| `deflate` | Which DEFLATE algorithm to use. Specify with `oxipng.Deflaters` | [Deflaters](#deflate) | `Deflaters.libdeflater()` |\n| `fast_evaluation` | Whether to use fast evaluation to pick the best filter | bool | `False` |\n| `timeout` | Maximum amount of time to spend (in seconds) on optimizations. Further potential optimizations skipped if the timeout is exceeded | float \\| None | `None` |\n\n### filter\n\nInitialize a `filter` list or tuple with any of the following `oxipng.RowFilter` enum options:\n\n- `oxipng.RowFilter.NoOp`\n- `oxipng.RowFilter.Sub`\n- `oxipng.RowFilter.Up`\n- `oxipng.RowFilter.Average`\n- `oxipng.RowFilter.Paeth`\n- `oxipng.RowFilter.Bigrams`\n- `oxipng.RowFilter.BigEnt`\n- `oxipng.RowFilter.Brute`\n\n### interlace\n\nSet `interlace` to `None` to keep existing interlacing or to one of following `oxipng.Interlacing` enum options:\n\n- `oxipng.Interlacing.Off` (interlace disabled)\n- `oxipng.Interlacing.Adam7` (interlace enabled)\n\n### strip\n\nInitialize the `strip` option with one of the following static methods in the\n`oxipng.StripChunks` class.\n\n| Method | Description |\n| ------------------------------------------- | ------------------------------------------------------------------------------------------- |\n| `oxipng.StripChunks.none()` | None |\n| `oxipng.StripChunks.strip(Sequence[bytes])` | Strip chunks specified in the given list |\n| `oxipng.StripChunks.safe()` | Strip chunks that won't affect rendering (all but cICP, iCCP, sRGB, pHYs, acTL, fcTL, fdAT) |\n| `oxipng.StripChunks.keep(Sequence[bytes])` | Strip all non-critical chunks except those in the given list |\n| `oxipng.StripChunks.all()` | Strip all non-critical chunks |\n\n### deflate\n\nInitialize the `deflate` option with one of the following static methods in the\n`oxipng.Deflaters` class.\n\n| Method | Description |\n| ----------------------------------- | ---------------------------------------------------------- |\n| `oxipng.Deflaters.libdeflater(int)` | Libdeflater with compression level [0-12] |\n| `oxipng.Deflaters.zopfli(int)` | Zopfli with number of compression iterations to do [1-255] |\n\n## Development\n\n1. Install [Rust](https://www.rust-lang.org/tools/install)\n1. Install [Python 3.8+](https://www.python.org/downloads/)\n1. Install [Pipenv](https://pipenv.pypa.io/en/latest/)\n1. Clone this repository and navigate to it via command line\n ```sh\n git clone https://github.com/nfrasser/pyoxipng.git\n cd pyoxipng\n ```\n1. Install dependencies\n ```sh\n pipenv install --dev\n ```\n1. Activate the dev environment\n ```\n pipenv shell\n ```\n1. Build\n ```sh\n maturin develop\n ```\n1. Run tests\n ```\n pytest\n ```\n1. Format code\n ```\n ruff check .\n ruff format .\n ```\n\n## License\n\nMIT\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Python wrapper for multithreaded .png image file optimizer oxipng",
"version": "9.1.1",
"project_urls": {
"changelog": "https://github.com/nfrasser/pyoxipng/blob/main/CHANGELOG.md",
"documentation": "https://github.com/nfrasser/pyoxipng#readme",
"homepage": "https://github.com/nfrasser/pyoxipng",
"repository": "https://github.com/nfrasser/pyoxipng"
},
"split_keywords": [
"rust",
" image",
" optimize",
" optimizer",
" optimization",
" compress",
" png"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "8c6780e1742df5c3e24e5e67d44bfc187446113b774f85a9fdc05c66226c9688",
"md5": "c0bc3108913a6d92c272f0944f4086d1",
"sha256": "54ff2cf2f1418eca361a42774c54bd9a34d6d632d87dc26089d8644e9a9cb519"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "c0bc3108913a6d92c272f0944f4086d1",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 620564,
"upload_time": "2025-08-21T13:43:43",
"upload_time_iso_8601": "2025-08-21T13:43:43.564623Z",
"url": "https://files.pythonhosted.org/packages/8c/67/80e1742df5c3e24e5e67d44bfc187446113b774f85a9fdc05c66226c9688/pyoxipng-9.1.1-cp310-cp310-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2c2b2d64e859ded5b1ff97631182fbd9959c3286a3b4ae7d281dab64a7f02cf8",
"md5": "6808ceedf3eef5a509e15f13346da24e",
"sha256": "3710eed13f1d14fb841d6bce0c4e8978a1e53558f536223b58af110d1c50443f"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "6808ceedf3eef5a509e15f13346da24e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 577507,
"upload_time": "2025-08-21T13:43:37",
"upload_time_iso_8601": "2025-08-21T13:43:37.111382Z",
"url": "https://files.pythonhosted.org/packages/2c/2b/2d64e859ded5b1ff97631182fbd9959c3286a3b4ae7d281dab64a7f02cf8/pyoxipng-9.1.1-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9fd72b35c2b4080688a28d8e456c31a28568793e2da0a03fe723d93819ac346f",
"md5": "a4708d04a6ccf4d007a581346982f5f4",
"sha256": "a460589fbbfa0a1f05e636751265c463479ab9ec16c5ca70c11051822ad055ff"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "a4708d04a6ccf4d007a581346982f5f4",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 658136,
"upload_time": "2025-08-21T13:43:24",
"upload_time_iso_8601": "2025-08-21T13:43:24.816162Z",
"url": "https://files.pythonhosted.org/packages/9f/d7/2b35c2b4080688a28d8e456c31a28568793e2da0a03fe723d93819ac346f/pyoxipng-9.1.1-cp310-cp310-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c5f41865dc6b723e42b5b590280384a159288ae53289be527fb73b75104021c8",
"md5": "b1133fe332b07aef27a01ea6e19b7346",
"sha256": "390b14c8ff56f112c46b7416e16a7a27db06489eb55ec0060fd4d67c29d78158"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "b1133fe332b07aef27a01ea6e19b7346",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 672169,
"upload_time": "2025-08-21T13:43:30",
"upload_time_iso_8601": "2025-08-21T13:43:30.821566Z",
"url": "https://files.pythonhosted.org/packages/c5/f4/1865dc6b723e42b5b590280384a159288ae53289be527fb73b75104021c8/pyoxipng-9.1.1-cp310-cp310-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "74140a424ab44f32fce7ee274f33264c0ec55f1cb94838ea7ef6328f2c68fd18",
"md5": "707cda04688f272877ba53cb755d750e",
"sha256": "35a54d1c9957fa7ff41e937e6346577297a403f81a1631eeb4f8c2f061df600c"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "707cda04688f272877ba53cb755d750e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 833610,
"upload_time": "2025-08-21T13:43:49",
"upload_time_iso_8601": "2025-08-21T13:43:49.785136Z",
"url": "https://files.pythonhosted.org/packages/74/14/0a424ab44f32fce7ee274f33264c0ec55f1cb94838ea7ef6328f2c68fd18/pyoxipng-9.1.1-cp310-cp310-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b1a95230b493b977fe3a143349a14f3a29fd556c5e6a3fa8474ac6048cff083d",
"md5": "17558cf0b8e054713820ff070eb73be3",
"sha256": "803221f48c2583695d5eb45c06f6909c5722a295e0d877b97dc0ede06966afa4"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-musllinux_1_2_armv7l.whl",
"has_sig": false,
"md5_digest": "17558cf0b8e054713820ff070eb73be3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 911213,
"upload_time": "2025-08-21T13:43:55",
"upload_time_iso_8601": "2025-08-21T13:43:55.463657Z",
"url": "https://files.pythonhosted.org/packages/b1/a9/5230b493b977fe3a143349a14f3a29fd556c5e6a3fa8474ac6048cff083d/pyoxipng-9.1.1-cp310-cp310-musllinux_1_2_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dfe3dc91306aef63b20f43caf62cc9c3e7ed1c635c2914cfb3f0633eb7d42608",
"md5": "2bd5d00216d5ed39be1d8a39b0973a92",
"sha256": "b0e7b7d7f8f16d15fd53c0bf12225d575d230e487a780778a11604eff2347110"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "2bd5d00216d5ed39be1d8a39b0973a92",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 874832,
"upload_time": "2025-08-21T13:44:02",
"upload_time_iso_8601": "2025-08-21T13:44:02.193914Z",
"url": "https://files.pythonhosted.org/packages/df/e3/dc91306aef63b20f43caf62cc9c3e7ed1c635c2914cfb3f0633eb7d42608/pyoxipng-9.1.1-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f60b313f7ce8b1b9912cb370584e9d129a794730b86e768d165808078e144346",
"md5": "875207d1db8cf104ed411e3e130894f8",
"sha256": "9843db526703ae88d869695bef25e5f75f98fed338b9f508f1b258f95fef598d"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "875207d1db8cf104ed411e3e130894f8",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 840367,
"upload_time": "2025-08-21T13:44:09",
"upload_time_iso_8601": "2025-08-21T13:44:09.282864Z",
"url": "https://files.pythonhosted.org/packages/f6/0b/313f7ce8b1b9912cb370584e9d129a794730b86e768d165808078e144346/pyoxipng-9.1.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ddb39adc27fd027cb78b16cbbaf67ecc9771e4a1a14e01b1ef0085de69527390",
"md5": "483492742a7b07fbb954043fed7cfa50",
"sha256": "d9b3249b6edc558461610e3b01a377e6160ee8de72494e9df8fedec699e76d0f"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "483492742a7b07fbb954043fed7cfa50",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 438507,
"upload_time": "2025-08-21T13:44:24",
"upload_time_iso_8601": "2025-08-21T13:44:24.512720Z",
"url": "https://files.pythonhosted.org/packages/dd/b3/9adc27fd027cb78b16cbbaf67ecc9771e4a1a14e01b1ef0085de69527390/pyoxipng-9.1.1-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2d008475fb4a4e550fe16f9305728d7ec83aa291a5585393f6d49331e159e4cd",
"md5": "f06183cd7902114a973781172c118fa1",
"sha256": "f43b42d84736dd4944a0d18cebc80cb89f0d0b8aea476e2714cd6afc19e1997d"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "f06183cd7902114a973781172c118fa1",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 458340,
"upload_time": "2025-08-21T13:44:18",
"upload_time_iso_8601": "2025-08-21T13:44:18.615535Z",
"url": "https://files.pythonhosted.org/packages/2d/00/8475fb4a4e550fe16f9305728d7ec83aa291a5585393f6d49331e159e4cd/pyoxipng-9.1.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ae896957b2e386cae5b998d98904ae7bcd4a49c6bc77fbcb43dfbefd5896dd4d",
"md5": "9c9326e9e3a892e9939624227064cca4",
"sha256": "dee84d2d6fdfdfc0f2958f3953fbadd18d6118d55b3f0f18e5447cc9d1b84539"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "9c9326e9e3a892e9939624227064cca4",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 619738,
"upload_time": "2025-08-21T13:43:44",
"upload_time_iso_8601": "2025-08-21T13:43:44.881883Z",
"url": "https://files.pythonhosted.org/packages/ae/89/6957b2e386cae5b998d98904ae7bcd4a49c6bc77fbcb43dfbefd5896dd4d/pyoxipng-9.1.1-cp311-cp311-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7ac939a89f2fe7d184e150759581ca8d714639618d54d9f15eade6e84d9fa45b",
"md5": "121dabd624c181ec369ab71cdc1b4272",
"sha256": "2b2f362d40906cb3ede7c919505184e6b2c94c64abd4ddc63734dacbdc38681c"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "121dabd624c181ec369ab71cdc1b4272",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 577001,
"upload_time": "2025-08-21T13:43:38",
"upload_time_iso_8601": "2025-08-21T13:43:38.480096Z",
"url": "https://files.pythonhosted.org/packages/7a/c9/39a89f2fe7d184e150759581ca8d714639618d54d9f15eade6e84d9fa45b/pyoxipng-9.1.1-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b83a9b5cbc44921f76c8f5b7a7be50fccbd0a2a6928a385556c25284d41f0cc3",
"md5": "29cac01b26e53010c3701fe123838e79",
"sha256": "ef92f2284ec696f2cba1c6403ece87a5355ffc6b78a2111fecf4ffdfee70f626"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "29cac01b26e53010c3701fe123838e79",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 658253,
"upload_time": "2025-08-21T13:43:26",
"upload_time_iso_8601": "2025-08-21T13:43:26.179875Z",
"url": "https://files.pythonhosted.org/packages/b8/3a/9b5cbc44921f76c8f5b7a7be50fccbd0a2a6928a385556c25284d41f0cc3/pyoxipng-9.1.1-cp311-cp311-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "92d2bfddbd1a9d3cdc3419f2d28b9a1f989fa22df45b9dbe8dde93bb906c0afb",
"md5": "944eb0355a49bf53a0b13c8b3ee609e1",
"sha256": "6b53431f9f4651daecc113d53719824dd83591ff59edd7a2b07d277a257c82c7"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "944eb0355a49bf53a0b13c8b3ee609e1",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 671873,
"upload_time": "2025-08-21T13:43:32",
"upload_time_iso_8601": "2025-08-21T13:43:32.015027Z",
"url": "https://files.pythonhosted.org/packages/92/d2/bfddbd1a9d3cdc3419f2d28b9a1f989fa22df45b9dbe8dde93bb906c0afb/pyoxipng-9.1.1-cp311-cp311-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "62a6532e6f8bae798f9ae10162ca16d1321c0e71419bdcbbf0d23af50b234510",
"md5": "d0d0a8c178ae03f40dbf038706333997",
"sha256": "f35a36d3675cb431a5d8a7e4a1b72ac5693303bd29d795cf608f147a14b24fed"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "d0d0a8c178ae03f40dbf038706333997",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 833695,
"upload_time": "2025-08-21T13:43:51",
"upload_time_iso_8601": "2025-08-21T13:43:51.047131Z",
"url": "https://files.pythonhosted.org/packages/62/a6/532e6f8bae798f9ae10162ca16d1321c0e71419bdcbbf0d23af50b234510/pyoxipng-9.1.1-cp311-cp311-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "21eabe04e0b75371ca17d832a51b96f968686718f8792b994886110d1dd71a10",
"md5": "9b8fad59184fd80950ff98e44ad8f43c",
"sha256": "6b6fb85b976521cc2fa987b9ec392b66a437d56a07b7f691c4911e26c30d4d24"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-musllinux_1_2_armv7l.whl",
"has_sig": false,
"md5_digest": "9b8fad59184fd80950ff98e44ad8f43c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 912307,
"upload_time": "2025-08-21T13:43:56",
"upload_time_iso_8601": "2025-08-21T13:43:56.612762Z",
"url": "https://files.pythonhosted.org/packages/21/ea/be04e0b75371ca17d832a51b96f968686718f8792b994886110d1dd71a10/pyoxipng-9.1.1-cp311-cp311-musllinux_1_2_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4fa76964b8a79017998459de0d33397305428c145e2753869cf622c2ee263adc",
"md5": "5307f12223d63886c9c995cd2073098d",
"sha256": "17e75a18ef6405cc0850994abf7cc78ed2b2afd5c3c3443aca60b35e7896c7f5"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "5307f12223d63886c9c995cd2073098d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 874612,
"upload_time": "2025-08-21T13:44:03",
"upload_time_iso_8601": "2025-08-21T13:44:03.531669Z",
"url": "https://files.pythonhosted.org/packages/4f/a7/6964b8a79017998459de0d33397305428c145e2753869cf622c2ee263adc/pyoxipng-9.1.1-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d8f1c0b7c644e6ad82edf6027286cb8a106e7d0a5c49cd8de9aeb42db1bbf977",
"md5": "f394149856f99d0f875c39b20f609a4d",
"sha256": "fbc4d5cca8d0d453090618cd3f250dbc98212a3693055cc48922485c210826de"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "f394149856f99d0f875c39b20f609a4d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 840310,
"upload_time": "2025-08-21T13:44:10",
"upload_time_iso_8601": "2025-08-21T13:44:10.601110Z",
"url": "https://files.pythonhosted.org/packages/d8/f1/c0b7c644e6ad82edf6027286cb8a106e7d0a5c49cd8de9aeb42db1bbf977/pyoxipng-9.1.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d0ee08bdde2dc71dc007114448cc42b7645852fe8172f9a3b29d46c2bdfa9d26",
"md5": "214410dfedf462587faa967171b03eb0",
"sha256": "5ef7183b082a715bf2a53a20964df713d9944659dbcf9521258834e6ecc6df38"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "214410dfedf462587faa967171b03eb0",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 438290,
"upload_time": "2025-08-21T13:44:25",
"upload_time_iso_8601": "2025-08-21T13:44:25.585565Z",
"url": "https://files.pythonhosted.org/packages/d0/ee/08bdde2dc71dc007114448cc42b7645852fe8172f9a3b29d46c2bdfa9d26/pyoxipng-9.1.1-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fb0fd02062c7f2cfb53fab0484c4095451b72d249134b0252073773e3c2d869f",
"md5": "aafa6133c8514f118af9347a0ae48737",
"sha256": "327d065925cec7972b744f30e890e1c3ca3d47908b5e8474ebba389dbdd627e1"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "aafa6133c8514f118af9347a0ae48737",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 458236,
"upload_time": "2025-08-21T13:44:19",
"upload_time_iso_8601": "2025-08-21T13:44:19.719444Z",
"url": "https://files.pythonhosted.org/packages/fb/0f/d02062c7f2cfb53fab0484c4095451b72d249134b0252073773e3c2d869f/pyoxipng-9.1.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4bb2701083b07cc03e2cf5c76df6e91f19a1aac2fda4e84d4152022768a6b5e7",
"md5": "d7e742e55739350861c9f8fa47c4162f",
"sha256": "dd262203be827a9cbd176f024baad1c6ba980393ff1d19a144b34ef2533ee1a0"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "d7e742e55739350861c9f8fa47c4162f",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 613189,
"upload_time": "2025-08-21T13:43:45",
"upload_time_iso_8601": "2025-08-21T13:43:45.955213Z",
"url": "https://files.pythonhosted.org/packages/4b/b2/701083b07cc03e2cf5c76df6e91f19a1aac2fda4e84d4152022768a6b5e7/pyoxipng-9.1.1-cp312-cp312-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0b45840b14aaa5d2a12864274957067cd60dc53532e772675b65aae67aff6828",
"md5": "c41a323fdfcb9501f6bfafa85336215a",
"sha256": "6f3a8df3afc9fdb3543c0cbc6b6e963e788650bd1bdb89a05a3e1fa276a9c63a"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "c41a323fdfcb9501f6bfafa85336215a",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 572905,
"upload_time": "2025-08-21T13:43:39",
"upload_time_iso_8601": "2025-08-21T13:43:39.849715Z",
"url": "https://files.pythonhosted.org/packages/0b/45/840b14aaa5d2a12864274957067cd60dc53532e772675b65aae67aff6828/pyoxipng-9.1.1-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "be1e4121e510058a0fb77b7a821c495bff2f5b5ec992db1792535000c8628d0c",
"md5": "2ba2ae7a9b445c014a98e1019c0adf71",
"sha256": "3d6e3982e563c56732da3493b76b616b625e8072b10542081832184fdba8bcdf"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "2ba2ae7a9b445c014a98e1019c0adf71",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 658808,
"upload_time": "2025-08-21T13:43:27",
"upload_time_iso_8601": "2025-08-21T13:43:27.352812Z",
"url": "https://files.pythonhosted.org/packages/be/1e/4121e510058a0fb77b7a821c495bff2f5b5ec992db1792535000c8628d0c/pyoxipng-9.1.1-cp312-cp312-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f82f1e126efcdf4d9a3753dc158d6ac5127a83adca4418696935ed39f97bdd6b",
"md5": "d82cd47fd69d69a95e57dcd4890ca690",
"sha256": "f7771b81d6a81b9b4e9f70a7e0d982a4d9d33054842050aeef5cae116d915a57"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "d82cd47fd69d69a95e57dcd4890ca690",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 672522,
"upload_time": "2025-08-21T13:43:33",
"upload_time_iso_8601": "2025-08-21T13:43:33.496397Z",
"url": "https://files.pythonhosted.org/packages/f8/2f/1e126efcdf4d9a3753dc158d6ac5127a83adca4418696935ed39f97bdd6b/pyoxipng-9.1.1-cp312-cp312-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b3281e00f1403287177309e90f7a4e7eb07cabd3349ea80ab1b406a72ffdcd40",
"md5": "f56db03969e6c39f27dbd25f24a29ac3",
"sha256": "3e5281dfa33aa716bcddb59010609f27d1d82e39342ae6d03c7c714c78d4b3cf"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "f56db03969e6c39f27dbd25f24a29ac3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 834234,
"upload_time": "2025-08-21T13:43:52",
"upload_time_iso_8601": "2025-08-21T13:43:52.135516Z",
"url": "https://files.pythonhosted.org/packages/b3/28/1e00f1403287177309e90f7a4e7eb07cabd3349ea80ab1b406a72ffdcd40/pyoxipng-9.1.1-cp312-cp312-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "987e3b26abbcfac668915c41d4a3166d993435c35b3435af883eb0ff43bce0c6",
"md5": "5beb3f46cfeba0d94fba9b0ab0da5150",
"sha256": "14fc4633e182b279837759c8992df18475f3334481efb5582d4f176b3675eb48"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-musllinux_1_2_armv7l.whl",
"has_sig": false,
"md5_digest": "5beb3f46cfeba0d94fba9b0ab0da5150",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 911158,
"upload_time": "2025-08-21T13:43:58",
"upload_time_iso_8601": "2025-08-21T13:43:58.057779Z",
"url": "https://files.pythonhosted.org/packages/98/7e/3b26abbcfac668915c41d4a3166d993435c35b3435af883eb0ff43bce0c6/pyoxipng-9.1.1-cp312-cp312-musllinux_1_2_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "30c5cb83410a00a22fb31066406f7aed54d3102bf8ba5e6a2b960fd184c676f4",
"md5": "6a49833715d415ce02b607239d43d0c9",
"sha256": "75decb289ad548bd1384b9034571e506ef883380be05fa3090431f039aa08513"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "6a49833715d415ce02b607239d43d0c9",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 875049,
"upload_time": "2025-08-21T13:44:04",
"upload_time_iso_8601": "2025-08-21T13:44:04.669538Z",
"url": "https://files.pythonhosted.org/packages/30/c5/cb83410a00a22fb31066406f7aed54d3102bf8ba5e6a2b960fd184c676f4/pyoxipng-9.1.1-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "121ec661c964626d7c5d737de88422d1e89375d79cb859bf934f77aaf2d69ed8",
"md5": "61a41e9714331532bea7d8f31b844701",
"sha256": "e3307254a6766599c2ec6a1252f1e778d600c9f162cde7e084d944084a734d84"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "61a41e9714331532bea7d8f31b844701",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 841204,
"upload_time": "2025-08-21T13:44:11",
"upload_time_iso_8601": "2025-08-21T13:44:11.815793Z",
"url": "https://files.pythonhosted.org/packages/12/1e/c661c964626d7c5d737de88422d1e89375d79cb859bf934f77aaf2d69ed8/pyoxipng-9.1.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "48917d6e5b7235c705e6fd80b0b54e74c4debf068b40494b5d02ce12fdaad4d9",
"md5": "eb91266f524bef6d74af3399f908bd7f",
"sha256": "45381a5279240ecdf33561075f9868b95f9532d12360b5f3254bedf1cfce8c29"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "eb91266f524bef6d74af3399f908bd7f",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 438681,
"upload_time": "2025-08-21T13:44:26",
"upload_time_iso_8601": "2025-08-21T13:44:26.695660Z",
"url": "https://files.pythonhosted.org/packages/48/91/7d6e5b7235c705e6fd80b0b54e74c4debf068b40494b5d02ce12fdaad4d9/pyoxipng-9.1.1-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3813e645eb1d22e05edaa8d961d8bf8a975c6804839133912fa1f10a2093c537",
"md5": "2d23270db4284f1915cd77c2051f7596",
"sha256": "120c286665ba2a8e86a9c91ee51067c9bebc53c0a2ebb38cb558217a70ee8a1d"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "2d23270db4284f1915cd77c2051f7596",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 459710,
"upload_time": "2025-08-21T13:44:20",
"upload_time_iso_8601": "2025-08-21T13:44:20.781679Z",
"url": "https://files.pythonhosted.org/packages/38/13/e645eb1d22e05edaa8d961d8bf8a975c6804839133912fa1f10a2093c537/pyoxipng-9.1.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "969b37ebc46e53615eeb74c1def05fbe273998c6763dfa0bedaec75af436125b",
"md5": "3533e6ff208f9138681bc01aadeeca90",
"sha256": "4ca1d27a90e8adaeefe1d1fbc5f754021fa0f50fec240fff644635b91423cf2d"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "3533e6ff208f9138681bc01aadeeca90",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 613575,
"upload_time": "2025-08-21T13:43:47",
"upload_time_iso_8601": "2025-08-21T13:43:47.183046Z",
"url": "https://files.pythonhosted.org/packages/96/9b/37ebc46e53615eeb74c1def05fbe273998c6763dfa0bedaec75af436125b/pyoxipng-9.1.1-cp313-cp313-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e64f8af9288bac07287e16e1d5544a0d6b74e554d90d2aae5ffae4c7705cbfce",
"md5": "f2d9f3985c28dd101a7ab8d8abdd79a5",
"sha256": "c1af73961a090209c1bc79d75942ee45955b4b47b53939fe49a036a9943e2472"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f2d9f3985c28dd101a7ab8d8abdd79a5",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 573375,
"upload_time": "2025-08-21T13:43:41",
"upload_time_iso_8601": "2025-08-21T13:43:41.008554Z",
"url": "https://files.pythonhosted.org/packages/e6/4f/8af9288bac07287e16e1d5544a0d6b74e554d90d2aae5ffae4c7705cbfce/pyoxipng-9.1.1-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "7492b3ef4263921122c2c0904ff2490a6b32f8a7dd84111ea39f48c22182f168",
"md5": "93c7802b218d0305c2600bd5a60de6d1",
"sha256": "020fe8bdbbc9dd06064beb14c33a44d5d3d3e6c3365e92795ecffb716cdce093"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "93c7802b218d0305c2600bd5a60de6d1",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 659066,
"upload_time": "2025-08-21T13:43:28",
"upload_time_iso_8601": "2025-08-21T13:43:28.481099Z",
"url": "https://files.pythonhosted.org/packages/74/92/b3ef4263921122c2c0904ff2490a6b32f8a7dd84111ea39f48c22182f168/pyoxipng-9.1.1-cp313-cp313-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "91c7e8f36960924c23ba8dad0a97e75e55a142af77ad9a465ffff437e2ce3a55",
"md5": "594144f26747b1d492131c1bc0f4acf4",
"sha256": "a71024ec9660253fd8ab09e0af5e66aaa973fb31cc34a4f193aab8c5b7518d91"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "594144f26747b1d492131c1bc0f4acf4",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 672820,
"upload_time": "2025-08-21T13:43:34",
"upload_time_iso_8601": "2025-08-21T13:43:34.649813Z",
"url": "https://files.pythonhosted.org/packages/91/c7/e8f36960924c23ba8dad0a97e75e55a142af77ad9a465ffff437e2ce3a55/pyoxipng-9.1.1-cp313-cp313-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cb6e8850098083d0197bf8fa1557f5656a75ea058a4821822fd9d2bca5740f02",
"md5": "bb95998c050067c9c024445fee176281",
"sha256": "48dd91f27ed93c3ce13e4705b8d3e82c14d10d02e0fb27518076c7363472edf5"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "bb95998c050067c9c024445fee176281",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 834260,
"upload_time": "2025-08-21T13:43:53",
"upload_time_iso_8601": "2025-08-21T13:43:53.154091Z",
"url": "https://files.pythonhosted.org/packages/cb/6e/8850098083d0197bf8fa1557f5656a75ea058a4821822fd9d2bca5740f02/pyoxipng-9.1.1-cp313-cp313-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "56988fd41c25c19a8729608fed20e861643b7f324fbc673168aa10807a546f21",
"md5": "879cb8df359cb60eb136aa2eebdaae92",
"sha256": "bbefa908c057d654d213d99ed2201cba1aa382ff41e37eb1580423fbe88228fa"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-musllinux_1_2_armv7l.whl",
"has_sig": false,
"md5_digest": "879cb8df359cb60eb136aa2eebdaae92",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 911306,
"upload_time": "2025-08-21T13:43:59",
"upload_time_iso_8601": "2025-08-21T13:43:59.675570Z",
"url": "https://files.pythonhosted.org/packages/56/98/8fd41c25c19a8729608fed20e861643b7f324fbc673168aa10807a546f21/pyoxipng-9.1.1-cp313-cp313-musllinux_1_2_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5292165de08ff29dc09e4f41d0d50f2e0ec00cca76597967a0d8beb7086fbbe1",
"md5": "2082b1be46cf8c3cc38c20414a50837b",
"sha256": "f49e49f1043ba7f83779b7b70c86dddbe75a591726113ba17ba78fab96a363e9"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "2082b1be46cf8c3cc38c20414a50837b",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 874246,
"upload_time": "2025-08-21T13:44:06",
"upload_time_iso_8601": "2025-08-21T13:44:06.758725Z",
"url": "https://files.pythonhosted.org/packages/52/92/165de08ff29dc09e4f41d0d50f2e0ec00cca76597967a0d8beb7086fbbe1/pyoxipng-9.1.1-cp313-cp313-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "62460ebc803cf0c50eba4f6a175a51a22394188fd18e589a498216d65ae7c1ae",
"md5": "53961c0f37ce6ab611a03126958930a9",
"sha256": "02c8df2c62c6ed09d9ae07b83481481bb707faf1e91244d1e7c2a8ef0357cc3c"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "53961c0f37ce6ab611a03126958930a9",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 841278,
"upload_time": "2025-08-21T13:44:13",
"upload_time_iso_8601": "2025-08-21T13:44:13.002959Z",
"url": "https://files.pythonhosted.org/packages/62/46/0ebc803cf0c50eba4f6a175a51a22394188fd18e589a498216d65ae7c1ae/pyoxipng-9.1.1-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "066b7b9a473b0d4435c687281837fec4609eddedc7e8112901888a5cb999df9a",
"md5": "9023c2944c6fd208b4a9a1744a886f3a",
"sha256": "f7b29240fac6be4e3b1d9db2398d251ddf127030faffdfff639d910695b68537"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "9023c2944c6fd208b4a9a1744a886f3a",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 438727,
"upload_time": "2025-08-21T13:44:27",
"upload_time_iso_8601": "2025-08-21T13:44:27.757708Z",
"url": "https://files.pythonhosted.org/packages/06/6b/7b9a473b0d4435c687281837fec4609eddedc7e8112901888a5cb999df9a/pyoxipng-9.1.1-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6e503c4042cb356223d29269a485aa8dd8a03922af7db58a66feb5e252252391",
"md5": "bb0478bb28502a4108fa69af3abf17a5",
"sha256": "9b807afd9e93d7f41cf74e6a23fba390b40004777ec70081543cb9ef62834d5e"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "bb0478bb28502a4108fa69af3abf17a5",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": ">=3.8",
"size": 459299,
"upload_time": "2025-08-21T13:44:22",
"upload_time_iso_8601": "2025-08-21T13:44:22.460121Z",
"url": "https://files.pythonhosted.org/packages/6e/50/3c4042cb356223d29269a485aa8dd8a03922af7db58a66feb5e252252391/pyoxipng-9.1.1-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "70f8f91fb38a6d9032476e7bead0838f0c55cea75647688d123a0bacd267e29e",
"md5": "25e9fbc7ec601797c948387e06daf0ba",
"sha256": "6eafa8ef8f15dc047328155ec4f4f6e229b747a64baeb8906be2e3b0f3b4f259"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-macosx_10_12_x86_64.whl",
"has_sig": false,
"md5_digest": "25e9fbc7ec601797c948387e06daf0ba",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 620967,
"upload_time": "2025-08-21T13:43:48",
"upload_time_iso_8601": "2025-08-21T13:43:48.571823Z",
"url": "https://files.pythonhosted.org/packages/70/f8/f91fb38a6d9032476e7bead0838f0c55cea75647688d123a0bacd267e29e/pyoxipng-9.1.1-cp39-cp39-macosx_10_12_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9ba8cd526a2806276637427de3e63d27829e03fb84b1628a458e66b5751e03fb",
"md5": "bedfce630d23dcb7ac70e325e4867a0b",
"sha256": "a866134aae2643219258a2f7b98a34d7f44820e525e338b5c480ee5e1e3bfb85"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "bedfce630d23dcb7ac70e325e4867a0b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 577903,
"upload_time": "2025-08-21T13:43:42",
"upload_time_iso_8601": "2025-08-21T13:43:42.241816Z",
"url": "https://files.pythonhosted.org/packages/9b/a8/cd526a2806276637427de3e63d27829e03fb84b1628a458e66b5751e03fb/pyoxipng-9.1.1-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "94506d2fa71b7cc054e989d7214252f46a7ba0cb6bdb6daf1acf4b9824a03180",
"md5": "7fae0d973fdc489b8c8ab8b8745c8687",
"sha256": "470c752206747fc5e626fb45598ad21086397b99010cce4e618edba1a8cc91bb"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-manylinux_2_28_aarch64.whl",
"has_sig": false,
"md5_digest": "7fae0d973fdc489b8c8ab8b8745c8687",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 659368,
"upload_time": "2025-08-21T13:43:29",
"upload_time_iso_8601": "2025-08-21T13:43:29.564340Z",
"url": "https://files.pythonhosted.org/packages/94/50/6d2fa71b7cc054e989d7214252f46a7ba0cb6bdb6daf1acf4b9824a03180/pyoxipng-9.1.1-cp39-cp39-manylinux_2_28_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e123ad707e2d52ddd24035c924308a94aee2709519b2203cb77c137a3638cb21",
"md5": "d5af6f6b41475670488d9e86e988d29a",
"sha256": "32a87a9ff06b380a061ef888c0c0f29efa99a58c859aa19f3e340c31f18f1aff"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "d5af6f6b41475670488d9e86e988d29a",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 672636,
"upload_time": "2025-08-21T13:43:35",
"upload_time_iso_8601": "2025-08-21T13:43:35.936996Z",
"url": "https://files.pythonhosted.org/packages/e1/23/ad707e2d52ddd24035c924308a94aee2709519b2203cb77c137a3638cb21/pyoxipng-9.1.1-cp39-cp39-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5e8bcf9ce0d16d1ba55037d4052a04123d6010977855d47a1d69004eac71c7b1",
"md5": "90077debabe2af8143ab77734d4487cf",
"sha256": "6fd72517b44a004948507710d651e2561d1aa4c9ea7d604e4aa8dbf4605ecbf5"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-musllinux_1_2_aarch64.whl",
"has_sig": false,
"md5_digest": "90077debabe2af8143ab77734d4487cf",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 834728,
"upload_time": "2025-08-21T13:43:54",
"upload_time_iso_8601": "2025-08-21T13:43:54.227575Z",
"url": "https://files.pythonhosted.org/packages/5e/8b/cf9ce0d16d1ba55037d4052a04123d6010977855d47a1d69004eac71c7b1/pyoxipng-9.1.1-cp39-cp39-musllinux_1_2_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0f7afdf51769e4122a6fb6fbcb8cd3389842a3ac388f5e2439e23ece7c4635aa",
"md5": "28cdc4d71f5c9d59358db8067b1cc833",
"sha256": "f9b0873d56217b793b069453b6376c7dbe550e683488d825b750c7f4f5659e2f"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-musllinux_1_2_armv7l.whl",
"has_sig": false,
"md5_digest": "28cdc4d71f5c9d59358db8067b1cc833",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 912304,
"upload_time": "2025-08-21T13:44:00",
"upload_time_iso_8601": "2025-08-21T13:44:00.782044Z",
"url": "https://files.pythonhosted.org/packages/0f/7a/fdf51769e4122a6fb6fbcb8cd3389842a3ac388f5e2439e23ece7c4635aa/pyoxipng-9.1.1-cp39-cp39-musllinux_1_2_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "823f51b61b72065135b5c972fbee6e927505f84d9f87299dc78ba84fcbb9a5b3",
"md5": "52625351e135ea521711e23a034fae73",
"sha256": "c7cf686e4aad8514d33fc15408d06b9f717d6e16b96aa8b999229ef3e048a8db"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "52625351e135ea521711e23a034fae73",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 875080,
"upload_time": "2025-08-21T13:44:08",
"upload_time_iso_8601": "2025-08-21T13:44:08.133197Z",
"url": "https://files.pythonhosted.org/packages/82/3f/51b61b72065135b5c972fbee6e927505f84d9f87299dc78ba84fcbb9a5b3/pyoxipng-9.1.1-cp39-cp39-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "827486938261999e06f5f984d01064bf899b21c9f1c9d944188e4d3c56374850",
"md5": "ff3c391fb92e35b01bb8224efae7f397",
"sha256": "3576ad359cf03d3787d04fcd593b42ae9ef74329590d8fbbddd1af3a30e46d73"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "ff3c391fb92e35b01bb8224efae7f397",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 841103,
"upload_time": "2025-08-21T13:44:14",
"upload_time_iso_8601": "2025-08-21T13:44:14.176269Z",
"url": "https://files.pythonhosted.org/packages/82/74/86938261999e06f5f984d01064bf899b21c9f1c9d944188e4d3c56374850/pyoxipng-9.1.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "367321d39198ecd6d187da992f06ea958e23fa4f1b0008b0ccffd9f518358016",
"md5": "41112530166b9eb27caa5340197bd7a3",
"sha256": "de71446521adebf9c826280b9001ba53cc084557799e8e6307d7d3054c770a2d"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "41112530166b9eb27caa5340197bd7a3",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 438842,
"upload_time": "2025-08-21T13:44:28",
"upload_time_iso_8601": "2025-08-21T13:44:28.807516Z",
"url": "https://files.pythonhosted.org/packages/36/73/21d39198ecd6d187da992f06ea958e23fa4f1b0008b0ccffd9f518358016/pyoxipng-9.1.1-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "35eab503ec97460559c7a9763c2ebedff0d59931edef8bbcdca618137ecf812f",
"md5": "fb1e19f8671e76a4e524261ee8c614cf",
"sha256": "d26c91f649a6174a5c00126a292549f79a2323887794e3c5e1463ac5e75991ac"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "fb1e19f8671e76a4e524261ee8c614cf",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8",
"size": 458740,
"upload_time": "2025-08-21T13:44:23",
"upload_time_iso_8601": "2025-08-21T13:44:23.502418Z",
"url": "https://files.pythonhosted.org/packages/35/ea/b503ec97460559c7a9763c2ebedff0d59931edef8bbcdca618137ecf812f/pyoxipng-9.1.1-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "eecc25a4e3e3e0dc41103337144aacfccbda34562ef6b3fa6b1afa4975e0cc11",
"md5": "d6be4459b0beb3d61327d58fec28e262",
"sha256": "c9c3c087b0c744ba9b709a321c61183668f024c138748a8da565fe89a4bf0fb8"
},
"downloads": -1,
"filename": "pyoxipng-9.1.1.tar.gz",
"has_sig": false,
"md5_digest": "d6be4459b0beb3d61327d58fec28e262",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 322672,
"upload_time": "2025-08-21T13:44:17",
"upload_time_iso_8601": "2025-08-21T13:44:17.160292Z",
"url": "https://files.pythonhosted.org/packages/ee/cc/25a4e3e3e0dc41103337144aacfccbda34562ef6b3fa6b1afa4975e0cc11/pyoxipng-9.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-21 13:44:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nfrasser",
"github_project": "pyoxipng",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyoxipng"
}