Defina facilmente as estruturas de arquivos de configuração e valida arquivos usando os modelos. ?
O Validit é testado em Cpython 3.6, 3.7, 3.8 e 3.9. Simplesmente instale usando o PIP:
$ (sudo) pip install validit Por padrão, o Validit suporta apenas arquivos de configuração JSON ou dados já carregados (não diretamente de um arquivo de configuração). No entanto, usando dependências adicionais, o Validit suporta os seguintes formatos de arquivo:
JSONYAMLTOMLPara instalar o Validit com as dependências necessárias adicionais para apoiar o formato de arquivo preferido, use:
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 Para criar um modelo, você precisará do módulo Template básico e, geralmente, os outros três módulos básicos TemplateList , TemplateDict e Optional .
No exemplo a seguir, criaremos um modelo básico que represente um único usuário:
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.
) Para validar seus dados com um modelo, você deve usar o objeto 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 Se seus dados forem armazenados em um arquivo, será possível usar os objetos ValidateFromJSON , ValidateFromYAML ou 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 A Validit ainda está em desenvolvimento ativo e alguns recursos essenciais podem mudar substancialmente no futuro próximo.
Se você planeja usar o Validit como uma dependência para o seu projeto, recomendamos a especificação da versão exata do módulo que você está usando no arquivo requirements.txt ou scripts setup.py .
Por exemplo, para identificar a versão v1.3.2 , use a seguinte linha em seus requirements.txt arquivo:
validit==1.3.2
validit[yaml]==1.3.2 # If using extra file formats