{ "info": { "author": "Maxim Grischuk", "author_email": "uzumaxy@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: Microsoft", "Operating System :: Microsoft :: Windows :: Windows 7", "Operating System :: Microsoft :: Windows :: Windows NT/2000", "Operating System :: Microsoft :: Windows :: Windows Server 2003", "Operating System :: Microsoft :: Windows :: Windows Server 2008", "Operating System :: Microsoft :: Windows :: Windows Vista", "Operating System :: Microsoft :: Windows :: Windows XP", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: POSIX :: BSD :: FreeBSD", "Operating System :: POSIX :: Linux", "Operating System :: POSIX :: SunOS/Solaris", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Software Development :: Debuggers", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Testing" ], "description": "pyvalid\n-------\n\nPython validation tool for checking function's input parameters and return values.\nThis module can be very helpful on the develop stage of the project, when control for accepted and returned function values is a one of most important things.\n\nModule consists of two decorators: `accepts` and `returns`.\n\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n`accepts(*accepted_arg_values, **accepted_kwargs_values)`\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nA decorator for validating types and values of input parameters of a given function.\nYou can pass the set of accepted types and values or validation function as decorator's input parameters.\nValidation process can raise the following exceptions:\n\n* `pyvalid.InvalidArgumentNumberError` \u2014 when the number or position of arguments supplied to a function is incorrect.\n* `pyvalid.ArgumentValidationError` \u2014 when the type of an argument to a function is not what it should be.\n\n\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n`returns(*accepted_returns_values)`\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nA decorator for validating the return value of a given function.\nYou can pass the set of accepted types and values or validation function as a decorator's input parameters.\nValidation process can raise `pyvalid.InvalidReturnType` when the return value is not in the collection of supported values and types.\n\n\nHow to install\n++++++++++++++\n\n* With PyPI: `pip install -U pyvalid`\n* Manually: `python setup.py install`\n\n\nExample of usage\n++++++++++++++++\n\nFunction `calc` in example below has next limitations:\n\n* Can return only int or float value;\n* First parameter must be only of type str;\n* Second parameter must be of type int or equals to 2.0;\n* Third parameter must be of type int or float.\n\n\n.. code-block:: python\n\n from pyvalid import accepts, returns\n\n\n @returns(int, float)\n @accepts(str, (int, 2.0), (int, float))\n def calc(operator, val1, val2, val3):\n expression = '{v1} {op} {v2} {op} {v3}'.format(\n op=operator,\n v1=val1, v2=val2, v3=val3\n )\n return eval(expression)\n\n\n # Output: 24.\n print(calc('*', 2, 3, 4))\n\n # Output: 24.0.\n print(calc(operator='*', val1=2, val2=3.0, val3=4))\n\n # Output: 24.0.\n print(calc('*', 2.0, 3, 4))\n\n # Raise pyvalid.ArgumentValidationError exception,\n # because second argument has unsupported value.\n print(calc('*', 3.14, 3, 4))\n\n\n # Raise pyvalid.InvalidReturnType exception,\n # because returns value is of type str.\n print(calc('*', 2, 3, '\"4\"'))\n\n\nHere is an example of usage `pyvalid` module in context of classes.\nPay attention to the method `connect` of the class `SqlDriver`.\nThis method is a good demonstration of usage `accepts` decorator for functions with keyword arguments.\n\n.. code-block:: python\n\n from pyvalid import accepts, returns\n from collections import Iterable\n\n\n class SqlDriver(object):\n\n @returns(bool)\n @accepts(object, host=str, port=int, usr=str, pwd=str, db=[str, None])\n def connect(self, **kwargs):\n connection_string = \\\n 'tsql -S {host} -p {port} -U {usr} -P {pwd} -D {db}'.format(**kwargs)\n try:\n print('Establishing connection: \"{}\"'.format(connection_string))\n # Create connection..\n success = True\n except:\n success = False\n return success\n\n @returns(bool)\n def close(self):\n try:\n print('Closing connection')\n # Close connection..\n success = True\n except:\n success = False\n return success\n\n @returns(None, dict)\n @accepts(object, str, Iterable)\n def query(self, sql, params=None):\n try:\n query_info = 'Processing request \"{}\"'.format(sql)\n if params is not None:\n query_info += ' with following params: ' + ', '.join(params)\n print(query_info)\n # Process request..\n data = dict()\n except:\n data = None\n return data\n\n\n sql_driver = SqlDriver()\n\n conn_params = {\n 'host': '8.8.8.8',\n 'port': 1433,\n 'usr': 'admin',\n 'pwd': 'Super_Mega_Strong_Password_2000',\n 'db': 'info_tech'\n }\n sql_driver.connect(**conn_params)\n\n sql = r'SELECT * FROM ProgrammingLang'\n pl = sql_driver.query(sql)\n\n sql = r'SELECT * FROM ProgrammingLang WHERE name=?'\n python_pl = sql_driver.query(sql, ('Python',))\n\n sql_driver.close()\n\n\nFollowing example with class `User` will show you how to use `pyvalid` module to validate some value with using validation function.\n\n.. code-block:: python\n\n from pyvalid import accepts\n from pyvalid.validators import is_validator\n\n\n class User(object):\n\n class Validator(object):\n\n unsafe_passwords = [\n '111111', '000000', '123123',\n '123456', '12345678', '1234567890',\n 'qwerty', 'sunshine', 'password',\n ]\n\n @classmethod\n @is_validator\n def login_checker(cls, login):\n is_valid = isinstance(login, str) and 1 <= len(login) <= 16\n if is_valid:\n for reg_user in User.registered:\n if login == reg_user.login:\n is_valid = False\n break\n return is_valid\n\n @classmethod\n @is_validator\n def password_checker(cls, password):\n is_valid = isinstance(password, str) and \\\n (6 <= len(password) <= 32) and \\\n (password not in cls.unsafe_passwords)\n return is_valid\n\n registered = list()\n\n def __init__(self, login, password):\n self.__login = None\n self.login = login\n self.__password = None\n self.password = password\n User.registered.append(self)\n\n @property\n def login(self):\n return self.__login\n\n @login.setter\n @accepts(object, Validator.login_checker)\n def login(self, value):\n self.__login = value\n\n @property\n def password(self):\n return self.__password\n\n @password.setter\n @accepts(object, Validator.password_checker)\n def password(self, value):\n self.__password = value\n\n\n user = User('admin', 'Super_Mega_Strong_Password_2000')\n\n # Output: admin Super_Mega_Strong_Password_2000\n print(user.login, user.password)\n\n # Raise pyvalid.ArgumentValidationError exception,\n # because User.Validator.password_checker method\n # returns False value.\n user.password = 'qwerty'\n\n # Raise pyvalid.ArgumentValidationError exception,\n # because User.Validator.login_checker method\n # returns False value.\n user = User('admin', 'Super_Mega_Strong_Password_2001')\n\n\nLicense\n+++++++\n\nNote that this project is distributed under the `MIT License `_.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/uzumaxy/pyvalid/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://uzumaxy.github.io/pyvalid/", "keywords": "pyvalid,valid,validation,type,checking,check,decorator", "license": "BSD", "maintainer": "Maxim Grischuk", "maintainer_email": "uzumaxy@gmail.com", "name": "pyvalid", "package_url": "https://pypi.org/project/pyvalid/", "platform": "Platform Independent", "project_url": "https://pypi.org/project/pyvalid/", "project_urls": { "Download": "https://github.com/uzumaxy/pyvalid/releases", "Homepage": "http://uzumaxy.github.io/pyvalid/" }, "release_url": "https://pypi.org/project/pyvalid/0.9.2/", "requires_dist": [ "six (==1.10.0)" ], "requires_python": "", "summary": "pyvalid is a Python validation tool for checking of input function parameters and return values.", "version": "0.9.2" }, "last_serial": 3924400, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "5ac126dfc11981c92fb407fdb1936907", "sha256": "802e045ab04c7c057fd7af449a1da0eeaad0671275d7c743f780cabaf088cb1e" }, "downloads": -1, "filename": "pyvalid-0.0.1.tar.gz", "has_sig": false, "md5_digest": "5ac126dfc11981c92fb407fdb1936907", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4918, "upload_time": "2014-08-20T15:05:11", "url": "https://files.pythonhosted.org/packages/cf/56/24631b952902c538ddfbd079eee391c2dbe415907c988e0b20a85a554185/pyvalid-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "d41318d1ffd0f52ef433ea8575f09146", "sha256": "30b61e99b057820d39e4e4457362632dcfc97ac7ca071f7e788bb96d223bf3ef" }, "downloads": -1, "filename": "pyvalid-0.0.2.tar.gz", "has_sig": false, "md5_digest": "d41318d1ffd0f52ef433ea8575f09146", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4976, "upload_time": "2014-08-21T07:07:18", "url": "https://files.pythonhosted.org/packages/fd/2c/dfccb2c5bec3b9b3a4f89f87e9be6c2f3144ea16b948c8722bfe07ed2398/pyvalid-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3b558322ccb91f21c0ad60e3db03b8b9", "sha256": "a061f6b11c1f12a76eeeed5d24703e60f5da1355430a3c68d0dfcf47a09216df" }, "downloads": -1, "filename": "pyvalid-0.0.3.tar.gz", "has_sig": false, "md5_digest": "3b558322ccb91f21c0ad60e3db03b8b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5269, "upload_time": "2014-08-26T06:39:02", "url": "https://files.pythonhosted.org/packages/f9/0d/f187a1a0e13e126a0cea2b582a558a47fe3958949ae8d7cdfe3c2f101ca6/pyvalid-0.0.3.tar.gz" } ], "0.1": [ { "comment_text": "", "digests": { "md5": "0032fa297e3d6d8f1c574ffc5fdae3d0", "sha256": "330745bd2b3c39bf9bf4e00d1bf22ca8cccc39060bdc699301deb7e3e5aeea50" }, "downloads": -1, "filename": "pyvalid-0.1.tar.gz", "has_sig": false, "md5_digest": "0032fa297e3d6d8f1c574ffc5fdae3d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5283, "upload_time": "2014-08-26T07:04:14", "url": "https://files.pythonhosted.org/packages/d5/f3/1ea098e02b54a95141fa9da095c667ae041c4ada236742fe2a1a2b932d60/pyvalid-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "12afea2c61b468364c30093341169d4f", "sha256": "04ef9b1288345513d737530ae0797ee1d5e730916b2451ac9658c4b8d7436289" }, "downloads": -1, "filename": "pyvalid-0.2.tar.gz", "has_sig": false, "md5_digest": "12afea2c61b468364c30093341169d4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4625, "upload_time": "2014-08-27T19:40:39", "url": "https://files.pythonhosted.org/packages/23/11/be7e70573be2d5766fd52e9e5be9542534c81ae083f262ee9614e360d54e/pyvalid-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "27b1e50a0b951ff82b45cf231879ff44", "sha256": "acbc7d96ce14cbb5c9731bcaa5f3e61b870b09e19b34cacc1de274827c455696" }, "downloads": -1, "filename": "pyvalid-0.3.tar.gz", "has_sig": false, "md5_digest": "27b1e50a0b951ff82b45cf231879ff44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4857, "upload_time": "2014-08-28T21:44:42", "url": "https://files.pythonhosted.org/packages/96/7c/434b0d29284041404b101b8804743919012880c78321519b1987c302ca6d/pyvalid-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "03703001b2cfea5096189903d4ab9a3a", "sha256": "63e9f381dda170da717427fad0631eefa9c9f2e2c55453741604386c4eb8ddc3" }, "downloads": -1, "filename": "pyvalid-0.4.tar.gz", "has_sig": false, "md5_digest": "03703001b2cfea5096189903d4ab9a3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5446, "upload_time": "2014-08-29T22:24:00", "url": "https://files.pythonhosted.org/packages/e9/1e/4602c7577f9dcd1920016e462b4891a5ba48f43c4109d1fd00e1ab964985/pyvalid-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "670058e8238f63049787a5d9fd7c0f40", "sha256": "7cb690eb7e60ff1a289db33cce541bf669a4aa079838df7920042ecbbd30288e" }, "downloads": -1, "filename": "pyvalid-0.5.tar.gz", "has_sig": false, "md5_digest": "670058e8238f63049787a5d9fd7c0f40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6369, "upload_time": "2014-09-07T00:14:34", "url": "https://files.pythonhosted.org/packages/0f/13/380966251cbb4d20be2a09040deedb98c2b557b7c71e737536d8dfc904f0/pyvalid-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "f8ee6476f357226ae6eb8df5565a4f2a", "sha256": "e8e531d1fd4c415d7483cd3f85bf61afb635bff31a0b339c9a40f21e7d4ad1e8" }, "downloads": -1, "filename": "pyvalid-0.6.tar.bz2", "has_sig": false, "md5_digest": "f8ee6476f357226ae6eb8df5565a4f2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6560, "upload_time": "2014-09-12T19:34:01", "url": "https://files.pythonhosted.org/packages/00/b5/46ffa8a56c40ee117a85481ad38052531c9ea6f7e0d1e1d426f0a130f7a8/pyvalid-0.6.tar.bz2" }, { "comment_text": "", "digests": { "md5": "015e6fbc399f5a660f2c4d87749a59ee", "sha256": "9515d6556e40e485e54d63d2df4e007324042ad1df19a7f80010f0603116edb7" }, "downloads": -1, "filename": "pyvalid-0.6.tar.gz", "has_sig": false, "md5_digest": "015e6fbc399f5a660f2c4d87749a59ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6338, "upload_time": "2014-09-12T19:33:23", "url": "https://files.pythonhosted.org/packages/f9/9e/4226ddeda15140ffb76a6c764bebf928261dec4a1b032c5a4d70c2b6fbaf/pyvalid-0.6.tar.gz" }, { "comment_text": "", "digests": { "md5": "6f9f935e8171b13f37ee4e3bf012ced9", "sha256": "13f1ae82cb6b781393408b483c1c7c9e7ff97189b5ccb2797fb5c3fa9c3112d9" }, "downloads": -1, "filename": "pyvalid-0.6.zip", "has_sig": false, "md5_digest": "6f9f935e8171b13f37ee4e3bf012ced9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12936, "upload_time": "2014-09-12T19:31:53", "url": "https://files.pythonhosted.org/packages/55/90/1402654f61f99122bc399a444923653df83f9cd91f0f483273dcf4c178b5/pyvalid-0.6.zip" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "15f406bbf20769d6e3ba6d775ccdd2fc", "sha256": "f113f5fb6c3fb5e1d8b17b8b10c444b23cdd52033723a1b071aca2ad68a31ff9" }, "downloads": -1, "filename": "pyvalid-0.7.tar.bz2", "has_sig": false, "md5_digest": "15f406bbf20769d6e3ba6d775ccdd2fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7503, "upload_time": "2014-09-23T20:46:09", "url": "https://files.pythonhosted.org/packages/e6/62/d32afc64e74d747a18c7527935d351a676b8805fb5ceca2073254a613b03/pyvalid-0.7.tar.bz2" }, { "comment_text": "", "digests": { "md5": "73dcc967e2ade7afcb995554e64d8742", "sha256": "d2ddec6c2db2d3a7752186271013a79052cf4034998fe113c5ca77cea9c46c0b" }, "downloads": -1, "filename": "pyvalid-0.7.tar.gz", "has_sig": false, "md5_digest": "73dcc967e2ade7afcb995554e64d8742", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7138, "upload_time": "2014-09-23T20:46:06", "url": "https://files.pythonhosted.org/packages/88/48/24ba0e5fdbeff14a100d5bc44d094762fed904c0bf74ef38125c81a37886/pyvalid-0.7.tar.gz" }, { "comment_text": "", "digests": { "md5": "fa0c8102ba01ad5a61f03405fedac908", "sha256": "666719cf5b28ef83694596aa2408a6156ac42b85f1aa6facdc5804e7a1c74bfe" }, "downloads": -1, "filename": "pyvalid-0.7.zip", "has_sig": false, "md5_digest": "fa0c8102ba01ad5a61f03405fedac908", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14315, "upload_time": "2014-09-23T20:46:03", "url": "https://files.pythonhosted.org/packages/78/c1/436df68f0bfbf6fb40fa61f5bc7425dd91864bc58cde96ac56363d43964c/pyvalid-0.7.zip" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "4410deef08f44b109e6c21bfa5e13d04", "sha256": "e9d9f8d3ffc661f2e521de329e255331d7a6091ec66f677c619ff5f78cce1c6a" }, "downloads": -1, "filename": "pyvalid-0.8.tar.bz2", "has_sig": false, "md5_digest": "4410deef08f44b109e6c21bfa5e13d04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7637, "upload_time": "2014-09-24T21:31:05", "url": "https://files.pythonhosted.org/packages/ca/f6/9408bdcce72c05f655327d580b3164290e74494a7528c86a682b488b3ad5/pyvalid-0.8.tar.bz2" }, { "comment_text": "", "digests": { "md5": "910b1e784ce2d4834f289c3ce107f9d0", "sha256": "8f6bb2fdf32ace98c3ab66faa29a96e932d5de1c6a8be1c4e47c8be42bf874dc" }, "downloads": -1, "filename": "pyvalid-0.8.tar.gz", "has_sig": false, "md5_digest": "910b1e784ce2d4834f289c3ce107f9d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7340, "upload_time": "2014-09-24T21:31:08", "url": "https://files.pythonhosted.org/packages/5e/dc/d0e23c3159578228979601a26e5c373be2f926086636d5d27d35a56129fe/pyvalid-0.8.tar.gz" }, { "comment_text": "", "digests": { "md5": "f25c4ffd8a4aba0eafb729cf4b85acc4", "sha256": "b959dbc1adee3fcbdfb8f4f6e01bd9417ee15fed3606f1eaffecfd759a6fef9b" }, "downloads": -1, "filename": "pyvalid-0.8.zip", "has_sig": false, "md5_digest": "f25c4ffd8a4aba0eafb729cf4b85acc4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14648, "upload_time": "2014-09-24T21:31:02", "url": "https://files.pythonhosted.org/packages/a7/9e/789fa6672aac63e172caa4267b474eea39bba2562d807375c48f766a6b66/pyvalid-0.8.zip" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "34d60e9a1aab9f3c7cb883759436ca4f", "sha256": "7694153e7c1c1b05c57a347a09033127582a53eb75436dfac22c4183c21f16cf" }, "downloads": -1, "filename": "pyvalid-0.9.tar.bz2", "has_sig": false, "md5_digest": "34d60e9a1aab9f3c7cb883759436ca4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7682, "upload_time": "2014-10-03T06:14:35", "url": "https://files.pythonhosted.org/packages/56/f2/d7557031bd0be5db1a786cfb57f65e7ebc16a25f6f44cca485a90f5b9c69/pyvalid-0.9.tar.bz2" }, { "comment_text": "", "digests": { "md5": "ba28bc7f7a60c399deaa6d4776a66b61", "sha256": "43b271404657a95bf428a862e8c60ee86f3aad2e4be2797632940cf5e25921b2" }, "downloads": -1, "filename": "pyvalid-0.9.tar.gz", "has_sig": false, "md5_digest": "ba28bc7f7a60c399deaa6d4776a66b61", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8731, "upload_time": "2014-10-03T06:14:38", "url": "https://files.pythonhosted.org/packages/3e/b7/4ccb25e9133845d17eee861d58bf658760a865a037297ba68807ffae3f9d/pyvalid-0.9.tar.gz" }, { "comment_text": "", "digests": { "md5": "d734f6de5fc9d992759c1af845e4a323", "sha256": "2ce63ab2470202bbed6737acc9118fe11e8ac89c94b254bba472d3b8e8e2240d" }, "downloads": -1, "filename": "pyvalid-0.9.zip", "has_sig": false, "md5_digest": "d734f6de5fc9d992759c1af845e4a323", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14741, "upload_time": "2014-10-03T06:14:32", "url": "https://files.pythonhosted.org/packages/2f/21/a02b79b12bfb7cd65346571187ffae6850d886de90bca0eeadf8ce935038/pyvalid-0.9.zip" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "9d15091a38144cc4603ddd5416628e11", "sha256": "1a1c0bb1e14022cc4b60fb8396dc234bbddf2a9ea7d3b503485eaf130700b8d3" }, "downloads": -1, "filename": "pyvalid-0.9.1-py3.6.egg", "has_sig": false, "md5_digest": "9d15091a38144cc4603ddd5416628e11", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 16218, "upload_time": "2018-06-02T20:41:25", "url": "https://files.pythonhosted.org/packages/bd/82/933f1b17f3a18b5e4e24d72b53419308e8f1c2a71bd6ba2e3c7083ac213c/pyvalid-0.9.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "087e110cc39d72eb793b8fe9faca1b02", "sha256": "326817b2c628589fd39706795319b000127515f47c5238813b1d258bf377803e" }, "downloads": -1, "filename": "pyvalid-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "087e110cc39d72eb793b8fe9faca1b02", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8524, "upload_time": "2018-06-02T20:41:23", "url": "https://files.pythonhosted.org/packages/95/67/69f02753523a557f6e831c2ed485e476b1d879909ed3aa93361576f87abf/pyvalid-0.9.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d97df275d1fe7379b42380e67fc79af", "sha256": "72320a3b52f93bbc09c1ff41300d8fd9bf654a2bd115e2510de0ff2236cdb5fc" }, "downloads": -1, "filename": "pyvalid-0.9.1.tar.gz", "has_sig": false, "md5_digest": "0d97df275d1fe7379b42380e67fc79af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8870, "upload_time": "2018-06-02T20:41:27", "url": "https://files.pythonhosted.org/packages/04/e8/ee039c1b990b6ca2c8af439e05e1bba681eeaf360a1a14e3565fd4914f46/pyvalid-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "873e85da5494efbd019cebe94ad4bd57", "sha256": "e9cca81442e4ef4ab29991a532b9e382e0a0a9bab89e3e21e4146b3429a70682" }, "downloads": -1, "filename": "pyvalid-0.9.2-py3.6.egg", "has_sig": false, "md5_digest": "873e85da5494efbd019cebe94ad4bd57", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 16274, "upload_time": "2018-06-02T22:19:12", "url": "https://files.pythonhosted.org/packages/74/9c/cbdf10220feeea9031bcdff444364cdca910680c5362eb100068f74c8921/pyvalid-0.9.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "f68ff327d4251e88bd370db03f55c1d5", "sha256": "51fd01431ff296e0d994000ffca944ea9758f35742a620d6a676a06485c72b70" }, "downloads": -1, "filename": "pyvalid-0.9.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f68ff327d4251e88bd370db03f55c1d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8547, "upload_time": "2018-06-02T22:14:49", "url": "https://files.pythonhosted.org/packages/c9/45/d536f08759aeedcddd36607cb6558c9125ba474e8c3ecab942733208bbd6/pyvalid-0.9.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15b7b40499220f9e9998f13983389bb0", "sha256": "88db694d4d2faa489973b4346f11b9825714365f932f9247221b987c8da7ce1d" }, "downloads": -1, "filename": "pyvalid-0.9.2.tar.gz", "has_sig": false, "md5_digest": "15b7b40499220f9e9998f13983389bb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8890, "upload_time": "2018-06-02T22:19:13", "url": "https://files.pythonhosted.org/packages/f9/37/5a6aafd4cf2d6db43cbf6f79f211d69b48107e2045cdeca906f2eacac5a6/pyvalid-0.9.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "873e85da5494efbd019cebe94ad4bd57", "sha256": "e9cca81442e4ef4ab29991a532b9e382e0a0a9bab89e3e21e4146b3429a70682" }, "downloads": -1, "filename": "pyvalid-0.9.2-py3.6.egg", "has_sig": false, "md5_digest": "873e85da5494efbd019cebe94ad4bd57", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 16274, "upload_time": "2018-06-02T22:19:12", "url": "https://files.pythonhosted.org/packages/74/9c/cbdf10220feeea9031bcdff444364cdca910680c5362eb100068f74c8921/pyvalid-0.9.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "f68ff327d4251e88bd370db03f55c1d5", "sha256": "51fd01431ff296e0d994000ffca944ea9758f35742a620d6a676a06485c72b70" }, "downloads": -1, "filename": "pyvalid-0.9.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f68ff327d4251e88bd370db03f55c1d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8547, "upload_time": "2018-06-02T22:14:49", "url": "https://files.pythonhosted.org/packages/c9/45/d536f08759aeedcddd36607cb6558c9125ba474e8c3ecab942733208bbd6/pyvalid-0.9.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15b7b40499220f9e9998f13983389bb0", "sha256": "88db694d4d2faa489973b4346f11b9825714365f932f9247221b987c8da7ce1d" }, "downloads": -1, "filename": "pyvalid-0.9.2.tar.gz", "has_sig": false, "md5_digest": "15b7b40499220f9e9998f13983389bb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8890, "upload_time": "2018-06-02T22:19:13", "url": "https://files.pythonhosted.org/packages/f9/37/5a6aafd4cf2d6db43cbf6f79f211d69b48107e2045cdeca906f2eacac5a6/pyvalid-0.9.2.tar.gz" } ] }