In [2]:
from valley.contrib import Schema as VSchema
from valley import properties as vp
class AnimalValley(VSchema):
name = vp.CharProperty(required=True)
species = vp.CharProperty(required=True)
color = vp.CharProperty()
age = vp.IntegerProperty(required=True)
valley_frog = AnimalValley(name='Kermit',species='frog',color='green',age=5)
In [6]:
from schematics.models import Model
from schematics import types as stypes
class AnimalSchematics(Model):
name = stypes.StringType(required=True)
species = stypes.StringType(required=True)
color = stypes.StringType()
age = stypes.IntType(required=True)
schematics_frog = AnimalSchematics({'name':'Kermit','species':'frog','color':'green','age':5})
In [8]:
schematics_frog.validate()
In [8]:
from schema import Schema, Optional
schema_frog = Schema([{
'name':str,
'species':str,
'color':str,
Optional('age'):int
}])
p = {'name':'Kermit','species':'frog','color':'green','age':5}
schema_frog.validate([p])
Out[8]:
In [1]:
import timeit
s = """
from valley.contrib import Schema as VSchema
from valley import properties as vp
class AnimalValley(VSchema):
name = vp.CharProperty(required=True)
species = vp.CharProperty(required=True)
color = vp.CharProperty()
age = vp.IntegerProperty(required=True)
valley_frog = AnimalValley(name='Kermit',species='frog',color='green',age=5)
valley_frog.validate()
"""
timeit.timeit(stmt=s,number=10000)
In [11]:
v = """
from schematics.models import Model
from schematics import types as stypes
class AnimalSchematics(Model):
name = stypes.StringType(required=True)
species = stypes.StringType(required=True)
color = stypes.StringType()
age = stypes.IntType(required=True)
schematics_frog = AnimalSchematics({'name':'Kermit','species':'frog','color':'green','age':5})
schematics_frog.validate()
"""
timeit.timeit(stmt=v,number=10000)
Out[11]:
In [10]:
y = """
from schema import Schema, Optional
schema_frog = Schema([{
'name':str,
'species':str,
'color':str,
Optional('age'):int
}])
p = {'name':'Kermit','species':'frog','color':'green','age':5}
schema_frog.validate([p])
"""
timeit.timeit(stmt=y,number=10000)
Out[10]:
In [ ]: