{
"info": {
"author": "Alexander Schepanovski",
"author_email": "suor.web@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Framework :: Django",
"Framework :: Django :: 1.10",
"Framework :: Django :: 1.11",
"Framework :: Django :: 1.7",
"Framework :: Django :: 1.8",
"Framework :: Django :: 1.9",
"Framework :: Django :: 2.0",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "Handy\n=====\n\nA collection of different tools, shortcuts, decorators, form and model fields\nto make your django life easier.\n\n\nInstallation\n-------------\n\n::\n\n pip install handy\n\n\nOverview\n--------\n\nHere are quick overview of what you can do with handy.\nYou can also read `full docs `_.\n\nAvoid ``HttpResponse`` and ``render_to_response()`` biolerplate with ``@render_to()`` decorator.\nThis one will render result dict to ``'app_name/foo.html'``:\n\n.. code:: python\n\n @render_to()\n def foo(request):\n return {\n 'bar': Bar.objects.all()\n # You can easily override default template, content type,\n # status code and add cookies to response:\n 'STATUS': 410,\n 'CONTENT_TYPE': 'text/plain'\n }\n\n\nEasy JSON responders with ``@render_to_json()`` decorator:\n\n.. code:: python\n\n @render_to_json()\n def posts_by_tag(request, tag=None):\n posts = Post.object.values().filter(tag=tag)\n return list(posts)\n\n\nAnd higher order ``@ajax`` decorator to handle more complex asynchronous actions:\n\n.. code:: python\n\n @ajax\n @ajax.login_required\n @ajax.catch(Post.DoesNotExist)\n def enable_post(request):\n post = Post.objects.get(pk=request.GET['id'])\n\n if post.author != request.user:\n raise ajax.error('permission_denied')\n\n post.enabled = True\n post.save()\n\n\nSend emails rendered from templates:\n\n.. code:: python\n\n render_to_email(article.author.email, 'approved.html', {'article': article})\n\n\nA collection of model fields with accompanying form fields and widgets. Most notably different array fields to store array of values or choices:\n\n.. code:: python\n\n DAYS = zip(range(7), 'Sun Mon Tue Wed Thu Fri Sat'.split())\n\n class Company(models.Model):\n phones = StringArrayField('Phone numbers', blank=True, default=lambda: [])\n workdays = IntegerArrayField('Work days', choices=DAYS)\n\n company = Company(phones=['234-5016', '516-2314'], workdays=[1,2,3,4])\n company.save()\n\nIn model form ``phones`` field would be represented as ``CommaSeparatedInput`` and\n``workdays`` as multiple checkboxes:\n\n.. code:: python\n\n class CompanyForm(forms.ModelForm):\n class Meta:\n model = Company\n\n\nA handy ``@cached_property`` utility:\n\n.. code:: python\n\n class UserProfile(models.Model):\n phones = models.ManyToManyField(Phone)\n\n ...\n\n @cached_property\n def public_phones(self):\n # this queryset will be constructed only once, thanks to @cached_property\n return self.phones.filter(public=True)\n\n\nA bunch of database querying utilities to not tinker with ``cursor()`` anymore:\n\n.. code:: python\n\n best_offer = fetch_val('select max(value) from offers where ...')\n\n for row in fetch_named('select * from blog_post'):\n print row.id, row.title\n\n\nAnd a middleware to make your html output slimmer by stripping out unnecessary spaces:\n\n.. code:: python\n\n MIDDLEWARE_CLASSES = (\n ...\n 'handy.middleware.StripWhitespace',\n )\n\n\nAnd more:\n\n- simple logger wrap up\n- ``CommaSeparatedInput`` and ``MultilineInput`` widgets for array fields\n- ``JSONField``, ``AdditionalAutoField`` and ``BigAutoField``\n- and a bunch of database, email, text and debugging utilities\n\nNOTE: functional tools, namely ``@memoize`` and ``@cache``, moved to\n`funcy `_\n\n\nHow you can help\n----------------\n\n- give me any feedback. What bits are most useful? What can be added or changed?\n- bring your ideas and/or code that can make all our django experience more fun\n\n\nTODO\n----\n\n- docs for text and just utils\n- add support for querysets and models in JSON decorators\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/Suor/handy",
"keywords": "",
"license": "BSD",
"maintainer": "",
"maintainer_email": "",
"name": "handy",
"package_url": "https://pypi.org/project/handy/",
"platform": "",
"project_url": "https://pypi.org/project/handy/",
"project_urls": {
"Homepage": "http://github.com/Suor/handy"
},
"release_url": "https://pypi.org/project/handy/0.7/",
"requires_dist": null,
"requires_python": "",
"summary": "A collection of tools to make your django life easier.",
"version": "0.7"
},
"last_serial": 3453008,
"releases": {
"0.1": [
{
"comment_text": "",
"digests": {
"md5": "b6208b62a70a8cea1943035e62ee8be5",
"sha256": "fb9728383bf726fad08081d2aa1f71f33b4ef78b98a79b09e1fe8755cc1ff00f"
},
"downloads": -1,
"filename": "handy-0.1.tar.gz",
"has_sig": false,
"md5_digest": "b6208b62a70a8cea1943035e62ee8be5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7015,
"upload_time": "2012-05-19T17:56:17",
"url": "https://files.pythonhosted.org/packages/d4/73/3add98d14abe2aa08ac2c166918f4a864b157d6c03a1ee63328e65e3e5ce/handy-0.1.tar.gz"
}
],
"0.1.1": [
{
"comment_text": "",
"digests": {
"md5": "7eda0409570d5f6b88413ef6038f7821",
"sha256": "94c4cee873ffc393f630cf21565a750c85ee95c5a9efc6561096bbefea011f96"
},
"downloads": -1,
"filename": "handy-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "7eda0409570d5f6b88413ef6038f7821",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8527,
"upload_time": "2012-06-09T15:06:23",
"url": "https://files.pythonhosted.org/packages/66/e5/248a95117abf1ce6fd7ab65e0ff1ceb1adb7d5a6858a21fb8dd103f78f10/handy-0.1.1.tar.gz"
}
],
"0.1.2": [
{
"comment_text": "",
"digests": {
"md5": "2814bc1e2d86bbdfb7e866cedf06ed52",
"sha256": "eb0bfca586b83d023504a537ed116e78475e04ae012957facecbd0b676267809"
},
"downloads": -1,
"filename": "handy-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "2814bc1e2d86bbdfb7e866cedf06ed52",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9148,
"upload_time": "2012-09-12T13:51:01",
"url": "https://files.pythonhosted.org/packages/8a/f9/e49a3dc95d33dfed88067a20bbe05421f4079d4f3ed88452a6e474f87437/handy-0.1.2.tar.gz"
}
],
"0.1.3": [
{
"comment_text": "",
"digests": {
"md5": "b0e6c7ae700b423a23df46714d8a52ed",
"sha256": "9eb9f7cda463d668be507c8378a9680a44a9c1540641b39ea3328f975a3c62a6"
},
"downloads": -1,
"filename": "handy-0.1.3.tar.gz",
"has_sig": false,
"md5_digest": "b0e6c7ae700b423a23df46714d8a52ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12233,
"upload_time": "2012-09-13T06:28:20",
"url": "https://files.pythonhosted.org/packages/ee/29/8154335deccbe3c755650bfd73c6e59172861a4a61926c56ad43ee87538a/handy-0.1.3.tar.gz"
}
],
"0.1.4": [
{
"comment_text": "",
"digests": {
"md5": "bcb930de955a5701d84f963255b1dbf0",
"sha256": "27085b0fc39d93f99eadca670abbd6eff96200db4364e7f2a9f8088869248dd5"
},
"downloads": -1,
"filename": "handy-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "bcb930de955a5701d84f963255b1dbf0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13866,
"upload_time": "2012-11-26T06:55:42",
"url": "https://files.pythonhosted.org/packages/3b/a8/fa562f40d9bf52e9e75d0fb056110d2bd5a5fcb0544929f683aa8e46b613/handy-0.1.4.tar.gz"
}
],
"0.1.5": [
{
"comment_text": "",
"digests": {
"md5": "3339d1be2d97deddeaefe7e163d6b056",
"sha256": "f26a44283b94a68319393b13a1c78f48d26353664685eedafc0d54217dab75ea"
},
"downloads": -1,
"filename": "handy-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "3339d1be2d97deddeaefe7e163d6b056",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14041,
"upload_time": "2013-01-20T05:55:13",
"url": "https://files.pythonhosted.org/packages/25/9a/003dcae0348040b980c14f32cf11e902717094f3426828caba95660b211d/handy-0.1.5.tar.gz"
}
],
"0.1.6": [
{
"comment_text": "",
"digests": {
"md5": "19539dbbb5c08cc86c752963b49558b1",
"sha256": "89e7f2d12fda057451627e3ff27115d023e06c329f1be9bebc76595e66f82c1c"
},
"downloads": -1,
"filename": "handy-0.1.6.tar.gz",
"has_sig": false,
"md5_digest": "19539dbbb5c08cc86c752963b49558b1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14192,
"upload_time": "2013-02-27T03:03:04",
"url": "https://files.pythonhosted.org/packages/da/0a/d4a5a9bdcea18a17118e038d5dccc653efc4510f33b987e1ed553fe6f9fb/handy-0.1.6.tar.gz"
}
],
"0.1.7": [
{
"comment_text": "",
"digests": {
"md5": "2eba4c50666c7233b06204722fd248b8",
"sha256": "dc659e8a7a685157b2c5d8d5d65ef55402c293738423bd84dff755fa3f49ad1f"
},
"downloads": -1,
"filename": "handy-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "2eba4c50666c7233b06204722fd248b8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14459,
"upload_time": "2013-06-20T02:59:38",
"url": "https://files.pythonhosted.org/packages/ea/23/aa55e0dfd3396e79031416036ab3909d85d55ba302a5840c4da6a0940783/handy-0.1.7.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "24cdf0e3c3441ba1157e3109190f5ab7",
"sha256": "4993529ca284acd49084fe9779ccdfe38c0fc7d4c3a587fcea1487b1b4a35822"
},
"downloads": -1,
"filename": "handy-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "24cdf0e3c3441ba1157e3109190f5ab7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14532,
"upload_time": "2013-09-12T05:04:34",
"url": "https://files.pythonhosted.org/packages/48/6d/0b472c61ffe0204a5976e9a011556b42bb74871d37b16a048affb2c67291/handy-0.2.0.tar.gz"
}
],
"0.2.1": [
{
"comment_text": "",
"digests": {
"md5": "fbac14ea754a03c8f7daf22b8817a3a4",
"sha256": "650070909800b04d0585d574bbfafc83ac13703a298ae72ab2bebb8563936819"
},
"downloads": -1,
"filename": "handy-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "fbac14ea754a03c8f7daf22b8817a3a4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14128,
"upload_time": "2013-09-12T05:20:42",
"url": "https://files.pythonhosted.org/packages/f3/bd/4e87027ecb16683b79f4c2c530741719c8b84218c0ac86aa1a43ce7cf665/handy-0.2.1.tar.gz"
}
],
"0.2.2": [
{
"comment_text": "",
"digests": {
"md5": "da8051d00585360822043f5d2a967bc2",
"sha256": "8b72f1b53bd3133444b1f14ffd05fbfc2c2d4da5673df2308a5e3a0955986c65"
},
"downloads": -1,
"filename": "handy-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "da8051d00585360822043f5d2a967bc2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14312,
"upload_time": "2013-09-20T04:15:53",
"url": "https://files.pythonhosted.org/packages/6f/b6/636cc9272a34cc8e06c4c724cb23b0c3f7765d1e5f610e3d857972b5457e/handy-0.2.2.tar.gz"
}
],
"0.2.3": [
{
"comment_text": "",
"digests": {
"md5": "a595e01d23dfe5368279e2be0b8f4dc8",
"sha256": "9312270a99e361af09f3bb5501a1a039d004f60eec71fed92f5c020d776215a7"
},
"downloads": -1,
"filename": "handy-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "a595e01d23dfe5368279e2be0b8f4dc8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14433,
"upload_time": "2013-11-21T13:58:28",
"url": "https://files.pythonhosted.org/packages/4b/af/44c8ed56abb592cb68e75d051db02bb263831b10bc375b22564a010dd51e/handy-0.2.3.tar.gz"
}
],
"0.2.4": [
{
"comment_text": "",
"digests": {
"md5": "50919004e82865c27e6a12561184e225",
"sha256": "45df6c6bd98733579ba40374fb49cbada2fe9966f302531a0b235bbd514b0d3f"
},
"downloads": -1,
"filename": "handy-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "50919004e82865c27e6a12561184e225",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14647,
"upload_time": "2014-02-17T09:25:25",
"url": "https://files.pythonhosted.org/packages/43/f2/2eacece7a365aad51b3e33c799a32e926b91dff3133521cc5a4e43997f4f/handy-0.2.4.tar.gz"
}
],
"0.3": [
{
"comment_text": "",
"digests": {
"md5": "e99235e49d70321effc07f3b3f3c5fcb",
"sha256": "b3bf562a43d5c17af0b3f2333e5feed69a5e56193a89a045bfda558291231bf3"
},
"downloads": -1,
"filename": "handy-0.3.tar.gz",
"has_sig": false,
"md5_digest": "e99235e49d70321effc07f3b3f3c5fcb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14319,
"upload_time": "2014-08-13T10:08:44",
"url": "https://files.pythonhosted.org/packages/77/fd/1f25d908df4db4476566b1d2f93157228df1bc46e8c20df3533fdf1994b0/handy-0.3.tar.gz"
}
],
"0.4": [
{
"comment_text": "",
"digests": {
"md5": "7164c4105ed45ed9e3db09526432f1ad",
"sha256": "6f098d1ab768baee222d5d3251575e548a5d76d3e59f932f51938603c0a2d45d"
},
"downloads": -1,
"filename": "handy-0.4.tar.gz",
"has_sig": false,
"md5_digest": "7164c4105ed45ed9e3db09526432f1ad",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14558,
"upload_time": "2015-03-12T05:28:08",
"url": "https://files.pythonhosted.org/packages/90/63/3550fdcc7fe9ce5c475f206c39e5d9324ee26e11d57b69e4821469f260eb/handy-0.4.tar.gz"
}
],
"0.5": [
{
"comment_text": "",
"digests": {
"md5": "c2dbf1ab745a11ed97e22484ed404531",
"sha256": "ae1bf7534773fbd8d96fddbe8859f317e843f4f74f5317d9a33302a3928aaffd"
},
"downloads": -1,
"filename": "handy-0.5.tar.gz",
"has_sig": false,
"md5_digest": "c2dbf1ab745a11ed97e22484ed404531",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14588,
"upload_time": "2015-05-14T06:53:59",
"url": "https://files.pythonhosted.org/packages/23/64/e1cdaefa7b32434a7924699bab864821caa5062b420f7929268f14bbcd58/handy-0.5.tar.gz"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "d03c5de37c811be9538ffeb739c62438",
"sha256": "8a73fef56a72f473d1aa8c5eb54e7862b0632e01b5386b69a4a60c65682ec3e7"
},
"downloads": -1,
"filename": "handy-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "d03c5de37c811be9538ffeb739c62438",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14562,
"upload_time": "2015-07-07T10:54:37",
"url": "https://files.pythonhosted.org/packages/27/cd/1a8880bcde1435a6a875fa13d719ae8a596a46575314553ed7a77ec7d358/handy-0.5.1.tar.gz"
}
],
"0.5.2": [
{
"comment_text": "",
"digests": {
"md5": "373e921ee77f7cf518e2d1c4a66906e7",
"sha256": "835ce4ddbf73ebf19f5952a3ef10d2ccc838951c745ab5be2360066606e121b7"
},
"downloads": -1,
"filename": "handy-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "373e921ee77f7cf518e2d1c4a66906e7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14634,
"upload_time": "2015-07-30T04:14:40",
"url": "https://files.pythonhosted.org/packages/60/99/d57e1cffd8e8735e60c873f18b06798b5784278e35463fa521e1abcdc1f6/handy-0.5.2.tar.gz"
}
],
"0.5.3": [
{
"comment_text": "",
"digests": {
"md5": "b670c009bd85643b258302c5a887f7a6",
"sha256": "d801188c427dc8b4167a0d7b60ec19dcc631289bc790b95747b2114b44732ade"
},
"downloads": -1,
"filename": "handy-0.5.3.tar.gz",
"has_sig": false,
"md5_digest": "b670c009bd85643b258302c5a887f7a6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14655,
"upload_time": "2015-10-13T08:23:44",
"url": "https://files.pythonhosted.org/packages/e5/02/40bbd0f886aac50f9abec7cffe9d8f7b718329069848603977c6858b1990/handy-0.5.3.tar.gz"
}
],
"0.5.4": [
{
"comment_text": "",
"digests": {
"md5": "a092a16da42f259df9ab17bab7b4a65d",
"sha256": "9bc6cd1d2c0fd81b6baead383ee611c0eb8f473ba2be51c494318dbc25c8c31d"
},
"downloads": -1,
"filename": "handy-0.5.4.tar.gz",
"has_sig": false,
"md5_digest": "a092a16da42f259df9ab17bab7b4a65d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14686,
"upload_time": "2016-01-12T16:50:00",
"url": "https://files.pythonhosted.org/packages/74/cf/10470fc17583602a8267940bbc84720e9efdfe8a0ec9c3ec1f6cad678e22/handy-0.5.4.tar.gz"
}
],
"0.5.5": [
{
"comment_text": "",
"digests": {
"md5": "8c86f7b900907605c53fd1aff06c83e9",
"sha256": "9cf5cde1bddbd9abd32a10d26142224c2afb206ffc9855df72ca48eb172d1dae"
},
"downloads": -1,
"filename": "handy-0.5.5.tar.gz",
"has_sig": false,
"md5_digest": "8c86f7b900907605c53fd1aff06c83e9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14911,
"upload_time": "2016-11-12T03:55:36",
"url": "https://files.pythonhosted.org/packages/5c/00/2559a5e7634fb2ee0ff88bbf5a146d25a202b3d90a92e7f9c9500542b53b/handy-0.5.5.tar.gz"
}
],
"0.5.6": [
{
"comment_text": "",
"digests": {
"md5": "53a806cc819ea0bb4464ad11b301c42a",
"sha256": "aafee05cdf522e1eefbf1a155a9d92c36749ccac30956c9e81c72467a0673e4b"
},
"downloads": -1,
"filename": "handy-0.5.6.tar.gz",
"has_sig": false,
"md5_digest": "53a806cc819ea0bb4464ad11b301c42a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 14917,
"upload_time": "2017-06-01T03:14:34",
"url": "https://files.pythonhosted.org/packages/b9/53/b2a42d7c141a1fdec684752185271943102843eaff697685f291c591cd0f/handy-0.5.6.tar.gz"
}
],
"0.5.7": [
{
"comment_text": "",
"digests": {
"md5": "0bd0da6d7b03030f2ed12542aca29be1",
"sha256": "363257205540bca476960f1d1838cb34f994a29db42335d5e8987769b50b3a9b"
},
"downloads": -1,
"filename": "handy-0.5.7.tar.gz",
"has_sig": false,
"md5_digest": "0bd0da6d7b03030f2ed12542aca29be1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16838,
"upload_time": "2017-08-05T03:39:05",
"url": "https://files.pythonhosted.org/packages/a1/4d/bc6d097c435c92a60e27411433c9f3866510af57cfb7e249d8067489bc62/handy-0.5.7.tar.gz"
}
],
"0.6": [
{
"comment_text": "",
"digests": {
"md5": "b3196ffdc4bd50934e321c762bffac26",
"sha256": "9e6dcf936ec6bdd572366436a2b7ed6cc178f0a41530f9aa6a89d1729ebf3f05"
},
"downloads": -1,
"filename": "handy-0.6.tar.gz",
"has_sig": false,
"md5_digest": "b3196ffdc4bd50934e321c762bffac26",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16500,
"upload_time": "2017-12-02T04:54:19",
"url": "https://files.pythonhosted.org/packages/35/01/e8c1720c56449812b359f0cbfbb4e8fe357e500a1aa544d2bf1b3efcfbb3/handy-0.6.tar.gz"
}
],
"0.7": [
{
"comment_text": "",
"digests": {
"md5": "6f1b212ae536cfce014afb16efd2d024",
"sha256": "453b65d8c348bc73e97baa44c1bc6793f4419b1aef301eb7e137af4c541bad8c"
},
"downloads": -1,
"filename": "handy-0.7.tar.gz",
"has_sig": false,
"md5_digest": "6f1b212ae536cfce014afb16efd2d024",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16946,
"upload_time": "2017-12-31T10:41:06",
"url": "https://files.pythonhosted.org/packages/22/0a/b7bd552d61559ff94f141bc9979677eb5c9281edaa9467f406922a224d2e/handy-0.7.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "6f1b212ae536cfce014afb16efd2d024",
"sha256": "453b65d8c348bc73e97baa44c1bc6793f4419b1aef301eb7e137af4c541bad8c"
},
"downloads": -1,
"filename": "handy-0.7.tar.gz",
"has_sig": false,
"md5_digest": "6f1b212ae536cfce014afb16efd2d024",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16946,
"upload_time": "2017-12-31T10:41:06",
"url": "https://files.pythonhosted.org/packages/22/0a/b7bd552d61559ff94f141bc9979677eb5c9281edaa9467f406922a224d2e/handy-0.7.tar.gz"
}
]
}