{ "info": { "author": "Hidde Bultsma", "author_email": "me@redodo.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet" ], "description": "Tortilla\n========\n\n\n|Build Status| |Coverage| |Docs| |Version| |License|\n\n.. |Build Status| image:: https://img.shields.io/travis/tortilla/tortilla.svg?style=flat\n :target: https://travis-ci.org/tortilla/tortilla\n :alt: Build Status\n.. |Coverage| image:: https://img.shields.io/coveralls/tortilla/tortilla.svg?style=flat\n :target: https://coveralls.io/r/tortilla/tortilla\n :alt: Coverage\n.. |Docs| image:: https://readthedocs.org/projects/tortilla/badge/?version=latest&style=flat\n :target: https://tortilla.readthedocs.org/en/latest/\n :alt: Docs\n.. |Version| image:: https://img.shields.io/pypi/v/tortilla.svg?style=flat\n :target: https://pypi.python.org/pypi/tortilla\n :alt: Version\n.. |License| image:: https://img.shields.io/pypi/l/tortilla.svg?style=flat\n :target: https://github.com/tortilla/tortilla/blob/master/LICENSE\n :alt: License\n\n\n*Wrapping web APIs made easy.*\n\n\nInstallation via PIP:\n\n.. code-block:: text\n\n pip install tortilla\n\n\nQuick usage overview:\n\n.. code-block:: python\n\n >>> import tortilla\n >>> github = tortilla.wrap('https://api.github.com')\n >>> user = github.users.get('octocat')\n >>> user.location\n u'San Francisco'\n\n\nThe Basics\n~~~~~~~~~~\n\nTortilla uses a bit of magic to wrap APIs. Whenever you get or call an\nattribute of a wrapper, the URL is appended by that attribute's name or\nmethod parameter. Let's say we have the following code:\n\n.. code-block:: python\n\n id, count = 71, 20\n api = tortilla.wrap('https://api.example.org')\n api.video(id).comments.get(count)\n\nEvery attribute and method call represents a part of the URL:\n\n.. code-block:: text\n\n api -> https://api.example.org\n .video -> /video\n (id) -> /71\n .comments -> /comments\n .get(count) -> /20\n Final URL -> https://api.example.org/video/71/comments/20\n\nThe last part of the chain (``.get()``) executes the request. It also\n(optionally) appends one last part to the URL. Which allows you to do\nstuff like this:\n\n.. code-block:: python\n\n api.video.get(id)\n # instead of this\n api.video(id).get()\n\nSo to summarize, getting attributes is used to define static parts of a\nURL and calling them is used to define dynamic parts of a URL.\n\nOnce you've chained everything together, Tortilla will execute the\nrequest and parse the response for you.\n\nAt the moment, Tortilla only accepts JSON-formatted responses.\nSupporting more formats is on the roadmap for future Tortilla versions.\n\nThe parsed response will be *bunchified* which makes dictionary keys\naccessible through attributes. So, say we get the following JSON\nresponse for the user 'john':\n\n.. code-block:: json\n\n {\"name\": \"John Doe\"}\n\nIf we request this with an already created wrapper, we can access the\nresponse data through attributes:\n\n.. code-block:: python\n\n >>> user = api.users.get('john')\n >>> user.name\n u'John Doe'\n\n\nHeaders\n~~~~~~~\n\nA common requirement for accessing APIs is providing authentication\ndata. This usually has to be described in the headers of each request.\nTortilla makes it very easy for you to describe those recurring headers:\n\n.. code-block:: python\n\n api.config.headers.token = 'secret authentication token'\n\nYou can also define custom headers per request:\n\n.. code-block:: python\n\n api.endpoint.get(headers={'this': 'that'})\n\nThese headers will be appended to the existing headers of the wrapper.\n\n\nParameters\n~~~~~~~~~~\n\nURL parameters can be defined per request in the ``params`` option:\n\n.. code-block:: python\n\n api.search.get(params={'q': 'search query'})\n\n\nCaching\n~~~~~~~\n\nSome APIs have a limit on the amount of requests you can make. In these\ncases, caching can be very helpful. You can activate this with the\n``cache_lifetime`` parameter:\n\n.. code-block:: python\n\n api = tortilla.wrap('https://api.example.org', cache_lifetime=100)\n\nAll the requests made on this wrapper will now be cached for 100\nseconds. If you want to ignore the cache in a specific situation, you\ncan use the ``ignore_cache`` parameter:\n\n.. code-block:: python\n\n api.special.request.get(ignore_cache=True)\n\nThe response will now be reloaded.\n\n\nURL Extensions\n~~~~~~~~~~~~~~\n\nAPIs like Twitter's require an extension in the URL that specifies the\nresponse format. This can be defined in the ``extension`` parameter:\n\n.. code-block:: python\n\n api = tortilla.wrap('https://api.twitter.com/1.1', extension='json')\n\nThis option can be overridden with every request or subwrap:\n\n.. code-block:: python\n\n api.special.endpoint.extension = 'xml'\n api.special.endpoint.get(extension='xml')\n\n\nURL Suffix\n~~~~~~~~~~\n\nSome APIs uses a trailling slash at the end of URLs like in example below:\n\n.. code-block:: text\n\n https://api.example.org/resource/\n\nYou can add the trailling slash with ``suffix=\"/\"`` argument when wrapping\nthe API or getting the URL with ``.url(suffix=\"/\")`` method:\n\n.. code-block:: python\n\n api = tortilla.wrap('https://api.example.org', suffix=\"/\")\n api.video(71).comments.url()\n\nWill return the following URL:\n\n.. code-block:: text\n\n api -> https://api.example.org\n .video -> /video\n (id) -> /71/\n Final URL -> https://api.example.org/video/71/\n\n\nDebugging\n~~~~~~~~~\n\nActivating debug mode can be done with the ``debug`` parameter:\n\n.. code-block:: python\n\n api.debug = True\n # OR\n api = tortilla.wrap('https://api.example.org', debug=True)\n\nYou can override the ``debug`` parameter per request:\n\n.. code-block:: python\n\n api.stuff.get(debug=False)\n api.other.stuff.get(debug=True)\n\nAn example using the GitHub API:\n\n.. code-block:: python\n\n >>> user = github.users.get('octocat')\n Executing GET request:\n URL: https://api.github.com/users/octocat\n headers: {}\n query: None\n data: None\n\n Got 200 OK:\n {u'public_repos': 5, u'site_admin': ...\n\n\n*Enjoy your data.*\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tortilla/tortilla", "keywords": "api wrapper", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "tortilla", "package_url": "https://pypi.org/project/tortilla/", "platform": "", "project_url": "https://pypi.org/project/tortilla/", "project_urls": { "Homepage": "https://github.com/tortilla/tortilla" }, "release_url": "https://pypi.org/project/tortilla/0.5.0/", "requires_dist": [ "colorama", "requests", "formats", "six", "httpretty" ], "requires_python": "", "summary": "Wrapping web APIs made easy.", "version": "0.5.0" }, "last_serial": 3760839, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "41e694926f7159b18fa5d95ca017ba50", "sha256": "7c40e26ce379a5cc9d6b8b1a477f3b6df7168d896f211a4425409ed2a7fe4bf8" }, "downloads": -1, "filename": "tortilla-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "41e694926f7159b18fa5d95ca017ba50", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9266, "upload_time": "2014-11-28T13:06:13", "url": "https://files.pythonhosted.org/packages/8c/35/dce01a46bb00230547414f1b2ae4b7faf187bbdb3e9fef864ee8de6fd14c/tortilla-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3dada0dc2da00b1a3e331a91e8faa650", "sha256": "92d879b5d2bc4aef0219698cbb71db05e5ad9cbd47b4178c2a63e68ee653db42" }, "downloads": -1, "filename": "tortilla-0.1.0.tar.gz", "has_sig": false, "md5_digest": "3dada0dc2da00b1a3e331a91e8faa650", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6267, "upload_time": "2014-11-28T13:06:16", "url": "https://files.pythonhosted.org/packages/6c/bd/b347011440268623f96526e0ceb8c32b2fbb29db9f3a302230f7c7b3e930/tortilla-0.1.0.tar.gz" } ], "0.1.0.dev1": [ { "comment_text": "", "digests": { "md5": "d4bd389773fe2376e2e1b99501279ba7", "sha256": "2aa06076d146e51b4712cc7c2547ceaa85b9842fb3df50492f0ab088cb57d14a" }, "downloads": -1, "filename": "tortilla-0.1.0.dev1-py2-none-any.whl", "has_sig": false, "md5_digest": "d4bd389773fe2376e2e1b99501279ba7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4999, "upload_time": "2014-11-20T09:50:20", "url": "https://files.pythonhosted.org/packages/9c/80/859c4593fd496e34d18ee3d41d99a5a441e49574d5f4920ebc5dbb47d307/tortilla-0.1.0.dev1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1bbfbe7ff2e340d33ece268aec3ef23", "sha256": "5e99f82b1c10e295970cbcb57a6e9c5290fda0b621b69af9fab7717d4b9f8834" }, "downloads": -1, "filename": "tortilla-0.1.0.dev1.tar.gz", "has_sig": false, "md5_digest": "d1bbfbe7ff2e340d33ece268aec3ef23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3220, "upload_time": "2014-11-20T09:50:22", "url": "https://files.pythonhosted.org/packages/15/3f/ab787b8473fd4d571ff9d2ede315674cd089a154d41665580c6131a0e734/tortilla-0.1.0.dev1.tar.gz" } ], "0.1.0.dev2": [ { "comment_text": "", "digests": { "md5": "48543b53989c8f7fc2a61e84d6388d71", "sha256": "17ad06cef61fc23eef49a818c35342f97eb80bac92dc8085e142ff2b9c0f664a" }, "downloads": -1, "filename": "tortilla-0.1.0.dev2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48543b53989c8f7fc2a61e84d6388d71", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6318, "upload_time": "2014-11-25T12:49:29", "url": "https://files.pythonhosted.org/packages/1c/47/60b5c3d34716366ad57c0572a1ebe187ca3d232f4a9f470dba97cb67bf27/tortilla-0.1.0.dev2-py2.py3-none-any.whl" } ], "0.1.0.dev3": [ { "comment_text": "", "digests": { "md5": "6a0a8c8b75dd05bdb7db92862040f50e", "sha256": "fce92c2701ad069f03cc9610a23f2b9d9743d363747d193754ae5fb52b5e7d7b" }, "downloads": -1, "filename": "tortilla-0.1.0.dev3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6a0a8c8b75dd05bdb7db92862040f50e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8169, "upload_time": "2014-11-27T08:38:24", "url": "https://files.pythonhosted.org/packages/f8/13/549b3eee7702aab912d5350f1f3546c848b52f7ca60545f2f73de33d20cf/tortilla-0.1.0.dev3-py2.py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "8b1bff1e32ef85d7bdf1e591c83d6ac8", "sha256": "e1b3a8ae60aca985cc89aa0e1361b558576b035851345f328560b8cd16a20bf6" }, "downloads": -1, "filename": "tortilla-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b1bff1e32ef85d7bdf1e591c83d6ac8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10369, "upload_time": "2014-12-03T09:28:20", "url": "https://files.pythonhosted.org/packages/2f/2d/49c5e8c481c2f29ebf1450be6d8a1e708594f4060d4347f6aad6ca374763/tortilla-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e56c479ed8770ae500f528202e548a61", "sha256": "75e762d8a54697f973943d1864f1167eefa3318a8ccb879ffc516e6af9f560ec" }, "downloads": -1, "filename": "tortilla-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e56c479ed8770ae500f528202e548a61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6993, "upload_time": "2014-12-03T09:28:23", "url": "https://files.pythonhosted.org/packages/f1/13/a31e2b824a3b754dcda1062caf19cabb4a23ae5f91482cb036b25bdc00ce/tortilla-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5e8883b3e8929e9570dcbde5cfecad44", "sha256": "c5423a71ab30e5a07bebbe89fe288de25831f7544ac592d1a7d7fcebbec88f15" }, "downloads": -1, "filename": "tortilla-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5e8883b3e8929e9570dcbde5cfecad44", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10537, "upload_time": "2014-12-07T14:03:39", "url": "https://files.pythonhosted.org/packages/00/df/a8c0ee705729c5293ac0bc5f5abf7886531a664ca36734433b5f370cd857/tortilla-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df6cbf0503e359c3b76736ceb5d2f986", "sha256": "71f00bdb6e91b0d62739efb55f2a60caa1f6b8a3cc1409b5809bd10e238a7184" }, "downloads": -1, "filename": "tortilla-0.2.0.tar.gz", "has_sig": false, "md5_digest": "df6cbf0503e359c3b76736ceb5d2f986", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7286, "upload_time": "2014-12-07T14:03:43", "url": "https://files.pythonhosted.org/packages/5c/b2/7ab476d9be8b2ab59bff86497224e151e16aceb7ab32c69fc7f244a8f634/tortilla-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "efda1704604ceb220f2442e5c805be22", "sha256": "386197894f9c79ea28621bc00388c62de95eabec39cc354266a1f114a2cc846b" }, "downloads": -1, "filename": "tortilla-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "efda1704604ceb220f2442e5c805be22", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10533, "upload_time": "2014-12-12T10:38:12", "url": "https://files.pythonhosted.org/packages/30/1e/8ab3dfb78e4687540fcb118ecbd2040a0c4d4d22d2b9341cac4453406088/tortilla-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c51d25f316f88497c9fb330175c4ebcf", "sha256": "0d64620e73b258e0b0397328b589279110a72ca5ce8f976805366f4fe4796959" }, "downloads": -1, "filename": "tortilla-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c51d25f316f88497c9fb330175c4ebcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7127, "upload_time": "2014-12-12T10:38:15", "url": "https://files.pythonhosted.org/packages/e5/81/85e7323dbf8e65197f9b6539390ec06c953a601cf718e8822ffc90c3e20f/tortilla-0.3.0.tar.gz" } ], "0.3.0b1": [ { "comment_text": "", "digests": { "md5": "aaeab8dd3653082fb557d59177ef8838", "sha256": "3d61be289e725998e9a97d892f0399491c3d5118cfb6bc582cf48f388aafdc7f" }, "downloads": -1, "filename": "tortilla-0.3.0b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "aaeab8dd3653082fb557d59177ef8838", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10801, "upload_time": "2015-01-29T07:49:22", "url": "https://files.pythonhosted.org/packages/bf/b3/8d37f7bb9c803b2df6138ec4d6f055f716cb7f34e24e4ea16fb69392c747/tortilla-0.3.0b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa71e47e7ddcda36fd4d68d99e96daa8", "sha256": "358182fa47a662ed9b8f631b90af3f69d70aa7e67f52ff88fd087bfab3c99583" }, "downloads": -1, "filename": "tortilla-0.3.0b1.tar.gz", "has_sig": false, "md5_digest": "fa71e47e7ddcda36fd4d68d99e96daa8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7371, "upload_time": "2015-01-29T07:49:25", "url": "https://files.pythonhosted.org/packages/49/22/bca2dc32271866702009a7b7d83a8ae912a31588d98e2b02b139586b67bf/tortilla-0.3.0b1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "5fc842553d390b603c47f1bf8880fb73", "sha256": "2b1a41b9677738395de2d0813c6fd961ef3ec9b28672e6e06b0d5888e7dbd058" }, "downloads": -1, "filename": "tortilla-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5fc842553d390b603c47f1bf8880fb73", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12301, "upload_time": "2015-02-11T21:16:17", "url": "https://files.pythonhosted.org/packages/58/df/6c985f045d0169ce892e047e540b32c567fda22e2b90a02f3247f209ec26/tortilla-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aa0c7bab7ea60133693a03f80323ba65", "sha256": "3b120612079895c57839fbb808aeeb3c5872e0e4b45d9a5164e36e84ca9ca8c7" }, "downloads": -1, "filename": "tortilla-0.4.0.tar.gz", "has_sig": false, "md5_digest": "aa0c7bab7ea60133693a03f80323ba65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8724, "upload_time": "2015-02-11T21:16:20", "url": "https://files.pythonhosted.org/packages/fd/fe/d7a959cf3f13e0723d6e9efe15ff6566677b604803f1f85902316c43fdba/tortilla-0.4.0.tar.gz" } ], "0.4.0b1": [ { "comment_text": "", "digests": { "md5": "e1b7b71c4e21b2f1cad9ecc20d6aa232", "sha256": "69e8ee2108f66db74eda2f477b47f990e4fe2792d68eda15f0a9ebc0e4b52235" }, "downloads": -1, "filename": "tortilla-0.4.0b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e1b7b71c4e21b2f1cad9ecc20d6aa232", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10798, "upload_time": "2015-01-29T07:57:03", "url": "https://files.pythonhosted.org/packages/dc/50/447ad2f61f77cb5eb45c80bae808cde9a999e722f16e03d6e6fab82bdcfd/tortilla-0.4.0b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a238e0681ec35d40af93bbd37f070684", "sha256": "3b8c0ecac5988304fd2c15f17d68d7521a413282691258457e5768986ea3a4af" }, "downloads": -1, "filename": "tortilla-0.4.0b1.tar.gz", "has_sig": false, "md5_digest": "a238e0681ec35d40af93bbd37f070684", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7356, "upload_time": "2015-01-29T07:57:05", "url": "https://files.pythonhosted.org/packages/3c/12/a1ca08db7aa526f5626b32b76061380eca96f6b214f08447a960729a417d/tortilla-0.4.0b1.tar.gz" } ], "0.4.0b2": [ { "comment_text": "", "digests": { "md5": "48b70ef3089749963ed2b663fc65c93d", "sha256": "12d798f41700b2a367cf7725bd27c50b5b0270b615fb66653ce1be0a46ddf02b" }, "downloads": -1, "filename": "tortilla-0.4.0b2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "48b70ef3089749963ed2b663fc65c93d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12312, "upload_time": "2015-02-07T10:24:51", "url": "https://files.pythonhosted.org/packages/dd/68/0d055fd586db13915d4591d86815080599ef8da14868e5c59d4877e7509c/tortilla-0.4.0b2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f52945423d4c036f4de6327dad8ea051", "sha256": "bcecd8006396ffdcae207eb13e83e89bb30fdfbb685baa08c3d525e54d8011c2" }, "downloads": -1, "filename": "tortilla-0.4.0b2.tar.gz", "has_sig": false, "md5_digest": "f52945423d4c036f4de6327dad8ea051", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8556, "upload_time": "2015-02-07T10:24:58", "url": "https://files.pythonhosted.org/packages/ba/ec/d09dc8c1144338cfd47a95f5ea554b2951c3c09b359bc5970f2eb6480ee7/tortilla-0.4.0b2.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "812c41c11501c929fd6fb97e6a896140", "sha256": "f496f89126da62c85b73a48e1cc736244afaa352e0e6402473c9cdaf1b19b5ad" }, "downloads": -1, "filename": "tortilla-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "812c41c11501c929fd6fb97e6a896140", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12412, "upload_time": "2015-04-29T07:04:41", "url": "https://files.pythonhosted.org/packages/96/ce/2877555c496335dbf8f2ed638e273b0ab8b73861327986963dcde7310cda/tortilla-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e45e3acdc78bfa8c4e0be27e3eb1633e", "sha256": "0026d374b927b03f559e6923103e6747c98d0fa7de827e469c06c3f06f1c42ef" }, "downloads": -1, "filename": "tortilla-0.4.1.tar.gz", "has_sig": false, "md5_digest": "e45e3acdc78bfa8c4e0be27e3eb1633e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8675, "upload_time": "2015-04-29T07:04:46", "url": "https://files.pythonhosted.org/packages/8c/38/839041bc6ca875872852eefa61b696c5680d408bde4cf48d419e49e9fddf/tortilla-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "a8483d9595db4bae1696dac4b85ee93c", "sha256": "dc1b37fc1f45fdca2df3ad97b69c88d6a62150da263d61e7403bc1240f97e6f3" }, "downloads": -1, "filename": "tortilla-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a8483d9595db4bae1696dac4b85ee93c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12106, "upload_time": "2016-05-18T18:41:49", "url": "https://files.pythonhosted.org/packages/5a/ef/57b9c201f50ea737bb92ba9b2d953af847999740fcc7ffbfa28dc2c98fb1/tortilla-0.4.2-py2.py3-none-any.whl" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "4fadca3f3f5deb8548d471042ed1cc78", "sha256": "3bb909f53b6ea62e7fb0b2eabfd879cdffab4d982f1da066f965fa6382899aab" }, "downloads": -1, "filename": "tortilla-0.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4fadca3f3f5deb8548d471042ed1cc78", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9527, "upload_time": "2018-04-06T09:39:21", "url": "https://files.pythonhosted.org/packages/0e/71/d6e16eb31d7fb6194674f390c3145d0b9a4287e7f9445f491c816841ff1c/tortilla-0.4.3-py2.py3-none-any.whl" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "0038735dd24781a0e3f0945a908a6c14", "sha256": "0c9dc6b25a6465f7f76448e2d2800d9dac4830b1c5ea225299b310bcb85b0ca9" }, "downloads": -1, "filename": "tortilla-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0038735dd24781a0e3f0945a908a6c14", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10296, "upload_time": "2018-04-13T06:32:21", "url": "https://files.pythonhosted.org/packages/01/6e/dbb861d33bf0e849ec1a1c41c4746ec62416f1caeb88f9d5dd9a82ff7fe8/tortilla-0.5.0-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0038735dd24781a0e3f0945a908a6c14", "sha256": "0c9dc6b25a6465f7f76448e2d2800d9dac4830b1c5ea225299b310bcb85b0ca9" }, "downloads": -1, "filename": "tortilla-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0038735dd24781a0e3f0945a908a6c14", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10296, "upload_time": "2018-04-13T06:32:21", "url": "https://files.pythonhosted.org/packages/01/6e/dbb861d33bf0e849ec1a1c41c4746ec62416f1caeb88f9d5dd9a82ff7fe8/tortilla-0.5.0-py2.py3-none-any.whl" } ] }