jsonmodels package¶
Submodules¶
jsonmodels.builders module¶
Builders to generate in memory representation of model and fields tree.
-
class
jsonmodels.builders.Builder(parent=None, nullable=False, default=<object object>)[source]¶ Bases:
object-
has_default¶
-
-
class
jsonmodels.builders.EmbeddedBuilder(*args, **kwargs)[source]¶ Bases:
jsonmodels.builders.Builder-
is_definition¶
-
-
class
jsonmodels.builders.ListBuilder(*args, **kwargs)[source]¶ Bases:
jsonmodels.builders.Builder-
is_definition¶
-
-
class
jsonmodels.builders.ObjectBuilder(model_type, *args, **kwargs)[source]¶ Bases:
jsonmodels.builders.Builder-
is_definition¶
-
is_root¶
-
type_name¶
-
-
class
jsonmodels.builders.PrimitiveBuilder(type, *args, **kwargs)[source]¶ Bases:
jsonmodels.builders.Builder
jsonmodels.collections module¶
jsonmodels.errors module¶
jsonmodels.fields module¶
-
class
jsonmodels.fields.BaseField(required=False, nullable=False, help_text=None, validators=None, default=<object object>, name=None)[source]¶ Bases:
objectBase class for all fields.
-
has_default¶
-
parse_value(value)[source]¶ Parse value from primitive to desired format.
Each field can parse value to form it wants it to be (like string or int).
-
types= None¶
-
-
class
jsonmodels.fields.BoolField(required=False, nullable=False, help_text=None, validators=None, default=<object object>, name=None)[source]¶ Bases:
jsonmodels.fields.BaseFieldBool field.
-
types= (<type 'bool'>,)¶
-
-
class
jsonmodels.fields.DateField(str_format=None, *args, **kwargs)[source]¶ Bases:
jsonmodels.fields.StringFieldDate field.
-
default_format= '%Y-%m-%d'¶
-
types= (<type 'datetime.date'>,)¶
-
-
class
jsonmodels.fields.DateTimeField(str_format=None, *args, **kwargs)[source]¶ Bases:
jsonmodels.fields.StringFieldDatetime field.
-
types= (<type 'datetime.datetime'>,)¶
-
-
class
jsonmodels.fields.EmbeddedField(model_types, *args, **kwargs)[source]¶ Bases:
jsonmodels.fields.BaseFieldField for embedded models.
-
class
jsonmodels.fields.FloatField(required=False, nullable=False, help_text=None, validators=None, default=<object object>, name=None)[source]¶ Bases:
jsonmodels.fields.BaseFieldFloat field.
-
types= (<type 'float'>, <type 'int'>)¶
-
-
class
jsonmodels.fields.IntField(required=False, nullable=False, help_text=None, validators=None, default=<object object>, name=None)[source]¶ Bases:
jsonmodels.fields.BaseFieldInteger field.
-
types= (<type 'int'>,)¶
-
-
class
jsonmodels.fields.ListField(items_types=None, *args, **kwargs)[source]¶ Bases:
jsonmodels.fields.BaseFieldList field.
-
types= (<type 'list'>,)¶
-
-
class
jsonmodels.fields.StringField(required=False, nullable=False, help_text=None, validators=None, default=<object object>, name=None)[source]¶ Bases:
jsonmodels.fields.BaseFieldString field.
-
types= (<type 'basestring'>,)¶
-
jsonmodels.models module¶
-
class
jsonmodels.models.Base(**kwargs)[source]¶ Bases:
objectBase class for all models.
-
classmethod
iterate_over_fields()[source]¶ Iterate through fields as (attribute_name, field_instance).
-
classmethod
jsonmodels.parsers module¶
Parsers to change model structure into different ones.
jsonmodels.utilities module¶
-
class
jsonmodels.utilities.PythonRegex(regex, flags)¶ Bases:
tuple-
flags¶ Alias for field number 1
-
regex¶ Alias for field number 0
-
-
jsonmodels.utilities.compare_schemas(one, two)[source]¶ Compare two structures that represents JSON schemas.
For comparison you can’t use normal comparison, because in JSON schema lists DO NOT keep order (and Python lists do), so this must be taken into account during comparison.
Note this wont check all configurations, only first one that seems to match, which can lead to wrong results.
Parameters: - one – First schema to compare.
- two – Second schema to compare.
Return type: bool
-
jsonmodels.utilities.convert_ecma_regex_to_python(value)[source]¶ Convert ECMA 262 regex to Python tuple with regex and flags.
If given value is already Python regex it will be returned unchanged.
Parameters: value (string) – ECMA regex. Returns: 2-tuple with regex and flags Return type: namedtuple
-
jsonmodels.utilities.convert_python_regex_to_ecma(value, flags=[])[source]¶ Convert Python regex to ECMA 262 regex.
If given value is already ECMA regex it will be returned unchanged.
Parameters: - value (string) – Python regex.
- flags (list) – List of flags (allowed flags: re.I, re.M)
Returns: ECMA 262 regex
Return type: str
jsonmodels.validators module¶
Predefined validators.
-
class
jsonmodels.validators.Length(minimum_value=None, maximum_value=None)[source]¶ Bases:
objectValidator for length.
-
class
jsonmodels.validators.Max(maximum_value, exclusive=False)[source]¶ Bases:
objectValidator for maximum value.