一组基于字符串的验证函数,适用于在其他Python 2和3应用程序中使用。
项目描述
一组基于字符串的验证函数,适用于在其他Python 2和3应用程序中使用。
将这些验证函数传递一个字符串,如果验证失败,则抛出ValidationException。否则,它们返回验证字符串的柏拉图式值(即,validateInt(‘42’) 返回 int 42)。
安装
pip install pysimplevalidate
关于
PySimpleValidate提供了一些函数来执行常见的输入验证。此模块中的validate*函数接受一个value参数,如果它未通过验证,则抛出ValidationException。
如果value有效,则函数返回。返回值是验证函数接受的值的形式。这可能包括任何转换,例如从两端去除空白。
此模块实现了以下(希望是自我描述的)验证函数
validateNum()
validateInt()
validateFloat()
validateChoice()
validateDate()
validateTime()
validateDatetime()
validateRegex()
validateRegexStr()
validateEmail()
validateURL()
validateYesNo()
validateState()
validateMonth()
validateDayOfWeek()
validateDayOfMonth()
这些验证函数有以下共同参数
value: (str) 被验证的值。
blank: (bool) 如果为False,则空字符串被视为有效。默认为False。
strip: (bool, str, None) 如果省略或为 None,则从值中删除空白字符。如果为字符串,则从值中删除该字符串的字符。如果为 False,则不删除任何内容。
allowlistRegexes: (Sequence, None) 将明确通过验证的正则表达式字符串的序列。默认为 None。
blocklistRegexes: (Sequence, None) 将明确失败验证的正则表达式字符串的序列或 (regex_str, response_str) 元组。默认为 None。
此外,基于文本的验证器有以下共同参数
caseSensitive (bool): 如果为 True,值必须匹配可接受响应的确切大小写。如果为 False,则可以使用任何大小写。默认为 False。
快速入门
如果传递给 PySimpleValidate 验证函数的值未通过验证,则将引发 ValidationException。否则,返回值的一个清理版本。
建议使用较短名称 pysv 导入 PySimpleValidation。
>>> import pysimplevalidate as pysv
>>> pysv.validateStr('I have a cat', allowlistRegexes=['caterpillar', 'cat(.*?)dog'], blocklistRegexes=['cat', 'm(o){2:}se'])
Traceback (most recent call last):
...
pysimplevalidate.ValidationException: This response is invalid.
>>> pysv.validateStr('I have a caterpillar', allowlistRegexes=['caterpillar', 'cat(.*?)dog'], blocklistRegexes=['cat', 'm(o){2:}se'])
'I have a caterpillar'
>>> pysv.validateStr('I have a cat and a dog', allowlistRegexes=['caterpillar', 'cat(.*?)dog'], blocklistRegexes=['cat', 'm(o){2:}se'])
'I have a cat and a dog'
>>> pysv.validateStr('I have a mooooose', allowlistRegexes=['caterpillar', 'cat(.*?)dog'], blocklistRegexes=['cat', 'm(o){2:}se'])
'I have a mooooose'
>>> pysv.validateNum('42')
42
>>> pysv.validateNum('twelve')
Traceback (most recent call last):
...
pysimplevalidate.ValidationException: 'twelve' is not a number.
>>>
>>> pysv.validateNum('5', lessThan=10)
5
>>> pysv.validateFloat('4')
4.0
>>> pysv.validateFloat('4.12')
4.12
>>> pysv.validateInt('4.12')
Traceback (most recent call last):
...
pysimplevalidate.ValidationException: '4.12' is not an integer.
>>> pysv.validateChoice('cat', ['dog', 'cat', 'moose'])
'cat'
>>> pysv.validateChoice('CAT', ['dog', 'cat', 'moose'])
'cat'
>>> pysv.validateTime('12:00:01')
datetime.time(12, 0, 1)
>>> pysv.validateTime('hour 12 minute 00', formats=['hour %H minute %M'])
datetime.time(12, 0)
>>> pysv.validateEmail('al@inventwithpython.com')
'al@inventwithpython.com'
>>> pysv.validateURL('https://inventwithpython.com')
'https://inventwithpython.com'
>>> pysv.validateYesNo('y')
'yes'
>>> pysv.validateYesNo('NO')
'no'
>>> pysv.validateState('California')
'CA'
>>> pysv.validateState('TEXAS')
'TX'
>>> pysv.validateState('NY')
'NY'
>>> pysv.validateDayOfWeek('mon')
'Monday'
>>> pysv.validateDayOfWeek('FRIday')
'Friday'
>>> pysv.validateDayOfMonth(29, 2004, 2)
29
>>> pysv.validateDayOfMonth(31, 2019, 10)
31
>>> pysv.validateDayOfMonth(31, 2019, 9)
Traceback (most recent call last):
...
pysimplevalidate.ValidationException: '31' is not a day in the month of September 2019
项目详情
PySimpleValidate-0.2.12.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 645d24bdca17ad4c40658f3aa0bd5c1aa1688ba0c02ba75c5ed2cb3b8abaaa19 |
|
| MD5 | 4de8f6a289cf88cecf1a072dcd886d1f |
|
| BLAKE2b-256 | 0b548fd99436073dbdbba719e08e1b7e5f3f36a8cc9e518612e1b97e4806d2ce |