Skip to main content

pierogis

version docs

discord twitter

pierogis is a framework for image and animation processing. Ingredients that describe image processing functions can be assembled into recipes and used to cook an image or animation.

pip install pierogis
pierogis custom teton.png "resize --width 768 --height 768; sort; quantize; resize --scale 4" -o output.png
# or
pierogis custom teton.png recipe.txt -o output.png

recipe.txt

resize --width 768 --height 768;
sort;
quantize -c 000000 ffffff 668a61 cbb8a2 b6d655 434d1f 5fb7d2 6d8ab9 3876c1 515b5e a8725f d7b6aa 3c2329 f78693 637186 00407A;
resize -s 4;

sorted and quantized teton

install

install from a wheel with pip

pip install pierogis

Depends on numpy and PIL. PIL requires some external C libraries for handling image files. You probably don't have to worry about this. If you do, try a conda installation.

To build from source (either the repository or the sdist), you will need to install the rust stable toolchain.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip install -r requirements.txt

pip install .

Note that the python package was previously called pyrogis. That was supposed to denote the difference between the package and the Rust algorithms (pierogis_rs) that it relied on.

These two parts were combined into one namespace in the 0.4.0 release, and the split naming became redundant.

Still, pip install pyrogis==0.4.0 will install pierogis.

features

  • CLI - Use a rich cli to cook à la carte recipes, or provide a recipe in a document (see docs)
  • Animations - Animations (gifs and movies) can be cooked in one command
  • Extendable - Easy to create custom manipulations (see docs)
  • Lazy Rendering - Render a manipulation after constructing your pipeline (see docs)
  • Numpy or Rust backend - Image processing functions use Numpy for (python relative) fast operations. Some ingredients use compiled Rust for more speed.

terminal screen

wires recipe

acknowledgements

The original python pixelsort package inspired this package. While the underlying algorithm of that package and of sort in this one is supposed to be functionally the same, details of the implementation may differ.

A quantization algorithm used in this package uses rscolorq, which is a Rust port of scolorq, itself an implementation of Spatial Color Quantization.

An algorithm called MMPX is used in this package to do 2x image magnification. It is implemented in a separate Rust package.

issues and contributing

When you encounter an error, there are some guidelines that will make it easier to help you:

  • Ensure that you are using the latest version of the package. It's early days so errors and updates will be frequent. Use pip uninstall pierogis then pip install pierogis --no-cache-dir to reinstall.
  • Provide the version of pierogis that you are using in issues to rule that out. pip list -> pierogis _._._
  • Provide the traceback or error message if relevant.
  • Provide your os and any other specific information about how you are trying to use the package.
  • Provide the code or the cli command that triggered the error.
  • If the problem is visual: that can be more difficult to debug. Share a link to an image hosting site if you want to share what you are seeing in an issue.
  • If you are getting different behavior than you expect: that could be an error or a feature.
  • If your problem is with installation: try conda, preinstall numpy and pillow, install the rust toolchain, and start praying. There will be a website with a visual editor for this software so stay tuned.

Hopefully all levels of skills can use this package. Any form of contributing is appreciated; passive-aggressive semi-anonymous thumbs down is not appreciated.

Everyone using and contributing to this package is doing it for the love of the game.

Don't feel like your issue is too small to make an issue. Pull requests are always welcome and anyone interested in dev work should join the discord.

Ingredient type algorithm/function suggestions can go in the ingredients channel. You can post your creations in the demo channel as well.

disclaimer

This library is licensed under the AGPL v3.

Art used for demos is the property of their respective owners.

The following statements are not necessarily legally binding. If they seem to contradict the license, follow the license.

The licenses of packages used by this software vary, but are understood to be compatible with AGPL. If you take issue with this package's use of other software regardless of legal concern, please reach out, and it can be removed from this package.

Also understand that there may be implications from those licenses on your use of this package.

Review the AGPL yourself if you intend to use this package in any software, but know that it was chosen to encourage that all related works be open source.

The use of AGPL does not mean that this cannot be monetized, but it does generally mean that you will need to share source code of improvements on this package; at least modules related to this package.

If your paid derivative work adds marginal value to what is included in this package, the author reserves the right to go to great lengths to make a free (and better) alternative to your derivative work.

Release files for pierogis 0.4.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 pierogis 0.4.1
File Size Uploaded
pierogis-0.4.1.tar.gz 77.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pierogis 0.4.1
File
pierogis-0.4.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
pierogis-0.4.1-cp39-cp39-manylinux2010_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-64 Details
pierogis-0.4.1-cp39-cp39-manylinux2010_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-32 Details
pierogis-0.4.1-cp39-cp39-manylinux1_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-64 Details
pierogis-0.4.1-cp39-cp39-manylinux1_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-32 Details
pierogis-0.4.1-cp39-cp39-macosx_12_0_arm64.whl CPython 3.9 CPython 3.9 macOS 12.0+ ARM64 Details
pierogis-0.4.1-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
pierogis-0.4.1-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
pierogis-0.4.1-cp38-cp38-manylinux2010_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-64 Details
pierogis-0.4.1-cp38-cp38-manylinux2010_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-32 Details
pierogis-0.4.1-cp38-cp38-manylinux1_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-64 Details
pierogis-0.4.1-cp38-cp38-manylinux1_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.5+ x86-32 Details
pierogis-0.4.1-cp38-cp38-macosx_12_0_arm64.whl CPython 3.8 CPython 3.8 macOS 12.0+ ARM64 Details
pierogis-0.4.1-cp38-cp38-macosx_10_9_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.9+ x86-64 Details
pierogis-0.4.1-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
pierogis-0.4.1-cp37-cp37m-manylinux2010_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 Details
pierogis-0.4.1-cp37-cp37m-manylinux2010_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32 Details
pierogis-0.4.1-cp37-cp37m-manylinux1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64 Details
pierogis-0.4.1-cp37-cp37m-manylinux1_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32 Details
pierogis-0.4.1-cp37-cp37m-macosx_10_9_x86_64.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64 Details

Total release size: 16.3 MB

Release files / pierogis-0.4.1.tar.gz

Download URL pierogis-0.4.1.tar.gz
Size 77.1 kB
Tags Source
SHA-256 checksum
How to use checksums
6bc323c304eaae6a945af5dc5b1633100cfa25cd0ab262fa3597ab51d5b2d527
BLAKE2b-256 checksum
How to use checksums
6ed947ee94fcd78fa5957324cca040aa071be68cc6f070e1df3eaa7f2a095fb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp39-cp39-win_amd64.whl

Download URL pierogis-0.4.1-cp39-cp39-win_amd64.whl
Size 248.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
0ba7a95893493dd1235fd5acef0bbfc320d83ed28c7f082b7f93bbc13d5c5105
BLAKE2b-256 checksum
How to use checksums
c58bb9874848bed8618663b27a3be56032ea46ee0a2a57c27f9d26498eaa8229
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp39-cp39-manylinux2010_x86_64.whl

Download URL pierogis-0.4.1-cp39-cp39-manylinux2010_x86_64.whl
Size 1.1 MB
Tags CPython 3.9 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
d309132bd872c30afa3c81513e27ec59f6bc5e35635ef4ff4932d5e32751f231
BLAKE2b-256 checksum
How to use checksums
7d390c8126853bec4c8e278eb58405993e9eeffcc966bc614a87c11075663a33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp39-cp39-manylinux2010_i686.whl

Download URL pierogis-0.4.1-cp39-cp39-manylinux2010_i686.whl
Size 1.2 MB
Tags CPython 3.9 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
9c97d89442715a2ea9d1de28c1da5d44b30f82eb3f174ae70f73a968d293fdab
BLAKE2b-256 checksum
How to use checksums
7df1a4f5274b5a26a31e34837142ab0c30abca6f22438792cec6f4f7d14cadb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp39-cp39-manylinux1_x86_64.whl

Download URL pierogis-0.4.1-cp39-cp39-manylinux1_x86_64.whl
Size 1.1 MB
Tags CPython 3.9 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
88cea71788c85e84804df4e2cbd10fad0de4226b8b9808aeff5ed4032af1c154
BLAKE2b-256 checksum
How to use checksums
cbc97052d8ca72a2cc72db1a733538246ef068b799511e0e0c440169be167ad2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp39-cp39-manylinux1_i686.whl

Download URL pierogis-0.4.1-cp39-cp39-manylinux1_i686.whl
Size 1.2 MB
Tags CPython 3.9 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
81b11e312e81630ce3294a0df909684cde2ad443b88b5aef22c57cb662abb9fb
BLAKE2b-256 checksum
How to use checksums
0c87591b87e13f4d575abf14e7e72ffe8795dc3fe4fa346199b3455791d9cd63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp39-cp39-macosx_12_0_arm64.whl

Download URL pierogis-0.4.1-cp39-cp39-macosx_12_0_arm64.whl
Size 341.8 kB
Tags CPython 3.9 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
23178211864fa60fdd153fe55e4798d2aa5d784cc7e45fb84ad0f6f3e5b790a6
BLAKE2b-256 checksum
How to use checksums
3e24b41114d13bbec6a3fa323e408f9fbd9c1f8b496b732575bb925d6927d8c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp39-cp39-macosx_10_9_x86_64.whl

Download URL pierogis-0.4.1-cp39-cp39-macosx_10_9_x86_64.whl
Size 359.0 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c30f45fd0714ce250f1fd9f795ce52e6fba6ce2044e9eb9fbf55b583a173b759
BLAKE2b-256 checksum
How to use checksums
4246a1c4f45b916a80f7dc7494575d484165aa1845b13697540dab63a6a72715
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp38-cp38-win_amd64.whl

Download URL pierogis-0.4.1-cp38-cp38-win_amd64.whl
Size 248.1 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
ba51176598795e53914cbec22d3c61d765af97e6950babf9e02780f8a7cf8355
BLAKE2b-256 checksum
How to use checksums
356f64122a6847dbf6ab31f32e8a0e67f11bb482fe02da927e25c579774e4a7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp38-cp38-manylinux2010_x86_64.whl

Download URL pierogis-0.4.1-cp38-cp38-manylinux2010_x86_64.whl
Size 1.1 MB
Tags CPython 3.8 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
cebf3884836b176ed8af3eff8cb0b0f2871725094d390545fd47df7d7bd25754
BLAKE2b-256 checksum
How to use checksums
25799e0435324b20f826b7be8568d6b6023c4a8e43bde2e63710902f686ebed6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp38-cp38-manylinux2010_i686.whl

Download URL pierogis-0.4.1-cp38-cp38-manylinux2010_i686.whl
Size 1.2 MB
Tags CPython 3.8 Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
a1e5c5cf7fc12aff9a9a3b9c1b27a47519ca4dd80cf8196395e2101372389c4d
BLAKE2b-256 checksum
How to use checksums
f0d0115722d016aa4c284920c15996dc839989ee3a836bd7e305b5b2273ada16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp38-cp38-manylinux1_x86_64.whl

Download URL pierogis-0.4.1-cp38-cp38-manylinux1_x86_64.whl
Size 1.1 MB
Tags CPython 3.8 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
c412ed92927b86ab67795236b416ec24a8d9923dc18786728f88e4eeae0758c5
BLAKE2b-256 checksum
How to use checksums
c4db65b37bc2f2b1fbc591ed082edb5d419ab2ea7901cf1ab6485c135d29f6bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp38-cp38-manylinux1_i686.whl

Download URL pierogis-0.4.1-cp38-cp38-manylinux1_i686.whl
Size 1.2 MB
Tags CPython 3.8 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
1c026c5dca811d5683a58e77e66e035873d054467230f55bb428d4d695962c26
BLAKE2b-256 checksum
How to use checksums
122a67be49ca85c96ebfaab8d6c19469bd5dc1df6aaaf9981fcca4e61f355f8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp38-cp38-macosx_12_0_arm64.whl

Download URL pierogis-0.4.1-cp38-cp38-macosx_12_0_arm64.whl
Size 341.9 kB
Tags CPython 3.8 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
65f82e8d88be4ee9dd43520d6527ded2a7c60c6e115101effc0122c4c9bb1837
BLAKE2b-256 checksum
How to use checksums
d6660e121bd1973d23c145f34d7ef0c8ae0c74da42ce7f3399f9c00e07a44009
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp38-cp38-macosx_10_9_x86_64.whl

Download URL pierogis-0.4.1-cp38-cp38-macosx_10_9_x86_64.whl
Size 358.8 kB
Tags CPython 3.8 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
9fbf5da808adcec72459cdebadc8a95531f3e19b3439c17fc97539a0cc330451
BLAKE2b-256 checksum
How to use checksums
10d77eaf82b23e37a84110b705f2bdb9847e997235d8f80792da1d9b38cd5494
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp37-cp37m-win_amd64.whl

Download URL pierogis-0.4.1-cp37-cp37m-win_amd64.whl
Size 248.3 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
e386e84435b3a55d1c2e49da1b4631675f1779770ce9f9150292fa09c8f7c148
BLAKE2b-256 checksum
How to use checksums
58ef5c6d127ced0f39c0800ed33752ec4fed74fcff11b1aff08465ec9c9d7cd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp37-cp37m-manylinux2010_x86_64.whl

Download URL pierogis-0.4.1-cp37-cp37m-manylinux2010_x86_64.whl
Size 1.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
38c076276497c74059e9a73c1a8d3d745b145e7ea9e29d8dd90f5e4c2a007669
BLAKE2b-256 checksum
How to use checksums
862b6e2e3126fd4786d5417c237971794cd0d3b1e461660b8fe9c36891e47e36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp37-cp37m-manylinux2010_i686.whl

Download URL pierogis-0.4.1-cp37-cp37m-manylinux2010_i686.whl
Size 1.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
c0b7b5befa1c3e481ec3501339e1bbdc07ec50be610911b13ca21d8dde69f147
BLAKE2b-256 checksum
How to use checksums
30043ebefca9cacd1b7d4ca04535e29a6d07686182a3a1fe1eafb10938b8d6dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp37-cp37m-manylinux1_x86_64.whl

Download URL pierogis-0.4.1-cp37-cp37m-manylinux1_x86_64.whl
Size 1.1 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
2f7ad5b5bb5722cb8855a8a8d2118264054095d1717428c2a781554a8d353342
BLAKE2b-256 checksum
How to use checksums
e092b1009e50ee80252c3a05ddff09b3ce10322dd26359b25b66cd6b375ee831
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp37-cp37m-manylinux1_i686.whl

Download URL pierogis-0.4.1-cp37-cp37m-manylinux1_i686.whl
Size 1.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
3226fb2f38fb4cdbd6ea5d5dab4d30dacbe248c3b01c323839ad7d0e35797b8c
BLAKE2b-256 checksum
How to use checksums
969bc116001165ad4e2979454c691c612ae80a14347da1c10f125f396c835428
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release files / pierogis-0.4.1-cp37-cp37m-macosx_10_9_x86_64.whl

Download URL pierogis-0.4.1-cp37-cp37m-macosx_10_9_x86_64.whl
Size 358.5 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
b9902092501516d409bf57bfacdd2b8f493f98850b57833f204ab7732c3d9d47
BLAKE2b-256 checksum
How to use checksums
1adddfb95b6167ac385efe7d14ed3c4530842835929354dff5c6d5ecfeacaffa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.4

Release history Release notifications | RSS feed

This release

0.4.1 This release

21 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