{ "info": { "author": "Vahid Mardani", "author_email": "vahid.mardani@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: Freeware", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries" ], "description": "pyvalidate\n==========\n\n\n.. Python method's parameter validation library, as a pythonic decorator\n\n\nValidates input parameters of a callable using this arguments::\n \n param: arg_types: list of types, Required argument's types & counts in order\n param: deny_match list of string ,regex pattern, if any argument matches with the pattern, exception raises\n param: requires: list of fields to check for mandatory\n param: deny: string ,regex pattern, if any parameter matches with the pattern, exception raises\n param: deny_except: string ,regex pattern for excluding fields from deny\n param: types: dict of key:name and value:type to check for types, if mismatch it will be raises exception\n param: values: dict of key:name and value:regex pattern to check the values, & fire exception if mismatch\n param: ignore: string ,regex pattern of parameters to filter\n param: defaults: dict of key:name and value:default_value\n\n\nExceptions::\n \n raise: MandatoryException: if any param in requires does not provided\n raise: ArgumentException: if arguments are invalid , short or mismatch type.\n raise: DenialException: if found param in deny list\n raise: ParameterTypeException: if parameter types invalid\n raise: ParameterValueException: if values are not in correct format\n\n\nExample::\n\n from pyvalidate import validate, ValidationException\n \n @validate(arg_types=[int, str, str],\n deny_match=['xxx', 'tiktik'],\n requires=['phone'],\n deny='query',\n deny_except='query2',\n types={'phone':str, 'address':str, 'age':int},\n values={'phone':'^\\d*$'},\n ignore='age',\n defaults={'address':'nothing'})\n def add_person(serial, firstname, lastname, phone=None, address=None, age=None, **kw):\n print 'adding person \"%s:%s %s:%s\" with serial: %s:%s phone: %s:%s address: %s:%s age:%s:%s' % (firstname, type(firstname),\n lastname, type(lastname),\n serial, type(serial),\n phone,\n type(phone),\n address,\n type(address),\n age,\n type(age))\n \n def test(*args, **kwargs):\n try:\n add_person(*args, **kwargs)\n except ValidationException as ex:\n print ex.message\n \n def main():\n test(12, \"Vahid\", \"Mardani\", phone=\"09122451075\", address=\"Tehran\")\n test(\"12\", \"Vahid\", \"Mardani\", phone='+9122451075', address=\"Tehran\")\n test(\"12\", \"Vahid\", \"Mardani\", phone='1')\n test(\"12\", \"Vahid\", \"Mardani\", phone='tiktik')\n test(\"12\", \"xxx\", \"Mardani\", phone='')\n test(\"12\", \"\", \"Mardani\",)\n test(\"12\", \"\", \"Mardani\", phone='1', query='123')\n test(\"12\", \"\", \"Mardani\", phone='1', query2='123')\n test(\"12\", \"\", \"Mardani\", phone='1', age='123')\n \n if __name__ == '__main__':\n main()", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://packages.python.org/pyvalidate", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "pyvalidate", "package_url": "https://pypi.org/project/pyvalidate/", "platform": "any", "project_url": "https://pypi.org/project/pyvalidate/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://packages.python.org/pyvalidate" }, "release_url": "https://pypi.org/project/pyvalidate/1.3.1/", "requires_dist": null, "requires_python": null, "summary": "Python method's parameter validation library, as a pythonic decorator", "version": "1.3.1" }, "last_serial": 798235, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "d28e4d15131300a814ab68364468c893", "sha256": "4ce79148ccccb631b540ecc87e07264cfb1a9c7c63292da2687b6d39a02b7afb" }, "downloads": -1, "filename": "pyvalidate-1.1.tar.gz", "has_sig": false, "md5_digest": "d28e4d15131300a814ab68364468c893", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3438, "upload_time": "2012-05-16T14:50:42", "url": "https://files.pythonhosted.org/packages/c0/b8/6f4e508669c84c83d37c137e163d1f465a58f010d253922dd94cd05aadcd/pyvalidate-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "062d728ca7c9bf68a345d2d0e3b47c50", "sha256": "f1c0345e63ad53c2e6e49b773d4f176cb20d7354d56adc8db2d56490fa9e1882" }, "downloads": -1, "filename": "pyvalidate-1.2.tar.gz", "has_sig": false, "md5_digest": "062d728ca7c9bf68a345d2d0e3b47c50", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3454, "upload_time": "2012-05-17T00:44:25", "url": "https://files.pythonhosted.org/packages/c3/fc/d8f270f1b374ad233eacc310a792562862e55d047590a9584d131b8d5308/pyvalidate-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "3185747e24d582c7db5cc46d05f02d45", "sha256": "5b8176760ab538a65b3b0bae6a17dc8d975b0d8de98ae3f8c632e798129f1b49" }, "downloads": -1, "filename": "pyvalidate-1.3.tar.gz", "has_sig": false, "md5_digest": "3185747e24d582c7db5cc46d05f02d45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3653, "upload_time": "2012-05-17T00:48:05", "url": "https://files.pythonhosted.org/packages/f1/06/dda4f5543ca9e3fb48a691abc6c4a6ed33afd8c004f6fcacfbfab253d562/pyvalidate-1.3.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "6a42f3d7a892f7b28510d3b906b0b324", "sha256": "bfb49447d1d0c060fdea8efc7710b8f66b6cd8e14d60362fc1736a8c660ae5f1" }, "downloads": -1, "filename": "pyvalidate-1.3.1-py2.7.egg", "has_sig": true, "md5_digest": "6a42f3d7a892f7b28510d3b906b0b324", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6784, "upload_time": "2012-12-24T23:06:02", "url": "https://files.pythonhosted.org/packages/8e/f5/c2aa47ddeaba61008f8d2c6ac15a3ab3160eb84a9783971159689a7c837e/pyvalidate-1.3.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "6c10625283b1fa1543213242550a3697", "sha256": "564be484820432e052f2bc23d29165822d56f71d5ff6ce8040cd4643c28a3a97" }, "downloads": -1, "filename": "pyvalidate-1.3.1.tar.gz", "has_sig": true, "md5_digest": "6c10625283b1fa1543213242550a3697", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3927, "upload_time": "2012-12-24T23:05:46", "url": "https://files.pythonhosted.org/packages/ea/92/c2303c5adaff4ffc2313e7afec91f169372a7b6922d40ab46fd83a67153f/pyvalidate-1.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6a42f3d7a892f7b28510d3b906b0b324", "sha256": "bfb49447d1d0c060fdea8efc7710b8f66b6cd8e14d60362fc1736a8c660ae5f1" }, "downloads": -1, "filename": "pyvalidate-1.3.1-py2.7.egg", "has_sig": true, "md5_digest": "6a42f3d7a892f7b28510d3b906b0b324", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6784, "upload_time": "2012-12-24T23:06:02", "url": "https://files.pythonhosted.org/packages/8e/f5/c2aa47ddeaba61008f8d2c6ac15a3ab3160eb84a9783971159689a7c837e/pyvalidate-1.3.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "6c10625283b1fa1543213242550a3697", "sha256": "564be484820432e052f2bc23d29165822d56f71d5ff6ce8040cd4643c28a3a97" }, "downloads": -1, "filename": "pyvalidate-1.3.1.tar.gz", "has_sig": true, "md5_digest": "6c10625283b1fa1543213242550a3697", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3927, "upload_time": "2012-12-24T23:05:46", "url": "https://files.pythonhosted.org/packages/ea/92/c2303c5adaff4ffc2313e7afec91f169372a7b6922d40ab46fd83a67153f/pyvalidate-1.3.1.tar.gz" } ] }