SELECT-style options are a list of tuples. Not a list of atoms.
Use BeautifulSoup4 if available.

BeautifulSoup3 mangles CDATA, these days.
BS4 also mangles its output; workarounds are included.
test_binary requires setting up a tempdir
A heap of UNicode workarounds to get Tempita to not mangle its output
NO, the test runner will NOT be allowed to drop into pdb

The test described by setup.cfg is supposed to be automated …
Verbosity is good, but too much verbosity is distracting
Skip tests for missing extensions
docs Makefile: use the system's sphinx-build
Always escape stringified fields!

don't want that? use formalchemy.helpers.literal(),
or give your object an __html__ method.
Removed a couple of grammatically-wrong apostrophes
forms.py: do not use "eval"

The 'eval' used here is useless. The goal is to copy any enumerators
into a list and then use that list for further processing, so let's just do
that.
Fix class names for AbstractField vs. AttributeField
Grid interface: iterate columns

Instead of using a "public" method which starts with an underscore
(which leads to errors if forgotten to call, and also some frameworks
prevent calling of leading-underscore methods from template code for
safety), just iterate the collection directly.

That is, instead of writing

	for row in collection.rows:
		collection._set_active(row)
		… do something with this row

you can now simply write

	for row in collection:
		… do something with this row
TemplateEngine.render() must be overridden

so return an error. get_template() on the other hand may not have to be.
Use literal() on template output

This marks the output of FormAlchemy's render methods as safe to print
by template engines which do auto-escaping of unsafe strings
Support request objects from Werkzeug

The problem is its multidict implementation, which is subtly different.
SQLAlchemy 0.9 renamed .columns to .local_columns, and it's now a set
Handle joined-inheritance tables

In the usual case, joined-inheritance tables look like normal tables,
except that they have a "composite" primary key which consists of two
columns with the same name but pointing to different tables.

This band-aid fix picks up on the same-name thing, which is not optimal but
works for now.
Replace "import *" with explicit imports
Grammar fix: a bunch of apostrophes were incorrect