{ "info": { "author": "Laurence Willmore", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# typemock\n\n[![Build Status](https://travis-ci.com/lgwillmore/typemock.svg?branch=master)](https://travis-ci.com/lgwillmore/typemock) [![Documentation Status](https://readthedocs.org/projects/typemock/badge/?version=latest)](https://typemock.readthedocs.io/en/latest/?badge=latest) [![Pyversions](https://img.shields.io/pypi/pyversions/typemock.svg?style=flat-square)](https://pypi.python.org/pypi/typemock)\n\nType safe mocking for python 3.\n\n1. [Motivation](#motivation)\n2. [Installation](#installation)\n3. [Quick example usage](#quick-example-usage)\n\n**NOTE: This library is still in Alpha. Its API and implementation could change.**\n\n[Detailed Documentation](https://typemock.readthedocs.io)\n\n## Motivation\n\nThe mocking tools in python are powerful, flexible and useful for building independent tests at various levels.\n\nThis flexibility is part of what is considered a strength of the python language, and possibly any dynamically typed language.\n\nHowever, this flexibility comes at a cost.\n\nIt is possible to build mocks which do not conform to the actual behaviour or contract defined by the things they are mocking. Or, for them to be initially correct, and then to go out of sync with actual behaviour and for tests to remain green.\n\nWe do not have compile time protections for us doing things with/to things which do not align with the contracts they define and the clients of those contracts expect.\n\nBut, now we have type hints. And so, we can explicitly define the contracts of our objects, and, if we have done this, we can mock them in a type safe way as well. This is what this library aims to help achieve. Type safe mocking.\n\nUsed in conjunction with mypy, this should result in much more high fidelity independent tests.\n\n## Installation\n\n pip install typemock\n\n## Quick Example Usage\n\nGiven some class (the implementation of its method is not relevant)\n\n```python\nclass MyThing:\n\n def multiple_arg(self, prefix: str, number: int) -> str:\n pass\n```\n\n### Mock and verify\n\nWe con mock behaviour and verify interactions as follows:\n\n```python\nfrom typemock import tmock, when, verify\n\nexpected_result = \"a string\"\n\nwith tmock(MyThing) as my_thing_mock:\n when(my_thing_mock.multiple_arg(\"p\", 1)).then_return(expected_result)\n\nactual = my_thing_mock.multiple_arg(\n number=1,\n prefix=\"p\"\n)\n\nassert expected_result == actual\nverify(my_thing_mock).multiple_arg(\"p\", 1)\n\n```\n\n### Type safety\n\nAnd when we try to specify behaviour that does not conform to the contract of the object we are mocking\n\n```python\nexpected_result = \"a string\"\n\nwith tmock(MyThing) as my_thing_mock:\n when(my_thing_mock.multiple_arg(prefix=\"p\", number=\"should be an int\")).then_return(expected_result)\n```\n\nWe get an informative error such as\n\n typemock.safety.MockTypeSafetyError: Method: multiple_arg Arg: number must be of type:\n\n\n\n\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lgwillmore/type-mock", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "typemock", "package_url": "https://pypi.org/project/typemock/", "platform": "", "project_url": "https://pypi.org/project/typemock/", "project_urls": { "Homepage": "https://github.com/lgwillmore/type-mock" }, "release_url": "https://pypi.org/project/typemock/0.5.1/", "requires_dist": [ "typeguard" ], "requires_python": "", "summary": "Type safe mocking", "version": "0.5.1" }, "last_serial": 5434778, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "0421cc4db50ed8057c3669f1e881bec0", "sha256": "17c5ad4dfeb55cd751245e97c834f11b37e77f7e1fb5efc10aea902c8d0681fd" }, "downloads": -1, "filename": "typemock-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0421cc4db50ed8057c3669f1e881bec0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10786, "upload_time": "2019-06-11T09:31:47", "url": "https://files.pythonhosted.org/packages/6b/fd/f4c02451284f50d57f7c04a040431b2ffd71a7bdfdf86154828dad3bf49c/typemock-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0abe29b6a4b1779ef78d5324a721615", "sha256": "7e6ef52533be04a60cbff3252bc3f9332f121cd8cc1d9ef60a7faed313a11574" }, "downloads": -1, "filename": "typemock-0.0.1.tar.gz", "has_sig": false, "md5_digest": "e0abe29b6a4b1779ef78d5324a721615", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8402, "upload_time": "2019-06-11T09:31:50", "url": "https://files.pythonhosted.org/packages/d8/1b/2d37b86a855ab6198b353e254f612a584cd0bccf03b2a87e2d9e0458c40f/typemock-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7e1313b65aaea3c1bcc9cd03378277dd", "sha256": "102e5c6447273e53d7b5f855c0d3b38fd67fae9d60bb38a9570d0b7b52addb23" }, "downloads": -1, "filename": "typemock-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7e1313b65aaea3c1bcc9cd03378277dd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10991, "upload_time": "2019-06-11T09:49:58", "url": "https://files.pythonhosted.org/packages/e9/40/be4e973b54a4dfb4b973ac52e986b88457f8b2a0deb2464cf0c168fb34e0/typemock-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e1108aeb313411a9913a8b3196ce498a", "sha256": "6405299cd0520f686ed7f067d93e2ade50b5ef3a51d040ba363bfe2a192adc12" }, "downloads": -1, "filename": "typemock-0.0.2.tar.gz", "has_sig": false, "md5_digest": "e1108aeb313411a9913a8b3196ce498a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8553, "upload_time": "2019-06-11T09:50:01", "url": "https://files.pythonhosted.org/packages/40/82/4c392da5f23df70bc2ab1e3564c059db98965d10b1c0e2da9b7a44437a1a/typemock-0.0.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "7a47d0a0fe05a8ab2b59c7b3f49f7d5b", "sha256": "5f70fd1796d34ec4339bd5718ab2cffe6f5ef755e617d3ec058c1d9d9cc56375" }, "downloads": -1, "filename": "typemock-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7a47d0a0fe05a8ab2b59c7b3f49f7d5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11554, "upload_time": "2019-06-11T11:18:19", "url": "https://files.pythonhosted.org/packages/40/1b/aaa51f5da1e080ee83a619a9604ec020f4d21582bdadd71fc94f0fc19ee8/typemock-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02ad5437328146378a1ade4e6ea58ffe", "sha256": "04ac76aa8a881db98781f04d521be19d8fef8502a05889ef62b50135518ae7d5" }, "downloads": -1, "filename": "typemock-0.2.0.tar.gz", "has_sig": false, "md5_digest": "02ad5437328146378a1ade4e6ea58ffe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9054, "upload_time": "2019-06-11T11:18:22", "url": "https://files.pythonhosted.org/packages/a5/af/71ca5b7e868242051b980d190400c27239928ba7f6fb8f0a82d63330cef2/typemock-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "6491c78fa99779dd1b7da9299ec18136", "sha256": "ac1e5fd21d5b9ed81135a43c40c93999b18aba6522096d20b9545ad1524f547d" }, "downloads": -1, "filename": "typemock-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6491c78fa99779dd1b7da9299ec18136", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11628, "upload_time": "2019-06-11T12:07:22", "url": "https://files.pythonhosted.org/packages/ea/b8/1fd335876b4756c3f09774bb52d27bb429637fed941b31b3ff82ef3a8b91/typemock-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b68ab03a9fe6a956eb37e3d64cb3c686", "sha256": "12bc54fd9e23ed161a1b544c1b49903f8128b339e4574850a4f6374eeddffd54" }, "downloads": -1, "filename": "typemock-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b68ab03a9fe6a956eb37e3d64cb3c686", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9121, "upload_time": "2019-06-11T12:07:26", "url": "https://files.pythonhosted.org/packages/4f/f1/68c15ec8f9987056c063bc03b23c2a4424d6e9c331e7d995eb159b8e4ff7/typemock-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "c35802953d62f3c52feb2506c5578d69", "sha256": "13445462004f83fdb5c8c5f4215bed4d94a3d3bf6a558f8eb4141ff78af66d4b" }, "downloads": -1, "filename": "typemock-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c35802953d62f3c52feb2506c5578d69", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11728, "upload_time": "2019-06-11T12:26:44", "url": "https://files.pythonhosted.org/packages/b4/6f/1c7c67c3535e7f158ab63ec548ffa79e2a68442f486a012d7c7c31ff3b2e/typemock-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17d1ac02c4b003827a2b86f6aef4fe1b", "sha256": "253c5c9e3ef1ed4c846533da100d474cb7d8a0b5869ac16c5dcc3276707d65a6" }, "downloads": -1, "filename": "typemock-0.2.2.tar.gz", "has_sig": false, "md5_digest": "17d1ac02c4b003827a2b86f6aef4fe1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9194, "upload_time": "2019-06-11T12:26:45", "url": "https://files.pythonhosted.org/packages/df/eb/70b3384d34498e1f71a2b2cb4325dc4424be09960b3ff1ffb6110e554bb8/typemock-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "84705f9b8b156b00e7b104f060eb78df", "sha256": "918855eeb640a790a9b1e97be3a3159825aa0ba37725d8449d6cc96d8c1e7ac2" }, "downloads": -1, "filename": "typemock-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "84705f9b8b156b00e7b104f060eb78df", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13018, "upload_time": "2019-06-11T15:14:04", "url": "https://files.pythonhosted.org/packages/4d/8f/bf647a10ba1aa65d86093ddf8c207548a53ad80547e0ed36a85b3a1f665a/typemock-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22a2433a4f360e5763281f3c4e9bc198", "sha256": "3904e2df07e32c4f8ecac98067c6079c171a3742ec12cbdea64879601a534c08" }, "downloads": -1, "filename": "typemock-0.2.3.tar.gz", "has_sig": false, "md5_digest": "22a2433a4f360e5763281f3c4e9bc198", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9838, "upload_time": "2019-06-11T15:14:05", "url": "https://files.pythonhosted.org/packages/7d/0e/6593c7a13e36f38a4101c8d28925bdc4538c81cc027141b4de6b5b228d49/typemock-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "a29f0ff9c802ddc26d38a608c19b9775", "sha256": "2fd6df24c5f00852f3ea4d4d9ff9d09ff74f56d6f11276c54ac04b0d5b474e2c" }, "downloads": -1, "filename": "typemock-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "a29f0ff9c802ddc26d38a608c19b9775", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13052, "upload_time": "2019-06-11T21:53:24", "url": "https://files.pythonhosted.org/packages/0f/99/093668e2cf61db9a93ea0176add0153daff40ec3cd3918168d64d1b15818/typemock-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4b774588f4b3130529cd7e66b7aaa5f", "sha256": "e8d7322f7c6ba8f1f26a2de5df7325a1faa38eae55aa5e1a6f365da1efca672a" }, "downloads": -1, "filename": "typemock-0.2.4.tar.gz", "has_sig": false, "md5_digest": "f4b774588f4b3130529cd7e66b7aaa5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9871, "upload_time": "2019-06-11T21:53:25", "url": "https://files.pythonhosted.org/packages/2e/af/09b5ba9035f59e42ae37bca0fcf707ae6996bf90616ce0729ccd19b43209/typemock-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "56bc0864d45ad3691230640d060a151a", "sha256": "9e55f35bb830066222598ebbb8a3b1d5e2fc8ca6bb435eb624f0cb63ee669456" }, "downloads": -1, "filename": "typemock-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "56bc0864d45ad3691230640d060a151a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14217, "upload_time": "2019-06-12T20:20:33", "url": "https://files.pythonhosted.org/packages/a0/1e/cce410b8ef504de208a9dfcd1c63a934c174f5671255640fe6c8fd4ff8f9/typemock-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "05e382dec2e2f073639caff6ee65eafc", "sha256": "3f00965b15152c5aaefc7e9217b47daefdaa069ad91fe1c51c397e369fb1b1a2" }, "downloads": -1, "filename": "typemock-0.3.0.tar.gz", "has_sig": false, "md5_digest": "05e382dec2e2f073639caff6ee65eafc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10509, "upload_time": "2019-06-12T20:20:35", "url": "https://files.pythonhosted.org/packages/d5/ec/8b00561d24b36a566fc2a500093cb516127ee85c9cd2f1fe79df982d33b4/typemock-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "4f4feec1ff5b7d49c0f2060bc7514ee0", "sha256": "b57a94ad25cc6bb6d860271ccd9c55355087d3b34a2ae03a2aca6f88d9c47a18" }, "downloads": -1, "filename": "typemock-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4f4feec1ff5b7d49c0f2060bc7514ee0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14215, "upload_time": "2019-06-12T20:25:48", "url": "https://files.pythonhosted.org/packages/b0/56/9bc67a677f0fca3e9fe30561bc8e8de9ab92b2d8e8f297e3165d2dd0c07e/typemock-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8f20bcf836baa996f4433b284f33712", "sha256": "1b402904cff2d8bb58d28fa72a8d69e63373e1bf60f5c722969f94b313894969" }, "downloads": -1, "filename": "typemock-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d8f20bcf836baa996f4433b284f33712", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10501, "upload_time": "2019-06-12T20:25:49", "url": "https://files.pythonhosted.org/packages/a0/d9/9be716f48889e7b44780a51bc6dbcf06001413ee739af5fc62f811835ef0/typemock-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "ef03bcda0ee1ebc9ee8d3efd589437b4", "sha256": "bd9a263a1d3e059db0fc89d49d4e3750d1d97f887521152f4d44704fc50347c0" }, "downloads": -1, "filename": "typemock-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ef03bcda0ee1ebc9ee8d3efd589437b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14401, "upload_time": "2019-06-13T08:07:17", "url": "https://files.pythonhosted.org/packages/91/f4/ad7b7236458e2a5603db025aa9be132b73590ffa4fe736ff3844be94a922/typemock-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "282180f33ae1ce52db63b17ba12838d1", "sha256": "c0f74efc918a776508785f31d893316b709550bb6a12454c68e3205f88570622" }, "downloads": -1, "filename": "typemock-0.3.2.tar.gz", "has_sig": false, "md5_digest": "282180f33ae1ce52db63b17ba12838d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10871, "upload_time": "2019-06-13T08:07:18", "url": "https://files.pythonhosted.org/packages/58/9a/584d5bd929d89ef90a177966eb6d666084d98dc387c6d587effdf9544ff9/typemock-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "46ab345d959cf9b0298252b284c3fbd4", "sha256": "1bee70cf93f81c7a905d9b3de11d5e9c2993ffbc41490863a85cc0ac620ae527" }, "downloads": -1, "filename": "typemock-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "46ab345d959cf9b0298252b284c3fbd4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16014, "upload_time": "2019-06-14T20:47:43", "url": "https://files.pythonhosted.org/packages/00/0f/4aa53e813640b7051451bfcd64853e16c8efda137ccbba1e0c519533eb63/typemock-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "876d3a0c14eddd39dc52c8c4857ff2d8", "sha256": "df31d976227d76db28f57549381cdaeb6a3d52cb997ebe7f1897c1452531bf8a" }, "downloads": -1, "filename": "typemock-0.3.3.tar.gz", "has_sig": false, "md5_digest": "876d3a0c14eddd39dc52c8c4857ff2d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12594, "upload_time": "2019-06-14T20:47:46", "url": "https://files.pythonhosted.org/packages/f1/03/343057dfe13f703897214b4458561df681ab0a136d21ea406d1e92076d41/typemock-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "d06842a3d8645f062e0b8ccca191a587", "sha256": "674d11808df0f80807c7c8572baa641c118ff2c8837f74ca602ca33957a99a5b" }, "downloads": -1, "filename": "typemock-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d06842a3d8645f062e0b8ccca191a587", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16029, "upload_time": "2019-06-14T20:55:46", "url": "https://files.pythonhosted.org/packages/78/df/708739c73f64bb090bfec1457361eae9d7962db88d7cfd2cf80edfffa46c/typemock-0.3.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "19b29ea0184cec159b377c929470bdb8", "sha256": "85a0efe1abfe31922e4972f8ee75a1e3cfbdf2534ae711958ffd87bda0372224" }, "downloads": -1, "filename": "typemock-0.3.4.tar.gz", "has_sig": false, "md5_digest": "19b29ea0184cec159b377c929470bdb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12631, "upload_time": "2019-06-14T20:55:48", "url": "https://files.pythonhosted.org/packages/2e/aa/4d77fa7c4950a108f6b54b55beffadc2046f0f9f7a6be55ffa0a89760234/typemock-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "35c961cabcb8a33d81239a3af2ff6356", "sha256": "8506a6f20383bdad2e6affd24ac0714af44cc0baade64c003ea3cfe13157ec6b" }, "downloads": -1, "filename": "typemock-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "35c961cabcb8a33d81239a3af2ff6356", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18126, "upload_time": "2019-06-16T13:22:52", "url": "https://files.pythonhosted.org/packages/85/da/62bbe4caac4008867b7526c912b78062577a2798a1ac80348e1eb8a2b4d5/typemock-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f59cf2b1d15a1ca922e8663d9466b9d3", "sha256": "41fa53e777b18b1d5d1e0e336d8454a8f40368c04fe509d3c598ba42666dc262" }, "downloads": -1, "filename": "typemock-0.3.5.tar.gz", "has_sig": false, "md5_digest": "f59cf2b1d15a1ca922e8663d9466b9d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14019, "upload_time": "2019-06-16T13:22:53", "url": "https://files.pythonhosted.org/packages/15/bd/d5d600d78e68f1eae4de91256394277681922f788520ae5e0dcfd1b5c9fd/typemock-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "6d28ee746a22fbe995456dafbf347460", "sha256": "9c4e3dac4f0f0f552b5deff433da4f9ea6a5bf7fdb5cd30fb1a23b536e50d167" }, "downloads": -1, "filename": "typemock-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "6d28ee746a22fbe995456dafbf347460", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17977, "upload_time": "2019-06-16T13:27:28", "url": "https://files.pythonhosted.org/packages/56/4a/e2f359afd74108f72b02e0d43a348fca63ce4b6c0770d2a1a9ba6bf72bd5/typemock-0.3.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "820e8ed2a151305a47c5010676d55e45", "sha256": "b1472804a76b56e364fdac15816c454dd0f6012c4e293ffad6816a44f1533279" }, "downloads": -1, "filename": "typemock-0.3.6.tar.gz", "has_sig": false, "md5_digest": "820e8ed2a151305a47c5010676d55e45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13714, "upload_time": "2019-06-16T13:27:30", "url": "https://files.pythonhosted.org/packages/d0/3d/a2c760bc2945a0b0f8fc60854267f7a3572241565499b6e67de7908821a6/typemock-0.3.6.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "995da8c6f5efdb881d4edc519ee786e8", "sha256": "098164508257d8d79f915acd1773e92411583e4fbd0e67b79a3c8d2e3bcca83a" }, "downloads": -1, "filename": "typemock-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "995da8c6f5efdb881d4edc519ee786e8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20388, "upload_time": "2019-06-19T06:32:42", "url": "https://files.pythonhosted.org/packages/fb/52/db9295295fadb7100ed740edf3238f25411162d9ac64eba104e03f7abf23/typemock-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e64a65386f4440f888dd3c8131be1631", "sha256": "157fa9aee36252c8d2222add7c3147ca53874802e4a82827e501297dd3122737" }, "downloads": -1, "filename": "typemock-0.4.0.tar.gz", "has_sig": false, "md5_digest": "e64a65386f4440f888dd3c8131be1631", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14010, "upload_time": "2019-06-19T06:32:44", "url": "https://files.pythonhosted.org/packages/46/c7/a7afb3a2a6a9a03d307c223f901b8008d992ed4dcb5766bb59b030b8559e/typemock-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "b994871fb8b050e84d97ec43d8594f44", "sha256": "6c711a56d7d056c152a96daf6dde5567e9e85a1c34e8de4c5ae66b9e7144ac64" }, "downloads": -1, "filename": "typemock-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b994871fb8b050e84d97ec43d8594f44", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21347, "upload_time": "2019-06-19T08:21:59", "url": "https://files.pythonhosted.org/packages/ce/42/8e04f3fba960187dfaca8ab97c6a3cc86b1ead1fed255ccf427f887e4ced/typemock-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08300c38f7f91d8d8bb01fc1f22103a7", "sha256": "b167ae856f1a1b049bfd3d5d7347d574d4aa4322e8b4a906a20663a4022dd699" }, "downloads": -1, "filename": "typemock-0.4.1.tar.gz", "has_sig": false, "md5_digest": "08300c38f7f91d8d8bb01fc1f22103a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14934, "upload_time": "2019-06-19T08:22:01", "url": "https://files.pythonhosted.org/packages/e0/e9/a7b98c8174e705dac75244fdbefdb62e81da8aa9241844de02452cbd0065/typemock-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "9551f0af4445d1c7acc64cc2f36f952b", "sha256": "78015ee742eeb8fefeeb5da6e2a080e7ac921bd1a92101f17a675094ad85d026" }, "downloads": -1, "filename": "typemock-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9551f0af4445d1c7acc64cc2f36f952b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21350, "upload_time": "2019-06-19T08:29:09", "url": "https://files.pythonhosted.org/packages/02/af/6c248d7454d27c6d7ebd6298f582cfc4c90847245ac0c28e29fdb801d0ac/typemock-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef77512aa386640793097d036ec57ef6", "sha256": "b762612afffdfa8a9540a275d5b4765b65b6c1e8cc374ae0889333d901f667d1" }, "downloads": -1, "filename": "typemock-0.4.2.tar.gz", "has_sig": false, "md5_digest": "ef77512aa386640793097d036ec57ef6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14939, "upload_time": "2019-06-19T08:29:10", "url": "https://files.pythonhosted.org/packages/7d/50/a0ae3ebd966b2a4463c86b72aa8ea76bdf7e0159d6b9c15854cb59858c71/typemock-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "24e428a0c35ef36b27c10199686efe58", "sha256": "8b9c2f208e7fc8f4ecd2ab7bf9fc8301615012d1db9d3b891a2f71712c1d84ee" }, "downloads": -1, "filename": "typemock-0.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "24e428a0c35ef36b27c10199686efe58", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22432, "upload_time": "2019-06-19T19:19:02", "url": "https://files.pythonhosted.org/packages/72/ba/a0e47f3c46d3faa1326975a3c8ce60df494e6da3c6ef3ec104b4f89506af/typemock-0.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20cbefdc383e89538fbb245e9f34feb5", "sha256": "8241081d16bfcf19ae75d1ba5a9c4c7d4e12a393ad110f014920be5715d4a69d" }, "downloads": -1, "filename": "typemock-0.4.3.tar.gz", "has_sig": false, "md5_digest": "20cbefdc383e89538fbb245e9f34feb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15731, "upload_time": "2019-06-19T19:19:05", "url": "https://files.pythonhosted.org/packages/a4/3e/c035bcab48344b314f819ec3a373f1d9bd015aebcd07ae5283e63986e740/typemock-0.4.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "3567ad4554cc223e4b947a67eeb8fed6", "sha256": "f9a36cd114a15187d9726e894f3d1900dac1c11294c2d6a26c164db2176df724" }, "downloads": -1, "filename": "typemock-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3567ad4554cc223e4b947a67eeb8fed6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23427, "upload_time": "2019-06-22T11:32:11", "url": "https://files.pythonhosted.org/packages/f4/3f/d60134e48ae90339d6f6072f5e4d2f268f162bf0da96fe837ec2758eeeaa/typemock-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48bd06660a1bc9ac9f2c255d4d99bbe9", "sha256": "bb764d1c2f34e3bcb0a20c36b6984ad4c9ac81d3ac31f108cd64100af46514e4" }, "downloads": -1, "filename": "typemock-0.5.0.tar.gz", "has_sig": false, "md5_digest": "48bd06660a1bc9ac9f2c255d4d99bbe9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16722, "upload_time": "2019-06-22T11:32:14", "url": "https://files.pythonhosted.org/packages/06/fd/f6c6c8fa2fde417a3d8ab01e2e20d1c28b4d73d8a54cd7151851985b94bc/typemock-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "d60b7c37683e5e886c42ed3660c1d847", "sha256": "1ebbeab01dff13c9a23ce1fe1e6c88af791a952efe17d39635193ce1c0f5842c" }, "downloads": -1, "filename": "typemock-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d60b7c37683e5e886c42ed3660c1d847", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23576, "upload_time": "2019-06-22T14:21:46", "url": "https://files.pythonhosted.org/packages/9d/11/836551cf8b0441544798b8cc396b0efd8095352000da792db8437250d35b/typemock-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "776971afd0119a43c2b1c1ae6a437dd8", "sha256": "92a2baadbd7e4f905970df78c806b6a591475ac5b73ba5968a457b913c0b9896" }, "downloads": -1, "filename": "typemock-0.5.1.tar.gz", "has_sig": false, "md5_digest": "776971afd0119a43c2b1c1ae6a437dd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16884, "upload_time": "2019-06-22T14:21:48", "url": "https://files.pythonhosted.org/packages/80/50/a4d6d43f2d6ffb759c3a38ffecf3154cd482252457a38d13bf212b69e3e6/typemock-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d60b7c37683e5e886c42ed3660c1d847", "sha256": "1ebbeab01dff13c9a23ce1fe1e6c88af791a952efe17d39635193ce1c0f5842c" }, "downloads": -1, "filename": "typemock-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d60b7c37683e5e886c42ed3660c1d847", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23576, "upload_time": "2019-06-22T14:21:46", "url": "https://files.pythonhosted.org/packages/9d/11/836551cf8b0441544798b8cc396b0efd8095352000da792db8437250d35b/typemock-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "776971afd0119a43c2b1c1ae6a437dd8", "sha256": "92a2baadbd7e4f905970df78c806b6a591475ac5b73ba5968a457b913c0b9896" }, "downloads": -1, "filename": "typemock-0.5.1.tar.gz", "has_sig": false, "md5_digest": "776971afd0119a43c2b1c1ae6a437dd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16884, "upload_time": "2019-06-22T14:21:48", "url": "https://files.pythonhosted.org/packages/80/50/a4d6d43f2d6ffb759c3a38ffecf3154cd482252457a38d13bf212b69e3e6/typemock-0.5.1.tar.gz" } ] }