{ "info": { "author": "Ernesto Bossi", "author_email": "bossi.ernestog@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Topic :: Utilities" ], "description": "PyContractor\n============\n\nIntroduction\n------------\n\nDesign by contract is a methodology of software design. It prescribes\nthat software designers should define formal, precise and verifiable\ninterface specifications for software components, which extend the\nordinary definition of abstract data types with preconditions,\npostconditions and invariants. These specifications are referred to as\n\"contracts\", in accordance with a conceptual metaphor with the\nconditions and obligations of business contracts.\n\nUsage\n-----\n\nWhen using this library, just create a class and define the\npreconditions, postconditions or invariants in the method, or in a\nseparate function.\n\nFor ex.\n\n::\n\n from PyContractor import PyContractor\n\n def division(self, a, b):\n PyContractor.require(b != 0, \"Divisor must be non-zero\")\n\n division(2/0)\n\nThis tiny library just gives you a start to know this methodology and\nit's mainly focused for educational purposes.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bossiernesto/PyContractor", "keywords": "Design Contract ContractProgramming", "license": "GPL v3", "maintainer": null, "maintainer_email": null, "name": "PyContractor", "package_url": "https://pypi.org/project/PyContractor/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/PyContractor/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/bossiernesto/PyContractor" }, "release_url": "https://pypi.org/project/PyContractor/0.1.1/", "requires_dist": null, "requires_python": null, "summary": "Design By Contract library", "version": "0.1.1" }, "last_serial": 847625, "releases": { "0.1.0": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a366120782103fd9e4b7cd12ece4ff55", "sha256": "af8e8f463772f4f334c34a77c4b460f309a78ae000e09512970615d243f550c5" }, "downloads": -1, "filename": "PyContractor-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a366120782103fd9e4b7cd12ece4ff55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2488, "upload_time": "2013-08-24T01:37:53", "url": "https://files.pythonhosted.org/packages/5f/a2/ffec4d2c50a4bbe808dce5a13c94663575ee7d9872d51e9d4a0e39822884/PyContractor-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a366120782103fd9e4b7cd12ece4ff55", "sha256": "af8e8f463772f4f334c34a77c4b460f309a78ae000e09512970615d243f550c5" }, "downloads": -1, "filename": "PyContractor-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a366120782103fd9e4b7cd12ece4ff55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2488, "upload_time": "2013-08-24T01:37:53", "url": "https://files.pythonhosted.org/packages/5f/a2/ffec4d2c50a4bbe808dce5a13c94663575ee7d9872d51e9d4a0e39822884/PyContractor-0.1.1.tar.gz" } ] }