What’s New In FormEncode 2.0

This article explains the latest changes in FormEncode version 2.0.0 compared to its predecessor, FormEncode 1.3.0


  • Add support for 3.10
  • use Pytest instead of Nose and Github Actions instead of Travis for tests
  • Documentation updates
  • Note this will be the last version to support Python 2.7. The next version will be 2.1 to signal this change. If you want to keep support for Python 2.7 update your dependencies spec to be below 2.1


  • FormEncode can now run on Python 3.6 and higher without needing to run 2to3 first.
  • FormEncode 2.0 is no longer compatible with Python 2.6 and 3.2 to 3.5. If you need Python 2.6 or 3.2 to 3.5 compatibility please use FormEncode 1.3. You might also try FormEncode 2.0.0a1 which supports Python 2.6 and Python 3.3-3.5.
  • This will be the last major version to support Python 2.7
  • Add strict flag to USPostalCode to raise error on postal codes that has too many digits instead of just truncating
  • Various Python 3 fixes
  • Serbian latin translation
  • Changed License to MIT
  • Dutch, UK, Greek and South Korean postal code format fixes
  • Add postal code formats for Switzerland, Cyprus, Faroe Islands, San Marino, Ukraine and Vatican City.
  • Add ISODateTimeConverter validator
  • Add ability to target htmlfill to particular form or ignore a form
  • Fix format errors in some translations
  • The version of the library can be checked using formencode.__version__