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)


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-2-5a7915926139> in <module>()
----> 1 from ..contrib import Schema as VSchema
      2 from valley import properties as vp
      3 
      4 
      5 class AnimalValley(VSchema):

ValueError: Attempted relative import in non-package

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]:
[{'age': 5, 'color': 'green', 'name': 'Kermit', 'species': 'frog'}]

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)


---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-65deab8bca12> in <module>()
     14 valley_frog.validate()
     15 """
---> 16 timeit.timeit(stmt=s,number=10000)

/usr/lib/python2.7/timeit.py in timeit(stmt, setup, timer, number)
    235            number=default_number):
    236     """Convenience function to create Timer object and call timeit method."""
--> 237     return Timer(stmt, setup, timer).timeit(number)
    238 
    239 def repeat(stmt="pass", setup="pass", timer=default_timer,

/usr/lib/python2.7/timeit.py in timeit(self, number)
    200         gc.disable()
    201         try:
--> 202             timing = self.inner(it, self.timer)
    203         finally:
    204             if gcold:

/usr/lib/python2.7/timeit.py in inner(_it, _timer)

ImportError: No module named valley.contrib

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]:
5.857553958892822

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]:
1.4859449863433838

In [ ]: