title: Catch empty list with colander
body: <p>I'm using <code>colander</code> to validate (and deserialize json data) input to some web services.</p>
  
  <p>I would like to add a rule to a colander schema to catch an empty list, but I can not figure out how to do it. </p>
  
  <p>Right now I have the following example, demonstrating a call to the function <code>f()</code> with two different sets of data. I would like the later to trigger the <code>colander.Invalid</code> exception because of the empty <code>events</code> list</p>
  
  <pre><code>import colander
  
  def f(data):
      class EventList(colander.SequenceSchema):
          list_item = colander.SchemaNode(colander.Int())
  
      class Schema(colander.MappingSchema):
          txt    = colander.SchemaNode(colander.String())
          user   = colander.SchemaNode(colander.String())
          events = EventList()
  
      try:
          good_data = Schema().deserialize(data)
          print 'looks good'
      except colander.Invalid as e:
          print "man, your data suck"
  
  
  good_data = {'txt' : 'BINGO',
               'user' : 'mogul',
               'events' : [11, 22, 33]}
  f(good_data)
  
  bad_data = {'txt' : 'BOOM',
              'user' : 'mogul',
              'events' : []}
  f(bad_data)
  </code></pre>
  
  <p>Suggestions? </p>