{ "info": { "author": "Andrey Kislyuk", "author_email": "kislyuk@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "ensure: Literate assertions in Python\n=====================================\n*ensure* is a set of simple assertion helpers that let you write more expressive, literate, concise, and readable\nPythonic code for validating conditions. It's inspired by `should.js `_,\n`expect.js `_, and builds on top of the\n`unittest/JUnit assert helpers `_.\n\nIf you use Python 3, you can use *ensure* to enforce your **function signature annotations**: see\n`PEP 3107 `_ and the\n@ensure_annotations decorator below.\n\nBecause *ensure* is fast, is a standalone library (not part of a test framework), doesn't monkey-patch anything or use DSLs,\nand doesn't use the assert statement (which is liable to be turned off with the ``-O`` flag), it can be used to validate\nconditions in production code, not just for testing (though it certainly works as a BDD test utility library).\n\nAside from better looking code, a big reason to use *ensure* is that it provides more consistent, readable, and\ninformative error messages when things go wrong. See\n`Motivation and Goals `_ for more.\n\nInstallation\n------------\n::\n\n pip install ensure\n\nSynopsis\n--------\n\n.. code-block:: python\n\n from ensure import ensure\n\n ensure(1).is_an(int)\n ensure({1: {2: 3}}).equals({1: {2: 3}}).also.contains(1)\n ensure({1: \"a\"}).has_key(1).whose_value.has_length(1)\n ensure.each_of([{1: 2}, {3: 4}]).is_a(dict).of(int).to(int)\n ensure(int).called_with(\"1100101\", base=2).returns(101)\n ensure(dict).called_with(1, 2).raises(TypeError)\n check(1).is_a(float).or_raise(Exception, \"An error happened: {msg}. See http://example.com for more information.\")\n\nIn Python 3:\n\n.. code-block:: python\n\n from ensure import ensure_annotations\n\n @ensure_annotations\n def f(x: int, y: float) -> float:\n return x+y\n\nSee **More examples** below.\n\nNotes\n~~~~~\nThe ``ensure`` module exports the ``Ensure`` class and its convenience instance ``ensure``. Instances of the class are\ncallable, and the call will reset the contents that the instance is inspecting, so you can reuse it for many checks (as\nseen above).\n\nThe class raises ``EnsureError`` (a subclass of ``AssertionError``) by default.\n\nThere are several ways to **chain clauses**, depending on the grammatical context: ``.also``, ``.which``, and\n``.whose_value`` are available per examples below.\n\nRaising custom exceptions\n~~~~~~~~~~~~~~~~~~~~~~~~~\nYou can pass a callable or exception class as the ``error_factory`` keyword argument to ``Ensure()``, or you can use the\n``Check`` class or its convenience instance ``check()``. This class behaves like ``Ensure``, but does not raise errors\nimmediately. It saves them and chains the methods ``otherwise()``, ``or_raise()`` and ``or_call()`` to the end of the\nclauses.\n\n.. code-block:: python\n\n from ensure import check\n\n check(\"w00t\").is_an(int).or_raise(Exception)\n check(1).is_a(float).or_raise(Exception, \"An error happened: {msg}. See http://example.com for more information.\")\n check(\"w00t\").is_an(int).or_raise(MyException, 1, 2, x=3, y=4)\n\n.. code-block:: python\n\n def build_fancy_exception(original_exception):\n return MyException(original_exception)\n\n check(\"w00t\").is_an(int).otherwise(build_fancy_exception)\n check(\"w00t\").is_an(int).or_call(build_fancy_exception, *args, **kwargs)\n\nMore examples\n-------------\n\n.. code-block:: python\n\n ensure({1: {2: 3}}).is_not_equal_to({1: {2: 4}})\n ensure(True).does_not_equal(False)\n ensure(1).is_in(range(10))\n ensure(True).is_a(bool)\n ensure(True).is_(True)\n ensure(True).is_not(False)\n\n.. code-block:: python\n\n ensure([\"train\", \"boat\"]).contains_one_of([\"train\"])\n ensure(range(8)).contains(5)\n ensure([\"spam\"]).contains_none_of([\"eggs\", \"ham\"])\n ensure(\"abcdef\").contains_some_of(\"abcxyz\")\n ensure(\"abcdef\").contains_one_or_more_of(\"abcxyz\")\n ensure(\"abcdef\").contains_all_of(\"acf\")\n ensure(\"abcd\").contains_only(\"dcba\")\n ensure(\"abc\").does_not_contain(\"xyz\")\n ensure([1, 2, 3]).contains_no(float)\n ensure(1).is_in(range(10))\n ensure(\"z\").is_not_in(\"abc\")\n ensure(None).is_not_in([])\n ensure(dict).has_attribute('__contains__').which.is_callable()\n ensure({1: \"a\", 2: \"b\", 3: \"c\"}).has_keys([1, 2])\n ensure({1: \"a\", 2: \"b\"}).has_only_keys([1, 2])\n\n.. code-block:: python\n\n ensure(1).is_true()\n ensure(0).is_false()\n ensure(None).is_none()\n ensure(1).is_not_none()\n ensure(\"\").is_empty()\n ensure([1, 2]).is_nonempty().also.has_length(2)\n ensure(1.1).is_a(float).which.equals(1.10)\n ensure(KeyError()).is_an(Exception)\n ensure({x: str(x) for x in range(5)}).is_a_nonempty(dict).of(int).to(str)\n ensure({}).is_an_empty(dict)\n ensure(None).is_not_a(list)\n\n.. code-block:: python\n\n import re\n ensure(\"abc\").matches(\"A\", flags=re.IGNORECASE)\n ensure([1, 2, 3]).is_an_iterable_of(int)\n ensure([1, 2, 3]).is_a_list_of(int)\n ensure({1, 2, 3}).is_a_set_of(int)\n ensure({1: 2, 3: 4}).is_a_mapping_of(int).to(int)\n ensure({1: 2, 3: 4}).is_a_dict_of(int).to(int)\n ensure({1: 2, 3: 4}).is_a(dict).of(int).to(int)\n ensure(10**100).is_numeric()\n ensure(lambda: 1).is_callable()\n ensure(\"abc\").has_length(3)\n ensure(\"abc\").has_length(min=3, max=8)\n ensure(1).is_greater_than(0)\n ensure(1).exceeds(0)\n ensure(0).is_less_than(1)\n ensure(1).is_greater_than_or_equal_to(1)\n ensure(0).is_less_than_or_equal_to(0)\n ensure(1).is_positive()\n ensure(1.1).is_a_positive(float)\n ensure(-1).is_negative()\n ensure(-1).is_a_negative(int)\n ensure(0).is_nonnegative()\n ensure(0).is_a_nonnegative(int)\n ensure([1,2,3]).is_sorted()\n\n.. code-block:: python\n\n ensure(\"{x} {y}\".format).called_with(x=1, y=2).equals(\"1 2\")\n ensure(int).called_with(\"1100101\", base=2).returns(101)\n ensure(\"{x} {y}\".format).with_args(x=1, y=2).is_a(str)\n with ensure().raises(ZeroDivisionError):\n 1/0\n with ensure().raises_regex(NameError, \"'w00t' is not defined\"):\n w00t\n\nSee `complete API documentation `_.\n\nEnforcing function annotations\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nUse the ``@ensure_annotations`` decorator to enforce\n`function signature annotations `_:\n\n.. code-block:: python\n\n from ensure import ensure_annotations\n\n @ensure_annotations\n def f(x: int, y: float) -> float:\n return x+y\n\n f(1, 2.3)\n\n::\n\n >>> 3.3\n\n.. code-block:: python\n\n f(1, 2)\n\n::\n\n >>> ensure.EnsureError: Argument y to does not match annotation type \n\nCompare this runtime type checking to compile-time checking in `Mypy `_ and `type hinting in PEP 484/Python 3.5+ `_.\n\nMotivation and goals\n~~~~~~~~~~~~~~~~~~~~\nMany BDD assertion libraries suffer from an excess of magic, or end up having to construct statements that don't parse\nas English easily. *ensure* is deliberately kept simple to avoid succumbing to either issue. The\n`source `_ is easy to read and extend.\n\nWork remains to make error messages raised by *ensure* even more readable, informative, and consistent. Going forward,\nability to introspect exceptions to extract structured error information will be a major development\nfocus. You will be in control of how much information is presented in each error, which context it's thrown from, and\nwhat introspection capabilities the exception object will have.\n\nThe original use case for *ensure* is as an I/O validation helper for API endpoints, where the client needs to be sent a\nvery clear message about what went wrong, some structured information (such as an HTTP error code and machine-readable\nreference to a failing element) may need to be added, and some information may need to be hidden from the client. To\nfurther improve on that, we will work on better error translation, marshalling, message formatting, and schema\nvalidation helpers.\n\nAuthors\n-------\n* Andrey Kislyuk\n* Harrison Metzger\n\nLinks\n-----\n* `Project home page (GitHub) `_\n* `Documentation `_\n* `Package distribution (PyPI) `_\n\nBugs\n~~~~\nPlease report bugs, issues, feature requests, etc. on `GitHub `_.\n\nLicense\n-------\nLicensed under the terms of the `Apache License, Version 2.0 `_.\n\n.. image:: https://github.com/kislyuk/ensure/workflows/CI/badge.svg\n :target: https://github.com/kislyuk/ensure/actions\n.. image:: https://codecov.io/github/kislyuk/ensure/coverage.svg?branch=master\n :target: https://codecov.io/github/kislyuk/ensure?branch=master\n.. image:: https://img.shields.io/pypi/v/ensure.svg\n :target: https://pypi.python.org/pypi/ensure\n.. image:: https://img.shields.io/pypi/l/ensure.svg\n :target: https://pypi.python.org/pypi/ensure\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/kislyuk/ensure", "keywords": "", "license": "Apache Software License", "maintainer": "", "maintainer_email": "", "name": "ensure", "package_url": "https://pypi.org/project/ensure/", "platform": "MacOS X", "project_url": "https://pypi.org/project/ensure/", "project_urls": { "Homepage": "https://github.com/kislyuk/ensure" }, "release_url": "https://pypi.org/project/ensure/1.0.2/", "requires_dist": [ "six (>=1.11.0)", "coverage ; extra == 'test'", "flake8 ; extra == 'test'" ], "requires_python": ">=3.5", "summary": "Literate BDD assertions in Python with no magic", "version": "1.0.2", "yanked": false, "yanked_reason": null }, "last_serial": 12216573, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d6f21ffc87cdc40b42c17e629ca7f57b", "sha256": "9c19b2945c0bc157adbc503211e1f7abd6a2cf0fdcb4e5da251bed30298dd321" }, "downloads": -1, "filename": "ensure-0.0.1.tar.gz", "has_sig": true, "md5_digest": "d6f21ffc87cdc40b42c17e629ca7f57b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5535, "upload_time": "2013-10-14T06:18:11", "upload_time_iso_8601": "2013-10-14T06:18:11.831634Z", "url": "https://files.pythonhosted.org/packages/2f/19/2f984e227ccc98c46c428a008f6ee3943d5721803908c3c9cd0ac5297e4f/ensure-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "5f800688d1a777b49248c6c0d39e5c78", "sha256": "42d4605f8cf28f1dcdf40f0fe2b75532d72d549046e010b84410da9762065857" }, "downloads": -1, "filename": "ensure-0.0.2.tar.gz", "has_sig": true, "md5_digest": "5f800688d1a777b49248c6c0d39e5c78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5550, "upload_time": "2013-10-14T06:29:03", "upload_time_iso_8601": "2013-10-14T06:29:03.096877Z", "url": "https://files.pythonhosted.org/packages/30/60/9c432a61896e70e02ae2d67acbd203d7ece3f80f5ae646d15c534f2f43d7/ensure-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3948bf58ec5e739862b974e4b4887114", "sha256": "7057839186160f916ff4f2f3670b697c7ae849bf72d84d65f056c630a1780eaa" }, "downloads": -1, "filename": "ensure-0.0.3.tar.gz", "has_sig": true, "md5_digest": "3948bf58ec5e739862b974e4b4887114", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5760, "upload_time": "2013-10-14T06:55:01", "upload_time_iso_8601": "2013-10-14T06:55:01.717221Z", "url": "https://files.pythonhosted.org/packages/c5/60/67d2a811acfb61a4ee34901a4f013abb16f3504e40144f3ed92b85f21b06/ensure-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "9948c862a7536bfd5c79e922f91547f9", "sha256": "0b6f33c2d563007c5aba6c34aadf5fe65c9ae4eca620214199478794c668d7e6" }, "downloads": -1, "filename": "ensure-0.0.4.tar.gz", "has_sig": true, "md5_digest": "9948c862a7536bfd5c79e922f91547f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6613, "upload_time": "2013-10-15T03:19:17", "upload_time_iso_8601": "2013-10-15T03:19:17.288593Z", "url": "https://files.pythonhosted.org/packages/85/c9/f4b59ef3b4145476d47ab82e6196cc299eba6021cb012bdfdfab0eff8de5/ensure-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "6addeceb862255b5514f0d9d8bd68ba5", "sha256": "a812cc8b6c7bb8a8b4f1a57c77dc1d67ed7f53ecfc47d437a16e94442cb7025e" }, "downloads": -1, "filename": "ensure-0.0.6.tar.gz", "has_sig": true, "md5_digest": "6addeceb862255b5514f0d9d8bd68ba5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6697, "upload_time": "2013-10-15T03:46:41", "upload_time_iso_8601": "2013-10-15T03:46:41.664454Z", "url": "https://files.pythonhosted.org/packages/38/1b/60a8a0f9540632f46a2fe0379e3cd5720d941aa424a13fb3f1cc10486036/ensure-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "8501aa94f17a11cfdd03f949b29e0bcd", "sha256": "665cda8f8ce84c11ae36a32b2e331d9b319bb1ac4f94813cab2f0b92d29f9b08" }, "downloads": -1, "filename": "ensure-0.0.8.tar.gz", "has_sig": true, "md5_digest": "8501aa94f17a11cfdd03f949b29e0bcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6686, "upload_time": "2013-10-15T03:51:33", "upload_time_iso_8601": "2013-10-15T03:51:33.868641Z", "url": "https://files.pythonhosted.org/packages/ca/33/d700149f75c43b4e11319211171d5c089d9f9ddf69cb77bf390fdc2794f5/ensure-0.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "746aedbca6d6110572519370ec566e03", "sha256": "3f75e26b05cde059867b0ad98c550b86c876624374227c31468002e7ff46c948" }, "downloads": -1, "filename": "ensure-0.0.9.tar.gz", "has_sig": true, "md5_digest": "746aedbca6d6110572519370ec566e03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6754, "upload_time": "2013-10-15T03:54:35", "upload_time_iso_8601": "2013-10-15T03:54:35.459955Z", "url": "https://files.pythonhosted.org/packages/7a/27/551790bb509ae54c0ccb3d7b8236bc717614dbc51218202d52e628829b00/ensure-0.0.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "646c9b94a1e9fcbc44f68f3de2f69851", "sha256": "abbee817f217fdd63d40c617732258f7ec26f4f456ff85a4f81cdcc1618511f2" }, "downloads": -1, "filename": "ensure-0.1.0.tar.gz", "has_sig": true, "md5_digest": "646c9b94a1e9fcbc44f68f3de2f69851", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6876, "upload_time": "2013-10-15T04:25:12", "upload_time_iso_8601": "2013-10-15T04:25:12.899150Z", "url": "https://files.pythonhosted.org/packages/79/ab/0a1c95c43095487fab9c255ed66674c3a5608163bb83054e881c144ecd0b/ensure-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "54e9f526b94a7bfcc52e6bc3a5ca1a37", "sha256": "8a14539c1f8db4357f0df6f5c5f7385cff82212b6e6814367b1922b11d935a4a" }, "downloads": -1, "filename": "ensure-0.1.1.tar.gz", "has_sig": true, "md5_digest": "54e9f526b94a7bfcc52e6bc3a5ca1a37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7426, "upload_time": "2013-10-18T03:13:07", "upload_time_iso_8601": "2013-10-18T03:13:07.994107Z", "url": "https://files.pythonhosted.org/packages/da/ea/147c66da528db799df2542096c0cc7dd64cad1a7090013fd37bc6c98a796/ensure-0.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "41a5a3ee57e887a6fbca731ee4fa9f20", "sha256": "df44cebd0450e988742069c5145d36206ee43de60d5843bdee5784e080c43e21" }, "downloads": -1, "filename": "ensure-0.1.2.tar.gz", "has_sig": true, "md5_digest": "41a5a3ee57e887a6fbca731ee4fa9f20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8140, "upload_time": "2013-10-28T17:09:36", "upload_time_iso_8601": "2013-10-28T17:09:36.550843Z", "url": "https://files.pythonhosted.org/packages/0d/da/3a9d4a007d251be9358d2dde6a0d5b0be81ff33004113c9f1609a1abb6c0/ensure-0.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "b52bb17199d1f5b99d77e3b81f376268", "sha256": "5d6375595d707144bcd59e540fc3c9510fac12567d4bf37ed9b33ffa39e2f1aa" }, "downloads": -1, "filename": "ensure-0.1.3.tar.gz", "has_sig": true, "md5_digest": "b52bb17199d1f5b99d77e3b81f376268", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9206, "upload_time": "2013-11-03T22:47:31", "upload_time_iso_8601": "2013-11-03T22:47:31.603770Z", "url": "https://files.pythonhosted.org/packages/d8/b4/9253fd9592add3f872e04688e63c804413dbf896a2516de31d71b163adc5/ensure-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "d2379212aaeab62058a2076627592a91", "sha256": "1824169de4d704baea11d59915fda4eea67ac0c22f14d832aed3405b2e784b96" }, "downloads": -1, "filename": "ensure-0.1.5.tar.gz", "has_sig": true, "md5_digest": "d2379212aaeab62058a2076627592a91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9614, "upload_time": "2014-01-06T07:04:46", "upload_time_iso_8601": "2014-01-06T07:04:46.180062Z", "url": "https://files.pythonhosted.org/packages/37/3c/528a3b71580567250b237d46131214b6c25b594864a1591ff9ade137c937/ensure-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "a38d4d32f43211c6ec253cb78686dbf3", "sha256": "b242b48a3afbbc952c144b428cf24114fe19ca8e34b58f3ff01951050c3827ef" }, "downloads": -1, "filename": "ensure-0.1.6.tar.gz", "has_sig": true, "md5_digest": "a38d4d32f43211c6ec253cb78686dbf3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10340, "upload_time": "2014-02-16T01:39:11", "upload_time_iso_8601": "2014-02-16T01:39:11.779171Z", "url": "https://files.pythonhosted.org/packages/9b/e3/7088e69a1bdfd3b4f9057a1bd210703a7d8a5ca0ec168ec832191e7f5f99/ensure-0.1.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "bfe4f28f2933166894b97f6199d2ef0c", "sha256": "3e4362ce5d7f5bad8d1436cdff8621136e57be00cd1b04ae1b2e8eac3e78f356" }, "downloads": -1, "filename": "ensure-0.1.7.tar.gz", "has_sig": true, "md5_digest": "bfe4f28f2933166894b97f6199d2ef0c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10332, "upload_time": "2014-02-16T01:43:14", "upload_time_iso_8601": "2014-02-16T01:43:14.136814Z", "url": "https://files.pythonhosted.org/packages/ff/61/78a5bb4edb3e355f4e5dcfaaa4e066b8cd0ed94affba1056ca17d8f957ba/ensure-0.1.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "885fc47a374be52f75af9a0911d90c05", "sha256": "008113d4fc337c6f456b0619ae45b1d6350522ab896536293db4c97e7dc41b4c" }, "downloads": -1, "filename": "ensure-0.1.8.tar.gz", "has_sig": true, "md5_digest": "885fc47a374be52f75af9a0911d90c05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10476, "upload_time": "2014-02-17T21:33:49", "upload_time_iso_8601": "2014-02-17T21:33:49.770560Z", "url": "https://files.pythonhosted.org/packages/16/87/9bc161b1bcee2e311cb89aaddc1087c61c133bd2144c1dd124f5f51e78b6/ensure-0.1.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "50ca0a9d53852dfcee0bf65692d1c103", "sha256": "0989b525284f6bdd22cf11889ff0f6596f47ac8f311745b16d7dc697d1687b78" }, "downloads": -1, "filename": "ensure-0.1.9.tar.gz", "has_sig": true, "md5_digest": "50ca0a9d53852dfcee0bf65692d1c103", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10747, "upload_time": "2014-06-14T17:37:32", "upload_time_iso_8601": "2014-06-14T17:37:32.204635Z", "url": "https://files.pythonhosted.org/packages/9a/58/2a5d95d803d5062be7bf78966bd843847c8b3d06b54e79ea6b9694f304be/ensure-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a89405f46147617546895b7aeadfd163", "sha256": "d1abea46c54ee30f6c3f5de962b84e5028c2c65121ea35b1aee8af49547bc4f2" }, "downloads": -1, "filename": "ensure-0.2.0.tar.gz", "has_sig": true, "md5_digest": "a89405f46147617546895b7aeadfd163", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10938, "upload_time": "2014-06-16T15:56:06", "upload_time_iso_8601": "2014-06-16T15:56:06.867180Z", "url": "https://files.pythonhosted.org/packages/47/e1/f1ee5252f626e6968d0d81cacfa2bdd3a6b77a7e8127cf5a89779c286431/ensure-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "994c5bbc23de10c21bd7b7a79cd85322", "sha256": "dc74bbec16cf3b4c56acfc5f611632d43932d785e7e904d28bc0279e3a29daf0" }, "downloads": -1, "filename": "ensure-0.2.1.tar.gz", "has_sig": true, "md5_digest": "994c5bbc23de10c21bd7b7a79cd85322", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11322, "upload_time": "2014-06-28T21:59:52", "upload_time_iso_8601": "2014-06-28T21:59:52.545666Z", "url": "https://files.pythonhosted.org/packages/f1/05/125f7e456d6acdc4e784f4127b0a1fc5648f1684557026f473988b13d8b6/ensure-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "8eb205bb1e8bf9f2f66aa028697f58c7", "sha256": "657855f3a5406438de157c7cda014e1963880b8aee2128eab6253c72a40fd69b" }, "downloads": -1, "filename": "ensure-0.2.2.tar.gz", "has_sig": true, "md5_digest": "8eb205bb1e8bf9f2f66aa028697f58c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11781, "upload_time": "2014-07-31T03:48:35", "upload_time_iso_8601": "2014-07-31T03:48:35.187775Z", "url": "https://files.pythonhosted.org/packages/72/af/e81cc1275e98d3f167bb592f6f000af35ef8d03b3219092b19bcd2280b39/ensure-0.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "1e9be0942c9034812698a42191307b43", "sha256": "697becf63826c285783abb95f7d865cc8eb2ee2899f73393029b79a6e796aa47" }, "downloads": -1, "filename": "ensure-0.3.0-py2-none-any.whl", "has_sig": true, "md5_digest": "1e9be0942c9034812698a42191307b43", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14310, "upload_time": "2015-05-28T05:41:51", "upload_time_iso_8601": "2015-05-28T05:41:51.625771Z", "url": "https://files.pythonhosted.org/packages/2d/da/008bc4b804b61eab2c547396f8160c5599ddb1982a365c7d05e72c0da673/ensure-0.3.0-py2-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e6bf583d7971ae8634286002c65440cb", "sha256": "4b0d1b81d8fa9ede53253b904d01de86f44cdc3d6e56d52018a96974d3b55a73" }, "downloads": -1, "filename": "ensure-0.3.0.tar.gz", "has_sig": true, "md5_digest": "e6bf583d7971ae8634286002c65440cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12311, "upload_time": "2015-05-28T05:41:46", "upload_time_iso_8601": "2015-05-28T05:41:46.010790Z", "url": "https://files.pythonhosted.org/packages/ae/ba/ce7cb607792f39227ac7a1e6ce12b4ef5863ce2e8ae00377a4aac79ca5ce/ensure-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a2ae4a1408074fb3d1569fc1f3187834", "sha256": "1d9d596e18cf84d4d7c20e18ed5924ad8c72f8234830dc228124c15ff240a645" }, "downloads": -1, "filename": "ensure-0.3.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a2ae4a1408074fb3d1569fc1f3187834", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14317, "upload_time": "2015-05-28T05:44:10", "upload_time_iso_8601": "2015-05-28T05:44:10.121231Z", "url": "https://files.pythonhosted.org/packages/a8/8d/6125a018f4922190ae8333c6006d18e079ed6ae084024b8e9499c8d1d253/ensure-0.3.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d9a6e4a517f7c37604808b78e74d3fce", "sha256": "dbce6db3e6d294384bd2864c7dbea8bc3472e0faac990ff01aded4e450e7365e" }, "downloads": -1, "filename": "ensure-0.3.1.tar.gz", "has_sig": true, "md5_digest": "d9a6e4a517f7c37604808b78e74d3fce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12338, "upload_time": "2015-05-28T05:44:04", "upload_time_iso_8601": "2015-05-28T05:44:04.191896Z", "url": "https://files.pythonhosted.org/packages/a2/61/e9ba0d5fa4908bd471896d650f42888c0bb8b0cef0e39a7be57827f4b832/ensure-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "224568437ded603e4121e0804dd7da2f", "sha256": "be0c0af8aec655aa0465d6e279b7e34ed94ccc778ccf09de3cf03b17e434ad71" }, "downloads": -1, "filename": "ensure-0.3.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "224568437ded603e4121e0804dd7da2f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14374, "upload_time": "2015-05-28T05:47:47", "upload_time_iso_8601": "2015-05-28T05:47:47.619096Z", "url": "https://files.pythonhosted.org/packages/af/13/461679f4fdec6629fcedb117a6c0292bf700b32718af1633fa7ff94904ef/ensure-0.3.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c122410454c0444ee746d3457f582958", "sha256": "4f2f53b11ef396d65a5c0c67dd7e39995a053f08cbfe7c8b207a15d5da065b4c" }, "downloads": -1, "filename": "ensure-0.3.2.tar.gz", "has_sig": true, "md5_digest": "c122410454c0444ee746d3457f582958", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12440, "upload_time": "2015-05-28T05:47:42", "upload_time_iso_8601": "2015-05-28T05:47:42.957655Z", "url": "https://files.pythonhosted.org/packages/91/36/6bcabcdb5fbb62ad2cd84adb989f08b004cb3b222ad30014c2cb8dc52938/ensure-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "f0b94bedd4556bfefb6b93d0468d2f45", "sha256": "e0cf5728ab6696f07a1c89d27c76f96974c051f703be3979351ba193f8cacc69" }, "downloads": -1, "filename": "ensure-0.3.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f0b94bedd4556bfefb6b93d0468d2f45", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14633, "upload_time": "2015-11-06T18:24:19", "upload_time_iso_8601": "2015-11-06T18:24:19.330627Z", "url": "https://files.pythonhosted.org/packages/61/0c/491cb38c7f95ea2289c0d3779b712f04f2554e1f092733cf9edc75feb3b8/ensure-0.3.3-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "8b7ee86df6c8d0774d801dc08ba0684a", "sha256": "7e5ff917d87b7f9a717373c95a1485b6080cd3995d08687111f3b56f588ed011" }, "downloads": -1, "filename": "ensure-0.3.3.tar.gz", "has_sig": true, "md5_digest": "8b7ee86df6c8d0774d801dc08ba0684a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12758, "upload_time": "2015-11-06T18:24:12", "upload_time_iso_8601": "2015-11-06T18:24:12.285570Z", "url": "https://files.pythonhosted.org/packages/f5/a3/a78f81676a14847505fe8c459fe7af49dd4ac3fdb54d9af3bb416fef884f/ensure-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "52908fc257bd5a360c12ecb5bb1792b0", "sha256": "3a7feeac51df75ff37e8f3198143117ad676997056cb92efef701b64e29c25ef" }, "downloads": -1, "filename": "ensure-0.4.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "52908fc257bd5a360c12ecb5bb1792b0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14718, "upload_time": "2016-02-04T19:08:04", "upload_time_iso_8601": "2016-02-04T19:08:04.644794Z", "url": "https://files.pythonhosted.org/packages/11/3b/2fd3ca967b12edeabb55d2d660bd81f1ba69ce55fda290ea4bca8fac6699/ensure-0.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "19cfe7024c29e8692e061839065d5d1b", "sha256": "d83dc830895bb26948445751fde3e111d13f30255f9eeecc8c5b77d3cc2de556" }, "downloads": -1, "filename": "ensure-0.4.0.tar.gz", "has_sig": true, "md5_digest": "19cfe7024c29e8692e061839065d5d1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12899, "upload_time": "2016-02-04T19:07:56", "upload_time_iso_8601": "2016-02-04T19:07:56.352043Z", "url": "https://files.pythonhosted.org/packages/98/2a/5a354d023b6fcef1b0e27770f39ed54e50073958e7c7a6105150fe35b81f/ensure-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "dc511384ca78ea64d6578dae58d9a555", "sha256": "97fa4cf097c09894c15c7560f6fbfacd8893c49ba67a22bb7acd576ea756ab01" }, "downloads": -1, "filename": "ensure-0.5.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "dc511384ca78ea64d6578dae58d9a555", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15253, "upload_time": "2016-03-04T16:29:59", "upload_time_iso_8601": "2016-03-04T16:29:59.962499Z", "url": "https://files.pythonhosted.org/packages/4d/e4/e9812f7d5c39513f3d9ed4df03d5abed8a7c8e5f3534d3805df21221b68d/ensure-0.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0c80f1f675a3b1031a0583725ecea4e8", "sha256": "6b031e29e9f19d38317b79cbc0a77f7e887db137d9b2d70cc89612082fd813e3" }, "downloads": -1, "filename": "ensure-0.5.0.tar.gz", "has_sig": true, "md5_digest": "0c80f1f675a3b1031a0583725ecea4e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13454, "upload_time": "2016-03-04T16:29:50", "upload_time_iso_8601": "2016-03-04T16:29:50.471350Z", "url": "https://files.pythonhosted.org/packages/57/07/c792b014ec98a79dc36ca02bbce651e7ea79026bd61e023270034d8eb7da/ensure-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "31b0139e29920d3252e15ce708db6a0a", "sha256": "edcbd9fa63333e35c9d125f2acfd8d2db797e6cec5aba0199ef2f1386045c5ce" }, "downloads": -1, "filename": "ensure-0.6.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "31b0139e29920d3252e15ce708db6a0a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15321, "upload_time": "2016-05-27T01:05:18", "upload_time_iso_8601": "2016-05-27T01:05:18.429661Z", "url": "https://files.pythonhosted.org/packages/c6/77/aae38d4f916ef52745ad474a3ed89815bb910ef5e190455ec63db8d22b00/ensure-0.6.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "233b1a3ab889a6acf0e122d4db68ca76", "sha256": "a085360fbcadb764b0e3e74e22bb9a258d26bf6e4523c6cd9397439693f7daef" }, "downloads": -1, "filename": "ensure-0.6.0.tar.gz", "has_sig": true, "md5_digest": "233b1a3ab889a6acf0e122d4db68ca76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13629, "upload_time": "2016-05-27T01:05:12", "upload_time_iso_8601": "2016-05-27T01:05:12.182592Z", "url": "https://files.pythonhosted.org/packages/c7/73/725e55a2af93852b9a6e4410f03aa9b08a043d18a59abc2265e549d2f0d9/ensure-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "dd5eca6a356a135f52071dd942e971e6", "sha256": "aec7b56319191d92151896a0efeccb21ff7357c81c7ffcc9085f9eeec8a9381c" }, "downloads": -1, "filename": "ensure-0.6.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "dd5eca6a356a135f52071dd942e971e6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15362, "upload_time": "2016-05-27T01:27:20", "upload_time_iso_8601": "2016-05-27T01:27:20.836031Z", "url": "https://files.pythonhosted.org/packages/02/d4/591a1c8c533a1d51e2a6c3d837444176bb404f1c7a1e6ed7d0eac5af258e/ensure-0.6.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ca888d4c66aef26d9ccb1385e61bf391", "sha256": "6af59719e125b3a13ae396201096d30714beec5526ea360cca1e80fee37cb9a1" }, "downloads": -1, "filename": "ensure-0.6.1.tar.gz", "has_sig": true, "md5_digest": "ca888d4c66aef26d9ccb1385e61bf391", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13658, "upload_time": "2016-05-27T01:27:12", "upload_time_iso_8601": "2016-05-27T01:27:12.582433Z", "url": "https://files.pythonhosted.org/packages/44/79/a94f483c56c796ccc51885e882760087f14dd783e4ea72764e0a02221052/ensure-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "b54ac7213c5b3a4034c283198194c3a8", "sha256": "4f93330f50f72329289f43b7724c075cb793a491129449c400a3144bad7ece3d" }, "downloads": -1, "filename": "ensure-0.6.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b54ac7213c5b3a4034c283198194c3a8", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15487, "upload_time": "2016-05-27T16:57:28", "upload_time_iso_8601": "2016-05-27T16:57:28.285816Z", "url": "https://files.pythonhosted.org/packages/73/1c/ce65a12e93f5eeb1141621398762108242f196ad827bbfd3ddfad8c4dcbf/ensure-0.6.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5fa3c8145d67b6e6ea576de6de0474dc", "sha256": "cf1c5237c49474e2f7fba88452ee0b4cdf8ad1aeeff6b75e742478663df185ea" }, "downloads": -1, "filename": "ensure-0.6.2.tar.gz", "has_sig": true, "md5_digest": "5fa3c8145d67b6e6ea576de6de0474dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13819, "upload_time": "2016-05-27T16:57:21", "upload_time_iso_8601": "2016-05-27T16:57:21.960025Z", "url": "https://files.pythonhosted.org/packages/62/59/b41caaabafe14dda97dc66aaa86c278e059d27965db983619387259df69b/ensure-0.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "8dcb67de03a4692a2c4a505f8a5d6dc9", "sha256": "3f6f0d47178042a8a30d491735a9561c21795d49486911271d0f732ea73cea00" }, "downloads": -1, "filename": "ensure-0.7.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8dcb67de03a4692a2c4a505f8a5d6dc9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15632, "upload_time": "2018-03-11T15:41:11", "upload_time_iso_8601": "2018-03-11T15:41:11.678121Z", "url": "https://files.pythonhosted.org/packages/ee/b9/b3a94147ca36ac0494a51cf7210eb12168e22fbf9e5bfb488998d554a381/ensure-0.7.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a225eb9e0635ccc49c716a73a19a4bc9", "sha256": "4f792b032e7a4e5dcbf64bfe74130b60e13e030c29dcd68e3ae1d0e5b837b0d0" }, "downloads": -1, "filename": "ensure-0.7.0.tar.gz", "has_sig": true, "md5_digest": "a225eb9e0635ccc49c716a73a19a4bc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17703, "upload_time": "2018-03-11T15:41:09", "upload_time_iso_8601": "2018-03-11T15:41:09.482045Z", "url": "https://files.pythonhosted.org/packages/53/3c/b71b6c83525a05e8d71bc158627c5cc5cecba4945bb008276897987c8d86/ensure-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "7a8c2ccebc166f0cda67103ef4a63eb7", "sha256": "ffffae12ff61962e71004ab5f15abdd4bc5ba09d9471b9787836142c8a33be50" }, "downloads": -1, "filename": "ensure-0.8.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "7a8c2ccebc166f0cda67103ef4a63eb7", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15706, "upload_time": "2019-01-14T21:23:26", "upload_time_iso_8601": "2019-01-14T21:23:26.058806Z", "url": "https://files.pythonhosted.org/packages/4c/cc/935a44a21fa78a9156a995009fd6873ce20058c595eefa1d9034a560e26c/ensure-0.8.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "1cffa2eb855be1e2f4ff943e8b9bc31a", "sha256": "4c5b991a2170c8a5d5842558499ed2bf177a9f4b4d84bcf4e93a3f37f39f8734" }, "downloads": -1, "filename": "ensure-0.8.0.tar.gz", "has_sig": true, "md5_digest": "1cffa2eb855be1e2f4ff943e8b9bc31a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18087, "upload_time": "2019-01-14T21:23:23", "upload_time_iso_8601": "2019-01-14T21:23:23.489669Z", "url": "https://files.pythonhosted.org/packages/38/62/cf45b52323534e59d473927fb79b5c7f81235edc6b48ddb49d8697e6cf34/ensure-0.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "4d434cfa1eaa7606cef049da5cff757b", "sha256": "41fcdedb190736903f694eb2c281b4bcab34811ac0b558030682dd0434dcdd31" }, "downloads": -1, "filename": "ensure-0.8.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4d434cfa1eaa7606cef049da5cff757b", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15699, "upload_time": "2019-01-14T21:38:59", "upload_time_iso_8601": "2019-01-14T21:38:59.709631Z", "url": "https://files.pythonhosted.org/packages/fb/bc/394a6adc8b37dcd60e28772be62b498d94e7537ec0c836ad06d46c13555d/ensure-0.8.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7c317e09d0e0dbf2be728337f6706c27", "sha256": "c814255fa239ef768c25b00c644f5f6d1ba0cb8774408e4c4af3677dbf049fde" }, "downloads": -1, "filename": "ensure-0.8.1.tar.gz", "has_sig": true, "md5_digest": "7c317e09d0e0dbf2be728337f6706c27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18060, "upload_time": "2019-01-14T21:38:57", "upload_time_iso_8601": "2019-01-14T21:38:57.322901Z", "url": "https://files.pythonhosted.org/packages/db/df/95a3e52b981849e2f4bf825d84134f943f8f50a171a477980c2896492f2c/ensure-0.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "8bef60845aeb14b2829ae8e3f5d83259", "sha256": "9c17ba30133cde59db6b1aec56f280e2fa9ce21a994c50ac6c1a5aa8d7ee44ee" }, "downloads": -1, "filename": "ensure-0.8.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8bef60845aeb14b2829ae8e3f5d83259", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15707, "upload_time": "2019-01-14T21:44:17", "upload_time_iso_8601": "2019-01-14T21:44:17.670293Z", "url": "https://files.pythonhosted.org/packages/96/72/92ec2868e8185c49d677250da98468d917e822c88918a8b2ebd18b66e451/ensure-0.8.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ef3b32583f37f532a6d9810fb4086309", "sha256": "0255e4ff03aac63fcbd68602dae737c1c556aec6f9e833ca631efe07a150fc0a" }, "downloads": -1, "filename": "ensure-0.8.2.tar.gz", "has_sig": true, "md5_digest": "ef3b32583f37f532a6d9810fb4086309", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18070, "upload_time": "2019-01-14T21:44:15", "upload_time_iso_8601": "2019-01-14T21:44:15.332082Z", "url": "https://files.pythonhosted.org/packages/2b/73/679d3817ff7dad107ef09567f959bb1745b2f095e1c078300cbcdbbe199e/ensure-0.8.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "35b76c48393d1fc3afabfcce7bd2ecaf", "sha256": "e8ee163a949a7b5ba3f0e2c6b1d20fe603864bb4ae034a219047547989c59ea3" }, "downloads": -1, "filename": "ensure-1.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "35b76c48393d1fc3afabfcce7bd2ecaf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15801, "upload_time": "2019-10-31T03:50:52", "upload_time_iso_8601": "2019-10-31T03:50:52.064656Z", "url": "https://files.pythonhosted.org/packages/17/97/ab76be5534c7ff86cab6629fe7c258bc6c3bc99f6b8ed5b626eb8413453c/ensure-1.0.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "029233bf579e183bcdfd88ecc62a39f7", "sha256": "61ef7a640914c317ab18026f05618d84004465614c1854264b3c63b2c81a64e7" }, "downloads": -1, "filename": "ensure-1.0.0.tar.gz", "has_sig": true, "md5_digest": "029233bf579e183bcdfd88ecc62a39f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21504, "upload_time": "2019-10-31T03:50:54", "upload_time_iso_8601": "2019-10-31T03:50:54.636246Z", "url": "https://files.pythonhosted.org/packages/05/26/1a6cb222c7c784a4ce06214513ae69126f423acd7898ff62d1787b3978f1/ensure-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "cead212c62ad76ba192dceebf81f8e77", "sha256": "c853a746dbc9f060d852ba63b1f0f9aa0274c5c7fb52fc290fe25ebd143610cb" }, "downloads": -1, "filename": "ensure-1.0.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "cead212c62ad76ba192dceebf81f8e77", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 8608, "upload_time": "2021-12-05T19:25:11", "upload_time_iso_8601": "2021-12-05T19:25:11.812238Z", "url": "https://files.pythonhosted.org/packages/99/e1/6468b59f95d69e9e968add2a08ac11a879f14550f87a571c7f767ccbb1d1/ensure-1.0.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6dd07fd9639837914f12607b2b7b8dff", "sha256": "a63283629cc3d50d2d974f9784f478f84d7c37ae87589baf1dc3b4487a82a588" }, "downloads": -1, "filename": "ensure-1.0.1.tar.gz", "has_sig": true, "md5_digest": "6dd07fd9639837914f12607b2b7b8dff", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11671, "upload_time": "2021-12-05T19:25:13", "upload_time_iso_8601": "2021-12-05T19:25:13.388739Z", "url": "https://files.pythonhosted.org/packages/02/c4/c296ae4f4ff2cc1bd77c1db95c1ad69cd71e7ae97ca10e5fbae859e34d85/ensure-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "310f4d0404566a84c93300141d55f5fd", "sha256": "2016cac9913ecac057cda22c84924c1d931040a5c130e76d56136c3c7954b7ae" }, "downloads": -1, "filename": "ensure-1.0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "310f4d0404566a84c93300141d55f5fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 15820, "upload_time": "2021-12-05T19:32:24", "upload_time_iso_8601": "2021-12-05T19:32:24.675829Z", "url": "https://files.pythonhosted.org/packages/08/6e/ca1fbf6907d116982d182ca6814e4925de5378f032c1495e2e17c18013c0/ensure-1.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "418b6d3c0ae2b110d9964fc6386edcc2", "sha256": "9f4ed3212457cb953f94e568482292fa28a8893897f7e520988908f5bddd5f63" }, "downloads": -1, "filename": "ensure-1.0.2.tar.gz", "has_sig": true, "md5_digest": "418b6d3c0ae2b110d9964fc6386edcc2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 21343, "upload_time": "2021-12-05T19:32:26", "upload_time_iso_8601": "2021-12-05T19:32:26.530635Z", "url": "https://files.pythonhosted.org/packages/21/99/ba5d6a41579e0cf174e521543f1a944f338e581d66163ba45dbcc7bfe2e1/ensure-1.0.2.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "310f4d0404566a84c93300141d55f5fd", "sha256": "2016cac9913ecac057cda22c84924c1d931040a5c130e76d56136c3c7954b7ae" }, "downloads": -1, "filename": "ensure-1.0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "310f4d0404566a84c93300141d55f5fd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5", "size": 15820, "upload_time": "2021-12-05T19:32:24", "upload_time_iso_8601": "2021-12-05T19:32:24.675829Z", "url": "https://files.pythonhosted.org/packages/08/6e/ca1fbf6907d116982d182ca6814e4925de5378f032c1495e2e17c18013c0/ensure-1.0.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "418b6d3c0ae2b110d9964fc6386edcc2", "sha256": "9f4ed3212457cb953f94e568482292fa28a8893897f7e520988908f5bddd5f63" }, "downloads": -1, "filename": "ensure-1.0.2.tar.gz", "has_sig": true, "md5_digest": "418b6d3c0ae2b110d9964fc6386edcc2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 21343, "upload_time": "2021-12-05T19:32:26", "upload_time_iso_8601": "2021-12-05T19:32:26.530635Z", "url": "https://files.pythonhosted.org/packages/21/99/ba5d6a41579e0cf174e521543f1a944f338e581d66163ba45dbcc7bfe2e1/ensure-1.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }