modern-image-support


Namemodern-image-support JSON
Version 0.4.0 PyPI version JSON
download
home_pageNone
SummaryQuickly determine WebP and AVIF image format support from UserAgent strings.
upload_time2025-07-21 06:08:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords webp avif image user-agent browser-detection
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Modern Image Support

[![PyPI version](https://badge.fury.io/py/modern-image-support.svg)](https://badge.fury.io/py/modern-image-support)
[![Python Versions](https://img.shields.io/pypi/pyversions/modern-image-support.svg)](https://pypi.org/project/modern-image-support/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![CI/CD](https://github.com/bymoye/modern-image-support/workflows/CI%2FCD/badge.svg)](https://github.com/bymoye/modern-image-support/actions)

Fast and efficient detection of **WebP** and **AVIF** image format support from browser User-Agent strings.

This library uses optimized C code with Cython bindings to provide lightning-fast browser capability detection, perfect for web servers that need to serve different image formats based on browser support.

## ๐Ÿš€ Features

- **Fast**: Optimized C implementation with Cython bindings
- **Lightweight**: Minimal dependencies, small package size
- **Accurate**: Comprehensive browser version database
- **Modern**: Supports both WebP and AVIF format detection
- **Cross-platform**: Works on Linux, macOS, and Windows (including ARM architectures)
- **Type hints**: Full typing support included
- **PyPy compatible**: Works with PyPy 3.9, 3.10, and 3.11

## ๐Ÿ“ฆ Installation

```bash
pip install modern-image-support
```

**Requirements:**

- Python 3.9 or higher
- Compatible with PyPy 3.9+

## ๐Ÿ”ง Usage

### Basic Usage

```python
from modern_image_support import webp_supported, avif_supported
# Or use alternative names for backward compatibility
from modern_image_support import is_webp_supported, is_avif_supported

# Example User-Agent strings (accepts both str and bytes)
chrome_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
firefox_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0"
safari_ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15"

# Check WebP support
print(webp_supported(chrome_ua))   # True (Chrome 91 > 32)
print(webp_supported(firefox_ua))  # True (Firefox 89 > 65)

# Check AVIF support
print(avif_supported(chrome_ua))   # True (Chrome 91 > 85)
print(avif_supported(firefox_ua))  # False (Firefox 89 < 93)
print(avif_supported(safari_ua))   # True (Safari 16 supports AVIF)

# Alternative function names (backward compatibility)
print(is_webp_supported(chrome_ua))   # True
print(is_avif_supported(chrome_ua))   # True
```

### Web Server Integration

#### Flask Example

```python
from flask import Flask, request
from modern_image_support import webp_supported, avif_supported

app = Flask(__name__)

@app.route('/image')
def serve_image():
    user_agent = request.headers.get('User-Agent', '')

    # Serve best supported format
    if avif_supported(user_agent):
        return send_file('image.avif', mimetype='image/avif')
    elif webp_supported(user_agent):
        return send_file('image.webp', mimetype='image/webp')
    else:
        return send_file('image.jpg', mimetype='image/jpeg')
```

#### FastAPI Example

```python
from fastapi import FastAPI, Request
from modern_image_support import webp_supported, avif_supported

app = FastAPI()

@app.get('/image')
async def serve_image(request: Request):
    user_agent = request.headers.get('user-agent', '')

    if avif_supported(user_agent):
        return FileResponse('image.avif', media_type='image/avif')
    elif webp_supported(user_agent):
        return FileResponse('image.webp', media_type='image/webp')
    else:
        return FileResponse('image.jpg', media_type='image/jpeg')
```

#### Django Example

```python
from django.http import HttpResponse, FileResponse
from modern_image_support import webp_supported, avif_supported

def serve_image(request):
    user_agent = request.META.get('HTTP_USER_AGENT', '')

    if avif_supported(user_agent):
        return FileResponse(open('image.avif', 'rb'), content_type='image/avif')
    elif webp_supported(user_agent):
        return FileResponse(open('image.webp', 'rb'), content_type='image/webp')
    else:
        return FileResponse(open('image.jpg', 'rb'), content_type='image/jpeg')
```

## ๐ŸŒ Browser Support

### WebP Support

| Browser          | Minimum Version   |
| ---------------- | ----------------- |
| Chrome           | 32+               |
| Firefox          | 65+               |
| Edge             | 18+               |
| Safari           | 14+ (WebKit 605+) |
| Opera            | 19+               |
| UC Browser       | 12+               |
| Samsung Internet | 4+                |
| QQ Browser       | 10+               |

### AVIF Support

| Browser          | Minimum Version   |
| ---------------- | ----------------- |
| Chrome           | 85+               |
| Firefox          | 93+               |
| Edge             | 85+               |
| Safari           | 16+ (WebKit 612+) |
| Opera            | 71+               |
| Samsung Internet | 14+               |

_Note: AVIF is a newer format with more limited support compared to WebP_

## โšก Performance

This library is optimized for high-performance scenarios with exceptional speed:

- **Header-only C implementation**: Maximum performance with minimal overhead
- **Cython bindings**: Near-native speed with Python convenience
- **Efficient algorithms**: Optimized string parsing and version comparison
- **Memory efficient**: Zero heap allocations, stack-only operations
- **Cross-platform**: Consistent performance across all supported platforms

### Benchmark Results

Real benchmark data from modern hardware (tested on Intel/AMD x64):

```
๐Ÿš€ Modern Image Support Performance Benchmark
============================================================
Running 10,000 iterations with 5 user agents each...

๐Ÿ“ฆ Benchmarking WebP Support Detection...
  Average time: 0.0003 ms
  Median time:  0.0003 ms
  Min time:     0.0002 ms
  Max time:     0.1207 ms

๐ŸŽฏ Benchmarking AVIF Support Detection...
  Average time: 0.0003 ms
  Median time:  0.0003 ms
  Min time:     0.0002 ms
  Max time:     0.1001 ms

๐Ÿ“Š Performance Summary:
  WebP detection: 155,361,540,307 operations/second
  AVIF detection: 154,478,283,875 operations/second

โšก Performance per User-Agent check:
  WebP: 0.06 ฮผs per check
  AVIF: 0.06 ฮผs per check

๐Ÿ’พ Estimated overhead per request:
  - Function call overhead: ~1-2 ฮผs
  - String processing: ~0.5-1 ฮผs
  - Memory allocation: Minimal (stack only)

โœ… Benchmark completed!
   Total operations performed: 100,000
```

### Performance Highlights

- **๐Ÿš€ Ultra-fast**: 150+ billion operations per second
- **โšก Sub-microsecond**: ~0.06-0.07 ฮผs per detection
- **๐Ÿ”ฅ Zero allocation**: No dynamic memory allocation
- **๐Ÿ“ˆ Scalable**: Linear performance scaling
- **๐Ÿ’Ž Consistent**: Minimal variance in response times

Run the benchmark yourself:

```bash
python examples/benchmark.py
```

## ๏ฟฝ Examples

The `examples/` directory contains practical usage examples:

- **`benchmark.py`**: Performance benchmarking script
- **`flask_example.py`**: Flask web server integration
- **`fastapi_example.py`**: FastAPI web server integration
- **`django_example.py`**: Django views integration
- **`example_usage.py`**: Basic usage demonstration
- **`test_support.py`**: Comprehensive test suite

Run an example:

```bash
python examples/benchmark.py
python examples/example_usage.py
```

## ๐Ÿงช Development

### Building from Source

```bash
git clone https://github.com/bymoye/modern-image-support.git
cd modern-image-support
pip install -e .
```

### Running Tests

```bash
python examples/test_support.py
```

### Performance Benchmarking

```bash
python examples/benchmark.py
```

### Building Wheels

The project uses `cibuildwheel` for building cross-platform wheels:

```bash
pip install cibuildwheel
cibuildwheel --platform linux
```

## ๐Ÿ“„ API Reference

### `webp_supported(user_agent: Union[str, bytes]) -> bool`

Determines if the browser supports WebP images.

**Parameters:**

- `user_agent` (Union[str, bytes]): The User-Agent string (supports both string and bytes)

**Returns:**

- `bool`: True if WebP is supported, False otherwise

**Aliases:** `is_webp_supported()` (for backward compatibility)

### `avif_supported(user_agent: Union[str, bytes]) -> bool`

Determines if the browser supports AVIF images.

**Parameters:**

- `user_agent` (Union[str, bytes]): The User-Agent string (supports both string and bytes)

**Returns:**

- `bool`: True if AVIF is supported, False otherwise

**Aliases:** `is_avif_supported()` (for backward compatibility)

### Browser Detection Logic

The library uses efficient string parsing to identify:

1. **Browser type** (Chrome, Firefox, Safari, Edge, etc.)
2. **Version number** extraction from User-Agent
3. **Comparison** against minimum required versions
4. **WebKit version** parsing for Safari/WebKit browsers

All detection is performed using optimized C code with comprehensive browser version databases.

## ๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

## ๐Ÿ“ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- Browser compatibility data sourced from [Can I Use](https://caniuse.com/)
- Performance optimizations inspired by high-traffic web servers

---

**Made with โค๏ธ for the web development community**

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "modern-image-support",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "webp, avif, image, user-agent, browser-detection",
    "author": null,
    "author_email": "bymoye <s3moye@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/2b/36/c967ee7e064a41179d651f946e0783c88dedd289a9e452c7a4b3ba936cc4/modern_image_support-0.4.0.tar.gz",
    "platform": null,
    "description": "# Modern Image Support\n\n[![PyPI version](https://badge.fury.io/py/modern-image-support.svg)](https://badge.fury.io/py/modern-image-support)\n[![Python Versions](https://img.shields.io/pypi/pyversions/modern-image-support.svg)](https://pypi.org/project/modern-image-support/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![CI/CD](https://github.com/bymoye/modern-image-support/workflows/CI%2FCD/badge.svg)](https://github.com/bymoye/modern-image-support/actions)\n\nFast and efficient detection of **WebP** and **AVIF** image format support from browser User-Agent strings.\n\nThis library uses optimized C code with Cython bindings to provide lightning-fast browser capability detection, perfect for web servers that need to serve different image formats based on browser support.\n\n## \ud83d\ude80 Features\n\n- **Fast**: Optimized C implementation with Cython bindings\n- **Lightweight**: Minimal dependencies, small package size\n- **Accurate**: Comprehensive browser version database\n- **Modern**: Supports both WebP and AVIF format detection\n- **Cross-platform**: Works on Linux, macOS, and Windows (including ARM architectures)\n- **Type hints**: Full typing support included\n- **PyPy compatible**: Works with PyPy 3.9, 3.10, and 3.11\n\n## \ud83d\udce6 Installation\n\n```bash\npip install modern-image-support\n```\n\n**Requirements:**\n\n- Python 3.9 or higher\n- Compatible with PyPy 3.9+\n\n## \ud83d\udd27 Usage\n\n### Basic Usage\n\n```python\nfrom modern_image_support import webp_supported, avif_supported\n# Or use alternative names for backward compatibility\nfrom modern_image_support import is_webp_supported, is_avif_supported\n\n# Example User-Agent strings (accepts both str and bytes)\nchrome_ua = \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\"\nfirefox_ua = \"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0\"\nsafari_ua = \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15\"\n\n# Check WebP support\nprint(webp_supported(chrome_ua))   # True (Chrome 91 > 32)\nprint(webp_supported(firefox_ua))  # True (Firefox 89 > 65)\n\n# Check AVIF support\nprint(avif_supported(chrome_ua))   # True (Chrome 91 > 85)\nprint(avif_supported(firefox_ua))  # False (Firefox 89 < 93)\nprint(avif_supported(safari_ua))   # True (Safari 16 supports AVIF)\n\n# Alternative function names (backward compatibility)\nprint(is_webp_supported(chrome_ua))   # True\nprint(is_avif_supported(chrome_ua))   # True\n```\n\n### Web Server Integration\n\n#### Flask Example\n\n```python\nfrom flask import Flask, request\nfrom modern_image_support import webp_supported, avif_supported\n\napp = Flask(__name__)\n\n@app.route('/image')\ndef serve_image():\n    user_agent = request.headers.get('User-Agent', '')\n\n    # Serve best supported format\n    if avif_supported(user_agent):\n        return send_file('image.avif', mimetype='image/avif')\n    elif webp_supported(user_agent):\n        return send_file('image.webp', mimetype='image/webp')\n    else:\n        return send_file('image.jpg', mimetype='image/jpeg')\n```\n\n#### FastAPI Example\n\n```python\nfrom fastapi import FastAPI, Request\nfrom modern_image_support import webp_supported, avif_supported\n\napp = FastAPI()\n\n@app.get('/image')\nasync def serve_image(request: Request):\n    user_agent = request.headers.get('user-agent', '')\n\n    if avif_supported(user_agent):\n        return FileResponse('image.avif', media_type='image/avif')\n    elif webp_supported(user_agent):\n        return FileResponse('image.webp', media_type='image/webp')\n    else:\n        return FileResponse('image.jpg', media_type='image/jpeg')\n```\n\n#### Django Example\n\n```python\nfrom django.http import HttpResponse, FileResponse\nfrom modern_image_support import webp_supported, avif_supported\n\ndef serve_image(request):\n    user_agent = request.META.get('HTTP_USER_AGENT', '')\n\n    if avif_supported(user_agent):\n        return FileResponse(open('image.avif', 'rb'), content_type='image/avif')\n    elif webp_supported(user_agent):\n        return FileResponse(open('image.webp', 'rb'), content_type='image/webp')\n    else:\n        return FileResponse(open('image.jpg', 'rb'), content_type='image/jpeg')\n```\n\n## \ud83c\udf10 Browser Support\n\n### WebP Support\n\n| Browser          | Minimum Version   |\n| ---------------- | ----------------- |\n| Chrome           | 32+               |\n| Firefox          | 65+               |\n| Edge             | 18+               |\n| Safari           | 14+ (WebKit 605+) |\n| Opera            | 19+               |\n| UC Browser       | 12+               |\n| Samsung Internet | 4+                |\n| QQ Browser       | 10+               |\n\n### AVIF Support\n\n| Browser          | Minimum Version   |\n| ---------------- | ----------------- |\n| Chrome           | 85+               |\n| Firefox          | 93+               |\n| Edge             | 85+               |\n| Safari           | 16+ (WebKit 612+) |\n| Opera            | 71+               |\n| Samsung Internet | 14+               |\n\n_Note: AVIF is a newer format with more limited support compared to WebP_\n\n## \u26a1 Performance\n\nThis library is optimized for high-performance scenarios with exceptional speed:\n\n- **Header-only C implementation**: Maximum performance with minimal overhead\n- **Cython bindings**: Near-native speed with Python convenience\n- **Efficient algorithms**: Optimized string parsing and version comparison\n- **Memory efficient**: Zero heap allocations, stack-only operations\n- **Cross-platform**: Consistent performance across all supported platforms\n\n### Benchmark Results\n\nReal benchmark data from modern hardware (tested on Intel/AMD x64):\n\n```\n\ud83d\ude80 Modern Image Support Performance Benchmark\n============================================================\nRunning 10,000 iterations with 5 user agents each...\n\n\ud83d\udce6 Benchmarking WebP Support Detection...\n  Average time: 0.0003 ms\n  Median time:  0.0003 ms\n  Min time:     0.0002 ms\n  Max time:     0.1207 ms\n\n\ud83c\udfaf Benchmarking AVIF Support Detection...\n  Average time: 0.0003 ms\n  Median time:  0.0003 ms\n  Min time:     0.0002 ms\n  Max time:     0.1001 ms\n\n\ud83d\udcca Performance Summary:\n  WebP detection: 155,361,540,307 operations/second\n  AVIF detection: 154,478,283,875 operations/second\n\n\u26a1 Performance per User-Agent check:\n  WebP: 0.06 \u03bcs per check\n  AVIF: 0.06 \u03bcs per check\n\n\ud83d\udcbe Estimated overhead per request:\n  - Function call overhead: ~1-2 \u03bcs\n  - String processing: ~0.5-1 \u03bcs\n  - Memory allocation: Minimal (stack only)\n\n\u2705 Benchmark completed!\n   Total operations performed: 100,000\n```\n\n### Performance Highlights\n\n- **\ud83d\ude80 Ultra-fast**: 150+ billion operations per second\n- **\u26a1 Sub-microsecond**: ~0.06-0.07 \u03bcs per detection\n- **\ud83d\udd25 Zero allocation**: No dynamic memory allocation\n- **\ud83d\udcc8 Scalable**: Linear performance scaling\n- **\ud83d\udc8e Consistent**: Minimal variance in response times\n\nRun the benchmark yourself:\n\n```bash\npython examples/benchmark.py\n```\n\n## \ufffd Examples\n\nThe `examples/` directory contains practical usage examples:\n\n- **`benchmark.py`**: Performance benchmarking script\n- **`flask_example.py`**: Flask web server integration\n- **`fastapi_example.py`**: FastAPI web server integration\n- **`django_example.py`**: Django views integration\n- **`example_usage.py`**: Basic usage demonstration\n- **`test_support.py`**: Comprehensive test suite\n\nRun an example:\n\n```bash\npython examples/benchmark.py\npython examples/example_usage.py\n```\n\n## \ud83e\uddea Development\n\n### Building from Source\n\n```bash\ngit clone https://github.com/bymoye/modern-image-support.git\ncd modern-image-support\npip install -e .\n```\n\n### Running Tests\n\n```bash\npython examples/test_support.py\n```\n\n### Performance Benchmarking\n\n```bash\npython examples/benchmark.py\n```\n\n### Building Wheels\n\nThe project uses `cibuildwheel` for building cross-platform wheels:\n\n```bash\npip install cibuildwheel\ncibuildwheel --platform linux\n```\n\n## \ud83d\udcc4 API Reference\n\n### `webp_supported(user_agent: Union[str, bytes]) -> bool`\n\nDetermines if the browser supports WebP images.\n\n**Parameters:**\n\n- `user_agent` (Union[str, bytes]): The User-Agent string (supports both string and bytes)\n\n**Returns:**\n\n- `bool`: True if WebP is supported, False otherwise\n\n**Aliases:** `is_webp_supported()` (for backward compatibility)\n\n### `avif_supported(user_agent: Union[str, bytes]) -> bool`\n\nDetermines if the browser supports AVIF images.\n\n**Parameters:**\n\n- `user_agent` (Union[str, bytes]): The User-Agent string (supports both string and bytes)\n\n**Returns:**\n\n- `bool`: True if AVIF is supported, False otherwise\n\n**Aliases:** `is_avif_supported()` (for backward compatibility)\n\n### Browser Detection Logic\n\nThe library uses efficient string parsing to identify:\n\n1. **Browser type** (Chrome, Firefox, Safari, Edge, etc.)\n2. **Version number** extraction from User-Agent\n3. **Comparison** against minimum required versions\n4. **WebKit version** parsing for Safari/WebKit browsers\n\nAll detection is performed using optimized C code with comprehensive browser version databases.\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n## \ud83d\udcdd License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- Browser compatibility data sourced from [Can I Use](https://caniuse.com/)\n- Performance optimizations inspired by high-traffic web servers\n\n---\n\n**Made with \u2764\ufe0f for the web development community**\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Quickly determine WebP and AVIF image format support from UserAgent strings.",
    "version": "0.4.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/bymoye/modern-image-support/issues",
        "Homepage": "https://github.com/bymoye/modern-image-support",
        "Repository": "https://github.com/bymoye/modern-image-support"
    },
    "split_keywords": [
        "webp",
        " avif",
        " image",
        " user-agent",
        " browser-detection"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6ede0ccf8d17c1b093f5a13e655ee0ae7189af389286fce463dc1108651817fc",
                "md5": "8b9e7a9023a52402c1167a500857c4ed",
                "sha256": "18a9702731682c570a1c60363ab4a2f907f61ef484ae4284fb86e65637107578"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8b9e7a9023a52402c1167a500857c4ed",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 77332,
            "upload_time": "2025-07-21T06:08:05",
            "upload_time_iso_8601": "2025-07-21T06:08:05.119334Z",
            "url": "https://files.pythonhosted.org/packages/6e/de/0ccf8d17c1b093f5a13e655ee0ae7189af389286fce463dc1108651817fc/modern_image_support-0.4.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5b99ff24f81616dbd003080a38b5201348bdaaf4b7beff50c7e5a65d15b22f8b",
                "md5": "8e9029523b2ca34af70f9bd28aefa874",
                "sha256": "fc49ec91ebd423ee67172112d4aff15273eeac439badff0d5ae50bc93f5e8121"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8e9029523b2ca34af70f9bd28aefa874",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 77582,
            "upload_time": "2025-07-21T06:08:06",
            "upload_time_iso_8601": "2025-07-21T06:08:06.557002Z",
            "url": "https://files.pythonhosted.org/packages/5b/99/ff24f81616dbd003080a38b5201348bdaaf4b7beff50c7e5a65d15b22f8b/modern_image_support-0.4.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b76e427d3fbad87488732d74fbc893d8e6969db89762af093c712ff374fdb7d6",
                "md5": "b5ccbb6bc67cbe8d4b0a6f543b007776",
                "sha256": "934822ccf523413039d8a2c7ac3e40e2a93ec30bfb699bd888669fb77bf7d4a4"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b5ccbb6bc67cbe8d4b0a6f543b007776",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 136671,
            "upload_time": "2025-07-21T06:08:07",
            "upload_time_iso_8601": "2025-07-21T06:08:07.595685Z",
            "url": "https://files.pythonhosted.org/packages/b7/6e/427d3fbad87488732d74fbc893d8e6969db89762af093c712ff374fdb7d6/modern_image_support-0.4.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "95e92cf2988da9c063422db9329e4913dfb1b10277e89e19f8af374436b8c3ed",
                "md5": "8344d4c549c02f23dcc875a5f2a16836",
                "sha256": "e16a7fa88a9baaaabb4685407cd5b5991bfe11d542e955248a0069c1a44725f8"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "8344d4c549c02f23dcc875a5f2a16836",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 137911,
            "upload_time": "2025-07-21T06:08:08",
            "upload_time_iso_8601": "2025-07-21T06:08:08.801043Z",
            "url": "https://files.pythonhosted.org/packages/95/e9/2cf2988da9c063422db9329e4913dfb1b10277e89e19f8af374436b8c3ed/modern_image_support-0.4.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "55f51818087816ab56b1bb2e8db4c7991a94776975d67799ad580df62dc2de30",
                "md5": "749100bca0ea7df303b16aecfb4bb36e",
                "sha256": "1b31c89aef5b3fea6c6e556ebbdfe91fa479d3703d496d812dc448a2f7cf3315"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "749100bca0ea7df303b16aecfb4bb36e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 134464,
            "upload_time": "2025-07-21T06:08:09",
            "upload_time_iso_8601": "2025-07-21T06:08:09.914096Z",
            "url": "https://files.pythonhosted.org/packages/55/f5/1818087816ab56b1bb2e8db4c7991a94776975d67799ad580df62dc2de30/modern_image_support-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "56f24c30ca3f17024b847a47b1310c333acdfd75e809c76b6de9be0481e86b6c",
                "md5": "ab393ecdb22fae853182eb9f7ca7901d",
                "sha256": "0801214ed9c2b8c30fea8cf5bc6cd66578cd51474ff550930db25f9b99d27e99"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ab393ecdb22fae853182eb9f7ca7901d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 134241,
            "upload_time": "2025-07-21T06:08:10",
            "upload_time_iso_8601": "2025-07-21T06:08:10.728929Z",
            "url": "https://files.pythonhosted.org/packages/56/f2/4c30ca3f17024b847a47b1310c333acdfd75e809c76b6de9be0481e86b6c/modern_image_support-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0d1deea284125c0cf240982c82c070306e2a72d9b3a5f79dd0d1c0c0e317dbe6",
                "md5": "9c96a6e7582099a4d22f0f28c21c8db5",
                "sha256": "1cd6a000d9a37a70be8ac80621a4ccb8ccd001ec66161402b65d93acd86d0f0a"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "9c96a6e7582099a4d22f0f28c21c8db5",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.9",
            "size": 78357,
            "upload_time": "2025-07-21T06:08:12",
            "upload_time_iso_8601": "2025-07-21T06:08:12.068233Z",
            "url": "https://files.pythonhosted.org/packages/0d/1d/eea284125c0cf240982c82c070306e2a72d9b3a5f79dd0d1c0c0e317dbe6/modern_image_support-0.4.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9074ea50bdedf4ee9e397285b10ea2b5346c31cec18e43174d48b94a51ac98f3",
                "md5": "a1689e1532db917397eec0b2586cd14e",
                "sha256": "0f6a552c2dd92adfabfff2b0c040936e0a7ad421331c48433bb8ceafa4181aaf"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a1689e1532db917397eec0b2586cd14e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 77369,
            "upload_time": "2025-07-21T06:08:13",
            "upload_time_iso_8601": "2025-07-21T06:08:13.189704Z",
            "url": "https://files.pythonhosted.org/packages/90/74/ea50bdedf4ee9e397285b10ea2b5346c31cec18e43174d48b94a51ac98f3/modern_image_support-0.4.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e5f9d9812b274e6a1b8f4c596a92e70de7d4d09e64170247b101bb43ec103481",
                "md5": "9f3651e3bbe4df4f2924cbf03db225a1",
                "sha256": "6fac6fda64b8aec98d4fcac6a96ab5b017b5004f8177e1822a1ba6647770e6c8"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "9f3651e3bbe4df4f2924cbf03db225a1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 77664,
            "upload_time": "2025-07-21T06:08:13",
            "upload_time_iso_8601": "2025-07-21T06:08:13.952864Z",
            "url": "https://files.pythonhosted.org/packages/e5/f9/d9812b274e6a1b8f4c596a92e70de7d4d09e64170247b101bb43ec103481/modern_image_support-0.4.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "664564f0e78401177435f70e9cbf2f9068542c085df4c35da027e2b1b5831981",
                "md5": "6d2afbd9154db9ee9b4e0594827de43d",
                "sha256": "14f1b9c0eb1fd4f72d513ac789179cf448a548da24394fff2ff8d0203b87a1ce"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6d2afbd9154db9ee9b4e0594827de43d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 140732,
            "upload_time": "2025-07-21T06:08:14",
            "upload_time_iso_8601": "2025-07-21T06:08:14.682579Z",
            "url": "https://files.pythonhosted.org/packages/66/45/64f0e78401177435f70e9cbf2f9068542c085df4c35da027e2b1b5831981/modern_image_support-0.4.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c06703e799a32835c672a3f8534f4d0b2c24cc4743f2c39f4011ba5fea335df0",
                "md5": "43aa460022a5bdedf7fd15881f46480e",
                "sha256": "26eeb56d7fed46245b9aaff45426ebd728915f837b0979952ec305c07ea847e6"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "43aa460022a5bdedf7fd15881f46480e",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 142035,
            "upload_time": "2025-07-21T06:08:15",
            "upload_time_iso_8601": "2025-07-21T06:08:15.434849Z",
            "url": "https://files.pythonhosted.org/packages/c0/67/03e799a32835c672a3f8534f4d0b2c24cc4743f2c39f4011ba5fea335df0/modern_image_support-0.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a615b738b1379dc9526a40af4f63600a1fdc6e200206608e0f4d163d59231e43",
                "md5": "738060a726106474fe075d48835e2689",
                "sha256": "f26a3bd5adaa62dfd82c69fdfefee74bda41e0a8bc6bc21b8a901891f492ff08"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "738060a726106474fe075d48835e2689",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 138712,
            "upload_time": "2025-07-21T06:08:16",
            "upload_time_iso_8601": "2025-07-21T06:08:16.227718Z",
            "url": "https://files.pythonhosted.org/packages/a6/15/b738b1379dc9526a40af4f63600a1fdc6e200206608e0f4d163d59231e43/modern_image_support-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "460e534e8bdfa44e335a155a4288a5abc0806ec3a61e0c18a16e36e8f74128e4",
                "md5": "492651682583e0d43e873bdb17cacec4",
                "sha256": "3fd44329ac67cc01919881abd4da0bb52b15a7d33bd4208f1b5515aea49e087a"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "492651682583e0d43e873bdb17cacec4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 138293,
            "upload_time": "2025-07-21T06:08:17",
            "upload_time_iso_8601": "2025-07-21T06:08:17.065720Z",
            "url": "https://files.pythonhosted.org/packages/46/0e/534e8bdfa44e335a155a4288a5abc0806ec3a61e0c18a16e36e8f74128e4/modern_image_support-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1e8eeee86a848e3fe6c1d70c7505d5b4f7b049fa860922f72e50754708233928",
                "md5": "c3f7e1a9d332c79f4c507fcfc5c5a7b8",
                "sha256": "2636425b2e171701267f8373dde8918a49139530af21caa3d8914b229a96db88"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c3f7e1a9d332c79f4c507fcfc5c5a7b8",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 78455,
            "upload_time": "2025-07-21T06:08:17",
            "upload_time_iso_8601": "2025-07-21T06:08:17.905731Z",
            "url": "https://files.pythonhosted.org/packages/1e/8e/eee86a848e3fe6c1d70c7505d5b4f7b049fa860922f72e50754708233928/modern_image_support-0.4.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cf8ca7e5531e780a7061fc593bc25bd7941b3933c1e6c08ace4e07d1d5dd3bdc",
                "md5": "9c218e3ff28d3b74b11b413103d107a3",
                "sha256": "b7b2fddd2f477b4447fc81e4468712574163cefbd5b07b182f0468ead3d8aaf4"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9c218e3ff28d3b74b11b413103d107a3",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 77705,
            "upload_time": "2025-07-21T06:08:18",
            "upload_time_iso_8601": "2025-07-21T06:08:18.942434Z",
            "url": "https://files.pythonhosted.org/packages/cf/8c/a7e5531e780a7061fc593bc25bd7941b3933c1e6c08ace4e07d1d5dd3bdc/modern_image_support-0.4.0-cp312-cp312-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f5cf95c373a874fc41cc4dd4d9443eaa4192036ae9d05c3ad9d691b041b2ac75",
                "md5": "4dabfc2b29e1f33b8f55ac708f32f43c",
                "sha256": "3cf37ac959f05c21b939980a7285ea6d21fc0c1248ea600121f4be67542edf18"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "4dabfc2b29e1f33b8f55ac708f32f43c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 77980,
            "upload_time": "2025-07-21T06:08:19",
            "upload_time_iso_8601": "2025-07-21T06:08:19.691540Z",
            "url": "https://files.pythonhosted.org/packages/f5/cf/95c373a874fc41cc4dd4d9443eaa4192036ae9d05c3ad9d691b041b2ac75/modern_image_support-0.4.0-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8468de4d16deea1c8c59ea4169a1111d3ecfbf898bb580b28abd2c3317ba050c",
                "md5": "8eb32b398e09f026d7dd553c44e1f8d9",
                "sha256": "d62b24c8f8864ee22784dc2fe1c53bdad49568e6f75b5a31705d35cd943294dc"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8eb32b398e09f026d7dd553c44e1f8d9",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 146807,
            "upload_time": "2025-07-21T06:08:20",
            "upload_time_iso_8601": "2025-07-21T06:08:20.475449Z",
            "url": "https://files.pythonhosted.org/packages/84/68/de4d16deea1c8c59ea4169a1111d3ecfbf898bb580b28abd2c3317ba050c/modern_image_support-0.4.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0120c2d12f338f62f41d5c39d21e44e6319431ce6dcae1cb96dbd257eaa739e5",
                "md5": "f733f628cccc3e2b066a4643b36b961f",
                "sha256": "0a1efab02aac41a0adf6ee640cf1163788d3adc7d0d401dd75ccf6c1af864023"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "f733f628cccc3e2b066a4643b36b961f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 147305,
            "upload_time": "2025-07-21T06:08:21",
            "upload_time_iso_8601": "2025-07-21T06:08:21.668494Z",
            "url": "https://files.pythonhosted.org/packages/01/20/c2d12f338f62f41d5c39d21e44e6319431ce6dcae1cb96dbd257eaa739e5/modern_image_support-0.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "35023e060720a68d7ec2430c13b89d7f8d9e4b527e2fcbb61cdb6456d8787909",
                "md5": "4f63626f5a7541b87146a222c81b7cd6",
                "sha256": "49f152c99b322f2a05ba7c00d3eb25e352702258165119af616567a3b2e7e5a1"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "4f63626f5a7541b87146a222c81b7cd6",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 143144,
            "upload_time": "2025-07-21T06:08:22",
            "upload_time_iso_8601": "2025-07-21T06:08:22.913421Z",
            "url": "https://files.pythonhosted.org/packages/35/02/3e060720a68d7ec2430c13b89d7f8d9e4b527e2fcbb61cdb6456d8787909/modern_image_support-0.4.0-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0aff99292f9bf7bd22e8aa1ab7efd6ccfc1c35ca65d6d26ee7c636f64c305d34",
                "md5": "76bc708f97e09918cf0bba5db5a43fa6",
                "sha256": "5cbc2adff29fe69e683ccd6777aa8fb6d1daff3b468dc2201a7ca600518141fa"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "76bc708f97e09918cf0bba5db5a43fa6",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 143575,
            "upload_time": "2025-07-21T06:08:23",
            "upload_time_iso_8601": "2025-07-21T06:08:23.699246Z",
            "url": "https://files.pythonhosted.org/packages/0a/ff/99292f9bf7bd22e8aa1ab7efd6ccfc1c35ca65d6d26ee7c636f64c305d34/modern_image_support-0.4.0-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "560e191e80bdbf9396874d1e6ad53a06c3b1c9c3d478dc794bf68f0dbfddd445",
                "md5": "6b7d75d53dca2e1c9f4dd56560bfaaad",
                "sha256": "56f99e52a529dfc8784768d274597d8dfc0de124088b36379aa655eebef91bd3"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6b7d75d53dca2e1c9f4dd56560bfaaad",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.9",
            "size": 78843,
            "upload_time": "2025-07-21T06:08:24",
            "upload_time_iso_8601": "2025-07-21T06:08:24.453664Z",
            "url": "https://files.pythonhosted.org/packages/56/0e/191e80bdbf9396874d1e6ad53a06c3b1c9c3d478dc794bf68f0dbfddd445/modern_image_support-0.4.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1ba7f9ac2e1c0870d6edda667951a986e260d9b0909775b772d691defe36b7d6",
                "md5": "77f2763d104577469f4efe3d2f1e1be4",
                "sha256": "0958e65a37bcbe702c8691cecd878cc74720c442f0ed8b133640404d3190383e"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "77f2763d104577469f4efe3d2f1e1be4",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 77701,
            "upload_time": "2025-07-21T06:08:25",
            "upload_time_iso_8601": "2025-07-21T06:08:25.756762Z",
            "url": "https://files.pythonhosted.org/packages/1b/a7/f9ac2e1c0870d6edda667951a986e260d9b0909775b772d691defe36b7d6/modern_image_support-0.4.0-cp313-cp313-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "94a5aa70d09f4e2881427fbe229b52a687f028c4a6aefed1631f49ee4465b308",
                "md5": "482815a10c894d9ad4c3fe08ea128f9d",
                "sha256": "77b1d9ef7a112c1800dd0fdf84d255812524e8ecb40218631f4a05aba197cd39"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp313-cp313-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "482815a10c894d9ad4c3fe08ea128f9d",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 77970,
            "upload_time": "2025-07-21T06:08:26",
            "upload_time_iso_8601": "2025-07-21T06:08:26.585453Z",
            "url": "https://files.pythonhosted.org/packages/94/a5/aa70d09f4e2881427fbe229b52a687f028c4a6aefed1631f49ee4465b308/modern_image_support-0.4.0-cp313-cp313-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9c15e46df09fc22f6a949d0ce0ea64dc8e04e86cda529f58d35e0f7ea61dc947",
                "md5": "9c5dc3f3efa3d06569bebc81350fc532",
                "sha256": "e71d2b6fe9374127bf85704aed76faa8d0f4524a524ccdbc7df0cc4bd551f741"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9c5dc3f3efa3d06569bebc81350fc532",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 145558,
            "upload_time": "2025-07-21T06:08:27",
            "upload_time_iso_8601": "2025-07-21T06:08:27.338469Z",
            "url": "https://files.pythonhosted.org/packages/9c/15/e46df09fc22f6a949d0ce0ea64dc8e04e86cda529f58d35e0f7ea61dc947/modern_image_support-0.4.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f68314ba3c2ffcd1e645009d6b31b2b6522129d0bffd92c54b9b496dfdf97953",
                "md5": "759d9cb10fd1cbefb61599c480bb7239",
                "sha256": "a5638e7997a308d6ec3e315117c6c563c508c5fb8c85ddba6c42f242488b3d96"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "759d9cb10fd1cbefb61599c480bb7239",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 146768,
            "upload_time": "2025-07-21T06:08:28",
            "upload_time_iso_8601": "2025-07-21T06:08:28.142812Z",
            "url": "https://files.pythonhosted.org/packages/f6/83/14ba3c2ffcd1e645009d6b31b2b6522129d0bffd92c54b9b496dfdf97953/modern_image_support-0.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8661a9d1c29e496800a175af56eaef6da0e14342647c4b65125ed0f97c12ddd5",
                "md5": "8414b66470f06702063b154437b9d21c",
                "sha256": "3eef3db68d77badbd9116937d24fd5580b4b2a1a79cb1e3494ff707e8f635e29"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "8414b66470f06702063b154437b9d21c",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 142936,
            "upload_time": "2025-07-21T06:08:28",
            "upload_time_iso_8601": "2025-07-21T06:08:28.954009Z",
            "url": "https://files.pythonhosted.org/packages/86/61/a9d1c29e496800a175af56eaef6da0e14342647c4b65125ed0f97c12ddd5/modern_image_support-0.4.0-cp313-cp313-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6ebd1f6ccc58a4e63b516a7ac8bda251b90253bf8b2b8d16b74ee1494a48a9d5",
                "md5": "763ce5c48060dddff67713f831d14fb0",
                "sha256": "344991f8cc514e7522ff9e8687de5c002f818d7956840ff13baba6daf0f5dedf"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "763ce5c48060dddff67713f831d14fb0",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 142664,
            "upload_time": "2025-07-21T06:08:29",
            "upload_time_iso_8601": "2025-07-21T06:08:29.783776Z",
            "url": "https://files.pythonhosted.org/packages/6e/bd/1f6ccc58a4e63b516a7ac8bda251b90253bf8b2b8d16b74ee1494a48a9d5/modern_image_support-0.4.0-cp313-cp313-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "37823e58ab3c7de3c9993f116f6e2aa1c5adacf3cdbfb92b6022d467065697fa",
                "md5": "d67069a51631a8530885d6e962fc5188",
                "sha256": "aa3cad0f379e00cf33e3e378dbef9338670ac9bd060f124f42a041d62ae7db45"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp313-cp313-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "d67069a51631a8530885d6e962fc5188",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.9",
            "size": 78816,
            "upload_time": "2025-07-21T06:08:30",
            "upload_time_iso_8601": "2025-07-21T06:08:30.927600Z",
            "url": "https://files.pythonhosted.org/packages/37/82/3e58ab3c7de3c9993f116f6e2aa1c5adacf3cdbfb92b6022d467065697fa/modern_image_support-0.4.0-cp313-cp313-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2fce164e68b440bd2d6949ac722b85feb8d60237da4b901cce710f2e9928ac73",
                "md5": "9ca21d4ab3a27f15a57e0fca8b0ad90b",
                "sha256": "008e3b99d2194a012fadea4158107b9639bd1ebcd1d5a6ee36e6205ef0f82798"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp314-cp314-macosx_10_13_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9ca21d4ab3a27f15a57e0fca8b0ad90b",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 77592,
            "upload_time": "2025-07-21T06:08:31",
            "upload_time_iso_8601": "2025-07-21T06:08:31.732878Z",
            "url": "https://files.pythonhosted.org/packages/2f/ce/164e68b440bd2d6949ac722b85feb8d60237da4b901cce710f2e9928ac73/modern_image_support-0.4.0-cp314-cp314-macosx_10_13_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7b5d5a867f0658fb355f219d6689624a9547f85f70c9cad2d2ab10b691a71021",
                "md5": "cb3927fd67fd445225b12417a051576e",
                "sha256": "70c431fbe33eebedd6a08175de12fffd093a04cc1dc7ff5cbefa9f0b262d6205"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp314-cp314-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "cb3927fd67fd445225b12417a051576e",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 77998,
            "upload_time": "2025-07-21T06:08:32",
            "upload_time_iso_8601": "2025-07-21T06:08:32.471254Z",
            "url": "https://files.pythonhosted.org/packages/7b/5d/5a867f0658fb355f219d6689624a9547f85f70c9cad2d2ab10b691a71021/modern_image_support-0.4.0-cp314-cp314-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "015f50c4dc3c62242dae69ef72ddc32277e5c0d0059e9fa52c20d0fc3e8fd0bf",
                "md5": "91df7928ae1a1068a460df416125aca3",
                "sha256": "c4bee959f8c373818d91b710f85aaea06a9304c7016ce7429cd6b03f937b8591"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "91df7928ae1a1068a460df416125aca3",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 144200,
            "upload_time": "2025-07-21T06:08:33",
            "upload_time_iso_8601": "2025-07-21T06:08:33.257835Z",
            "url": "https://files.pythonhosted.org/packages/01/5f/50c4dc3c62242dae69ef72ddc32277e5c0d0059e9fa52c20d0fc3e8fd0bf/modern_image_support-0.4.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6223052f1132bc2f74b2c1f1aac108f4a109bbd69dd514d2e144d5dae07b5e24",
                "md5": "ec718dbee59ec86c4babe5694d70e462",
                "sha256": "9c7d00e7175b30402880b51d940e0cd5920b0a8603d7a7856f68858436c20493"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ec718dbee59ec86c4babe5694d70e462",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 146030,
            "upload_time": "2025-07-21T06:08:34",
            "upload_time_iso_8601": "2025-07-21T06:08:34.095903Z",
            "url": "https://files.pythonhosted.org/packages/62/23/052f1132bc2f74b2c1f1aac108f4a109bbd69dd514d2e144d5dae07b5e24/modern_image_support-0.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b6d1bb86615b07b9a3572ecb5280ffeba93da8c6993fb32d0906c8050f3ebe92",
                "md5": "b47d33a85d930d871d2156f94b8a4225",
                "sha256": "739de9ac10079c58ce89ef454602d3e6478b0e4d028027a258c849e2fcd9d0be"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "b47d33a85d930d871d2156f94b8a4225",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 142099,
            "upload_time": "2025-07-21T06:08:34",
            "upload_time_iso_8601": "2025-07-21T06:08:34.949297Z",
            "url": "https://files.pythonhosted.org/packages/b6/d1/bb86615b07b9a3572ecb5280ffeba93da8c6993fb32d0906c8050f3ebe92/modern_image_support-0.4.0-cp314-cp314-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d7d864c6e5a3261902f34729d46fc799ed124344fd82a1d445c4762a24065a03",
                "md5": "83dd8dd86437fe225e97798fc66fd556",
                "sha256": "cb265c56e56f5964fb18aeda0b96248cafe4ffb71a9349c36623aa305f530500"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "83dd8dd86437fe225e97798fc66fd556",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 141457,
            "upload_time": "2025-07-21T06:08:36",
            "upload_time_iso_8601": "2025-07-21T06:08:36.089697Z",
            "url": "https://files.pythonhosted.org/packages/d7/d8/64c6e5a3261902f34729d46fc799ed124344fd82a1d445c4762a24065a03/modern_image_support-0.4.0-cp314-cp314-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "639d7b6eb6484753e4e81ba310d172bf3e22bbcb1a930e458bfcd3b7c08adcb4",
                "md5": "1a252ed6a9fc0764b46ef2d6c8012511",
                "sha256": "5b38dcbbab94f1cd332c056a3c6d9bb951ed36aed7d2e4789858bbe5f7565ef9"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp314-cp314-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1a252ed6a9fc0764b46ef2d6c8012511",
            "packagetype": "bdist_wheel",
            "python_version": "cp314",
            "requires_python": ">=3.9",
            "size": 79305,
            "upload_time": "2025-07-21T06:08:36",
            "upload_time_iso_8601": "2025-07-21T06:08:36.856776Z",
            "url": "https://files.pythonhosted.org/packages/63/9d/7b6eb6484753e4e81ba310d172bf3e22bbcb1a930e458bfcd3b7c08adcb4/modern_image_support-0.4.0-cp314-cp314-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b2886c3f6c688453975b83fec8f72e057876f6083a07918ddc740fe2d9461104",
                "md5": "1e9c08608ed41e2878c792c96522a5a6",
                "sha256": "5e4dbac2af5db56f1ecb5c3ee1b01d902c487101dc335644c0e02e73ab631baf"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1e9c08608ed41e2878c792c96522a5a6",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 77343,
            "upload_time": "2025-07-21T06:08:37",
            "upload_time_iso_8601": "2025-07-21T06:08:37.599387Z",
            "url": "https://files.pythonhosted.org/packages/b2/88/6c3f6c688453975b83fec8f72e057876f6083a07918ddc740fe2d9461104/modern_image_support-0.4.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a20f6564fa3fc6902d2b0a511c8c57b4a673e54cffe4e114bbe8ca31ed267a59",
                "md5": "d3700a3ea30d4060045357f78f965819",
                "sha256": "adb10912ab88464842f0a0fdce75647886b569819cf4134a5b8fc5477ed1f58c"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "d3700a3ea30d4060045357f78f965819",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 77582,
            "upload_time": "2025-07-21T06:08:38",
            "upload_time_iso_8601": "2025-07-21T06:08:38.340898Z",
            "url": "https://files.pythonhosted.org/packages/a2/0f/6564fa3fc6902d2b0a511c8c57b4a673e54cffe4e114bbe8ca31ed267a59/modern_image_support-0.4.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "eaf8ea479d2a7af40ffbddce8998452f231cf6bbaf364aecea7d800e2c3105f6",
                "md5": "b393537d71461b0235db999856eca4b4",
                "sha256": "fe82fc14298f0292cda69de5294dd3d6d72f7a9ff2f4d498fbe200681f373937"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b393537d71461b0235db999856eca4b4",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 136177,
            "upload_time": "2025-07-21T06:08:39",
            "upload_time_iso_8601": "2025-07-21T06:08:39.127472Z",
            "url": "https://files.pythonhosted.org/packages/ea/f8/ea479d2a7af40ffbddce8998452f231cf6bbaf364aecea7d800e2c3105f6/modern_image_support-0.4.0-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5848d2338d423f08bdc3d3c7c24c70fa7339e9822be9bd755104b82002c69201",
                "md5": "423230eadb98c68cb30046c9306fd00d",
                "sha256": "ffa2cdf979c485326d67cb34c07247fe3787f370a0da6045f8e596ec68987aee"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "423230eadb98c68cb30046c9306fd00d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 137395,
            "upload_time": "2025-07-21T06:08:40",
            "upload_time_iso_8601": "2025-07-21T06:08:40.001106Z",
            "url": "https://files.pythonhosted.org/packages/58/48/d2338d423f08bdc3d3c7c24c70fa7339e9822be9bd755104b82002c69201/modern_image_support-0.4.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aac0487c3f3b5f7150e3e4d32241ee710626105b637413bf5b156b42e7d277ac",
                "md5": "878bdccef302d12893157dc158f4e1c2",
                "sha256": "1624ac7b600c30a60922a5f081826bb4a346b15c6b5cce1f5c5aae1c19feef24"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "878bdccef302d12893157dc158f4e1c2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 133952,
            "upload_time": "2025-07-21T06:08:40",
            "upload_time_iso_8601": "2025-07-21T06:08:40.948291Z",
            "url": "https://files.pythonhosted.org/packages/aa/c0/487c3f3b5f7150e3e4d32241ee710626105b637413bf5b156b42e7d277ac/modern_image_support-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cfe5cfe91255d2dc9648d6a162d9f5b841b92d1c29f60a8aefde87edd8abe168",
                "md5": "1ea728a772aaf9d96f731c66a73a7779",
                "sha256": "40d58059b010421ada2cf79d3a3f798a42cdb3a8b1a40ed7d874b88d14275949"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "1ea728a772aaf9d96f731c66a73a7779",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 133772,
            "upload_time": "2025-07-21T06:08:42",
            "upload_time_iso_8601": "2025-07-21T06:08:42.518268Z",
            "url": "https://files.pythonhosted.org/packages/cf/e5/cfe91255d2dc9648d6a162d9f5b841b92d1c29f60a8aefde87edd8abe168/modern_image_support-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "278c895f4cebede595ac87f2b5f04d62cacaf322d1bc2b0e6cce0fce3d4a37f4",
                "md5": "c7d7d2acbb53f43d64a631a7e4a41757",
                "sha256": "91a4cf94e3930ba633e8f57ef1b84c16bd9ac195da7678f950cbac53ba5e3197"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c7d7d2acbb53f43d64a631a7e4a41757",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.9",
            "size": 78374,
            "upload_time": "2025-07-21T06:08:43",
            "upload_time_iso_8601": "2025-07-21T06:08:43.434441Z",
            "url": "https://files.pythonhosted.org/packages/27/8c/895f4cebede595ac87f2b5f04d62cacaf322d1bc2b0e6cce0fce3d4a37f4/modern_image_support-0.4.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "024e057420b64a5d52637a854379ea5c6a26b460bd506696a2d67a8231052321",
                "md5": "7393effea0d911388757b37f966e5857",
                "sha256": "3c0a5b0d949b602e4087f02b9ed67135b39c02dcc4dadc730dac1716ac1971a0"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7393effea0d911388757b37f966e5857",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 75186,
            "upload_time": "2025-07-21T06:08:45",
            "upload_time_iso_8601": "2025-07-21T06:08:45.255646Z",
            "url": "https://files.pythonhosted.org/packages/02/4e/057420b64a5d52637a854379ea5c6a26b460bd506696a2d67a8231052321/modern_image_support-0.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a28a8abf7ef5160b48ee96ae7513d5fdea998da0dacf1cd97e8141282303ff27",
                "md5": "f52bb32852b97d9b5dac43d73880c7dc",
                "sha256": "191fe320ac9d9695dc461b2df1474cd932e3caf4936337aaf6ac4c4b36646e19"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "f52bb32852b97d9b5dac43d73880c7dc",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 75403,
            "upload_time": "2025-07-21T06:08:46",
            "upload_time_iso_8601": "2025-07-21T06:08:46.053660Z",
            "url": "https://files.pythonhosted.org/packages/a2/8a/8abf7ef5160b48ee96ae7513d5fdea998da0dacf1cd97e8141282303ff27/modern_image_support-0.4.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f1d9ad97050dbc60b92506d0cffe3ae8a21e3d2938be95591e3a5b04f5349b8f",
                "md5": "7e6733454e0dca1dd65de8eabb91e2dd",
                "sha256": "b7a71106603f9a90a22de8d5675489ad5ac2e391fa91a5df255ed7f231b9b152"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp310-pypy310_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7e6733454e0dca1dd65de8eabb91e2dd",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 78830,
            "upload_time": "2025-07-21T06:08:46",
            "upload_time_iso_8601": "2025-07-21T06:08:46.872817Z",
            "url": "https://files.pythonhosted.org/packages/f1/d9/ad97050dbc60b92506d0cffe3ae8a21e3d2938be95591e3a5b04f5349b8f/modern_image_support-0.4.0-pp310-pypy310_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3c973bd447a4efd74644675086dc1c0d75af332902ec054ed2535a03f022c8e4",
                "md5": "ff3f9e6550bdef2e451d32779d4be911",
                "sha256": "65672cc746e7f021b95044204edc63314c1c0a08752beeabd2a781c119fcce63"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ff3f9e6550bdef2e451d32779d4be911",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 79273,
            "upload_time": "2025-07-21T06:08:47",
            "upload_time_iso_8601": "2025-07-21T06:08:47.674887Z",
            "url": "https://files.pythonhosted.org/packages/3c/97/3bd447a4efd74644675086dc1c0d75af332902ec054ed2535a03f022c8e4/modern_image_support-0.4.0-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "23e69720804cda8f5d574a5b0a7ad063a95646e950378133f16920e46f113e4b",
                "md5": "26ee8b1e2ddb72161f195adc1062bc13",
                "sha256": "4805db1097688db55231fe0809fbd1b709239f068c8115f4d8d044a5824ebed1"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp310-pypy310_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "26ee8b1e2ddb72161f195adc1062bc13",
            "packagetype": "bdist_wheel",
            "python_version": "pp310",
            "requires_python": ">=3.9",
            "size": 76910,
            "upload_time": "2025-07-21T06:08:48",
            "upload_time_iso_8601": "2025-07-21T06:08:48.445944Z",
            "url": "https://files.pythonhosted.org/packages/23/e6/9720804cda8f5d574a5b0a7ad063a95646e950378133f16920e46f113e4b/modern_image_support-0.4.0-pp310-pypy310_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "582ca6f366bd9d22e575ec498816e7393090b3e705bf0c71b0442cf6f47e2e26",
                "md5": "94c0c770ade5b4a987e5cf4c66e8e32b",
                "sha256": "fb56114facb60e8c905d332d422fae15ab2a9aac7300d453d1efa67b84adc8c3"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "94c0c770ade5b4a987e5cf4c66e8e32b",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 75077,
            "upload_time": "2025-07-21T06:08:49",
            "upload_time_iso_8601": "2025-07-21T06:08:49.252950Z",
            "url": "https://files.pythonhosted.org/packages/58/2c/a6f366bd9d22e575ec498816e7393090b3e705bf0c71b0442cf6f47e2e26/modern_image_support-0.4.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "68cc0829ac991d2381f48915a85582def10a992668ad5b6b114b5616a0ca9dc2",
                "md5": "941f1c5869ce3e56409d80ad248eb57b",
                "sha256": "3d7e18543a14a4777d17731d065dc1371c8886e77d31f6730050c66eff5d87ac"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "941f1c5869ce3e56409d80ad248eb57b",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 75347,
            "upload_time": "2025-07-21T06:08:50",
            "upload_time_iso_8601": "2025-07-21T06:08:50.017062Z",
            "url": "https://files.pythonhosted.org/packages/68/cc/0829ac991d2381f48915a85582def10a992668ad5b6b114b5616a0ca9dc2/modern_image_support-0.4.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fb4f059b4adba9e2d08e958db398ded288b02ae00b758d85436f253b67904025",
                "md5": "0353587fbb18f2d2f68a78e9fc25332e",
                "sha256": "1416cac60dde42bf926bc4e7fbb7674173b4dbb30491507480a9ea3b0d6b243a"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "0353587fbb18f2d2f68a78e9fc25332e",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 78940,
            "upload_time": "2025-07-21T06:08:50",
            "upload_time_iso_8601": "2025-07-21T06:08:50.824620Z",
            "url": "https://files.pythonhosted.org/packages/fb/4f/059b4adba9e2d08e958db398ded288b02ae00b758d85436f253b67904025/modern_image_support-0.4.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "09f2f9ba46ce1e817da8a7dc9cd6d41556e93334b3a79e4066f9a39700a62389",
                "md5": "d2a1c100d5949c04f96cee5434ab1ece",
                "sha256": "1f06ff86a24a887a7d1de90311c92b1247251b4733c4a03f9c388f870085a858"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "d2a1c100d5949c04f96cee5434ab1ece",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 79392,
            "upload_time": "2025-07-21T06:08:51",
            "upload_time_iso_8601": "2025-07-21T06:08:51.548720Z",
            "url": "https://files.pythonhosted.org/packages/09/f2/f9ba46ce1e817da8a7dc9cd6d41556e93334b3a79e4066f9a39700a62389/modern_image_support-0.4.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b17bec0cc0b20e749422bcbce88405b302757a253e59c2bf0a28cf71505505a5",
                "md5": "414c64dc8245d920c7304c683ae5e192",
                "sha256": "f5ad2fc9c42afcc24d2ce13d73bcf39061a4e114d77ebc6832c834dc0becb969"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp311-pypy311_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "414c64dc8245d920c7304c683ae5e192",
            "packagetype": "bdist_wheel",
            "python_version": "pp311",
            "requires_python": ">=3.9",
            "size": 76931,
            "upload_time": "2025-07-21T06:08:52",
            "upload_time_iso_8601": "2025-07-21T06:08:52.321160Z",
            "url": "https://files.pythonhosted.org/packages/b1/7b/ec0cc0b20e749422bcbce88405b302757a253e59c2bf0a28cf71505505a5/modern_image_support-0.4.0-pp311-pypy311_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c4f8072d1072da8fe604c953ed2f0df41e02ef4a671e7c14f03fb3463e8f49e7",
                "md5": "ba48c09dd19e2e7d81a9f00fbfbe85e4",
                "sha256": "af5be0012b1a7613952f0f4c3453390d28607df88e46b6a28a229b859b5201cd"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ba48c09dd19e2e7d81a9f00fbfbe85e4",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 75184,
            "upload_time": "2025-07-21T06:08:53",
            "upload_time_iso_8601": "2025-07-21T06:08:53.101797Z",
            "url": "https://files.pythonhosted.org/packages/c4/f8/072d1072da8fe604c953ed2f0df41e02ef4a671e7c14f03fb3463e8f49e7/modern_image_support-0.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0639aa17a2bfd7c90af68a013de0c9dd7f1aca4f98c69b28ee158f06b80f21cf",
                "md5": "ea1a91a16eeff6808995bb3ddf0eb33e",
                "sha256": "0d01744a5c6563a2bf97f9558dcd10a136de176e99cd3234d7c4105ef7260e21"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ea1a91a16eeff6808995bb3ddf0eb33e",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 75393,
            "upload_time": "2025-07-21T06:08:53",
            "upload_time_iso_8601": "2025-07-21T06:08:53.854726Z",
            "url": "https://files.pythonhosted.org/packages/06/39/aa17a2bfd7c90af68a013de0c9dd7f1aca4f98c69b28ee158f06b80f21cf/modern_image_support-0.4.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c39e0584d7babf42cf0431350b6a1fd93e4f477c65bc8126d8b81acab56dd25e",
                "md5": "3fa424070052ecaaa08cbacf1009630b",
                "sha256": "73294224a31aa3f6de7b02a0fa02cb4845db4cc641c284d91c69ca2ab3fdcc2a"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp39-pypy39_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3fa424070052ecaaa08cbacf1009630b",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 78822,
            "upload_time": "2025-07-21T06:08:54",
            "upload_time_iso_8601": "2025-07-21T06:08:54.648738Z",
            "url": "https://files.pythonhosted.org/packages/c3/9e/0584d7babf42cf0431350b6a1fd93e4f477c65bc8126d8b81acab56dd25e/modern_image_support-0.4.0-pp39-pypy39_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "da4cb757dc671bffd6a4a62c36cb4a054f3d67692f222136ebb1406efd8a9a64",
                "md5": "ece75a9b0a793971adece29a6d48fe07",
                "sha256": "643c24028ddd49f168c82b77b5270149503bf872a5270abd1848f5e6750fff01"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp39-pypy39_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "ece75a9b0a793971adece29a6d48fe07",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 79266,
            "upload_time": "2025-07-21T06:08:55",
            "upload_time_iso_8601": "2025-07-21T06:08:55.364606Z",
            "url": "https://files.pythonhosted.org/packages/da/4c/b757dc671bffd6a4a62c36cb4a054f3d67692f222136ebb1406efd8a9a64/modern_image_support-0.4.0-pp39-pypy39_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f66a73db0b6081eed8dae061d6a9fe607866033ef5a36bc27f2c5614d4907404",
                "md5": "8caf368737663b9f793c403c76a49ee4",
                "sha256": "514010a9bbd5096b0e176fa862b8939f08bef1cb7ce812835af97bcfb6aa65c2"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0-pp39-pypy39_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "8caf368737663b9f793c403c76a49ee4",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.9",
            "size": 76902,
            "upload_time": "2025-07-21T06:08:56",
            "upload_time_iso_8601": "2025-07-21T06:08:56.437459Z",
            "url": "https://files.pythonhosted.org/packages/f6/6a/73db0b6081eed8dae061d6a9fe607866033ef5a36bc27f2c5614d4907404/modern_image_support-0.4.0-pp39-pypy39_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2b36c967ee7e064a41179d651f946e0783c88dedd289a9e452c7a4b3ba936cc4",
                "md5": "6d1da1b42ccbf7262d7e9dbff0da6ab5",
                "sha256": "d263791ae0c8ef6707f5b7738ba5fdc1934e01248da0fbb9e14de6f694e1317e"
            },
            "downloads": -1,
            "filename": "modern_image_support-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6d1da1b42ccbf7262d7e9dbff0da6ab5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 64036,
            "upload_time": "2025-07-21T06:08:57",
            "upload_time_iso_8601": "2025-07-21T06:08:57.621747Z",
            "url": "https://files.pythonhosted.org/packages/2b/36/c967ee7e064a41179d651f946e0783c88dedd289a9e452c7a4b3ba936cc4/modern_image_support-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-21 06:08:57",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bymoye",
    "github_project": "modern-image-support",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "modern-image-support"
}
        
Elapsed time: 1.54326s