跳转到主要内容

一组基于字符串的验证函数,适用于在其他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 (23.0 kB 查看哈希值)

上传时间

支持