{ "info": { "author": "Tobias Ammann", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6" ], "description": "contrapy\n========\n\nContracts for Python 3\n\n.. image:: https://snyk.io/test/github/digitalmensch/contrapy/badge.svg\n :target: https://snyk.io/test/github/digitalmensch/contrapy\n\n.. image:: https://travis-ci.org/digitalmensch/contrapy.svg?branch=master\n :target: https://travis-ci.org/digitalmensch/contrapy\n\n.. image:: https://coveralls.io/repos/github/digitalmensch/contrapy/badge.svg?branch=master\n :target: https://coveralls.io/github/digitalmensch/contrapy?branch=master\n\n.. image:: https://img.shields.io/pypi/pyversions/contrapy.svg\n :target: https://pypi.python.org/pypi/contrapy\n\n.. image:: https://img.shields.io/pypi/l/contrapy.svg\n :target: https://github.com/digitalmensch/contrapy/blob/master/LICENSE\n\nExamples\n--------\n\n.. code:: python\n\n import contrapy\n \n @contrapy.check(lambda a, b, _return: a + b == _return, lambda a, b: a < b)\n def demo(a : 22, b : float) -> float:\n return a + b\n \n >>> demo(22, 33.0)\n 55.0\n >>> demo(21, 33.0)\n [...]\n ValueError: a should be 22", "description_content_type": null, "docs_url": null, "download_url": "https://pypi.python.org/pypi/contrapy", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/digitalmensch/contrapy", "keywords": "contracts,contracts-programming", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "contrapy", "package_url": "https://pypi.org/project/contrapy/", "platform": "any", "project_url": "https://pypi.org/project/contrapy/", "project_urls": { "Download": "https://pypi.python.org/pypi/contrapy", "Homepage": "https://github.com/digitalmensch/contrapy" }, "release_url": "https://pypi.org/project/contrapy/2018.1.30/", "requires_dist": null, "requires_python": "", "summary": "Contracts for Python", "version": "2018.1.30" }, "last_serial": 3536305, "releases": { "2018.1.30": [ { "comment_text": "", "digests": { "md5": "2a80f6c4b62622b81351a653fce5629d", "sha256": "2a5818c8aeeaf1c8f4a927a5dba39a85ebe1c3921adafd426c1c888c4aa586ea" }, "downloads": -1, "filename": "contrapy-2018.1.30.tar.gz", "has_sig": false, "md5_digest": "2a80f6c4b62622b81351a653fce5629d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2270, "upload_time": "2018-01-30T20:52:07", "url": "https://files.pythonhosted.org/packages/f5/42/01dc90f81234494640044a8de03ea5e9d7fd71cbc877c36e7a5a9c511e6b/contrapy-2018.1.30.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2a80f6c4b62622b81351a653fce5629d", "sha256": "2a5818c8aeeaf1c8f4a927a5dba39a85ebe1c3921adafd426c1c888c4aa586ea" }, "downloads": -1, "filename": "contrapy-2018.1.30.tar.gz", "has_sig": false, "md5_digest": "2a80f6c4b62622b81351a653fce5629d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2270, "upload_time": "2018-01-30T20:52:07", "url": "https://files.pythonhosted.org/packages/f5/42/01dc90f81234494640044a8de03ea5e9d7fd71cbc877c36e7a5a9c511e6b/contrapy-2018.1.30.tar.gz" } ] }