{ "info": { "author": "Laurent VOULLEMIER", "author_email": "laurent.voullemier@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2" ], "description": "# Photos Picker\n\n[![Build Status](https://travis-ci.org/l-vo/photos-picker.svg?branch=master)](https://travis-ci.org/l-vo/photos-picker)\n[![codecov](https://codecov.io/gh/l-vo/photos-picker/branch/master/graph/badge.svg)](https://codecov.io/gh/l-vo/photos-picker)\n\nThis libary allows to pick photos in a folder according to a given strategy (last photos, random photos...) and copy them to a destination (another system folder, Dropbox or Google drive folder...)\n\n## Compatibility\nThis library currently works with Python 2.7, Python 3.4, Python 3.5, Python 3.6 and Python 3.7.\n\n## Install\n```bash\n$ pip install photos-picker\n```\n\n## Usage\nThe main class `PhotosPicker` accepts a \"picker\", a tuple of \"filters\" and an \"uploader\" as arguments. The picker allows to select photos while the filters modify them. At the end of the process, the uploader copy transformed (or not) photos to a given destination. Below the simplest example which copy the 50 lastest photos to another directory:\n\n```python\n# Python 2.7 example\nfrom photospicker.exception.abstract_exception import AbstractException\nfrom photospicker.picker.pickers.last_photos_picker import LastPhotosPicker\nfrom photospicker.uploader.uploaders.filesystem_uploader import FilesystemUploader\nfrom photospicker.photos_picker import PhotosPicker\n\nif __name__ == '__main__':\n try:\n picker = LastPhotosPicker('/pictures', 50)\n uploader = FilesystemUploader('/destination')\n\n photos_picker = PhotosPicker(picker, (), uploader)\n photos_picker.run()\n except AbstractException as err:\n print err.message\n```\n\nSince picking and uloading may take a while, progress events are dispatched. \nYou can see a more complex example which displays work progress [here](examples/example.py).\n\n### Pickers:\n* `LastPhotosPicker`: pick the *n* lastest photos.\n* `RandomPicker`: pick randomly *n* photos. \n* `SmartPicker`: pick randomy *n* photos. Recent photos have more chance to be picked than old ones. It results by a picking of a majority of recent photos and a few old ones.\n\nMore details [here](https://github.com/l-vo/photos-picker/blob/1.0.0/doc/pickers.md)\n\nNote you can also create your own picker extending the base class `AbstractPicker`.\n\n### Filters:\n* `ResizeFilter`: resize the photos with the given width and height. The final photos size are computed for avoiding distortion.\n* `RotateFilter`: Rotate the photos according to EXIF data.\n\nMore details [here](https://github.com/l-vo/photos-picker/blob/1.0.0/doc/filters.md)\n\nNote you can also create your own filter extending the base class `AbstractFilter`.\n\n### Uploaders:\nNote that uploaders don't append new photos. Either the directory must be empty or the uploader clear it before copying files.\n\n* `FilesystemUploader`: copy the photos to a given directory. This directory must exist and be empty.\n* `DropBoxUploader`: upload the photos to Dropbox. Note that you should limit your token access to application. Creating a full access token is not needed and may induce security issues.\n* `GDriveUploader` upload the photos to Google Drive.\n\nMore details [here](https://github.com/l-vo/photos-picker/blob/1.0.0/doc/uploaders.md)\n\nNote you can also create your own uploader extending the base class `AbstractUploader`.\n\n## Contributing\nThe project is currenlty currently shipped with many pickers, filters or uploaders. But others can be developed, you may post an issue for that. Or better, read [how to post a pull request](https://github.com/l-vo/photos-picker/blob/1.0.0/doc/contributing.md) :)\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/l-vo/photos-picker", "keywords": "photos upload photoframe", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "photos-picker", "package_url": "https://pypi.org/project/photos-picker/", "platform": "", "project_url": "https://pypi.org/project/photos-picker/", "project_urls": { "Homepage": "https://github.com/l-vo/photos-picker" }, "release_url": "https://pypi.org/project/photos-picker/1.0.0/", "requires_dist": [ "Pillow", "zope.event", "dropbox", "pydrive" ], "requires_python": "", "summary": "Pick photos following a given strategy and upload them to various destinations", "version": "1.0.0" }, "last_serial": 5109795, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "63d36006075330dde7a98670bcd18a2f", "sha256": "2bf26230220c37b563e446ba0eb43f113c11077f16bd08d41239248f653ea714" }, "downloads": -1, "filename": "photos_picker-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "63d36006075330dde7a98670bcd18a2f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18847, "upload_time": "2018-10-02T16:05:07", "url": "https://files.pythonhosted.org/packages/1d/02/c29e5d456154e0579db4bfea0007ab09ef5be410099f7addf2e290c774af/photos_picker-0.0.1-py2-none-any.whl" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "af207b58cac89ee46bf520fc54e7c5b2", "sha256": "d2a2b701ea9549b9275df3fd9b83b8300ae998e2effe8a5f1f1324fbce04994b" }, "downloads": -1, "filename": "photos-picker-0.1.0.tar.gz", "has_sig": false, "md5_digest": "af207b58cac89ee46bf520fc54e7c5b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14602, "upload_time": "2018-10-05T12:13:17", "url": "https://files.pythonhosted.org/packages/53/fb/3f82b01bcb193c9d656b56b08347182f1d65dad82f6cd5645a47b2c52cd4/photos-picker-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0a592ef24781a78fee8822842ced7c1a", "sha256": "008d9e9cd906c4917898c6a5eba3f07dd889435d862944b4c129b163eadb8a51" }, "downloads": -1, "filename": "photos-picker-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0a592ef24781a78fee8822842ced7c1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14827, "upload_time": "2018-10-05T19:19:27", "url": "https://files.pythonhosted.org/packages/f8/c5/f4695395d7d7c27210323b5115d6c903391a7f4a0caeaf87c8e85cb46cdd/photos-picker-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "b9bc690e234290fb3450f76306239a8d", "sha256": "6f734e0325ec80cd3c4b055642627d8678620b54773de686e9c0ad3a2cfb650b" }, "downloads": -1, "filename": "photos_picker-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "b9bc690e234290fb3450f76306239a8d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21466, "upload_time": "2018-10-21T06:32:56", "url": "https://files.pythonhosted.org/packages/fa/90/0b843070bcc90dca883d5e51709002938d057b96b92779dacaab6dd69148/photos_picker-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "debd8bf090a40fb3e7ba2ce723896fe5", "sha256": "3319e93e3f80e0924fb85f8c07311690eb4039ad0caad08bdbc87b0726743ae1" }, "downloads": -1, "filename": "photos-picker-0.1.2.tar.gz", "has_sig": false, "md5_digest": "debd8bf090a40fb3e7ba2ce723896fe5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8674, "upload_time": "2018-10-21T06:36:22", "url": "https://files.pythonhosted.org/packages/d8/6a/c2e7e9010698d0a1b979349806fc0d7dc359475e6039ffe8d33a3cc1508a/photos-picker-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "715e1dd505f14ba6f240dbf12fcb93fc", "sha256": "c98f23da80614298bb8771d099fcf505c2437b557c40ae5a569274a060525acf" }, "downloads": -1, "filename": "photos_picker-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "715e1dd505f14ba6f240dbf12fcb93fc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21993, "upload_time": "2018-10-24T19:26:19", "url": "https://files.pythonhosted.org/packages/18/fd/c5c6ac146197dc056a0fd03a9852f85ec5eb9d86ed974775dcb2301ca622/photos_picker-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2818a8e4e4c4abde0197ba83f4b07a3", "sha256": "fcd89b78d9f44937ff4175ebde68bb94393eb23f7b2393867767d21fe360ab76" }, "downloads": -1, "filename": "photos-picker-0.2.0.tar.gz", "has_sig": false, "md5_digest": "c2818a8e4e4c4abde0197ba83f4b07a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8905, "upload_time": "2018-10-24T19:26:21", "url": "https://files.pythonhosted.org/packages/61/7e/e341a458c705531e124c586dd1fcb6bad5eb0b8b5bf69caab0d88578c148/photos-picker-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "0eedb0e10c369bef4c95904405a6238f", "sha256": "f6ae78078dd9e2afdaa762d8f82b191b36036061f470cec3fa119a230d371fef" }, "downloads": -1, "filename": "photos_picker-0.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "0eedb0e10c369bef4c95904405a6238f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23040, "upload_time": "2018-10-29T21:37:10", "url": "https://files.pythonhosted.org/packages/22/72/5c66e1f2c37272762a345caec774ce9fbd3954d0f152cd26ed296c24ea6c/photos_picker-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5d25eb1cd1282227765d63d26b5ec0a4", "sha256": "8bf4dff830d44cea42522bf0bafc7bc052d294b081a5d53bdb81fb05defc5ebb" }, "downloads": -1, "filename": "photos-picker-0.2.1.tar.gz", "has_sig": false, "md5_digest": "5d25eb1cd1282227765d63d26b5ec0a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9156, "upload_time": "2018-10-29T21:37:11", "url": "https://files.pythonhosted.org/packages/62/f2/a787fe4ba507b724f7a029a1749da4062e9c2ab3d4d353e634c59d77581a/photos-picker-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "a0291c0249a2dd40469a59b393fc1adb", "sha256": "dce9e7ec482211c188d6c44ff0850a706a4c5ebc5f468b4bb258ba5ed481b74c" }, "downloads": -1, "filename": "photos_picker-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a0291c0249a2dd40469a59b393fc1adb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 25593, "upload_time": "2018-11-04T09:55:40", "url": "https://files.pythonhosted.org/packages/b4/2f/1c3f8fce2f8e2b1124ab1ef9ac35b686a0546c6d0aaffade5fade28b5c0b/photos_picker-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b859b6db35680bd8a79811dff0be35e", "sha256": "29e293906d22ef2689830fdc935cf04289ab36350c21e2012f67ff27f93e7c05" }, "downloads": -1, "filename": "photos-picker-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3b859b6db35680bd8a79811dff0be35e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9808, "upload_time": "2018-11-04T09:55:42", "url": "https://files.pythonhosted.org/packages/69/66/819ba996926b702218effb21e4798b3083d8bb5d3118476efa12118f4d32/photos-picker-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "b55f1bbd4b3b64a65e34af6e9dca4434", "sha256": "5afb99b1103264c80bf7b5310860c598cfec2174124746907cb42ad89384ee30" }, "downloads": -1, "filename": "photos_picker-0.3.1-py2-none-any.whl", "has_sig": false, "md5_digest": "b55f1bbd4b3b64a65e34af6e9dca4434", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 26144, "upload_time": "2018-11-04T13:44:58", "url": "https://files.pythonhosted.org/packages/75/be/225a2ee510a8387e532d010ec97e9bcec7b7f998572cc3a32532e1db37de/photos_picker-0.3.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d6c7b355f24c4b3b1b29482602b98af", "sha256": "3b4550c8a6827832e54b759e8942a5bf805ecffd66fd196551ef86128d105e02" }, "downloads": -1, "filename": "photos-picker-0.3.1.tar.gz", "has_sig": false, "md5_digest": "0d6c7b355f24c4b3b1b29482602b98af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9948, "upload_time": "2018-11-04T13:45:00", "url": "https://files.pythonhosted.org/packages/39/da/ad701dc21758b911c04f4bd0ac999be890ac76c45c7a31e0b0260d54058e/photos-picker-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "940cef52a223601ec7a804f6a19b2ddc", "sha256": "519fbd864444335bf3c923fb90037dad2fe7838fa85a6f7fb3ab208b5f840012" }, "downloads": -1, "filename": "photos_picker-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "940cef52a223601ec7a804f6a19b2ddc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 45834, "upload_time": "2018-11-22T20:39:49", "url": "https://files.pythonhosted.org/packages/ff/08/19cd1c9190348de5d3783810b98a32239cc41db7abb08c0ce553eb9ccc88/photos_picker-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a2699d88d82dc7d46f62fcf73638a01e", "sha256": "59b46ecc28b4d86007d89d8591e2a7024b9d9b907f4a8b9c843eaa8817a4c840" }, "downloads": -1, "filename": "photos-picker-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a2699d88d82dc7d46f62fcf73638a01e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11702, "upload_time": "2018-11-22T20:39:53", "url": "https://files.pythonhosted.org/packages/67/67/ca964095a2471b5d529e079ef87e6a6d3571f5a1927aeea3bf9510c736a1/photos-picker-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "feea4c9a936c6219d2dacc5cb7218450", "sha256": "0d9274c3f3af9ff09f5217dcd61f66b19339aaf4b198f313e9ae690841c2cff9" }, "downloads": -1, "filename": "photos_picker-0.4.1-py2-none-any.whl", "has_sig": false, "md5_digest": "feea4c9a936c6219d2dacc5cb7218450", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 45861, "upload_time": "2018-11-22T21:04:13", "url": "https://files.pythonhosted.org/packages/b5/57/c46d66ca7c96da665fbe39f539e383f054f0042a5f15a7db8ce47493c85f/photos_picker-0.4.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "398a9c9afacebaf2ad7f71e5b26aec5e", "sha256": "9492cdc90b3631c55041cd49110d01d118b0042c9789e8247ce960068073eab6" }, "downloads": -1, "filename": "photos-picker-0.4.1.tar.gz", "has_sig": false, "md5_digest": "398a9c9afacebaf2ad7f71e5b26aec5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11754, "upload_time": "2018-11-22T21:04:15", "url": "https://files.pythonhosted.org/packages/f0/a3/fec9a3839c57c4fedfb4699d8273534554791bb32c6297f59f39bb7ab22e/photos-picker-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "c48ab5c6b08c33434c0a1b866d6a223c", "sha256": "1cf52b834c7d2b7c1f244a8503e7dc7a8f035ea1b5cd6c9c54c8a44c9898f0c1" }, "downloads": -1, "filename": "photos_picker-0.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "c48ab5c6b08c33434c0a1b866d6a223c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 46029, "upload_time": "2018-12-09T09:20:39", "url": "https://files.pythonhosted.org/packages/53/1b/f5d95bf896e39e94e335428ffacffa515ef7471bae930cd1b0e35c1c3d0b/photos_picker-0.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "892a5d40c1ffd68d607ffc01a3ec0cf9", "sha256": "0b5763af70160e225dc0cac79f0ae1e9041066e06f8a2e54249bb210f5aaeb89" }, "downloads": -1, "filename": "photos-picker-0.5.0.tar.gz", "has_sig": false, "md5_digest": "892a5d40c1ffd68d607ffc01a3ec0cf9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11874, "upload_time": "2018-12-09T09:20:40", "url": "https://files.pythonhosted.org/packages/1e/c9/84c9f30a906a39dde21945c0b4d1236729f39042e79cbc2b75c267eb1b45/photos-picker-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "74a14ded08df80f16a2bc8c670735cbc", "sha256": "2f586a0799464df2385b174fbbaa2b0e301f09989eeac8d15dddf69c8dcc8e6a" }, "downloads": -1, "filename": "photos_picker-0.5.1-py2-none-any.whl", "has_sig": false, "md5_digest": "74a14ded08df80f16a2bc8c670735cbc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 46048, "upload_time": "2018-12-12T12:55:26", "url": "https://files.pythonhosted.org/packages/e4/87/71104d239214e1dc44cbacc948abdd7adb519f54dd5783c71a54ba185b2f/photos_picker-0.5.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e33dc8fe3563e620d5363985d4716713", "sha256": "d7e17829d97932cb056d82999662d2b07fe1960c13c915012c2804c4ff4a1851" }, "downloads": -1, "filename": "photos-picker-0.5.1.tar.gz", "has_sig": false, "md5_digest": "e33dc8fe3563e620d5363985d4716713", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11916, "upload_time": "2018-12-12T12:55:28", "url": "https://files.pythonhosted.org/packages/62/5f/4174c676ab0c0d09a44159ef7282ce37aa2a4cb068880cd0de70c686f550/photos-picker-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "0d8054ae368d5592508496b58d7a4c3a", "sha256": "3a128e21c10822abbb5101dab5b47c33b49d01e83a643e232d2d2d7ca3cd9ecb" }, "downloads": -1, "filename": "photos_picker-0.6.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0d8054ae368d5592508496b58d7a4c3a", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 64798, "upload_time": "2019-02-19T15:52:46", "url": "https://files.pythonhosted.org/packages/f6/bb/5c9afe2ca1d4d86d477a9bfa5fef290a13d708239078b51bcc94a7a3a7ec/photos_picker-0.6.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2892ee58be1e3ebef5f3dac48dc896db", "sha256": "584d9cf369f3e0fdee24ea5676f929ad2c0a550907484546d685d2db74607d10" }, "downloads": -1, "filename": "photos-picker-0.6.0.tar.gz", "has_sig": false, "md5_digest": "2892ee58be1e3ebef5f3dac48dc896db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11812, "upload_time": "2019-02-19T15:52:49", "url": "https://files.pythonhosted.org/packages/3e/ae/4d7eaa7da808a7cc74c8334c56187d9f3444d88fb6f8b0b4bf62dd9e4797/photos-picker-0.6.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "5af90d23bc63682d422e2759da1a1f2b", "sha256": "ad4f1ddeb00605592f44ce8fc9f76d67638784a1aa67fb8b9fd47b5b2018779c" }, "downloads": -1, "filename": "photos_picker-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5af90d23bc63682d422e2759da1a1f2b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 64797, "upload_time": "2019-04-07T12:01:51", "url": "https://files.pythonhosted.org/packages/43/26/ada6a1b4f655b1db78a14461b6bd82342969c30447ee74c3142d2437cfa6/photos_picker-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cbc4d6fffdfd75bdea7c2d6fada4f2d", "sha256": "56bb6c89c306a12628e11623cfa7d8b1c6da9244e7200d020177890916cc34fc" }, "downloads": -1, "filename": "photos-picker-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4cbc4d6fffdfd75bdea7c2d6fada4f2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11821, "upload_time": "2019-04-07T12:01:54", "url": "https://files.pythonhosted.org/packages/88/d0/87dbda702b2d4dbc1c7498109c53ea194d92199bd00c35e0f72270246142/photos-picker-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5af90d23bc63682d422e2759da1a1f2b", "sha256": "ad4f1ddeb00605592f44ce8fc9f76d67638784a1aa67fb8b9fd47b5b2018779c" }, "downloads": -1, "filename": "photos_picker-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5af90d23bc63682d422e2759da1a1f2b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 64797, "upload_time": "2019-04-07T12:01:51", "url": "https://files.pythonhosted.org/packages/43/26/ada6a1b4f655b1db78a14461b6bd82342969c30447ee74c3142d2437cfa6/photos_picker-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cbc4d6fffdfd75bdea7c2d6fada4f2d", "sha256": "56bb6c89c306a12628e11623cfa7d8b1c6da9244e7200d020177890916cc34fc" }, "downloads": -1, "filename": "photos-picker-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4cbc4d6fffdfd75bdea7c2d6fada4f2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11821, "upload_time": "2019-04-07T12:01:54", "url": "https://files.pythonhosted.org/packages/88/d0/87dbda702b2d4dbc1c7498109c53ea194d92199bd00c35e0f72270246142/photos-picker-1.0.0.tar.gz" } ] }