{ "info": { "author": "Colin T.A. Gray", "author_email": "colinta@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Internet", "Topic :: Text Processing", "Topic :: Text Processing :: General", "Topic :: Text Processing :: Markup" ], "description": "=======\nplywood\n=======\n\nA python-inspired templating language.\n\n----\nDEMO\n----\n\n::\n\n import app.url\n import request\n from plywood.plugin import compress\n\n doctype(5) # or doctype('strict') doctype('xhtml'), etc.\n html: # this'll start looking a lot like jade, but with quotes and colons\n # even though 'html' is a function call, the parentheses are optional.\n head:\n meta(charset=\"utf-8\")\n title:\n if self.title: # context variables are available on 'self'\n # docstrings are stripped of preceding whitespace and the first and\n # last newline is removed.\n \"\"\"\n {{self.title}} |\n \"\"\" # string interpolation uses plywood in 'inline' mode. Each line\n # will be joined with a space.\n 'Welcome' # string literals require quotes\n compress('css'):\n # passing values to tag attributes are escaped (html-entitized) automatically\n # if you want to escape using xml, pass {'format': 'xml'} in your options.\n link(rel='stylesheet', type='text/css', href=url.static('css/reset.css'))\n link(rel='stylesheet', type='text/css', href=url.static('css/welcome.css'))\n script(src=\"//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\", type=\"text/javascript\")\n compress('js'):\n script(src=url.static(\"js/underscore.js\"), type=\"text/javascript\")\n script(src=url.static(\"js/backbone.js\"), type=\"text/javascript\")\n ieif 'lt IE 9':\n script(src=\"//html5shiv.googlecode.com/svn/trunk/html5.js\", type=\"text/javascript\")\n link(rel='stylesheet', type='text/css', href=url.static('css/ie.css'))\n # blocks? block inheritance? of course!\n block('extra_head')\n body:\n div(class=\"wrapper\", id=\"main-header\"):\n # for xml usage, the token parsing will accept some gnarly-looking elements in\n # argument lists, and this uses the html-plugin constructor, so that\n # you don't have to create a bunch of plugins for your XML documents.\n # (you still need commas between arguments)\n :\n : 1568491379\n header:\n block('header'):\n # inlining is easy\n p(class=\"logo\"): 'logo'\n # more complicated inlining\n p: a(href=url.reverse(\"login\")): 'Login'\n block('header_title'):\n if self.user:\n 'Welcome, '{self.user.name}'\n else:\n 'Welcome'\n if not self.user:\n p(class=\"login\"):\n a(href=url.reverse(\"login\")): 'Log In'\n a(href=url.reverse(\"logout\")): 'Log Out'\n nav:\n ul:\n block('nav'):\n\n section(class=\"breadcrumb\"):\n block('breadcrumb')\n\n section(class=\"main\"):\n block('messages'):\n if messages:\n ul(class=\"messages\"):\n for message in self.messages:\n li(class=message.tags): message\n script:\n # code literals, so that savvy editors can color the source code\n '''javascript\n $(document).ready(function(){\n $(\"ul.messages\").addClass(\"animate\");\n\n var fade_out = _(function() {\n this.addClass(\"fade-out\")\n }).bind($(\"ul.messages\"))\n\n setTimeout(fade_out, 5000);\n $(\"ul.messages\").bind(\"click\", fade_out);\n });\n '''\n block('content')\n\n footer:\n p:\n '©{now(%Y)} colinta'\n\n------------\nINSTALLATION\n------------\n\n::\n\n $ pip install plywood\n $ ply < in.ply > out.html\n # local development\n $ pip install -e .\n\n\n-------\nRUNTIME\n-------\n\nWhen you run a plywood template, a lot of the work is done using plugins, which\nare loaded into the global context - the ``PlywoodEnv`` object. This only needs\nto happen once per application - the ``PlywoodEnv`` can be reused by any number\nof templates (though it is not thread safe - that will be remedied soon).\n\nWhen you actually ``run`` a compiled ``Plywood`` object, you can pass in a dict\nof values that you want\n\n-------\nWHY!?!?\n-------\n\nThe main reason: I envisioned an HTML templating language that had python-like\nsyntax, and the options that are out there now (Haml, Coffekup, Jade) don't hit\nthe mark.\n\nPlain-Jane HTML? Sure, if you want. That is, I think, the best alternative to\nplywood! For that, use Jinja2.\n\nThe template languages that take an HTML-agnostic view (jinja2, django) is HTML\nmade *nastier* by inserting *additional markup*. I looked at Jade and Haml as\n\"yeah, you're getting there\", but they didn't nail it. Plus, have you tried\nwriting extensions for those systems? Ooof. Nasty stuff. Writing a plugin\nfor plywood is much easier, and since you can take some part in the parsing and\nruntime process, you can write some pretty hefty plugins!\n\nI'm unapologettically a DIY-er. I think that sometimes wheels just need\nre-inventing!\n\n-------\nLICENSE\n-------\n\n:Author: Colin T.A. Gray\n:Copyright: 2012 Colin T.A. Gray \n\nCopyright (c) 2012, Colin T.A. Gray\nAll rights reserved.\n\nSee LICENSE_ for more details (it's a simplified BSD license).\n\n.. _LICENSE: https://github.com/colinta/StrangeCase/blob/master/LICENSE\n.. _Modgrammar: http://pypi.python.org/pypi/modgrammar\n\n-------\nRELEASE\n-------\n\n::\n\n python setup.py sdist\n twine upload dist/*", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/colinta/plywood", "keywords": "plywood template language", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "plywood", "package_url": "https://pypi.org/project/plywood/", "platform": "any", "project_url": "https://pypi.org/project/plywood/", "project_urls": { "Homepage": "https://github.com/colinta/plywood" }, "release_url": "https://pypi.org/project/plywood/2.1.0/", "requires_dist": null, "requires_python": ">3.0.0", "summary": "A template language grammar inspired by the Python code aesthetic", "version": "2.1.0" }, "last_serial": 5579411, "releases": { "1.10.0": [ { "comment_text": "", "digests": { "md5": "f756f0d3530b131cfbbcabc2c9f2e55d", "sha256": "d3609406594f8dfff05403a2703b84f25ddfc5275c4e6da2bb8f4194157f9bcd" }, "downloads": -1, "filename": "plywood-1.10.0.tar.gz", "has_sig": false, "md5_digest": "f756f0d3530b131cfbbcabc2c9f2e55d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40267, "upload_time": "2014-07-14T18:54:59", "url": "https://files.pythonhosted.org/packages/c0/5d/cdd6d30e2882ebc7d81007fef078f6fdffdde02804b943c6334758793b4c/plywood-1.10.0.tar.gz" } ], "1.11.0": [ { "comment_text": "", "digests": { "md5": "41a2c0d0ea2399be156792033abbfcd6", "sha256": "81fec7518f0ebecea8a5ec57616316794b16c333e6f9f70d9455661f452ceb28" }, "downloads": -1, "filename": "plywood-1.11.0.tar.gz", "has_sig": false, "md5_digest": "41a2c0d0ea2399be156792033abbfcd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40828, "upload_time": "2016-10-18T19:17:15", "url": "https://files.pythonhosted.org/packages/5f/b4/d7a5dc0a9570a93ae0d236e4bdf61e4622b924ecd4444fca48b84cbf3a83/plywood-1.11.0.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "84e4424bd8312685875413dd3e49df7f", "sha256": "e5cdfff7e2f314136b37634364f81437487f603ae3f15cc869e010fc777931e9" }, "downloads": -1, "filename": "plywood-1.2.2.tar.gz", "has_sig": false, "md5_digest": "84e4424bd8312685875413dd3e49df7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33913, "upload_time": "2013-01-14T19:43:33", "url": "https://files.pythonhosted.org/packages/8a/59/f057a1565e5bdfc03dd24f11fbd416ecac29719237b4fe98b97a6764c1f1/plywood-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "063f4d3a6cda3400a4695e347461d573", "sha256": "78176531b0e90b4fbea36e635c3ebd228f9ab68625e6896bdc00fbe25fe5d936" }, "downloads": -1, "filename": "plywood-1.2.3.tar.gz", "has_sig": false, "md5_digest": "063f4d3a6cda3400a4695e347461d573", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33922, "upload_time": "2013-01-14T19:46:55", "url": "https://files.pythonhosted.org/packages/b0/3f/a0883951f7ad2656c68e298300b221fcc1b3c1b401ace70bc0a806ffda8a/plywood-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "07343a7c5493cbc103771ebca50e5669", "sha256": "e4f93e491e1b7f0f801fc3a1d5c84639a9107cfd8d0cfb7e5671af60536377ee" }, "downloads": -1, "filename": "plywood-1.2.4.tar.gz", "has_sig": false, "md5_digest": "07343a7c5493cbc103771ebca50e5669", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33913, "upload_time": "2013-01-14T19:53:11", "url": "https://files.pythonhosted.org/packages/a1/0e/13b8612dd2eed0de62d2fc549fdaa3a82cdb4b2915085aa6df005e2878c8/plywood-1.2.4.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "b6ad33debdf877df3d3643f96b89e025", "sha256": "186a6450fd3f966ff59e678f45257610552672d1ce383e5fe1cf79bdca39ecf6" }, "downloads": -1, "filename": "plywood-1.3.0.tar.gz", "has_sig": false, "md5_digest": "b6ad33debdf877df3d3643f96b89e025", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32581, "upload_time": "2013-01-15T03:56:57", "url": "https://files.pythonhosted.org/packages/08/b6/2a27670400edc5d75588031a3cde43685f674d8b75f42644d4dbb1ed0bdd/plywood-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "1d9d1c17821e5e3b9f86c23116e888dd", "sha256": "4b2f2a95f664b69cbf6505e5c11d0d10de553f812fa1eab39180ff0e75e27024" }, "downloads": -1, "filename": "plywood-1.4.0.tar.gz", "has_sig": false, "md5_digest": "1d9d1c17821e5e3b9f86c23116e888dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33143, "upload_time": "2013-01-16T16:38:19", "url": "https://files.pythonhosted.org/packages/70/4f/6180190ec8e86e4ff5ae65167e3c7ce584bedd0057bb00bdf4d6ccaa12cd/plywood-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "8b02f84a03a901754fff15bfd70a6486", "sha256": "2bde7bf0766c65d57231d715e21ad36730a9e873a94e503a1852d890054c634d" }, "downloads": -1, "filename": "plywood-1.5.0.tar.gz", "has_sig": false, "md5_digest": "8b02f84a03a901754fff15bfd70a6486", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35713, "upload_time": "2013-01-19T19:15:25", "url": "https://files.pythonhosted.org/packages/f8/f3/7557f243b205e8d53a92f7291d8946e3df4f5ddf8ec2781148a737780c97/plywood-1.5.0.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "8749b9400fb8b3a051dccf88aeba202e", "sha256": "cef02452dcab0b43889697893ff17af2630d85100c43dc315a5cf24a11520607" }, "downloads": -1, "filename": "plywood-1.5.1.tar.gz", "has_sig": false, "md5_digest": "8749b9400fb8b3a051dccf88aeba202e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35758, "upload_time": "2013-01-19T19:31:56", "url": "https://files.pythonhosted.org/packages/aa/33/1d392fb4f7efcd33db891ebd767071a211c90455658192c393072351369e/plywood-1.5.1.tar.gz" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "8617bba1b26cea60f83698d4abceb476", "sha256": "c7542cc06a51e2109ebe833eb76e5fab9d0b0aa51a77ca288fc17e4299e97c99" }, "downloads": -1, "filename": "plywood-1.5.2.tar.gz", "has_sig": false, "md5_digest": "8617bba1b26cea60f83698d4abceb476", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35635, "upload_time": "2013-01-19T19:59:39", "url": "https://files.pythonhosted.org/packages/da/94/8bdca81d6ced1cecd2f38d153fedae184d2341cf9b4e452c3d460eed1453/plywood-1.5.2.tar.gz" } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "5140b7643ed627bd63dce2d9923ac483", "sha256": "bf66de3b2f8b4eaebb3254acdf7080c674000f282213eeb37a7108e8b1801c48" }, "downloads": -1, "filename": "plywood-1.5.3.tar.gz", "has_sig": false, "md5_digest": "5140b7643ed627bd63dce2d9923ac483", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35740, "upload_time": "2013-01-19T20:46:30", "url": "https://files.pythonhosted.org/packages/a2/e3/6d0f0a201dd3ea519d3607564a1391009a03ab00b23fbd900ebec3ae7cc8/plywood-1.5.3.tar.gz" } ], "1.5.4": [ { "comment_text": "", "digests": { "md5": "226c0dc58972bd07b999ed2901698a51", "sha256": "74667b279755aa259ca28564568c7d8e33909fd651bc8f9a3eefc5c9e3b1ac9c" }, "downloads": -1, "filename": "plywood-1.5.4.tar.gz", "has_sig": false, "md5_digest": "226c0dc58972bd07b999ed2901698a51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35763, "upload_time": "2013-04-25T14:48:09", "url": "https://files.pythonhosted.org/packages/d7/db/c4e95f598969ad2f445a614ba5eb8b3fb958ae4a4341dae985e8baf4e8a5/plywood-1.5.4.tar.gz" } ], "1.5.5": [ { "comment_text": "", "digests": { "md5": "4c929233cbf9364b32afe6c664e775c3", "sha256": "54fd10368d9e9b4e99fd1e0911abc923c173289dc0083573dd9536d9cb3b67da" }, "downloads": -1, "filename": "plywood-1.5.5.tar.gz", "has_sig": false, "md5_digest": "4c929233cbf9364b32afe6c664e775c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35825, "upload_time": "2013-04-25T15:00:00", "url": "https://files.pythonhosted.org/packages/ec/19/a5ecda2ca0a6c46da371fd5a6265ecbb47adab00f334550dc2fa10f7360e/plywood-1.5.5.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "c964ae150d2c7d665d0a0ce133e59be3", "sha256": "e3a7397eae1f37ab5a727d8c91241f325afea52f804ea51dcd3ad9183fe544a8" }, "downloads": -1, "filename": "plywood-1.6.1.tar.gz", "has_sig": false, "md5_digest": "c964ae150d2c7d665d0a0ce133e59be3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36526, "upload_time": "2013-04-26T21:12:23", "url": "https://files.pythonhosted.org/packages/1c/57/fd9a6103b4802f7a035163e86ca0c707717289a83c09a1ff1d75a3f6af30/plywood-1.6.1.tar.gz" } ], "1.6.3": [ { "comment_text": "", "digests": { "md5": "4beb3c926145f4ea18528a4c2d8c8313", "sha256": "27c2525fadddf0db9b7ff07659d09807e9dbe0f16e8efa1e12513d75fcf854ac" }, "downloads": -1, "filename": "plywood-1.6.3.tar.gz", "has_sig": false, "md5_digest": "4beb3c926145f4ea18528a4c2d8c8313", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36794, "upload_time": "2013-04-27T00:21:32", "url": "https://files.pythonhosted.org/packages/f2/d9/faf307b768a0693ae7718b2e82587c501462042932b593c540ae0839c2e9/plywood-1.6.3.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "ed0db7efd841b7278932d5030533f779", "sha256": "9d16914417dd0833acb5a2127590aa9a3f1c47a999c3f70ce1d3e8f69d0d065a" }, "downloads": -1, "filename": "plywood-2.0.0.tar.gz", "has_sig": false, "md5_digest": "ed0db7efd841b7278932d5030533f779", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.0.0", "size": 39602, "upload_time": "2019-06-05T10:48:40", "url": "https://files.pythonhosted.org/packages/15/2b/f181a41958d81c1f9c2454041baa32529ed6506666db3ac986a9e6385076/plywood-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "8f17f926a49b391501538cecf2c261eb", "sha256": "0282a760f9a8c80a3ad6613e00cf0eec1bd0d8b0c8046f18e20ad9c99fb0e9a3" }, "downloads": -1, "filename": "plywood-2.0.1.tar.gz", "has_sig": false, "md5_digest": "8f17f926a49b391501538cecf2c261eb", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.0.0", "size": 41622, "upload_time": "2019-07-24T19:37:03", "url": "https://files.pythonhosted.org/packages/2c/9c/1f1787c9124fe7a1a1b28a2ef5936dd1d0ffebbd5d0d1d6b765accde1c7f/plywood-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "9d81a93028459d43dbafb13b5798ae24", "sha256": "188ce1eb564a2348440a215aba64e0c7c3971a92fe4ba047ad8e5b1d37744fad" }, "downloads": -1, "filename": "plywood-2.1.0.tar.gz", "has_sig": false, "md5_digest": "9d81a93028459d43dbafb13b5798ae24", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.0.0", "size": 42112, "upload_time": "2019-07-24T19:37:05", "url": "https://files.pythonhosted.org/packages/ce/8a/ebc5df114099a9f935e7475d0cda52a1b1cb5340df995bbd0d9d05e178a7/plywood-2.1.0.tar.gz" } ], "v0.0.0": [ { "comment_text": "", "digests": { "md5": "3c8506a75afe46f3aac05da702c62a30", "sha256": "d2a30802834103db1666713238f4ab6d2bf53f258f2995f1d24fa642dfcb4762" }, "downloads": -1, "filename": "plywood-v0.0.0.tar.gz", "has_sig": false, "md5_digest": "3c8506a75afe46f3aac05da702c62a30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2547, "upload_time": "2012-06-15T18:49:57", "url": "https://files.pythonhosted.org/packages/53/e3/bb0d3f14b727372067665efc1b35e80e77f0a5741ddcc2f5a9660aae3445/plywood-v0.0.0.tar.gz" } ], "v0.0.1": [ { "comment_text": "", "digests": { "md5": "b42129693188ed9f6000caa0ee137d01", "sha256": "f3bcfcd1e5cf737374de7d3ad4ddda27fd4e647858e76de32fce284cc6064e80" }, "downloads": -1, "filename": "plywood-v0.0.1.tar.gz", "has_sig": false, "md5_digest": "b42129693188ed9f6000caa0ee137d01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3504, "upload_time": "2012-06-15T19:15:20", "url": "https://files.pythonhosted.org/packages/37/28/bd225af82c27fbdeda07f356d5d9d02289e066cbcc3fd57334f13ae66bf9/plywood-v0.0.1.tar.gz" } ], "v0.0.2": [ { "comment_text": "", "digests": { "md5": "1910c945f91a600c57463659f1387f5f", "sha256": "c41f11a6510f41898a9671c79382a89830af3d4923416d9b7baffbdfef354fa2" }, "downloads": -1, "filename": "plywood-v0.0.2.tar.gz", "has_sig": false, "md5_digest": "1910c945f91a600c57463659f1387f5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7338, "upload_time": "2012-08-07T22:20:37", "url": "https://files.pythonhosted.org/packages/f3/ac/a7b7cea2364de21ff08109b4b2dc4789532f312e4fe55f1020d30f2c36ce/plywood-v0.0.2.tar.gz" } ], "v0.0.3": [ { "comment_text": "", "digests": { "md5": "d3dd0a8df22adc829c4d3ad018e900a3", "sha256": "3fa9d0784fffb53adc7884cf1624c60381191ede6ea1cfb4dec61498abff5161" }, "downloads": -1, "filename": "plywood-v0.0.3.tar.gz", "has_sig": false, "md5_digest": "d3dd0a8df22adc829c4d3ad018e900a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17189, "upload_time": "2013-01-10T01:09:47", "url": "https://files.pythonhosted.org/packages/c0/23/7de4ed7f462085500ffa48b7842ca62df8c35a91a34f03a325b7e064f389/plywood-v0.0.3.tar.gz" } ], "v1.1.2": [ { "comment_text": "", "digests": { "md5": "fc63d8f7e3620ce1c51a1772804614ca", "sha256": "5dbdbed112c14b62bc778ad19ac7a019f33a4feedc71d5e11ee7e8a73a190d20" }, "downloads": -1, "filename": "plywood-v1.1.2.tar.gz", "has_sig": false, "md5_digest": "fc63d8f7e3620ce1c51a1772804614ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33810, "upload_time": "2013-01-14T13:10:32", "url": "https://files.pythonhosted.org/packages/1e/0b/75967ea36740fd2659a07677dfdb87df942b3dc2d2179bc82a48ad689fe3/plywood-v1.1.2.tar.gz" } ], "v1.2.0": [ { "comment_text": "", "digests": { "md5": "560bb84d70a588d2106fe15a161cc6cc", "sha256": "a7fbf0c98e9d66527f8d0b0fae8b529779703cdd6683fe6d901666827411290b" }, "downloads": -1, "filename": "plywood-v1.2.0.tar.gz", "has_sig": false, "md5_digest": "560bb84d70a588d2106fe15a161cc6cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33948, "upload_time": "2013-01-14T18:37:30", "url": "https://files.pythonhosted.org/packages/fc/3a/d4e93d001be4c691ef456ac5849288a0a5fde72b919d92a6ccda899b4df6/plywood-v1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9d81a93028459d43dbafb13b5798ae24", "sha256": "188ce1eb564a2348440a215aba64e0c7c3971a92fe4ba047ad8e5b1d37744fad" }, "downloads": -1, "filename": "plywood-2.1.0.tar.gz", "has_sig": false, "md5_digest": "9d81a93028459d43dbafb13b5798ae24", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.0.0", "size": 42112, "upload_time": "2019-07-24T19:37:05", "url": "https://files.pythonhosted.org/packages/ce/8a/ebc5df114099a9f935e7475d0cda52a1b1cb5340df995bbd0d9d05e178a7/plywood-2.1.0.tar.gz" } ] }