Легко определить структуры файлов конфигурации и проверять файлы с помощью шаблонов. ?
Validit тестируется на CPYTHON 3.6, 3.7, 3.8 и 3,9. Просто установите, используя PIP:
$ (sudo) pip install validit По умолчанию Validit поддерживает только файлы конфигурации JSON или уже загруженные данные (не непосредственно из файла конфигурации). Однако, используя дополнительные зависимости, Validit поддерживает следующие форматы файлов:
JSONYAMLTOMLЧтобы установить Validit с дополнительными необходимыми зависимостями для поддержки предпочтительного формата файла, используйте:
pip install validit[yaml] # install dependencies for yaml files
pip install validit[toml] # toml files
pip install validit[json,toml] # json and toml files
pip install validit[all] # all available file formats Чтобы создать шаблон, вам понадобится базовый Template модуль, и, как правило, три других основных модуля, TemplateList , TemplateDict и Optional .
В следующем примере мы создадим базовый шаблон, который представляет одного пользователя:
from validit import Template , TemplateList , TemplateDict , Optional
TemplateUser = TemplateDict ( # a dictionary with 2 required values
username = Template ( str ), # username must be a string
passcode = Template ( int , str ), # can be a string or an integer.
nickname = Optional ( Template ( str )), # optional - if provided, must be a string.
) Чтобы проверить ваши данные шаблоном, вы должны использовать объект Validate .
from validit import Template , TemplateDict , Optional , Validate
template = TemplateDict (
username = Template ( str ),
passcode = Template ( int , str ),
nickname = Optional ( Template ( str )),
)
data = {
'username' : 'RealA10N' ,
'passcode' : 123 ,
}
valid = Validate ( template , data )
if valid . errors : # if one or more errors found
print ( valid . errors ) # print errors to console
exit ( 1 ) # exit the script with exit code 1
else : # if data matches the template
run_script ( valid . data ) # run the script with the loaded data Если ваши данные хранятся в файле, можно вместо этого использовать объекты ValidateFromJSON , ValidateFromYAML или ValidateFromTOML :
from validit import Template , TemplateDict , Optional , ValidateFromYAML
filepath = '/path/to/data.yaml'
template = TemplateDict (
username = Template ( str ),
passcode = Template ( int , str ),
nickname = Optional ( Template ( str )),
)
with open ( filepath , 'r' ) as file :
# load and validate data from the file
valid = ValidateFromYAML ( file , template )
if valid . errors : # if one or more errors found
print ( valid . errors ) # print errors to console
exit ( 1 ) # exit the script with exit code 1
else : # if data matches the template
run_script ( valid . data ) # run the script with the loaded data Validit по -прежнему находится в активной разработке, и некоторые основные функции могут существенно измениться в ближайшем будущем.
Если вы планируете использовать Validit в качестве зависимости для вашего проекта, мы настоятельно рекомендуем указать точную версию модуля, который вы используете в файле requirements.txt или сценария setup.py .
Например, чтобы определить версию V1.3.2. Используйте следующую строку в вашем файле requirements.txt :
validit==1.3.2
validit[yaml]==1.3.2 # If using extra file formats