OR operator in multiple where conditions
You can actually use python's `reduce` function to generate dynamic lists of OR-ed together clauses.

``` python

import operator
or_conditions = reduce(operator.or_, conditions)
q = q.where(or_conditions)
```
 OK, But now you are forcing the AND operator on WHERE conditions. Why you cannot expose this as a parameter?
 Yes, this was a design decision that I made early on that multiple calls to `.where()` would be `AND-ed` together.  That does not mean you cannot dynamically generate query trees that will `OR` things together, it just means you will use a different API than multiple calls to `.where()`.
 I can see that your solution looks more compact but less self explanatory . Maybe is a good idea to reflect on the documentation that multiple .where() conditions will be AND-ed by default. I had to debug the code before to understand why this happened. 

Thanks you for your time!
 Cheers, yeah I did document this but it's buried in a note: http://peewee.readthedocs.org/en/latest/peewee/api.html#Query.where

I will make it more clear and also present a way to "OR" parts together dynamically.

Currently is not possible to specify the operator kind between multiple WHERE conditions, AND condition is assumed:

``` sql
WHERE ((((t2."kind" = ?) AND (t2."value" <= ?)) *OR* ((t2."kind" = ?) AND (t2."value" <= ?))) AND (t1."state" = ?))
```

Now is possible to specify the operator for each WHERE condition, using the op=(peewee.OP_OR, peewee.OP_AND)

``` python
q = Foo.select()

for i, val in conditions:
     q = q.where((Foo.i == val), op=peewee.OP_OR)
```
