0.4.3
	* upgraded black; 20.8b1
	* integrated with pre-commit
	* upgraded to formencode 2.0.0, which is Python3 compatible!
	* debugtoolbar support!
	* testing via github actions

0.4.2
	integrated pyramid's `add_finished_callback` to cleanup fieldstorage objects.
	This can be toggled off by setting `pyramid_formencode_classic.AUTOMATIC_CLEANUP = False` before including the file into pyramid

0.4.1
	backwards compatible? NO.
		* `FieldInvalid` renamed to `FormFieldInvalid`
		* `FormFieldInvalid` inherits from `FormInvalid`
		* `CsrfInvalid` inherits from `FormFieldInvalid`
		* `raise_FormInvalid` kwarg removed from several places
		* `raise_FieldInvalid` kwarg removed from several places
		* `error_main` kwarg renamed to `error_main_text`
		* `set_error` submitting no message will now raise a ValueError exception; use `clear_error` to remove errors
	
	* streamline api
	* new : `FormStash.register_error_main_exception`
	* new : `FormStash.fatal_form()`
	* new : `FormStash.fatal_field()`
	* new : explicit versioning policy
	* new : tracking `is_submitted_vars` on form
	* `formatters.*` no longer imported into main namespace
	
	added `pyproject.toml`
	
0.4.0
	accidentally released to pypi. deleted; should not be used.


0.3.1
	* introduced kwarg `foreach_defense=True` to `form_validate`. enabled by default, this defends against
	  situations where a `ForEach` implementation creates a list of errors instead of a single error.
    * redid description in `setup.py`

0.3.0
	Python3
	removed deprecated functions
	
	* FormStash.html_error_main
	* formerrors_set
	* formerrors_clear
	* init_request
	
        warn_user("`html_error_main` is deprecated for a major functionality change; "
                  "it now proxies `html_error_placeholder`; "
                  "legacy functionality is available via `render_html_error_main`."
                  )
        return self.html_error_placeholder(field=field)
	* formatter_none
	
	updated how debugtoolbar panel is added


0.2.3
	Unreleased
	Tracking form_reprint calls in __debug__ environment. TODO- make this a global config option


0.2.2
	2018.07.11
	packaging fixes:
		* changed formencode text to `formencode>=2.0.0a1`
		* updated install instructions
		* added panel templates to manifest.in

0.2.1
	2018.07.11
	added debugtoolbar support

0.2.0
	2018.07.10
	This release is focused on simplifying the API and some performance improvements
	Many previously deprecated functions have been removed
	Some utility functions have been removed as well
	Your project may not be compatible without some simple modifications, if so - peg to a release UNDER 0.2.0
	
	- replaced `html_error_main`:
		legacy functionality is via `render_html_error_main`
	- nested logging under `if __debug__` for cpython optimization
	- new
		includeme pyramid configuration hook
		formatter- formatter_empty_string
		formatter- formatter_hidden
		formatter- formatter_comment (was formatter_none)
		FormStash.set_html_error_placeholder_template
		FormStash.set_html_error_placeholder_form_template
		FormStash.html_error_placeholder()
		FormStash.render_html_error_main() was FormStash.html_error_main()
		form_reprint now accepts 'error_formatters' kwarg

	- removed functions
		set_form
		get_form
		_form_ensure
	- removed deprecated methods	
		FormStash.hasError  # use has_error
		FormStash.cssError  # use css_error
		FormStash.htmlError  # use html_error
		FormStash.htmlErrorMain  # use html_error_main
		FormStash.getError  # use get_error
		FormStash.setError  # use set_error
		FormStash.clearError  # use clear_error
	- removed deprecated kwargs:
		FormStash.html_error_main(section=)  # use field
		FormStash.set_error(section=)  # use field
		FormStash.set_error(raise_form_invalid=)  # use raise_FormInvalid
		FormStash.set_error(raise_field_invalid=)  # use raise_FieldInvalid
		FormStash.clear_error(section=)  # use field
		formerrors_set(section=)  # use field
		formerrors_set(raise_form_invalid=)  # use raise_FormInvalid
		formerrors_set(raise_field_invalid=)  # use raise_FieldInvalid
		form_validate(raise_form_invalid=)  # use raise_FormInvalid
		form_validate(raise_field_invalid=)  # use raise_FieldInvalid
	- marked as deprecated
		init_request  
			use the pyramid includeme instead
			the new version invokes the modern method
		formerrors_set
		formerrors_clear
		formatters.formatter_none
		FormStash.html_error_main()
			use either:
				* FormStash.html_error_placeholder()
				* FormStash.render_html_error_main()
					  
		

0.1.10
	2017.08.16
	- added `html_error_main_fillable` method to FormStash
	
0.1.9
	2017.08.14
	- added `htmlfill_ignore` kwarg to `FormStash.csrf_input_field`. If true (default) will emit a `data-formencode-ignore` tag, so htmlfill will ignore it.

0.1.9
	2017.08.14
	- added `is_unicode_params` kwarg
	- migrated version from setup.py to a package variable

0.1.8
	2016.01.18
	this was supposed to be released on 2015.09.01
	- renaming `raise_form_invalid` to `raise_FormInvalid`
	- renaming `raise_field_invalid` to `raise_FieldInvalid`

0.1.7
	2015.08.27
	- cleaning up how empty form submissions are tracked

0.1.6
	2015.08.26
	- deprecating 'section' kwarg for 'field'

0.1.5
	2015.08.24
	- adding some logging of csrf errors

0.1.4
	2015.03.25
	- added `has_errors`
	- migrated some intenal calls
	- updated `html_error_main` to better show errors

0.1.3
	2015.03.04
	- deprecated `camelCase` function names, replacing with `lower_case` function names.
	- added `message_append` and `message_prepend` to `set_error`

0.1.2
	2014.10.13
	- split into multiple files
	- changed request's formstash dict to a custom class that wraps dict.

0.1.1
	2014.07.17
	- flake8
	- fixed some errors that flake8 found

0.1.0
	2013.08.27
	- packaging fixes

0.0.12
	2012.08.17
	- migrated all forms to live under a dict in request.pyramid_formencode_classic and use an API for get/set , this should create a much cleaner request and programming style
	- this should not have an affect , unless you were directly reading the request attribute.  if that was the case, please move to the get_form method.

0.0.11
	2012.07.19
	- cgi escape will now show the output for formatter_none to aid in debugging.  there may be a future toggle for this behavior.
	- form_validate now has a error_string_key that will be used when a string error exists ( string error should be a schema error )
	- form_validate is better inline with the classic formencode behavior, specifically the management of mixed() params
	- form_validate will now test errors for type, and coerce a String error into a Dict, using error_string_key as the key.  this should make developing against this easier,
	- form_reprint is better inline with the classic formencode behavior, specifically cloning the htmlfill_kwargs and setting a default encoding to match request.charset


0.0.10
	2012.07.11
	- changed default css error to '' from `None`, should improve html rendering
	- changed the set_error on `validate` to reference the formStash object, not the global request.  this should better support multi-form pages.

0.0.9
	2012.04.16
	added pyramid classifier
	added beaker csrf support

0.0.8
	2012.03.28
	better support for twitter-bootstrap
	- improved docs
	- added `set_html_error_template`
	- added `set_html_error_main_template`
	- added `htmlError`
	- added `htmlErrorMain`

0.0.7
	2012.03.27
	support for twitter-bootstrap
	- added `formatter_help_inline`
	- added `formatter_none`
	- added `FormStash.set_css_error`
	- added `FormStash.hasError`
	- added `FormStash.cssError`
	- added `FormStash.getError`

0.0.6
	updated form_validate() to return a FormStash object
	migrated formerrors_set() & formerrors_clear() into helper methods that wrap FormStash class methods, form.setError() form.clearError()
	added raise_form_invalid and raise_field_invalid to formerrors_set() and form.setError()

0.0.5
	safer import of htmlfill
	provide custom exceptions
	integrating support for @action

0.0.4
	fix setup

0.0.3
	initial release
