Very simple and effective schema checker
Project description
poormanschema
Simple and effective schema checker:
>>> from poormanschema import * >>> check({'first_name': 1}. [{'first_name': str, 'last_name': str}]) ValueError: {first_name} should be of type "str"
It can also normalize data:
>>> check(' 2016-03-23T12:23:12 ', OR(STRIP, ISO8601)) '2016-03-23T12:23:12'
Or convert them on entry:
>>> repr(check(['1.3'], [DECIMAL])) [Decimal('1.3')]
List of predicates
check(data, schema, path=’’) - check data agains schema, prefix error messages with path
OR(*schemas) - first schema to match is returned
ANY - can be anything
AND(*schemas) - all schemas must match
MANDATORY(schema) - only useful on dict values, indicate the corresponding key is mandatory, all other keys are optional
RE(regexp, repl=None, count=0, flag=0) - value must be a string matching regexp
ISO8601 - value must be a string like ‘2016-09-07T12:12:34’
NORMALIZE(schema, convert) - apply schema then apply converter to the result
STRIP - remove starting and ending spaces
LOWER - lowercase the string
UPPER - uppercase the string
DECIMAL - convert a string into a decimal.Decimal object
Exemple: SCIM 1.0 Core Schema of an User object
schema = { 'schemas': MANDATORY([basestring]), 'id': MANDATORY(basestring), 'externalId': MANDATORY(basestring), 'userName': MANDATORY(unicode), 'name': MANDATORY({ 'formatted': MANDATORY(str), 'familyName': str, 'givenName': str, 'middleName': str, 'honorificPrefix': str, 'honorificSuffix': str, }), 'urn:ietf:params:scim:schemas:extension:enterprise:2.0:User': MANDATORY({ 'employeeNumber': OR(STRIP, RE(r'^\d+$')), 'costCenter': OR(STRIP, RE(r'^\d+$')), }), 'meta': { 'resourceType': 'User', 'created': ISO8601, 'lastModified': ISO8601, 'version': RE(r'^(W\\)?"[^"]"$'), 'location': str, } }
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file poormanschema-0.0.0.1.tar.gz
.
File metadata
- Download URL: poormanschema-0.0.0.1.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f13c5c6ac6e29d86adab0e2ab8d9c19978574f9814c8185a830ec002218bc34f |
|
MD5 | 94ce4cb132da9cc7227d0a47845ed19c |
|
BLAKE2b-256 | f4a08246b2e981dace63bc43630aee2e2aac04c72e62c1c45aacac1fe3d3a450 |