{ "info": { "author": "Adam Gschwender", "author_email": "adam.gschwender@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "Pilbox\n======\n\n.. image:: https://badge.fury.io/py/pilbox.svg\n :target: https://pypi.python.org/pypi/pilbox\n :alt: PyPI Version\n\n.. image:: https://travis-ci.org/agschwender/pilbox.svg?branch=master\n :target: https://travis-ci.org/agschwender/pilbox\n :alt: Build Status\n\n.. image:: https://coveralls.io/repos/agschwender/pilbox/badge.svg\n :target: https://coveralls.io/r/agschwender/pilbox\n :alt: Test Coverage\n\n.. image:: https://landscape.io/github/agschwender/pilbox/master/landscape.svg?style=flat\n :target: https://landscape.io/github/agschwender/pilbox/master\n :alt: Code Health\n\n\nPilbox is an image processing application server built on Python's\n`Tornado web framework `_ using\nthe `Python Imaging Library\n(Pillow) `_. It is not\nintended to be the primary source of images, but instead acts as a proxy\nwhich requests images and resizes them as desired.\n\nSetup\n=====\n\nDependencies\n------------\n\n- `Python >= 2.7 `_\n- `Pillow 5.2.0 `_\n- `Tornado 5.1.0 `_\n- `OpenCV 2.x `_ (optional)\n- `PycURL 7.x `_ (optional, but\n recommended; required for proxy requests and requests over TLS)\n- Image Libraries: libjpeg-dev, libfreetype6-dev, libwebp-dev,\n zlib1g-dev, liblcms2-dev\n\nPilbox highly recommends installing ``libcurl`` and ``pycurl`` in order\nto get better HTTP request performance as well as additional features\nsuch as proxy requests and requests over TLS. Installed versions of\n``libcurl`` should be a minimum of ``7.21.1`` and ``pycurl`` should be a\nminimum of ``7.18.2``. Furthermore, it is recommended that the\n``libcurl`` installation be built with asynchronous DNS resolver\n(threaded or c-ares), otherwise it may encounter various problems with\nrequest timeouts (for more information, see `CURLOPT_CONNECTTIMEOUT_MS `_\nand comments in `curl_httpclient.py `_)\n\nInstall\n-------\n\nPilbox can be installed with pip\n\n::\n\n $ pip install pilbox\n\nOr easy_install\n\n::\n\n $ easy_install pilbox\n\nOr from source\n\n::\n\n $ git clone https://github.com/agschwender/pilbox.git\n\nRunning\n=======\n\nTo run the application, issue the following command\n\n::\n\n $ python -m pilbox.app\n\nBy default, this will run the application on port 8888 and can be\naccessed by visiting:\n\n::\n\n http://localhost:8888/\n\nTo see a list of all available options, run\n\n::\n\n $ python -m pilbox.app --help\n Usage: pilbox/app.py [OPTIONS]\n\n Options:\n\n --allowed_hosts list of allowed hosts (default [])\n --allowed_operations list of allowed operations (default [])\n --background default hexadecimal bg color (RGB or ARGB)\n --ca_certs filename of CA certificates in PEM format\n --client_key client key\n --client_name client name\n --config path to configuration file\n --content_type_from_image override content type using image mime type\n --debug run in debug mode\n --expand default to expand when rotating\n --filter default filter to use when resizing\n --help show this help information\n --implicit_base_url prepend protocol/host to url paths\n --max_operations maximum operations to perform (default 10)\n --max_requests max concurrent requests (default 40)\n --max_resize_height maximum resize height (default 15000)\n --max_resize_width maximum resize width (default 15000)\n --operation default operation to perform\n --optimize default to optimize when saving\n --port run on the given port (default 8888)\n --position default cropping position\n --preserve_exif default behavior for Exif information\n --progressive default to progressive when saving\n --proxy_host proxy hostname\n --proxy_port proxy port\n --quality default jpeg quality, 1-99 or keep\n --retain default adaptive retain percent, 1-99\n --timeout timeout of requests in seconds (default 10)\n --user_agent user agent\n --validate_cert validate certificates (default True)\n --workers number of worker processes (0 = auto) (default 0)\n\n\nCalling\n=======\n\nTo use the image processing service, include the application url as you\nwould any other image. E.g. this image url\n\n::\n\n \n\nWould be replaced with this image url\n\n::\n\n \n\nThis will request the image served at the supplied url and resize it to\n``300x300`` using the ``crop`` mode. The below is the list of parameters\nthat can be supplied to the service.\n\nGeneral Parameters\n------------------\n\n- *url*: The url of the image to be resized\n- *op*: The operation to perform: noop, region, resize (default), rotate\n\n - *noop*: No operation is performed, image is returned as it is\n received\n - *region*: Select a sub-region from the image\n - *resize*: Resize the image\n - *rotate*: Rotate the image\n\n- *fmt*: The output format to save as, defaults to the source format\n\n - *gif*: Save as GIF\n - *jpeg*: Save as JPEG\n - *png*: Save as PNG\n - *webp*: Save as WebP\n - *tiff*: Save as TIFF\n\n- *bg*: Background color used with images that have transparency;\n useful when saving to a format that does not support transparency\n\n - *RGB*: 3- or 6-digit hexadecimal number\n - *ARGB*: 4- or 8-digit hexadecimal number, only relevant for PNG\n images\n\n- *opt*: The output should be optimized, only relevant to JPEGs and PNGs\n- *exif*: Keep original `Exif `_\n data in the processed image, only relevant for JPEG\n- *prog*: Enable progressive output, only relevant to JPEGs\n- *q*: The quality, (1-99) or keep, used to save the image, only relevant\n to JPEGs\n\nResize Parameters\n-----------------\n\n- *w*: The desired width of the image\n- *h*: The desired height of the image\n- *mode*: The resizing method: adapt, clip, crop (default), fill and scale\n\n - *adapt*: Resize using crop if the resized image retains a supplied\n percentage of the original image; otherwise fill\n - *clip*: Resize to fit within the desired region, keeping aspect\n ratio\n - *crop*: Resize so one dimension fits within region, center, cut\n remaining\n - *fill*: Fills the clipped space with a background color\n - *scale*: Resize to fit within the desired region, ignoring aspect\n ratio\n\n- *bg*: Background color used with fill mode (RGB or ARGB)\n\n - *RGB*: 3- or 6-digit hexadecimal number\n - *ARGB*: 4- or 8-digit hexadecimal number, only relevant for PNG\n images\n\n- *filter*: The filtering algorithm used for resizing\n\n - *nearest*: Fastest, but often images appear pixelated\n - *bilinear*: Faster, can produce acceptable results\n - *bicubic*: Fast, can produce acceptable results\n - *antialias*: Slower, produces the best results\n\n- *pos*: The crop position\n\n - *top-left*: Crop from the top left\n - *top*: Crop from the top center\n - *top-right*: Crop from the top right\n - *left*: Crop from the center left\n - *center*: Crop from the center\n - *right*: Crop from the center right\n - *bottom-left*: Crop from the bottom left\n - *bottom*: Crop from the bottom center\n - *bottom-right*: Crop from the bottom right\n - *face*: Identify faces and crop from the midpoint of their\n position(s)\n - *x,y*: Custom center point position ratio, e.g. 0.0,0.75\n\n- *retain*: The minimum percentage (1-99) of the original image that\n must still be visible in the resized image in order to use crop mode\n\n\nRegion Parameters\n-----------------\n\n- *rect*: The region as x,y,w,h; x,y: top-left position, w,h:\n width/height of region\n\nRotate Parameters\n-----------------\n\n- *deg*: The desired rotation angle degrees\n\n - *0-359*: The number of degrees to rotate (clockwise)\n - *auto*: Auto rotation based on Exif orientation, only relevant to JPEGs\n\n- *expand*: Expand the size to include the full rotated image\n\nSecurity-related Parameters\n---------------------------\n\n- *client*: The client name\n- *sig*: The signature\n\nThe ``url`` parameter is always required as it dictates the image that\nwill be manipulated. ``op`` is optional and defaults to ``resize``. It\nalso supports a comma separated list of operations, where each operation\nis applied in the order that it appears in the list. Depending on the\noperation, additional parameters are required. All image manipulation\nrequests accept ``exif``, ``fmt``, ``opt``, ``prog`` and ``q``. ``exif``\nis optional and default to ``0`` (not preserved). ``fmt`` is optional\nand defaults to the source image format. ``opt`` is optional and\ndefaults to ``0`` (disabled). ``prog`` is optional and default to ``0``\n(disabled). ``q`` is optional and defaults to ``90``. To ensure\nsecurity, all requests also support, ``client`` and ``sig``. ``client``\nis required only if the ``client_name`` is defined within the\nconfiguration file. Likewise, ``sig`` is required only if the\n``client_key`` is defined within the configuration file. See the\n`Signing`_ section for details on how to generate the signature.\n\nFor resizing, either the ``w`` or ``h`` parameter is required. If only\none dimension is specified, the application will determine the other\ndimension using the aspect ratio. ``mode`` is optional and defaults to\n``crop``. ``filter`` is optional and defaults to ``antialias``. ``bg``\nis optional and defaults to ``0fff``. ``pos`` is optional and defaults\nto ``center``. ``retain`` is optional and defaults to ``75``.\n\nFor region sub-selection, ``rect`` is required. For rotating, ``deg`` is\nrequired. ``expand`` is optional and defaults to ``0`` (disabled). It is\nrecommended that this feature not be used as it typically does not\nproduce high quality images.\n\nNote, all built-in defaults can be overridden by setting them in the\nconfiguration file. See the `Configuration`_ section\nfor more details.\n\nExamples\n========\n\nThe following images show the various resizing modes in action for an\noriginal image size of ``640x428`` that is being resized to ``500x400``.\n\nAdapt\n-----\n\nThe adaptive resize mode combines both `crop`_ and `fill`_ resize modes\nto ensure that the image always matches the requested size and a minimum\npercentage of the image is always visible. Adaptive resizing will first\ncalculate how much of the image will be retained if crop is used. Then,\nif that percentage is equal to or above the requested minimum retained\npercentage, crop mode will be used. If it is not, fill will be used. The\nfirst figure uses a ``retain`` value of ``80`` to illustrate the\nadaptive crop behavior.\n\n.. figure:: https://github.com/agschwender/pilbox/raw/master/pilbox/test/data/expected/example-500x400-mode=adapt-retain=80.jpg\n :align: center\n :alt: Adaptive cropped image\n\nWhereas the second figure requires a minimum of ``99`` to illustrate the\nadaptive fill behavior\n\n.. figure:: https://github.com/agschwender/pilbox/raw/master/pilbox/test/data/expected/example-500x400-mode=adapt-background=ccc-retain=99.jpg\n :align: center\n :alt: Adaptive filled image\n\nClip\n----\n\nThe image is resized to fit within a ``500x400`` box, maintaining aspect\nratio and producing an image that is ``500x334``. Clipping is useful\nwhen no portion of the image can be lost and it is acceptable that the\nimage not be exactly the supplied dimensions, but merely fit within the\ndimensions.\n\n.. figure:: https://github.com/agschwender/pilbox/raw/master/pilbox/test/data/expected/example-500x400-mode=clip.jpg\n :align: center\n :alt: Clipped image\n\nCrop\n----\n\nThe image is resized so that one dimension fits within the ``500x400``\nbox. It is then centered and the excess is cut from the image. Cropping\nis useful when the position of the subject is known and the image must\nbe exactly the supplied size.\n\n.. figure:: https://github.com/agschwender/pilbox/raw/master/pilbox/test/data/expected/example-500x400-mode=crop.jpg\n :align: center\n :alt: Cropped image\n\n\nFill\n----\n\nSimilar to clip, fill resizes the image to fit within a ``500x400`` box.\nOnce clipped, the image is centered within the box and all left over\nspace is filled with the supplied background color. Filling is useful\nwhen no portion of the image can be lost and it must be exactly the\nsupplied size.\n\n.. figure:: https://github.com/agschwender/pilbox/raw/master/pilbox/test/data/expected/example-500x400-mode=fill-background=ccc.jpg\n :align: center\n :alt: Filled image\n\n\nScale\n-----\n\nThe image is clipped to fit within the ``500x400`` box and then\nstretched to fill the excess space. Scaling is often not useful in\nproduction environments as it generally produces poor quality images.\nThis mode is largely included for completeness.\n\n.. figure:: https://github.com/agschwender/pilbox/raw/master/pilbox/test/data/expected/example-500x400-mode=scale.jpg\n :align: center\n :alt: Scale image\n\nSigning\n=======\n\nIn order to secure requests so that unknown third parties cannot easily\nuse the resize service, the application can require that requests\nprovide a signature. To enable this feature, set the ``client_key``\noption. The signature is a hexadecimal digest generated from the client\nkey and the query string using the HMAC-SHA1 message authentication code\n(MAC) algorithm. The below python code provides an example\nimplementation.\n\n::\n\n import hashlib\n import hmac\n\n def derive_signature(key, qs):\n m = hmac.new(key, None, hashlib.sha1)\n m.update(qs)\n return m.hexdigest()\n\nThe signature is passed to the application by appending the ``sig``\nparameter to the query string; e.g.\n``x=1&y=2&z=3&sig=c9516346abf62876b6345817dba2f9a0c797ef26``. Note, the\napplication does not include the leading question mark when verifying\nthe supplied signature. To verify your signature implementation, see the\n``pilbox.signature`` command described in the `Tools`_ section.\n\nConfiguration\n=============\n\nAll options that can be supplied to the application via the command\nline, can also be specified in the configuration file. Configuration\nfiles are simply python files that define the options as variables. The\nbelow is an example configuration.\n\n::\n\n # General settings\n port = 8888\n\n # One worker process per CPU core\n workers = 0\n\n # Set client name and key if the application requires signed requests. The\n # client must sign the request using the client_key, see README for\n # instructions.\n client_name = \"sample\"\n client_key = \"3NdajqH8mBLokepU4I2Bh6KK84GUf1lzjnuTdskY\"\n\n # Set the allowed hosts as an alternative to signed requests. Only those\n # images which are served from the following hosts will be requested.\n allowed_hosts = [\"localhost\"]\n\n # Request-related settings\n max_requests = 50\n timeout = 7.5\n\n # Set default resizing options\n background = \"ccc\"\n filter = \"bilinear\"\n mode = \"crop\"\n position = \"top\"\n\n # Set default rotating options\n expand = False\n\n # Set default saving options\n format = None\n optimize = 1\n quality = \"90\"\n\nTools\n=====\n\nTo verify that your client application is generating correct signatures,\nuse the signature command.\n\n::\n\n $ python -m pilbox.signature --key=abcdef \"x=1&y=2&z=3\"\n Query String: x=1&y=2&z=3\n Signature: c9516346abf62876b6345817dba2f9a0c797ef26\n Signed Query String: x=1&y=2&z=3&sig=c9516346abf62876b6345817dba2f9a0c797ef26\n\nThe application allows the use of the resize functionality via the\ncommand line.\n\n::\n\n $ python -m pilbox.image --width=300 --height=300 http://i.imgur.com/zZ8XmBA.jpg > /tmp/foo.jpg\n\nIf a new mode is added or a modification was made to the libraries that\nwould change the current expected output for tests, run the generate\ntest command to regenerate the expected output for the test cases.\n\n::\n\n $ python -m pilbox.test.genexpected\n\nDeploying\n=========\n\nIt is strongly encouraged that pilbox not be directly accessible to\nthe internet. Instead, it should only be accessible via a web server,\ne.g. NGINX or Apache, or some other application that is designed to\nhandle direct traffic from the internet.\n\nThe application itself does not include any caching. It is recommended\nthat the application run behind a CDN for larger applications or behind\nvarnish for smaller ones.\n\nDefaults for the application have been optimized for quality rather than\nperformance. If you wish to get higher performance out of the\napplication, it is recommended you use a less computationally expensive\nfiltering algorithm and a lower JPEG quality. For example, add the\nfollowing to the configuration.\n\n::\n\n # Set default resizing options\n filter = \"bicubic\"\n quality = 75\n\nIf you wish to improve performance further and are using an x86 platform, you may want to consider using `Pillow-SIMD `_. Follow the steps in `Installation `_ and it should function as a drop-in replacement for ``Pillow``. To avoid any incompatibility issues, use the same version of ``Pillow-SIMD`` as is being used for ``Pillow``.\n\nAnother setting that's helpful for fine-tuning performance and memory\nusage is the ``workers`` setting to set the number of Tornado worker\nprocesses. The default setting of ``0`` spawns one worker process per\nCPU core which can lead to high memory usage and reduced performance\ndue to swapping on low-memory configurations. For Heroku deployments\nlimiting the number of worker processes to 2-3 for the lower-end dynos\nhelped smooth out application response time.\n\nExtension\n=========\n\nWhile it is generally recommended to use Pilbox as a standalone server, it can also be used as a library. To extend from it and build a custom image processing server, use the following example.\n\n::\n\n #!/usr/bin/env python\n\n import tornado.gen\n\n from pilbox.app import PilboxApplication, ImageHandler, \\\n start_server, parse_command_line\n\n\n class CustomApplication(PilboxApplication):\n def get_handlers(self):\n return [(r\"/(\\d+)x(\\d+)/(.+)\", CustomImageHandler)]\n\n\n class CustomImageHandler(ImageHandler):\n def prepare(self):\n self.args = self.request.arguments.copy()\n\n @tornado.gen.coroutine\n def get(self, w, h, url):\n self.args.update(dict(w=w, h=h, url=url))\n\n self.validate_request()\n resp = yield self.fetch_image()\n self.render_image(resp)\n\n def get_argument(self, name, default=None):\n return self.args.get(name, default)\n\n\n if __name__ == \"__main__\":\n parse_command_line()\n start_server(CustomApplication())\n\nContribution\n============\n\nTo contribute to the project or to make and test your own changes,\nfork and then clone the project.\n\n::\n\n $ git clone https://github.com/YOUR-USERNAME/pilbox.git\n\nPackaged with Pilbox is a `Vagrant `_\nconfiguration file which installs all necessary dependencies on a\nvirtual box using `Ansible `_. See the\n`Vagrant documentation `_\nand the `Ansible\ndocumentation `_\nfor installation instructions. Once installed, the following will start\nand provision a virtual machine.\n\n::\n\n $ vagrant up\n $ vagrant provision\n\nThis will have installed pilbox in ``/var/www/pilbox`` on the virtual\nmachine. To access the virtual machine itself, simply...\n\n::\n\n $ vagrant ssh\n\nWhen running via Vagrant, the application is automatically started on\nport 8888 on 192.168.100.100, i.e.\n\n::\n\n http://192.168.100.100:8888/\n\nTo run pilbox manually, execute the following.\n\n::\n\n $ sudo /etc/init.d/pilbox stop\n $ python -m pilbox.app\n\nTo run all tests, issue the following command from the installed\npilbox directory.\n\n::\n\n $ python -m pilbox.test.runtests\n\nTo run individual tests, simply indicate the test to be run, e.g.\n\n::\n\n $ python -m pilbox.test.runtests pilbox.test.signature_test\n\nChangelog\n=========\n\n- 0.1: Image resizing fit\n- 0.1.1: Image cropping\n- 0.1.2: Image scaling\n- 0.2: Configuration integration\n- 0.3: Signature generation\n- 0.3.1: Signature command-line tool\n- 0.4: Image resize command-line tool\n- 0.5: Facial recognition cropping\n- 0.6: Fill resizing mode\n- 0.7: Resize using crop position\n- 0.7.1: Resize using a single dimension, maintaining aspect ratio\n- 0.7.2: Added filter and quality options\n- 0.7.3: Support python 3\n- 0.7.4: Fixed cli for image generation\n- 0.7.5: Write output in 16K blocks\n- 0.8: Added support for ARGB (alpha-channel)\n- 0.8.1: Increased max clients and write block sizes\n- 0.8.2: Added configuration for max clients and timeout\n- 0.8.3: Only allow http and https protocols\n- 0.8.4: Added support for WebP\n- 0.8.5: Added format option and configuration overrides for mode and\n format\n- 0.8.6: Added custom position support\n- 0.9: Added rotate operation\n- 0.9.1: Added sub-region selection operation\n- 0.9.4: Added Pilbox as a PyPI package\n- 0.9.10: Converted README to reStructuredText\n- 0.9.14: Added Sphinx docs\n- 0.9.15: Added implicit base url to configuration\n- 0.9.16: Added validate cert to configuration\n- 0.9.17: Added support for GIF format\n- 0.9.18: Fix for travis builds on python 2.6 and 3.3\n- 0.9.19: Validate cert fix\n- 0.9.20: Added optimize option\n- 0.9.21: Added console script entry point\n- 1.0.0: Modified for easier library usage\n- 1.0.1: Added allowed operations and default operation\n- 1.0.2: Modified to allow override of http content type\n- 1.0.3: Safely catch image save errors\n- 1.0.4: Added progressive option\n- 1.1.0: Proxy server support\n- 1.1.1: Added JPEG auto rotation based on Exif orientation\n- 1.1.2: Added keep JPEG quality option and set JPEG subsampling to keep\n- 1.1.3: Fixed auto rotation on JPEG with missing Exif data\n- 1.1.4: Exception handling around invalid Exif data\n- 1.1.5: Fixed image requests without content types\n- 1.1.6: Support custom applications that need command line arguments\n- 1.1.7: Support adapt resize mode\n- 1.1.8: Added preserve Exif flag\n- 1.1.9: Increased Pillow version to 2.8.1\n- 1.1.10: Added ca_certs option\n- 1.1.11: Added support for TIFF\n- 1.2.0: Support setting background when saving a transparent image\n\n - *Backwards incompatible*: default background property changed to\n ``0fff``. To restore previous behavior, set background in config\n to ``ffff``.\n\n- 1.2.1: Added max operations config property\n- 1.2.2: Added max resize width and height config properties\n- 1.2.3: Added user_agent option\n- 1.3.0: Increased Pillow to 2.9.0 and Tornado to 4.5.1\n- 1.3.1: Fix pilbox.image CLI for python 3.0\n- 1.3.2: Fix GIF P-mode to JPEG conversion\n- 1.3.3: Increase Pillow version to 5.2.0 and Tornado version to 5.1.0\n- 1.3.4: Added worker config property to set number of Tornado\n processes", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/agschwender/pilbox", "keywords": "", "license": "http://www.apache.org/licenses/LICENSE-2.0", "maintainer": "", "maintainer_email": "", "name": "pilbox", "package_url": "https://pypi.org/project/pilbox/", "platform": "", "project_url": "https://pypi.org/project/pilbox/", "project_urls": { "Homepage": "https://github.com/agschwender/pilbox" }, "release_url": "https://pypi.org/project/pilbox/1.3.4/", "requires_dist": null, "requires_python": "", "summary": "Pilbox is an image processing application server built on the Tornado web framework using the Pillow Imaging Library", "version": "1.3.4" }, "last_serial": 4160226, "releases": { "0.9.1": [ { "comment_text": "", "digests": { "md5": "5f70e9bf878bcb59014efa5ba0c44c53", "sha256": "bee55aaec55a7f979c0117b31b139e40a74cdce1c3bc8a98bb7553384741a668" }, "downloads": -1, "filename": "pilbox-0.9.1.tar.gz", "has_sig": false, "md5_digest": "5f70e9bf878bcb59014efa5ba0c44c53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15246, "upload_time": "2013-12-02T01:53:10", "url": "https://files.pythonhosted.org/packages/a2/b1/421773e4252eac41a4591cc3e891e87fe81c6444e004bae150248c301447/pilbox-0.9.1.tar.gz" } ], "0.9.10": [ { "comment_text": "", "digests": { "md5": "bbbafa9544158c1e0d421f312ce3e6be", "sha256": "50036bda795ad8cbb8a9503e72624a0bda63e2860837ab1c188ef7841bf9356a" }, "downloads": -1, "filename": "pilbox-0.9.10.tar.gz", "has_sig": false, "md5_digest": "bbbafa9544158c1e0d421f312ce3e6be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120744, "upload_time": "2013-12-02T04:27:34", "url": "https://files.pythonhosted.org/packages/39/71/e19e23d30214996854336231dd8e23f9eb327af0e084284591e77237d6d0/pilbox-0.9.10.tar.gz" } ], "0.9.11": [ { "comment_text": "", "digests": { "md5": "ab595f72ac9ff055e52f7a6c6989f75d", "sha256": "f71f3f3abe272fcd5454ce325108b267762d0b28e0f31e5a0b6bcc0f8eabea12" }, "downloads": -1, "filename": "pilbox-0.9.11.tar.gz", "has_sig": false, "md5_digest": "ab595f72ac9ff055e52f7a6c6989f75d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120629, "upload_time": "2013-12-04T04:02:37", "url": "https://files.pythonhosted.org/packages/22/cb/8a2fdb93c01d05139c16be50e9dfcf82f36b297e2c2dcec8b6cbb592ede8/pilbox-0.9.11.tar.gz" } ], "0.9.12": [ { "comment_text": "", "digests": { "md5": "a06508bb183563040c85e91036ee14a0", "sha256": "b0ac33d0a2a8c8cbe2aec00d45a50482590167f1ad873cd2f5a376b065d62809" }, "downloads": -1, "filename": "pilbox-0.9.12.tar.gz", "has_sig": false, "md5_digest": "a06508bb183563040c85e91036ee14a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120629, "upload_time": "2013-12-04T04:18:13", "url": "https://files.pythonhosted.org/packages/ca/db/fe9ad8a98b71e4f9ee254e5b95f4267d8d7ca46e221ab451fbe30df2e3af/pilbox-0.9.12.tar.gz" } ], "0.9.13": [ { "comment_text": "", "digests": { "md5": "33b5b2697f60f1dda123819ae8530ea9", "sha256": "0c88cbde79204ef42d404658246b5fc6e4780804825266081497c297f75c3087" }, "downloads": -1, "filename": "pilbox-0.9.13.tar.gz", "has_sig": false, "md5_digest": "33b5b2697f60f1dda123819ae8530ea9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120669, "upload_time": "2013-12-04T04:37:32", "url": "https://files.pythonhosted.org/packages/c1/ca/36322823bd8602c8038c6feaa4978bff89ec3606075aa9d90848c05173db/pilbox-0.9.13.tar.gz" } ], "0.9.14": [ { "comment_text": "", "digests": { "md5": "e77c3c2a0dad222436425fbe5b8c8f3d", "sha256": "562b1295c9dedb1ab7952141e33543f79b957f30616ea455d23d261a9ba40d60" }, "downloads": -1, "filename": "pilbox-0.9.14.tar.gz", "has_sig": false, "md5_digest": "e77c3c2a0dad222436425fbe5b8c8f3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120662, "upload_time": "2013-12-04T04:51:18", "url": "https://files.pythonhosted.org/packages/c3/2c/17f15ef877f74bdd66465c444f90f56d95e828814a2172fdd9ff203bb2a8/pilbox-0.9.14.tar.gz" } ], "0.9.15": [ { "comment_text": "", "digests": { "md5": "d664b0ec62ce54bd0e84447eb314ecba", "sha256": "e071923f5168ba70cf61047207468415fafa562140b09025d7c3f76e411f0b07" }, "downloads": -1, "filename": "pilbox-0.9.15.tar.gz", "has_sig": false, "md5_digest": "d664b0ec62ce54bd0e84447eb314ecba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120808, "upload_time": "2014-01-25T17:49:51", "url": "https://files.pythonhosted.org/packages/55/8b/b6a1fe66314c4346be58cfe0ba18cc2ba536830338c186bbb82fa642d34e/pilbox-0.9.15.tar.gz" } ], "0.9.17": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "09ddbe510fca0b4b91a21e3b0adba97d", "sha256": "80b012a5fb43384d32f3384075d2dd2878648b39f76323dd5d03f53a0082592f" }, "downloads": -1, "filename": "pilbox-0.9.17.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "09ddbe510fca0b4b91a21e3b0adba97d", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 131922, "upload_time": "2014-05-14T17:54:35", "url": "https://files.pythonhosted.org/packages/77/ac/f3058ab4271af432395f1a422c9af835e4620626533c7ee0c4698cf85cd5/pilbox-0.9.17.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "176f2cea7dc9a33119b4d5a3762d2bbf", "sha256": "8ec1dd96e0b25fa72b6e5deccc673e735bb823e7fc69407a6139f0309eb23b8d" }, "downloads": -1, "filename": "pilbox-0.9.17.tar.gz", "has_sig": false, "md5_digest": "176f2cea7dc9a33119b4d5a3762d2bbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121076, "upload_time": "2014-05-13T14:16:11", "url": "https://files.pythonhosted.org/packages/eb/2b/630c5362f775f4cbe4854884491badb37657d1e6c627676472a0898ded70/pilbox-0.9.17.tar.gz" } ], "0.9.18": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "cc6cde8a66d364ac6dacfecd40aa6019", "sha256": "0aff735e5edda55c76f3a8f67d545da0e7a76f5fe6ecb0aeae30efd1a3e522fd" }, "downloads": -1, "filename": "pilbox-0.9.18.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "cc6cde8a66d364ac6dacfecd40aa6019", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 131967, "upload_time": "2014-05-14T18:06:25", "url": "https://files.pythonhosted.org/packages/3e/1f/0f78fa13764215970cb9e1e2523016b84bdf369c429e9739a1473639715d/pilbox-0.9.18.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "afc0bfac71adc4e78792eda00992cef4", "sha256": "4881d37117cd39cb0b9df56b0c194d1a332028622ef2225d150c2981cd047df1" }, "downloads": -1, "filename": "pilbox-0.9.18.tar.gz", "has_sig": false, "md5_digest": "afc0bfac71adc4e78792eda00992cef4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121126, "upload_time": "2014-05-14T18:06:22", "url": "https://files.pythonhosted.org/packages/25/eb/875118af120ad52e77088fd0172f744b035d8e9aab5d7a37418358c770f2/pilbox-0.9.18.tar.gz" } ], "0.9.19": [ { "comment_text": "", "digests": { "md5": "d985e16d4acb439eae04b48c88a4b672", "sha256": "6cb10bdddc1012d865709b82f92783e37f92025a550a1cdc3d21273ac33b7da0" }, "downloads": -1, "filename": "pilbox-0.9.19.tar.gz", "has_sig": false, "md5_digest": "d985e16d4acb439eae04b48c88a4b672", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123285, "upload_time": "2014-06-11T21:15:33", "url": "https://files.pythonhosted.org/packages/a8/6f/35c3335b266ec8c8a479fd8aa357fbc574275ac9783fc27e0b995669f4de/pilbox-0.9.19.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "1ebd20e473f2355c1e20462beb2b21b2", "sha256": "20679f0ab3bea392f9f61eb470523a74e45eec43b37e463508ba9cf419b3c0ea" }, "downloads": -1, "filename": "pilbox-0.9.2.tar.gz", "has_sig": false, "md5_digest": "1ebd20e473f2355c1e20462beb2b21b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3728577, "upload_time": "2013-12-02T02:24:07", "url": "https://files.pythonhosted.org/packages/df/f8/34a6d769db6b09db097e8fa2a98dd5e0280aa4a433444f04981666fece23/pilbox-0.9.2.tar.gz" } ], "0.9.20": [ { "comment_text": "", "digests": { "md5": "f40576a9431cd85b3462a66ce0b5516e", "sha256": "3e715dafff89dc9b60760c52afe813a4c51c724673ab495edc30c3a4f8043285" }, "downloads": -1, "filename": "pilbox-0.9.20.tar.gz", "has_sig": false, "md5_digest": "f40576a9431cd85b3462a66ce0b5516e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121345, "upload_time": "2014-06-14T13:14:03", "url": "https://files.pythonhosted.org/packages/c9/3e/ed6fc2262239b042f0cbaff13a148c0feb4bd32139ef7291791a03441c05/pilbox-0.9.20.tar.gz" } ], "0.9.21": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "526d48eac8b611fff07142b36945452a", "sha256": "7eeebe70843f324929cc3c9084febc9b8e467020471ecd720e50206a8ae95172" }, "downloads": -1, "filename": "pilbox-0.9.21.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "526d48eac8b611fff07142b36945452a", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 132701, "upload_time": "2014-08-13T02:14:05", "url": "https://files.pythonhosted.org/packages/67/25/2ef020d2867c95b63a24274ce6c0bb9b635e9ae28cd2837140f1b2fedd22/pilbox-0.9.21.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "65f466be31617d329429c33de844cbf5", "sha256": "5e2a7a6af96bce1ee4528c035828b2c14b4b784bf00b4d612837fb140838e3dc" }, "downloads": -1, "filename": "pilbox-0.9.21.tar.gz", "has_sig": false, "md5_digest": "65f466be31617d329429c33de844cbf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121464, "upload_time": "2014-08-13T02:14:01", "url": "https://files.pythonhosted.org/packages/c1/41/59efa8072e8abccad1095432dfaca1864a370a405cfb36de8b0157d04e0c/pilbox-0.9.21.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "aba9229362070f6a592b434e94710bf2", "sha256": "f8f5d5a6604c46597ee2acbbeedc53bab9b6c090ff3b0347d3ad27c472a4903b" }, "downloads": -1, "filename": "pilbox-0.9.3.tar.gz", "has_sig": false, "md5_digest": "aba9229362070f6a592b434e94710bf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3721095, "upload_time": "2013-12-02T02:33:51", "url": "https://files.pythonhosted.org/packages/5e/85/f2b3b571ce5e6f74025639aa0fff0318904b4362f50f00706b8e9c593f90/pilbox-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "6e547425d2b7204e944b3b1dfc7b0a36", "sha256": "67b75130a1f88b156bad6ca302b77c36edcc5dd1c528bb29b96ee4ea3394936c" }, "downloads": -1, "filename": "pilbox-0.9.4.tar.gz", "has_sig": false, "md5_digest": "6e547425d2b7204e944b3b1dfc7b0a36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 118781, "upload_time": "2013-12-02T02:39:25", "url": "https://files.pythonhosted.org/packages/7c/39/9b54cc7eb70acd4ff55cec989669d088c8951ddf16cc139fa9214a8c9f20/pilbox-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "d1f216cfcf61584fc514529d33dea5bf", "sha256": "0a84d49c484b09035a5b013c721129066d8ec10cb6af57f69012eb99529b230a" }, "downloads": -1, "filename": "pilbox-0.9.5.tar.gz", "has_sig": false, "md5_digest": "d1f216cfcf61584fc514529d33dea5bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113062, "upload_time": "2013-12-02T03:33:04", "url": "https://files.pythonhosted.org/packages/b6/5b/ebcc054240b36bd00b6924deacfd07990adc20fadb30ca69e199f85da70f/pilbox-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "73da052ebd3a10ac1ac81db24f2deb39", "sha256": "bd5ec2f74851c2c5c7b0ff17e71c903c46ad178b482d81c7f9d39e4322365cf4" }, "downloads": -1, "filename": "pilbox-0.9.6.tar.gz", "has_sig": false, "md5_digest": "73da052ebd3a10ac1ac81db24f2deb39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120695, "upload_time": "2013-12-02T03:36:05", "url": "https://files.pythonhosted.org/packages/20/bc/a2d0d5488fbc3056c10a2e7c524ed5240fb86c4d3c1fa97fb8f8817e64b4/pilbox-0.9.6.tar.gz" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "a8bcebd0bfc6d34810471a3e3a9b6cb8", "sha256": "49d11b48e313197edf3ccf45001261ee621e36f6990f4a0dcf1fd5ca36484822" }, "downloads": -1, "filename": "pilbox-0.9.7.tar.gz", "has_sig": false, "md5_digest": "a8bcebd0bfc6d34810471a3e3a9b6cb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 119011, "upload_time": "2013-12-02T03:43:52", "url": "https://files.pythonhosted.org/packages/bf/cb/637e6e7c9841cd81f8d4ffef6f2f349b1753e128ed83064f2b5030a3de05/pilbox-0.9.7.tar.gz" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "79e0f8bfcba4002754bcf1072352cc9e", "sha256": "3b3ade8bcac0a4a823c4d0fa83dc50bfb4d8ac6f0108c49769cd53cc83fe546e" }, "downloads": -1, "filename": "pilbox-0.9.8.tar.gz", "has_sig": false, "md5_digest": "79e0f8bfcba4002754bcf1072352cc9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120687, "upload_time": "2013-12-02T03:53:23", "url": "https://files.pythonhosted.org/packages/d2/c0/49b8e2c41c9d7bdc07d96e21dfd9370aaccb456ce988b8749e95cd1a80e4/pilbox-0.9.8.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "58bcc2e316c15b0bb121de2000220bbb", "sha256": "5658673973989f26b829ffcbd2a1ff089450372a0678ed39d4c9cfbb76bcfbc7" }, "downloads": -1, "filename": "pilbox-0.9.9.tar.gz", "has_sig": false, "md5_digest": "58bcc2e316c15b0bb121de2000220bbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 120689, "upload_time": "2013-12-02T04:26:45", "url": "https://files.pythonhosted.org/packages/fa/96/dc8af7468589ad17cedf58990acb0744acf5b2706e0c0f1334baaf7edd77/pilbox-0.9.9.tar.gz" } ], "1.0.0": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "c2b89928f6bc156ae10f2434e269bbe2", "sha256": "8c58b4cf7849bf0db269184df0a53ce561da40a6a93d639276f34ee0d83a3832" }, "downloads": -1, "filename": "pilbox-1.0.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "c2b89928f6bc156ae10f2434e269bbe2", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 132858, "upload_time": "2014-08-20T01:25:27", "url": "https://files.pythonhosted.org/packages/0f/bb/0367163f0d260728ae931af8db7d809e6391ce5a5f277356bee7fdaa0a02/pilbox-1.0.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "414d75103acbf0f4520ff17d76df0e05", "sha256": "57f4fc94e0ddcab22955a4b5a3d8969b4a52c011ab84e17da89a11ac9efec17f" }, "downloads": -1, "filename": "pilbox-1.0.0.tar.gz", "has_sig": false, "md5_digest": "414d75103acbf0f4520ff17d76df0e05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121569, "upload_time": "2014-08-20T01:25:23", "url": "https://files.pythonhosted.org/packages/e0/d2/4813c1271712edd063b9469eb978df3bef18dd8a81ca7e9e8275ca755f1a/pilbox-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "de04ca88d3756b9c8d2362cc90965dfe", "sha256": "d5952176bff834eb00154740a64033d8569b0028c6e7aca6ae6206ab322266c1" }, "downloads": -1, "filename": "pilbox-1.0.1.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "de04ca88d3756b9c8d2362cc90965dfe", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 133034, "upload_time": "2014-08-20T02:23:59", "url": "https://files.pythonhosted.org/packages/19/2f/243b5175e8465b052347b5d7224bca617d6fb6821b3a9b0e4574a2bfb208/pilbox-1.0.1.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "7fbc25f50ce09c1f82a525acb39a04b2", "sha256": "a999f3602a413a82e83e994a713e9ffa624d30a6ab0bd876701b62036feb8207" }, "downloads": -1, "filename": "pilbox-1.0.1.tar.gz", "has_sig": false, "md5_digest": "7fbc25f50ce09c1f82a525acb39a04b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 121674, "upload_time": "2014-08-20T02:23:56", "url": "https://files.pythonhosted.org/packages/14/09/27f4a6105b9d84745bc7d733d3cfa94466973f298924e6bd571af5bce1f7/pilbox-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "c2a649ff3674b8b1a45a3e2b39b42d6b", "sha256": "1390f78b01dbbfda9a90ae5a29036bc876916601efcd0161c930523676fbfc5c" }, "downloads": -1, "filename": "pilbox-1.0.2.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "c2a649ff3674b8b1a45a3e2b39b42d6b", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 133663, "upload_time": "2014-08-24T22:41:11", "url": "https://files.pythonhosted.org/packages/6b/56/17717d856f46065ec1e8a837d7f4bee3c0520a98aeee792920031f5f5f47/pilbox-1.0.2.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "badcf04536fc1ea90fc7501e7c9167bc", "sha256": "ca040961c3ffe5e7818db82d81868fda74eeaa91daca9f71b27939593f3a1fdd" }, "downloads": -1, "filename": "pilbox-1.0.2.tar.gz", "has_sig": false, "md5_digest": "badcf04536fc1ea90fc7501e7c9167bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122474, "upload_time": "2014-08-24T22:41:08", "url": "https://files.pythonhosted.org/packages/7e/f4/3d93b09458a719fede65c79cb30d4fff9184b0cefd87abd4cffee5263884/pilbox-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "2f621b35305548c7d6abecabde2ea561", "sha256": "da7600c7c6fc505de42cf6f8620e64bbec4dd7585b8a60f2a36c5b87afabcb79" }, "downloads": -1, "filename": "pilbox-1.0.3.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "2f621b35305548c7d6abecabde2ea561", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 133826, "upload_time": "2014-08-27T12:34:37", "url": "https://files.pythonhosted.org/packages/c7/ae/cf7ceae7fa71f551dd2eb74166fd2dfd9145d3116fd84fef530e08138611/pilbox-1.0.3.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "514a99f784a4c06242144a005322fe52", "sha256": "4fa234187f9f5f0a4f268c08fb896adfb006f4727657ff23279b996338a48df8" }, "downloads": -1, "filename": "pilbox-1.0.3.tar.gz", "has_sig": false, "md5_digest": "514a99f784a4c06242144a005322fe52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122541, "upload_time": "2014-08-27T12:34:34", "url": "https://files.pythonhosted.org/packages/96/da/9909651f923d7e1eddfed6a24e38c10dc3917d01795541f253af5d021b7e/pilbox-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "1889df826f14784a468418c7df179d52", "sha256": "90e78babaad93e7f7cdb5068a50e21f984a4258ae36eef6a2b5bb792597b7c3e" }, "downloads": -1, "filename": "pilbox-1.0.4.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "1889df826f14784a468418c7df179d52", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 134220, "upload_time": "2014-10-04T20:37:35", "url": "https://files.pythonhosted.org/packages/81/6b/b57573284416d67462b7e0ecf17a55050e7e76de69f4168c8faf2aeddddd/pilbox-1.0.4.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "47af592f6ef06706bacd6ac1ef7a8c73", "sha256": "1dff2bc56f7a37a67e25e1c5d3e25ecfe9ab5e6888d32af8ec32a320556dff6c" }, "downloads": -1, "filename": "pilbox-1.0.4.tar.gz", "has_sig": false, "md5_digest": "47af592f6ef06706bacd6ac1ef7a8c73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122694, "upload_time": "2014-10-04T20:37:32", "url": "https://files.pythonhosted.org/packages/8c/89/829c9126412ee1556a197cfac19a80fbf3a35a7e12471d2d10c5209ac7b3/pilbox-1.0.4.tar.gz" } ], "1.1.0": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "b3bb613f6d4b37deadbcb5e31b9a5906", "sha256": "a8cd6a63a5724067ac9aa1f22ffc1dec28c5a97ca9808ab56b52a316f42af9f7" }, "downloads": -1, "filename": "pilbox-1.1.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "b3bb613f6d4b37deadbcb5e31b9a5906", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 134737, "upload_time": "2014-11-16T22:34:55", "url": "https://files.pythonhosted.org/packages/74/cd/38d83783fe4497d74a9506f3781613a5d396b9bb5255be78a7e94cb125be/pilbox-1.1.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "48c4ceb985af2c9a3a233750399a3060", "sha256": "f982ddf14dc6914d2759cf61a8cc2e6a8791eceac20a2ff1089c03f2bd45c256" }, "downloads": -1, "filename": "pilbox-1.1.0.tar.gz", "has_sig": false, "md5_digest": "48c4ceb985af2c9a3a233750399a3060", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123061, "upload_time": "2014-11-16T22:34:52", "url": "https://files.pythonhosted.org/packages/78/93/a7b5abccd92759938c162d1f016ebbae6855e1e63759c8b9dd38a7f1476e/pilbox-1.1.0.tar.gz" } ], "1.1.11": [ { "comment_text": "", "digests": { "md5": "82e065ad570cb9c15c635f326c172219", "sha256": "88cce1f60b229f4ed25a0020b93d5d70fca7b6e266b48095bd1c6f2c923f0205" }, "downloads": -1, "filename": "pilbox-1.1.11.tar.gz", "has_sig": false, "md5_digest": "82e065ad570cb9c15c635f326c172219", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 125492, "upload_time": "2016-07-16T22:20:34", "url": "https://files.pythonhosted.org/packages/26/09/1c9be04a8851fc052e28dbee1d7b7bcd33c1649cfd245ed81ee992e17c91/pilbox-1.1.11.tar.gz" } ], "1.1.2": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "8f0be3dea001dcee9a1a8bbb7ce0648c", "sha256": "7895da7f12d909c711cb2129bd635f2d03743589340efafa4903dc126bb8f01e" }, "downloads": -1, "filename": "pilbox-1.1.2.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "8f0be3dea001dcee9a1a8bbb7ce0648c", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 135862, "upload_time": "2014-11-22T21:51:46", "url": "https://files.pythonhosted.org/packages/a2/ca/3320ae84c36e970ef834574b9502b13ca66555ab738177e3ef9ef17e837c/pilbox-1.1.2.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "5b1875e05c728bff2fbe05162519e6b6", "sha256": "625f36ccda8f2c0a1e812b74e5470105c8a92641506a3d60c0a44dc6f188b86b" }, "downloads": -1, "filename": "pilbox-1.1.2.tar.gz", "has_sig": false, "md5_digest": "5b1875e05c728bff2fbe05162519e6b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123401, "upload_time": "2014-11-22T21:51:44", "url": "https://files.pythonhosted.org/packages/34/fe/73ff8ce396e6b09646a93e864e28d327b8c357fe1e1f71d7d083d06a27c7/pilbox-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "2e1890808f8698765dedcb168273bf77", "sha256": "2c7c229005e7a3c157a5de05b8885adf70b196ec3fd4b7706082ee09dc4eba85" }, "downloads": -1, "filename": "pilbox-1.1.3.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "2e1890808f8698765dedcb168273bf77", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 135915, "upload_time": "2014-12-14T11:05:44", "url": "https://files.pythonhosted.org/packages/61/c1/2fb832159194f0030b30b043abb0707602aeaba0eca5736d321516ff07b3/pilbox-1.1.3.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "9a46d128a857e59448b1bbf94ec58039", "sha256": "92a9bc733d5761808fa8ba357684a39c91b546bece9df6b80486c8dd98e2443c" }, "downloads": -1, "filename": "pilbox-1.1.3.tar.gz", "has_sig": false, "md5_digest": "9a46d128a857e59448b1bbf94ec58039", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123467, "upload_time": "2014-12-14T11:05:40", "url": "https://files.pythonhosted.org/packages/0f/3e/f9d477adb73c774e9511b480c050cb4ebb65e6ea6604181df0cef5b20458/pilbox-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "55379f22581bd6dc227cc7725a72c43f", "sha256": "3e9e2ebc10a3d5fd1694b0be2e9201b15294c1db86bad436b2654be50d1316fc" }, "downloads": -1, "filename": "pilbox-1.1.4.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "55379f22581bd6dc227cc7725a72c43f", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 136022, "upload_time": "2015-01-08T15:16:24", "url": "https://files.pythonhosted.org/packages/be/3e/2ee0449d7a04c578b62857feb2bfce87c12475b3955d229bd11a0c9642a5/pilbox-1.1.4.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "2c2e0ab9b3438395b45bd2d2d7eb0a73", "sha256": "8e9a994027a0b833c5bc782904ca9f9cb3f2e590c8dcf8b3c842996e18d028d4" }, "downloads": -1, "filename": "pilbox-1.1.4.tar.gz", "has_sig": false, "md5_digest": "2c2e0ab9b3438395b45bd2d2d7eb0a73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123520, "upload_time": "2015-01-08T15:16:21", "url": "https://files.pythonhosted.org/packages/f9/a5/6e74a1aad702a7f46767b7887ed3dc9a45eb26f31c44d81b74fb4d0032a1/pilbox-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "built for Linux-3.2.0-23-generic-x86_64-with-glibc2.7", "digests": { "md5": "e53b18640bac0ea227fba3920a089bc4", "sha256": "8afb68973e74120df8e630b6e47abc34f2244779c6a8fb7c74ec14e5d03571ae" }, "downloads": -1, "filename": "pilbox-1.1.5.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "e53b18640bac0ea227fba3920a089bc4", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 136071, "upload_time": "2015-02-20T14:39:19", "url": "https://files.pythonhosted.org/packages/bd/2c/639fe072c975e3c9580500685a2fa5687102fd3c6e5f9ae76111d50bfad1/pilbox-1.1.5.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "abeb9927a27ab474501e677c4d9d4a7b", "sha256": "8b2bd533576e84b225bc7ed948fb48a595a029e6996f0e882a03a010c2a71060" }, "downloads": -1, "filename": "pilbox-1.1.5.tar.gz", "has_sig": false, "md5_digest": "abeb9927a27ab474501e677c4d9d4a7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123556, "upload_time": "2015-02-20T14:39:17", "url": "https://files.pythonhosted.org/packages/c1/d4/5d3a42c851b0abb86a52a1c892a34d1083d126ba07f4ab0ac69bde564218/pilbox-1.1.5.tar.gz" } ], "1.1.6": [ { "comment_text": "", "digests": { "md5": "9a93602fe099e8e630be09419f00e83e", "sha256": "71b8a4f8d546ab2a62f35368b14abb17b94814705785d81dda1419bbde148be6" }, "downloads": -1, "filename": "pilbox-1.1.6.tar.gz", "has_sig": false, "md5_digest": "9a93602fe099e8e630be09419f00e83e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 123664, "upload_time": "2015-02-22T17:19:46", "url": "https://files.pythonhosted.org/packages/d9/16/4863f39a81cbfc129a46924ab958ec84dcd1ad0732aa6c59511b2a7664c9/pilbox-1.1.6.tar.gz" } ], "1.1.7": [ { "comment_text": "", "digests": { "md5": "34b70678c459872cce307fef28931c65", "sha256": "717b2e5461091e8a2a27ab6cf5ddeaa3febfaf16adf601cbe725cd23c7f19ed5" }, "downloads": -1, "filename": "pilbox-1.1.7.tar.gz", "has_sig": false, "md5_digest": "34b70678c459872cce307fef28931c65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 124440, "upload_time": "2015-03-16T18:16:59", "url": "https://files.pythonhosted.org/packages/c4/33/9ab935fb541611fc63707a5361c1e81f25b730da822af451394b7490f649/pilbox-1.1.7.tar.gz" } ], "1.1.8": [ { "comment_text": "", "digests": { "md5": "35200c12a61c8a04841e498dfb405a80", "sha256": "1aec1623e2e940b2b0802d1c152d4ede6726965f9037773eea783645ab649ffe" }, "downloads": -1, "filename": "pilbox-1.1.8.tar.gz", "has_sig": false, "md5_digest": "35200c12a61c8a04841e498dfb405a80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 124917, "upload_time": "2015-04-06T01:51:06", "url": "https://files.pythonhosted.org/packages/8d/08/49952909018b90810d4de873627feef0c105dc8a4eeaa07cfc3c8a4a8bea/pilbox-1.1.8.tar.gz" } ], "1.1.9": [ { "comment_text": "", "digests": { "md5": "8e7be5ba06acd44093b0a774c2636dce", "sha256": "aba727ecc9fa7e2c3f3187b15bcbb0930037ce87111cf91e00c251c7b98e9b2f" }, "downloads": -1, "filename": "pilbox-1.1.9.tar.gz", "has_sig": false, "md5_digest": "8e7be5ba06acd44093b0a774c2636dce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 124948, "upload_time": "2015-04-18T12:29:45", "url": "https://files.pythonhosted.org/packages/b7/68/d469815d75b6764628b6aad3fc7221ebec269631002c7a3de7fba1ca9d2c/pilbox-1.1.9.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "6c7c157a01e5382dce3781aaeb1b9fa3", "sha256": "d711df08010f211d982d659de925b2f6713a08ad30e51e0348261d1653938d61" }, "downloads": -1, "filename": "pilbox-1.2.0.tar.gz", "has_sig": false, "md5_digest": "6c7c157a01e5382dce3781aaeb1b9fa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 134809, "upload_time": "2016-09-03T16:01:25", "url": "https://files.pythonhosted.org/packages/c5/17/283eca11ff9fee9c65348fc608fb19f8e42a1429970153b5d22925c3ad7b/pilbox-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "d550ecd3fd8619a7aab8204c5787ed7c", "sha256": "09dbf8270dcf2426c1069ff4c45dd0332acb7752f7a53cfcb23bb97ef3bf6a63" }, "downloads": -1, "filename": "pilbox-1.2.1.tar.gz", "has_sig": false, "md5_digest": "d550ecd3fd8619a7aab8204c5787ed7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 135266, "upload_time": "2016-12-04T17:19:50", "url": "https://files.pythonhosted.org/packages/1c/c0/ab478bbaabc906d9a67488a7f6cb8e497c98d50500a44bbacf972920a66f/pilbox-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "d05977c1f6f8750d6b2192b758b18e62", "sha256": "0e7666e31cabe6315ca82ccbb3af91f33d5feed41668d3b4ebbd243259cb1872" }, "downloads": -1, "filename": "pilbox-1.2.2.tar.gz", "has_sig": false, "md5_digest": "d05977c1f6f8750d6b2192b758b18e62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 135323, "upload_time": "2016-12-04T17:38:05", "url": "https://files.pythonhosted.org/packages/7b/70/0de24305a8454e5e3789846e589586ef6c8fa799f7ab94855dd5ab3a2ae0/pilbox-1.2.2.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "9d6a98423d8b2fdd7776302987fce50d", "sha256": "77d03097378090c465ca0af95d1748ece0425a27c8228a6c31a995039b7f4ce7" }, "downloads": -1, "filename": "pilbox-1.3.0.tar.gz", "has_sig": false, "md5_digest": "9d6a98423d8b2fdd7776302987fce50d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 135495, "upload_time": "2017-04-20T21:27:38", "url": "https://files.pythonhosted.org/packages/48/72/ede690ca6a61bdb5fb1e9fe483f92786e77d0dde413a49103fed4ca9b104/pilbox-1.3.0.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "333ade105f72212b6863c367059b50b2", "sha256": "1c4b15f105a15145b4467b92de0cb7edb62a79e7f08ac47c1d99e261740d1e83" }, "downloads": -1, "filename": "pilbox-1.3.2.tar.gz", "has_sig": false, "md5_digest": "333ade105f72212b6863c367059b50b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139174, "upload_time": "2017-10-22T01:57:37", "url": "https://files.pythonhosted.org/packages/7b/4f/b3ac0ca92232d676c185dd8d9f53cf84e11c410542ff8152ba1df37cd217/pilbox-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "ddf9305b51288bcc6f433bd233ade6d0", "sha256": "f7cba7a3407507d6f7468e5be4b8d69675bbdc5955250ed736216dc6efa0287b" }, "downloads": -1, "filename": "pilbox-1.3.3.tar.gz", "has_sig": false, "md5_digest": "ddf9305b51288bcc6f433bd233ade6d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139258, "upload_time": "2018-07-27T02:16:18", "url": "https://files.pythonhosted.org/packages/07/f2/a5c4d047d585b7c0541b20e0613eeb79dbbe091c9cd13285ec105b4ec6e1/pilbox-1.3.3.tar.gz" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "ccd9a16a631b5c3a0a73f6d23c3a2588", "sha256": "b1ba323b3c1703574fb560b7871b3a5a3591222010657ced2a3498f9acf21928" }, "downloads": -1, "filename": "pilbox-1.3.4.tar.gz", "has_sig": false, "md5_digest": "ccd9a16a631b5c3a0a73f6d23c3a2588", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139976, "upload_time": "2018-08-11T19:41:16", "url": "https://files.pythonhosted.org/packages/5a/cb/6e50211aeed579c5939fe2df8dfda67f70aeaac748e1cebc2bc0b2a19c20/pilbox-1.3.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ccd9a16a631b5c3a0a73f6d23c3a2588", "sha256": "b1ba323b3c1703574fb560b7871b3a5a3591222010657ced2a3498f9acf21928" }, "downloads": -1, "filename": "pilbox-1.3.4.tar.gz", "has_sig": false, "md5_digest": "ccd9a16a631b5c3a0a73f6d23c3a2588", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139976, "upload_time": "2018-08-11T19:41:16", "url": "https://files.pythonhosted.org/packages/5a/cb/6e50211aeed579c5939fe2df8dfda67f70aeaac748e1cebc2bc0b2a19c20/pilbox-1.3.4.tar.gz" } ] }