Skip to main content

Shrinkix

CI : Docs CI : Lint CI : Tests PyPI : shrinkix Python : versions License : MIT

Reduces the size of images for the web.

Documentation

Documentation is available on https://dashstrom.github.io/shrinkix.

Installation

# Using pip
pip install shrinkix
# Using uv (install in your project dependencies)
uv add shrinkix
# Using pipx (install as a tool in a venv)
pipx install shrinkix
# Using uv (install as a tool in a venv)
uv tool install shrinkix

Usage

Usage as CLI

shrinkix image.png --max-width 1024 --max-height 1024 --artist 'You' --copyright 'you@example.com'

Usage as module

from shrinkix import Shrinkix

shrinkix = Shrinkix(
    max_width=1024,
    max_height=1024,
    keep_metadata=False,
)
shrinkix.shrink("tests/resources/test.jpg", "test.png")

Development

Contributing

Contributions are very welcome. Tests can be run with poe check, please ensure the coverage at least stays the same before you submit a pull request.

Prerequisite

First, You need to install git following the official guide and configure it.

Then, you need to install uv and update shell path with this command:

uv tool update-shell

Finally, run these commands for setup the project with dev dependencies.

git clone https://github.com/Dashstrom/shrinkix
cd shrinkix
uv sync --all-extras --python 3.10
uv run poe setup

Poe

Poe is available for help you to run tasks: uv run poe {task} or poe task within the venv.

test                  Run test suite.
lint                  Run linters: ruff checker and ruff formatter and mypy.
format                Run linters in fix mode.
check                 Run all checks: lint, test and docs.
check-tag             Check if the current tag match the version.
cov                   Run coverage for generate report and html.
open-cov              Open html coverage report in webbrowser.
doc                   Build documentation.
open-doc              Open documentation in webbrowser.
setup                 Setup pre-commit.
pre-commit            Run pre-commit.
clean                 Clean cache files.

How to add dependency

uv add 'PACKAGE'

Ignore illegitimate warnings

To ignore illegitimate warnings you can add :

  • # noqa: ERROR_CODE on the same line for ruff.
  • # type: ignore[ERROR_CODE] on the same line for mypy.
  • # pragma: no cover on the same line to ignore line for coverage.
  • # doctest: +SKIP on the same line for doctest.

License

This work is licensed under MIT.

Metadata

Release files for shrinkix 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shrinkix 1.1.1
File Size Uploaded
shrinkix-1.1.1.tar.gz 4.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for shrinkix 1.1.1
File Interpreter ABI Platform
shrinkix-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 4.1 MB

Release files / shrinkix-1.1.1.tar.gz

Download URL shrinkix-1.1.1.tar.gz
Size 4.1 MB
Tags Source
SHA-256 checksum
How to use checksums
093a883dff7ae1a4cddab78e7c939522a256e414102b521a8bb058e015cf2a2c
BLAKE2b-256 checksum
How to use checksums
7fdb1b04105e0fa4535330799974f3dec29985b6510acb9b432752b5a01d5b93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 8, 2025.

Transparency log

Release files / shrinkix-1.1.1-py3-none-any.whl

Download URL shrinkix-1.1.1-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b8fe487d10313bfa386a92e5c1dde7223f162eb61fa88872381f7d1d58a2a8c
BLAKE2b-256 checksum
How to use checksums
4a228dd71300975654f3e8ae010b4fe5ae0b881d04ec99a3309829b6d4e95437
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 8, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page