構成ファイル構造を簡単に定義し、テンプレートを使用してファイルを検証します。 ?
validitは、Cpython 3.6、3.7、3.8、および3.9でテストされています。 PIPを使用してインストールするだけです。
$ (sudo) pip install validitデフォルトでは、 validITはJSON構成ファイルのみをサポートするか、既にロードされたデータ(構成ファイルから直接ではなく)のみをサポートしています。ただし、追加の依存関係を使用して、 validitは次のファイル形式をサポートします。
JSONYAMLTOML希望するファイル形式をサポートするために必要な追加の依存関係をbalialitをインストールするには、以下を使用します。
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モジュール、および通常、他の3つの基本モジュール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で使用しているモジュールの正確なバージョンを指定することを強くお勧めします。txtファイルまたはsetup.pyスクリプト。
たとえば、バージョンv1.3.2を特定するには、 requirements.txtで次の行を使用します。txtファイル:
validit==1.3.2
validit[yaml]==1.3.2 # If using extra file formats