{ "info": { "author": "Mihail Mishakin", "author_email": "x896321475@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# variations\nA simple interface that allows processing of images.\n\n[![PyPI](https://img.shields.io/pypi/v/variations.svg)](https://pypi.org/project/variations/)\n[![Build Status](https://github.com/dldevinc/variations/actions/workflows/tests.yml/badge.svg)](https://github.com/dldevinc/variations)\n[![Software license](https://img.shields.io/pypi/l/variations.svg)](https://pypi.org/project/variations/)\n\n## Compatibility\n* `python` >= 3.7\n\n## Installation\n1. Run `pip install variations`\n\n2. (**optional**) If you want to use [StackBlur](https://github.com/dldevinc/pillow-stackblur)\n\n ``pip install pillow-stackblur``\n\n3. (**optional**) If you want to use [Face Detection](https://github.com/ageitgey/face_recognition)\n\n ``pip install face_recognition``\n\n## Usage\n```python\nfrom PIL import Image\nfrom variations import processors\nfrom variations.variation import Variation\nfrom variations.utils import prepare_image\n\nvariation = Variation(\n size=(400, 0),\n max_height=800,\n clip=False,\n upscale=False,\n anchor=processors.Anchor.TOP_LEFT,\n jpeg=dict(\n quality=92,\n ),\n webp=dict(\n lossless=True,\n quality=90,\n ),\n postprocessors=[\n processors.ColorOverlay('#FF0000', overlay_opacity=0.25),\n ],\n)\n\nimg = Image.open('source.jpg')\nimg = prepare_image(img, draft_size=variation.get_output_size(img.size))\nnew_img = variation.process(img)\ndest_path = variation.replace_extension('dest.jpg')\nvariation.save(new_img, dest_path)\n```\n\n## Options\n| | Type | Examples | Description |\n|--------------------|----------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **size** | tuple
list | `(640, 480)`
`(640, 0)` | The **canvas** size of image. If you set the width or height to zero, the corresponding value will be automatically adjusted based on the aspect ratio |\n| **max_width** | int | `640` | It specifies the maximum width in pixels.This option have meaning only when corresponding value in `size` is zero |\n| **max_height** | int | `480` | It specifies the maximum height in pixels.This option have meaning only when corresponding value in `size` is zero |\n| **clip** | bool | | When set to `True`, the image can be cropped when filling the canvas. |\n| **upscale** | bool | | When set to `True`, the image can be upscaled when filling the canvas. |\n| **anchor** | str
tuple
list | `'tr'` (top right)
`'c'` (center)
`(1, 1)` (bottom right) | Defines the anchor point. |\n| **face_detection** | bool | | Use a face detection system to find anchor point. You must install [facial recognition api](https://github.com/ageitgey/face_recognition) to use this. |\n| **format** | str | `'JPEG'` `'png'` `'WebP'` | Enforce output image format. Defaults to `'AUTO'`, which means keep input format. |\n| **preprocessors** | list | `[processors.Crop(width=200, height=120, x=50, y=50)]` | [PilKit](https://github.com/matthewwithanm/pilkit) processors are invoked before the main processing stage |\n| **postprocessors** | list | `[processors.ColorOverlay('#0000FF', 0.10)]` | [PilKit](https://github.com/matthewwithanm/pilkit) processors are invoked after the main processing stage |\n\n## Additional options for specific formats\n\nIt is possible to pass additional [options](https://pillow.readthedocs.io/en/latest/handbook/image-file-formats.html)\nto `Image.save()` method.\n\n```python\nVariation(\n # ...\n jpeg=dict(\n quality=80,\n progressive=True,\n ),\n webp=dict(\n autoconvert=False,\n quality=80,\n ),\n tiff=dict(\n compression='tiff_jpeg',\n )\n)\n```\n\n## Development and Testing\nAfter cloning the Git repository, you should install this\nin a virtualenv and set up for development:\n```shell script\nvirtualenv .venv\nsource .venv/bin/activate\npip install -r ./requirements.txt\npre-commit install\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dldevinc/variations", "keywords": "", "license": "BSD license", "maintainer": "Mihail Mishakin", "maintainer_email": "x896321475@gmail.com", "name": "variations", "package_url": "https://pypi.org/project/variations/", "platform": "OS Independent", "project_url": "https://pypi.org/project/variations/", "project_urls": { "Homepage": "https://github.com/dldevinc/variations" }, "release_url": "https://pypi.org/project/variations/0.3.1/", "requires_dist": [ "Pillow (>=5.2.0)", "pilkit (>=1.1.6)", "face-recognition ; extra == 'facedetection'", "face-recognition ; extra == 'full'", "pillow-stackblur ; extra == 'full'", "pillow-stackblur ; extra == 'stackblur'" ], "requires_python": ">=3.7", "summary": "A simple interface that allows processing of images.", "version": "0.3.1", "yanked": false, "yanked_reason": null }, "last_serial": 12747488, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "138a0aff4c5049fc9287485a12913311", "sha256": "d8a77a369706d15dc3379d1c4096afa67b713b2d474a3ad9a63db135eb1a3dbc" }, "downloads": -1, "filename": "variations-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "138a0aff4c5049fc9287485a12913311", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4.0", "size": 10827, "upload_time": "2019-06-12T18:55:00", "upload_time_iso_8601": "2019-06-12T18:55:00.862241Z", "url": "https://files.pythonhosted.org/packages/de/5f/8edebf9dd5ba26ea172bf06c9fc43f9b7dca8e6a46f052e38208090744e5/variations-0.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5f92ec6efcbf4e6b638da0a0ceba1199", "sha256": "5c745e7f599245a9b1ec66eae9a0d7b494d7cb28097c502a357fc275a7e62aaf" }, "downloads": -1, "filename": "variations-0.0.1.tar.gz", "has_sig": false, "md5_digest": "5f92ec6efcbf4e6b638da0a0ceba1199", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 9458, "upload_time": "2019-06-12T18:55:03", "upload_time_iso_8601": "2019-06-12T18:55:03.363200Z", "url": "https://files.pythonhosted.org/packages/eb/08/edb3f828bfc817026e42e40588056cb9851747826f41d33b7bd8d7a41cde/variations-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "73edcb4b664ef810015cad619a071d42", "sha256": "5f62b5317af9cd247714012f5639f757c52a88854682e3eeea6e38cfda031d2d" }, "downloads": -1, "filename": "variations-0.0.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "73edcb4b664ef810015cad619a071d42", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 15020, "upload_time": "2019-09-24T13:55:04", "upload_time_iso_8601": "2019-09-24T13:55:04.685747Z", "url": "https://files.pythonhosted.org/packages/23/a9/b8ff7e0976205402fe8ae3ad0158209f11ba31b984ea444f7321ea822b40/variations-0.0.10-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b39c7090dae83b7bd6f8c2aaea57b55d", "sha256": "e028190dbd46ab68189316c59a24a32475372a1652d4ac22582f43d81ff851be" }, "downloads": -1, "filename": "variations-0.0.10.tar.gz", "has_sig": false, "md5_digest": "b39c7090dae83b7bd6f8c2aaea57b55d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 12914, "upload_time": "2019-09-24T13:55:06", "upload_time_iso_8601": "2019-09-24T13:55:06.702781Z", "url": "https://files.pythonhosted.org/packages/12/1d/99d6be045f955cdf24b058d12086a1c7df4915676f23b546522f3ee6c514/variations-0.0.10.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "fe4e2d4e4f0821a75c0995f16677b184", "sha256": "142e597932a464a54a22089cce7bb5b2e1f33b0ac4516ac30d7b077e42129b82" }, "downloads": -1, "filename": "variations-0.0.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fe4e2d4e4f0821a75c0995f16677b184", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 15144, "upload_time": "2019-10-16T06:15:10", "upload_time_iso_8601": "2019-10-16T06:15:10.891190Z", "url": "https://files.pythonhosted.org/packages/51/5f/4988462ba980f4206bfeb3d7ec7274ec6dd4b2c444de13934844c4152ac9/variations-0.0.11-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4b812e1baac5ce899cc2fd0ff50ea9e6", "sha256": "459b15fc97548cc00c96ef646b4730b55de8b275aeb261bff5808e299d4adb46" }, "downloads": -1, "filename": "variations-0.0.11.tar.gz", "has_sig": false, "md5_digest": "4b812e1baac5ce899cc2fd0ff50ea9e6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 13283, "upload_time": "2019-10-16T06:15:13", "upload_time_iso_8601": "2019-10-16T06:15:13.081670Z", "url": "https://files.pythonhosted.org/packages/c3/1c/762471a1aa2acf7927b5901cdb3d1f43e0c095207ca2248150b710f63ec5/variations-0.0.11.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "152381c0e2275b670317315a998c7ccd", "sha256": "f50114e0aad19f1fa0ab8d0a7ec1a437dd11ff1e0f301ed779ab7b3ce05353d2" }, "downloads": -1, "filename": "variations-0.0.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "152381c0e2275b670317315a998c7ccd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 15143, "upload_time": "2019-10-16T06:32:50", "upload_time_iso_8601": "2019-10-16T06:32:50.758780Z", "url": "https://files.pythonhosted.org/packages/67/a3/647e42b65719acbe677a84fa518f37ea6eade07d1741690668e682f6ccd7/variations-0.0.12-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "25ba4967b2db3aff2314cb23e74959ad", "sha256": "f57c445559a52b23c426bd78c00f981a6cecf22d968ea6e6e3ee0d2144571514" }, "downloads": -1, "filename": "variations-0.0.12.tar.gz", "has_sig": false, "md5_digest": "25ba4967b2db3aff2314cb23e74959ad", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 13281, "upload_time": "2019-10-16T06:32:52", "upload_time_iso_8601": "2019-10-16T06:32:52.696465Z", "url": "https://files.pythonhosted.org/packages/f8/9f/c613411ee545d8955149116e4ea76bd542ddee686cce9a5c808e10b474ca/variations-0.0.12.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "f944cd9673bf4203c2162e039984b81c", "sha256": "3c4cc67ebe79ebfd9cca29cc54a4949b6b33e2991e785397acdec373c30d7bb0" }, "downloads": -1, "filename": "variations-0.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f944cd9673bf4203c2162e039984b81c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 15108, "upload_time": "2019-10-21T14:26:48", "upload_time_iso_8601": "2019-10-21T14:26:48.150803Z", "url": "https://files.pythonhosted.org/packages/f8/7e/dfbb143d239bd3238415943690637a24de7184b33d19eadb3be8206c9875/variations-0.0.13-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "499c9cb625040dfb8831373d43510623", "sha256": "4f2b2dc96b4ade7da220b0a06812ca9bc742413fc4a38c985db919457e82c959" }, "downloads": -1, "filename": "variations-0.0.13.tar.gz", "has_sig": false, "md5_digest": "499c9cb625040dfb8831373d43510623", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 13168, "upload_time": "2019-10-21T14:26:50", "upload_time_iso_8601": "2019-10-21T14:26:50.554782Z", "url": "https://files.pythonhosted.org/packages/4d/fd/3f8d9b7dcf1ac2347a52d4205b63d91cedf2b076f265cb686c2d4b3ec801/variations-0.0.13.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "79e45e4303d0dc04b3a820f6bf0e2e25", "sha256": "f4cfdc01ef0818f71518a416104d35e4f434dac28ec92bed81766fbd77a2d169" }, "downloads": -1, "filename": "variations-0.0.14-py3-none-any.whl", "has_sig": false, "md5_digest": "79e45e4303d0dc04b3a820f6bf0e2e25", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 15164, "upload_time": "2019-10-22T07:39:50", "upload_time_iso_8601": "2019-10-22T07:39:50.615677Z", "url": "https://files.pythonhosted.org/packages/2c/6b/c5196bf2715cb9cf9f5cd4b9195fae4f5578d99fa7bf59a0792aefe2b2a6/variations-0.0.14-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7bce807ef0730cb8cedb8f7405a27f01", "sha256": "ef411c2a60d386b22f4b814f0bbb6adb7a13290dbbb204371f08d4a5e0ac2f94" }, "downloads": -1, "filename": "variations-0.0.14.tar.gz", "has_sig": false, "md5_digest": "7bce807ef0730cb8cedb8f7405a27f01", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 13218, "upload_time": "2019-10-22T07:39:54", "upload_time_iso_8601": "2019-10-22T07:39:54.740537Z", "url": "https://files.pythonhosted.org/packages/0d/7b/f193fb82597a9116182bf30233a239b5a5f0c9df4f2826ed68f163ec7a89/variations-0.0.14.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "862639a5aaba3164bb90a5ba4327e91a", "sha256": "459ed12f5c1b509eed6d7b292d062bdc028a56009b075a48f846948c42a71563" }, "downloads": -1, "filename": "variations-0.0.15-py3-none-any.whl", "has_sig": false, "md5_digest": "862639a5aaba3164bb90a5ba4327e91a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 15180, "upload_time": "2019-10-30T14:13:10", "upload_time_iso_8601": "2019-10-30T14:13:10.740091Z", "url": "https://files.pythonhosted.org/packages/45/c9/cef4cc26ed1a458134796752f495c19e056221409ffcfcea955200df383a/variations-0.0.15-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "4b1064be357e6db312516057099a961c", "sha256": "f3b7e6a30854ea2e51fe80313258bbdd9dd940712f22564457bd5f9965b95165" }, "downloads": -1, "filename": "variations-0.0.15.tar.gz", "has_sig": false, "md5_digest": "4b1064be357e6db312516057099a961c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 13241, "upload_time": "2019-10-30T14:13:12", "upload_time_iso_8601": "2019-10-30T14:13:12.674324Z", "url": "https://files.pythonhosted.org/packages/be/ad/a66d9e53151034e704cdee47315a408adf74c0782d774d1c49e5e6c7cb1f/variations-0.0.15.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "37cd3ea39285e26419abe6c2b46f71d6", "sha256": "3bb62fdb2492024c21762993a794128ce1bbb21ac161c1b592e8ad53205ef56b" }, "downloads": -1, "filename": "variations-0.0.16-py3-none-any.whl", "has_sig": false, "md5_digest": "37cd3ea39285e26419abe6c2b46f71d6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 21466, "upload_time": "2020-03-05T10:16:24", "upload_time_iso_8601": "2020-03-05T10:16:24.509444Z", "url": "https://files.pythonhosted.org/packages/5c/06/58e526c67540706d32e7e35bfac1e64fa94585c01acce826b2377ca27afd/variations-0.0.16-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ee3f250174d3dc94a1aa823699a9cda6", "sha256": "6cd7bbbd29d2e1888a328953e466a695d3cd1d2a1c8c736abe4f917efdd7f127" }, "downloads": -1, "filename": "variations-0.0.16.tar.gz", "has_sig": false, "md5_digest": "ee3f250174d3dc94a1aa823699a9cda6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 16822, "upload_time": "2020-03-05T10:16:25", "upload_time_iso_8601": "2020-03-05T10:16:25.957495Z", "url": "https://files.pythonhosted.org/packages/78/91/cb5d67c6a5094393854980f5209518bc326ee2e3d0bd1b3c6c9bbbe8bb55/variations-0.0.16.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "f9643658e41d3ab79f3000d3a922e93d", "sha256": "58e422edbfead3051e0868e4a28a3986ddc848ee311299cb4a5f312a60c30041" }, "downloads": -1, "filename": "variations-0.0.17-py3-none-any.whl", "has_sig": false, "md5_digest": "f9643658e41d3ab79f3000d3a922e93d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 21481, "upload_time": "2020-03-19T07:51:49", "upload_time_iso_8601": "2020-03-19T07:51:49.849709Z", "url": "https://files.pythonhosted.org/packages/8a/45/09aa23835ed048a83fb4988ecde1d8f0503a03ecab7fefccbce55bc54a0b/variations-0.0.17-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "23d108d15ba0076eb663ad24d89c3952", "sha256": "4c98f45be9618ee6a65ea18abc2a2680e3bd01207094b73e04899d55f3845699" }, "downloads": -1, "filename": "variations-0.0.17.tar.gz", "has_sig": false, "md5_digest": "23d108d15ba0076eb663ad24d89c3952", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 16837, "upload_time": "2020-03-19T07:51:51", "upload_time_iso_8601": "2020-03-19T07:51:51.644040Z", "url": "https://files.pythonhosted.org/packages/b5/da/bfa8bdaf339295ca73693db07deccfddf0db701a0dda465621461d24373b/variations-0.0.17.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "d0efa63d22d233e32490d637dddd6444", "sha256": "2f327034d6256b59263076bdb46ebc7cbbdd6e44a8a9e075d95b1723c25b4865" }, "downloads": -1, "filename": "variations-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d0efa63d22d233e32490d637dddd6444", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4.0", "size": 10846, "upload_time": "2019-06-12T19:00:36", "upload_time_iso_8601": "2019-06-12T19:00:36.178508Z", "url": "https://files.pythonhosted.org/packages/ae/6e/5d4dfada50a073e9189e5a8cbac3c710fbbca6babecafab0f053e2f78734/variations-0.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "097d498e95d146c679b3b683a1edacba", "sha256": "7e799a01bb48ae58be45ecfeb3221f29cf1754d75adc31b9840bd105ecdc1afb" }, "downloads": -1, "filename": "variations-0.0.2.tar.gz", "has_sig": false, "md5_digest": "097d498e95d146c679b3b683a1edacba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 9471, "upload_time": "2019-06-12T19:00:37", "upload_time_iso_8601": "2019-06-12T19:00:37.689232Z", "url": "https://files.pythonhosted.org/packages/a7/a8/fed1387e2ac14134b85d43359eed47fd327583ee5d84374c74b16ab17d5d/variations-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "ca2cda87f5b3e0fc1ec1bab60f34a374", "sha256": "c5d7552555babc113c02ff7272b77ffeae860da94224bbf6e55fa9821555de73" }, "downloads": -1, "filename": "variations-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca2cda87f5b3e0fc1ec1bab60f34a374", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4.0", "size": 10917, "upload_time": "2019-06-12T19:33:25", "upload_time_iso_8601": "2019-06-12T19:33:25.040072Z", "url": "https://files.pythonhosted.org/packages/a8/df/ebd727589fcc883c40b54c2a82ca48b2843c26ca5c08ade26c7bbd11e8a6/variations-0.0.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "64c756531e957f2c39d46ffd3ef84fb2", "sha256": "fa9fa4ea11a9e65b4e5bf2c7956979984c8eda2a8695803625b615328b5a0aab" }, "downloads": -1, "filename": "variations-0.0.3.tar.gz", "has_sig": false, "md5_digest": "64c756531e957f2c39d46ffd3ef84fb2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 9539, "upload_time": "2019-06-12T19:33:26", "upload_time_iso_8601": "2019-06-12T19:33:26.678983Z", "url": "https://files.pythonhosted.org/packages/87/36/ae8677af36b1c026d2da2c00ffd85a2a10432551414f4260dfda88f66dab/variations-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "12f693084d2707596133b324974e7b32", "sha256": "3c06358489a62e9dbe22fbca906bd85cc638dfcf5f116b8450a2fe2870a2a87a" }, "downloads": -1, "filename": "variations-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "12f693084d2707596133b324974e7b32", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4.0", "size": 11099, "upload_time": "2019-06-13T10:09:36", "upload_time_iso_8601": "2019-06-13T10:09:36.981862Z", "url": "https://files.pythonhosted.org/packages/14/b5/03aa49050b0fb7565fed5b53787fc5bacbc3650d75ee01ad70905b7cf40b/variations-0.0.4-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7bbae8914ed2fac04ca9082c0f10310e", "sha256": "bc1e599a6f7b5267e0d07f8d63729cb4a118b88c959a0b9211a06c44d020accc" }, "downloads": -1, "filename": "variations-0.0.4.tar.gz", "has_sig": false, "md5_digest": "7bbae8914ed2fac04ca9082c0f10310e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 9161, "upload_time": "2019-06-13T10:09:38", "upload_time_iso_8601": "2019-06-13T10:09:38.800279Z", "url": "https://files.pythonhosted.org/packages/af/df/802323c87cc07d70106d2060a81c781cdb95fe299753948f2277270f343a/variations-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "f24b9cdd469683b18d5b3dbf9118e272", "sha256": "d9a39aa6655e13f0f352b96bc48721f19497360828fb3e87cc4d80bf6926fd5a" }, "downloads": -1, "filename": "variations-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f24b9cdd469683b18d5b3dbf9118e272", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4.0", "size": 15166, "upload_time": "2019-06-15T22:04:06", "upload_time_iso_8601": "2019-06-15T22:04:06.226419Z", "url": "https://files.pythonhosted.org/packages/e8/f3/9b5f85b2ed3546084bd5580a2211c602a621a7dab50bbe87388916c84320/variations-0.0.5-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b12c558d524025283c5e7cde4627b246", "sha256": "f112e1e5cc9c852db89aee85cc7615187e0b16f16ba41326537e4c9ef558105c" }, "downloads": -1, "filename": "variations-0.0.5.tar.gz", "has_sig": false, "md5_digest": "b12c558d524025283c5e7cde4627b246", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 11198, "upload_time": "2019-06-15T22:04:08", "upload_time_iso_8601": "2019-06-15T22:04:08.044572Z", "url": "https://files.pythonhosted.org/packages/9b/39/ed3b7522052775262ddb9e362c3b51b810b0abff243e9dc9bc2d00a1a72a/variations-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "02ee73f9e67a9eaf7461d63cfe8b9002", "sha256": "5792a822a26c2ea93dee0693efc1a568e27ab90a044d3bae4212377f90fe1dd3" }, "downloads": -1, "filename": "variations-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "02ee73f9e67a9eaf7461d63cfe8b9002", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4.0", "size": 15277, "upload_time": "2019-06-18T07:24:23", "upload_time_iso_8601": "2019-06-18T07:24:23.855681Z", "url": "https://files.pythonhosted.org/packages/0a/2f/a77bb87147bfad470e4a7c40c04ab2982687b16ac336dcb369dbe48befcd/variations-0.0.6-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9cbf7d0ed18cd11c670ad96579bc0454", "sha256": "5879ed3fc608ae4117b74cd5f42d7e6d123518746a626395d00945dd9a515f29" }, "downloads": -1, "filename": "variations-0.0.6.tar.gz", "has_sig": false, "md5_digest": "9cbf7d0ed18cd11c670ad96579bc0454", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 10574, "upload_time": "2019-06-18T07:24:25", "upload_time_iso_8601": "2019-06-18T07:24:25.458890Z", "url": "https://files.pythonhosted.org/packages/ac/ef/3b7f86783b48540d30b20af15c0874614ebbfe4b943a467ab613141be357/variations-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "d6ad613502fb354f3ff12331ee38aeb7", "sha256": "7ce0c12778c22d7b6cf5da39c4194050f003685c809ea32b4b23cadf20fb7bbe" }, "downloads": -1, "filename": "variations-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d6ad613502fb354f3ff12331ee38aeb7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 10974, "upload_time": "2019-09-20T06:48:29", "upload_time_iso_8601": "2019-09-20T06:48:29.878914Z", "url": "https://files.pythonhosted.org/packages/53/83/46559fe6b580e80e0ead643691712b887dcca2f521b2437a65513102eda1/variations-0.0.7-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6cd654d57ea13352e6a1be57675d6446", "sha256": "a472c9a0d3edfa81144660cf5c50f9e39128856be6efb8ef07c3d284f7e3f2df" }, "downloads": -1, "filename": "variations-0.0.7.tar.gz", "has_sig": false, "md5_digest": "6cd654d57ea13352e6a1be57675d6446", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 10625, "upload_time": "2019-09-20T06:48:31", "upload_time_iso_8601": "2019-09-20T06:48:31.718684Z", "url": "https://files.pythonhosted.org/packages/29/87/ad3208c5d39821753343910f60482a2054952836468e9f4c97b9e76a256e/variations-0.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "ff3a3ca777aadb7acf85a0ccce1072d2", "sha256": "1ee58ba8b6e38f275e7065755cac699097b3ef89db753415ad3ead094458a0c7" }, "downloads": -1, "filename": "variations-0.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ff3a3ca777aadb7acf85a0ccce1072d2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5.0", "size": 14848, "upload_time": "2019-09-20T08:47:24", "upload_time_iso_8601": "2019-09-20T08:47:24.036916Z", "url": "https://files.pythonhosted.org/packages/92/81/54fd6c72d36fc41d7adb706f87b23254b25496177fbd158da55bd742b78f/variations-0.0.8-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9f1153b1d88b766d85e6e045a3807c71", "sha256": "20d6410ba1ea447af3dd7c86431c333729a638fc712269f64145668e0aec6fa0" }, "downloads": -1, "filename": "variations-0.0.8.tar.gz", "has_sig": false, "md5_digest": "9f1153b1d88b766d85e6e045a3807c71", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 15811, "upload_time": "2019-09-20T08:47:25", "upload_time_iso_8601": "2019-09-20T08:47:25.766852Z", "url": "https://files.pythonhosted.org/packages/cc/f5/9a6b1c19a14d20a9b4e43e1a6b4ef5f593cf794f440aec737b7886088539/variations-0.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "c04b52ee805fe9f71e39672399ed8f48", "sha256": "dc4f4fccc3d12d549e290d5afb418689aab1e2a68f8fb6dce0e6c9c635441b41" }, "downloads": -1, "filename": "variations-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "c04b52ee805fe9f71e39672399ed8f48", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 14983, "upload_time": "2019-09-24T12:00:09", "upload_time_iso_8601": "2019-09-24T12:00:09.945297Z", "url": "https://files.pythonhosted.org/packages/af/7f/eea86601f333ab9500588e1d197f1671de312a08943030cdb727cf4d88b0/variations-0.0.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "426a70548501fd26c3ccb356cab9e2f1", "sha256": "e3642e7402a4d3ae7af7b7dc297d1b74991fed025e3e87804a1f88f28b4f8ab0" }, "downloads": -1, "filename": "variations-0.0.9.tar.gz", "has_sig": false, "md5_digest": "426a70548501fd26c3ccb356cab9e2f1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 12899, "upload_time": "2019-09-24T12:00:13", "upload_time_iso_8601": "2019-09-24T12:00:13.162786Z", "url": "https://files.pythonhosted.org/packages/f5/0e/d7e9f4c4a12aa843f399e6de06027e932d1c3980dadf829597d245c41221/variations-0.0.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "4f50f8dafa4dcff2cd24ed5fdf08388b", "sha256": "83f93bca2a0ff33fdc828cbe69c48c5f528603ccc833f6c31de9e26bc2da6eab" }, "downloads": -1, "filename": "variations-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f50f8dafa4dcff2cd24ed5fdf08388b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 22949, "upload_time": "2020-07-17T09:08:38", "upload_time_iso_8601": "2020-07-17T09:08:38.606772Z", "url": "https://files.pythonhosted.org/packages/c8/69/fe9fa8316635ecfa93e99a0eb218ecd7d156a107cd6d7a9960c4e599f98f/variations-0.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ff3c886441048d5dc940adfd54024c1d", "sha256": "0a7c37b0ac3e757e05e6c5eca73934d8171590a61781b0bc2163d71fc9fecf9c" }, "downloads": -1, "filename": "variations-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ff3c886441048d5dc940adfd54024c1d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 15043, "upload_time": "2020-07-17T09:08:39", "upload_time_iso_8601": "2020-07-17T09:08:39.796714Z", "url": "https://files.pythonhosted.org/packages/ea/37/98ad2c8e2959f4f7d68c0897b09b14e7c844314fcc04dd517043e71b485f/variations-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "06951103828d2c5cf8294d9d0a0abfbf", "sha256": "19bc36489211020161cb814df5840f174120b4b1ba9807f1e1b16544f331ea7f" }, "downloads": -1, "filename": "variations-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "06951103828d2c5cf8294d9d0a0abfbf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 23245, "upload_time": "2020-07-27T06:34:45", "upload_time_iso_8601": "2020-07-27T06:34:45.723408Z", "url": "https://files.pythonhosted.org/packages/d6/6e/9b069e6824a70bd70a868db26e08c2ce658cb9be307585aaaa1db6b0eb2a/variations-0.1.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6eb9fbfffb191717095704fb3c2d78c5", "sha256": "717f6bf17230695db47b70ff04daf42c24dfc3475c4836106b767b329fce0058" }, "downloads": -1, "filename": "variations-0.1.1.tar.gz", "has_sig": false, "md5_digest": "6eb9fbfffb191717095704fb3c2d78c5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 15172, "upload_time": "2020-07-27T06:34:46", "upload_time_iso_8601": "2020-07-27T06:34:46.763270Z", "url": "https://files.pythonhosted.org/packages/ec/b4/7043e9150241113e3c7fa20bdb5c17e948b0da35e75d7dc267995af6a4c8/variations-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "710521103d256b08b66ba080c825f0c7", "sha256": "935addefbb017c5e2f16db1d0d146f4986b3017d14181b46c467a22db1693dff" }, "downloads": -1, "filename": "variations-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "710521103d256b08b66ba080c825f0c7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">= 3.6", "size": 23288, "upload_time": "2021-06-06T05:41:23", "upload_time_iso_8601": "2021-06-06T05:41:23.648449Z", "url": "https://files.pythonhosted.org/packages/30/b9/6cd98836550e82bc914766887d3900f505c059684ff1659e8ab09b78e06b/variations-0.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "94fcd35bb94d9125851c304c4a18a3f2", "sha256": "791cd23ee1e3c6b1cbac0ad96cd97e0653abe34053cb06e1872139780b9fd7c6" }, "downloads": -1, "filename": "variations-0.2.0.tar.gz", "has_sig": false, "md5_digest": "94fcd35bb94d9125851c304c4a18a3f2", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 14611, "upload_time": "2021-06-06T05:41:24", "upload_time_iso_8601": "2021-06-06T05:41:24.924907Z", "url": "https://files.pythonhosted.org/packages/8b/21/05b06e58d9e199b4bc43451f34164a41c3b30bbd97611c86e8a51410c81e/variations-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "367fd853e4b5522cca2a650ca9467f5b", "sha256": "1ac50d9d8915394f60f048f0ddb5f723d0bf259fd02b2f6701bee479b8353dde" }, "downloads": -1, "filename": "variations-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "367fd853e4b5522cca2a650ca9467f5b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6", "size": 23258, "upload_time": "2021-11-24T07:32:53", "upload_time_iso_8601": "2021-11-24T07:32:53.128691Z", "url": "https://files.pythonhosted.org/packages/1c/f5/935bef33eecc36d2e43d60a2ef7577d3bff5bc33b715f9c27de86b142583/variations-0.2.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "68f54248b2e3459c32200bb01b5b9dc1", "sha256": "3903ab25ffad70dce2326a572f619f5ddb104cc7480b278b004e838b0da8ffc1" }, "downloads": -1, "filename": "variations-0.2.1.tar.gz", "has_sig": false, "md5_digest": "68f54248b2e3459c32200bb01b5b9dc1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 14995, "upload_time": "2021-11-24T07:32:54", "upload_time_iso_8601": "2021-11-24T07:32:54.450131Z", "url": "https://files.pythonhosted.org/packages/09/48/85831c806b1c6ff9ed88f5f1dee828beb42769b73145eef4c284236a61fc/variations-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d885f9289ee9a394075638bdc30a3d24", "sha256": "e48ad387a1eb90721eba7823857f8b9fb0178652b6a79b93aa291f0e1af8ee84" }, "downloads": -1, "filename": "variations-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d885f9289ee9a394075638bdc30a3d24", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 22992, "upload_time": "2022-01-11T07:03:21", "upload_time_iso_8601": "2022-01-11T07:03:21.230791Z", "url": "https://files.pythonhosted.org/packages/44/ec/23237725a88258e335b9e5ed9147ee0f6f9f610d610c9f4e600a3134279a/variations-0.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5c7161d1de98a77a731b8a9a0a83976b", "sha256": "b25f345a27944af9e57b81547fea14b42b8066c7df98d99faea035416991a4a1" }, "downloads": -1, "filename": "variations-0.3.0.tar.gz", "has_sig": false, "md5_digest": "5c7161d1de98a77a731b8a9a0a83976b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 14809, "upload_time": "2022-01-11T07:03:22", "upload_time_iso_8601": "2022-01-11T07:03:22.867163Z", "url": "https://files.pythonhosted.org/packages/28/e2/dd17dcf8f44456993ebf48aafb8187920e780cd61c482eafd0eda56a66e6/variations-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "bd19576361a2a3b59341d261823f73a4", "sha256": "1d9e096f4ac8e5592599a2f312d4d71650a8dce8c5f7a258fb39c866f3ff2b9e" }, "downloads": -1, "filename": "variations-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bd19576361a2a3b59341d261823f73a4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 23014, "upload_time": "2022-01-31T18:01:34", "upload_time_iso_8601": "2022-01-31T18:01:34.076392Z", "url": "https://files.pythonhosted.org/packages/77/54/e1589b4c8cb6a49902d15388d840b04bf775468d8baac28e59a289c8d02c/variations-0.3.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f378df88b6e3e8ac25fe38ea0a6abdaa", "sha256": "84e3080f4f7e8b99cd151b772d9a1108ce514d13088f5550248a2ccd0b1e22e1" }, "downloads": -1, "filename": "variations-0.3.1.tar.gz", "has_sig": false, "md5_digest": "f378df88b6e3e8ac25fe38ea0a6abdaa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 14879, "upload_time": "2022-01-31T18:01:35", "upload_time_iso_8601": "2022-01-31T18:01:35.153518Z", "url": "https://files.pythonhosted.org/packages/86/7a/fc501fa86d38aec7199d76c2d3e6ca53466398164189642e502150e06443/variations-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bd19576361a2a3b59341d261823f73a4", "sha256": "1d9e096f4ac8e5592599a2f312d4d71650a8dce8c5f7a258fb39c866f3ff2b9e" }, "downloads": -1, "filename": "variations-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bd19576361a2a3b59341d261823f73a4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.7", "size": 23014, "upload_time": "2022-01-31T18:01:34", "upload_time_iso_8601": "2022-01-31T18:01:34.076392Z", "url": "https://files.pythonhosted.org/packages/77/54/e1589b4c8cb6a49902d15388d840b04bf775468d8baac28e59a289c8d02c/variations-0.3.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f378df88b6e3e8ac25fe38ea0a6abdaa", "sha256": "84e3080f4f7e8b99cd151b772d9a1108ce514d13088f5550248a2ccd0b1e22e1" }, "downloads": -1, "filename": "variations-0.3.1.tar.gz", "has_sig": false, "md5_digest": "f378df88b6e3e8ac25fe38ea0a6abdaa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 14879, "upload_time": "2022-01-31T18:01:35", "upload_time_iso_8601": "2022-01-31T18:01:35.153518Z", "url": "https://files.pythonhosted.org/packages/86/7a/fc501fa86d38aec7199d76c2d3e6ca53466398164189642e502150e06443/variations-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }