CHANGES
=======

1.1.1
-----

* Fix the default fallback to call default!
* Improved language in handling errors section
* Tweak to comments in first example
* Added examples of customising CSV codec
* Drop python 2.6 and 3.4 from supported list
* Updated tox so doc builds succeed
* Updated tox to work with PBR
* Pep8 fixes, removal of typing (causes issues with python 2.7 and pypy)
* Added test to ensure booleanfields return None if null=True
* Add type information to get meta
* Documentation updates
* Allow field sorting to be customised with a callable
* Added meta option to customise the sort order of fields
* Some fixes from landscape.io
* Improve test coverage of CSV codec, this also fixes an issue with CSV files missing the header
* Added an option for end users to customise default values from CSV
* Updated chunk util provides true iterable of iterables
* Added support for "Dynamic" mappings, these are mappings created and destroyed at run time
* Added tick to true strings
* Migrated setup to pbr

1.0
---

* Bumped version to 1.0
* Added test case for excel style Boolean values
* Support a default action
* Update mapping-between-resources.rst
* Bump version: 1.0b2 → 1.0b3
* Don't "cache" error\_count just iterate on resource
* Update HISTORY

1.0b2
-----

* Bumped version to 1.0b2
* Updated supported version info
* Added python 3.6 to travis, dropped 2.6
* Fixes for tox relating to pypy
* Moved filter query tests to feature branch
* Removed filter query from stable branch (this is a feature in development)
* Cleanup of pep8 messages and tox
* Changes to reader to make it easier to customise behaviour
* Initial work on improvements
* Added lazy property
* Pep8
* Build all branches, link breaking build to master
* Changed datetimeutil to use datetime.strptime from a regular expression for parsing (this is much faster)
* Re-order so default handler is loaded before imports
* Improvements to mapping to simplify customisation

1.0b1
-----

* Bump version to 1.0b1
* More cleanup of issues from landscape.io
* Big cleanup of issues from landscape.io
* Use next builtin instead of next class method on an iterator
* Python 2.6 fix
* Fix for python 2.6
* Added email ipv4, ipv6, ipv46 fields and validators
* Case-less compare of headers plus additional improvements for CSV codec.  - Header case can be ignored  - Reader will now pass through "extra" fields (although does not preserve the field name)  - Strict mode to raise an error if extra fields are present  - Full test coverage for the reader code (along with many other areas of code impacted)  - Fixed bug in create\_resource\_from\_iter were extra data was being dropped
* Added case-less string list data structure and tests
* Add a usecase section
* Fix for Python 2.6
* Fixed broken tests
* Added as\_string method for getting a fields value represented as a string (to be used by codecs to handle string coversion)
* Return NotImplemented rather than False when a type cannot be handled (allows the python interpreter to decide)
* Be a better python citizen and return NotImplemented when equality cannot be determined
* Fixed bug in TypedDictField.validate where error reports where always against None
* Bump version: 0.10b9 → 0.10
* Tweaks to docs
* Fixed use of pytest skip feature
* Bump version: 0.10b8 → 0.10b9
* Changed pytest.skip to pytest.mark.skip
* Updated history file
* Added landscape.io badge
* Fix test for python 3
* Tweaks to support more versions of python
* Tweak multipart field to have a generate\_value method
* Added tests for multipart code
* Renamed so all fields are grouped in tests
* Added MultiPartField for auto creating multi part values from other fields (useful for multipart keys)
* Updated ResourceType creation method to support a on\_resource\_ready event for fields to do any additional checks
* PEP8 fix
* Moved some common functionality to the base field
* Improved docs and added type hints to several methods
* Register virtual fields as key fields if defined as such
* Support for keys in VirtualFields introduced common base class for fields
* Made the string.empty option backwards compatible added tests to ensure this happens
* Added a tool for generating a swagger definitions object from a resource
* Workaround for python 2.6
* Bump version: 0.10b7 → 0.10b8
* Port many code paths to use the new odin.bases module
* Added some base classes that provide interfaces for common situations
* Set odins root logger to NullHandler
* Bump version: 0.10b6 → 0.10b7
* Added full\_clean passthrough parameter
* Bump version: 0.10b5 → 0.10b6
* Bump version: 0.10b4 → 0.10b5
* Add empty flag to string fields to allow for empty vs null strings
* Added a test for empty string not raising an error
* Bump version: 0.10b3 → 0.10b4
* Updated HISTORY file with changes for the 10b set of releases, change serializers to not apply timezones
* Bump version: 0.10b2 → 0.10b3
* Bumped version to 0.10b2
* Fixed more references to Resource to ResourceBase
* Fixed circular reference bug
* Correct isinstance to check for ResourceBase
* Bumped version to 0.10b1
* Bump version to 0.9b1
* Fixed bug in resolve\_resource\_type not detecting custom Resources (eg that inherit from ResourceBase
* Support kwargs along with args for functions
* Convert None into NOT\_PROVIDED in the CSV context
* Added handling of files with no header
* Greater usage of getmeta
* Skip the resource\_type lookup if one is defined
* Fixed location of getmeta call
* Introduced getmeta and cleaned up usage
* Bumped comment
* Fixed some artifacts from merge
* Restructure in how the Resource class is defined to allow for customised Meta and Resource objects
* Restructure in how the Resource class is defined to allow for customised Meta and Resource objects
* Add not regarding SQS
* Add details of AWS integration with odin
* Bumped version to 0.9
* Updated HISTORY for 0.9 release
* Updated version
* Handle ignore\_timezone in prepare method for Naive date/times. Tests
* Fixed comment
* Added a test for chunk
* Added tests for force\_tuple
* Updated HISTORY for release
* Bumped version to 0.9a0
* Sort key\_fields by hash for python3 to ensure correct ordering
* Added test for field defined keys and fixed bug found in righting test case
* Added support for multipart key-fields
* Tweak find\_packages settings
* Added chunk util for breaking an iterable into chunks of length n
* Added Naive Time/DateTimeFields into all and added test cases
* Added sample dates
* Only include odin (not tests)
* Updated docs with Naive Time/DateTime fields
* Added Naive Time and DateTime fields (with support for ignoring timezone info specified). Built on enhancements to odin.datetimeutil
* Added support for parsing Naive datetimes and not applying a timezone along with stripping the timezone information if it is supplied. Added tests to cover these situations
* Use ResourceIterable as a base class for iterable of resources
* Removed unittest dependency
* Added y/n as truthy values
* Swapped test framework to py.test
* Fixed typo in documentation
* Greatly expanded CSV module, initial work on performance improvements (based on profiling)
* Swam mapping definition for a named tuple
* Removed extra :
* Updated version 0.8.1 -> 0.8.2
* Added .cache to .gitignore
* Switched to code-cov
* Update .travis.yml
* Backported an implementation of total\_seconds
* Correct filter so travis runs tests for 2.6
* Don't support contrib with python 2.6
* Update README.rst
* Get ignore rules right!
* Added pytest-cov plugin
* Switched travis to py.test
* switch xfail to skip
* Removed unittest code
* Few more fixes for python 2.6
* contrib migrated to pytest
* Ported tests to py.test
* More migrations to py.test
* Initial work for switch to py.test
* Missed format index for python 2.6
* Fixed incorrect formatting index
* More formatting fixes for python 2.6
* Include indexes with format for python 2.6
* Dict comprehension and format updates for python 2.6 compatibility
* Replace dict comprehensions with dict constructors for python 2.6 compatibility
* Added some support for python 2.6
* Update .travis.yml
* Some backward comparability for python 2.6
* Updated README to specify YAML
* Install pyyaml package for travis
* Added initial support for YAML
* Added test for default\_to\_not\_supplied
* Added the default\_to\_not\_supplied flag when loading data via a codec. This allows for a resource to be built for being merged into another resource eg in the Baldr API
* Tweak Readme
* Correct reference to baldr
* Fixes for build and publishing - Added more checks - Fixed issue in readme causing it to not render as RST
* Added note for 0.8.1 release
* Tweaks to bumpversion configuration
* Tweak dev status
* Link updates in docs (adding https and point to correct project location)
* Added examples to contents tree
* Added warnings around early release code
* Removed obvious pep8 errors
* pep8 fixes
* Update compatibility to support classes
* Update version to 0.8.1
* Set release version to 0.8
* Updated history ready for release
* Ignore coverage from the inspect tool
* Added a test for CurriedAdapter
* Add tests for compatibility
* Fixes for pep8
* Fixed super to be python2x compatible
* Added more tests for traversal, in particular the new filtering features and handing the new exceptions
* Updated FilterComparison to use InvalidPathError (replacing old KeyError)
* Updated TraversalPath.get\_value to handle new key\_field values
* Fix CodecDecodeError and CodecEncodeError to inherit from CodecError, added TraversalError and children InvalidPathError, NoMatchError, MultipleMatchesError to handle errors from traversalpath
* noqa on deliberate usage of super
* Added major.minor.patch pattern
* Make key\_field\_name inheritable
* Updated version to release a patch for install issue with 2.7
* Added a fix to workaround install problem on python 2.7
* Added tools for handling backwards compatibility etc
* Added property to ResourceOptions to hold key field, updated traversal to use key\_field when updating path
* Added initial support for keys (based on a field ) in traversal paths
* Added key\_field for use in references
* Added ISBN field for testing key\_field
* Fixed spelling
* Added 0.8 placeholder
* Bumpversion to 0.8.dev0
* Updated details in setup.py
* Bumpversion to 0.7
* Bumped version to 0.7b4
* Added ImmediateMapping to default to a ImmediateResult
* Ensure with TypedListFIelds prepare is handled correctly
* Allowed for a default mapping result to be defined, added a ImmediateResult that forces mapping to be executed immediately (with result cached)
* Added an import check and warning message
* Simplify and make use of the humanfriendly library to handle table formatting
* Added mapping to inspect
* Added utils for common rendering tasks, added base class for a consistent interface. Migrated table rendering to a Table class for reuse
* Added a quick inspect contrib tool. Can be used to generate a quick dump of a resource
* Fall back for adapter include uses options.fields instead of options.all\_fields effectively filtering out virtual fields
* Moved details of Sphinx into features
* Added a pre-dispatch mixin that adds a pre-dispatch hook
* Added a pre-dispatch mixin that adds a pre-dispatch hook
* Added tokens and test cases for filters
* Added a simple currying solution that allows a adapter to have include/exclude/user defined kwargs predefined
* Bump version: 0.7b2 → 0.7b3
* Bumped version to 0.7b2
* Added test for empty filter change \_\_str\_\_
* Added a \_\_name\_\_ method as if missing causes an error in inspection code. Added \_\_len\_\_ to FilterChain and provided a more sane \_\_str\_\_ implementation
* Updated version and bumpversion config to follow PEP440
* Set status to Beta for beta release
* Updated status to beta
* Added script for publishing
* Updated history file to cover elements to be included in 0.7 release
* Added ply dependency for travis build
* Added more tests for filtering
* Added optional ply library
* Add placeholder file
* Removed tests for now, no actual code to test
* Removed POC code, and mapping of operators, no longer required as this info can be obtained from the operators themselves, will go with a registry approach when operators are registered with he parser, this allows for custom operators to be easily added and supported
* Switched string escaping to single quote rather than double (to be inline with SQL)
* Allow multiple operator symbols to be defined
* Improved test coverage of filtering
* Handle string values better in FilterComparison.\_\_str\_\_
* Pass error code to ValidationError exception
* Added tests for empty flag on both ArrayOf and DictOf fields
* Add additional tests
* Added test for timestamp prepare that is already an integer type
* Added test for the Field.user\_default\_if\_not\_provided flag
* Added support for caching ResourceOptionAdapters in tight apply\_to method. Fixed bug where virtual fields where not filtered by include/exclude fields
* Added initial work on query expression support for filters
* Fixed issue with python 2.x around returning an iterator
* Fix for python2
* Added CachingMappingResult This replaces the MappingResult with a cached version (used by default). The cached version will lazily handle mapping, but subsequent mapping iterations will used the cached result rather than re-mapping data. Other improvements are support for indexing and len so result can behave more list like
* Added python 3.5 now that it's a full release
* Simplified and/or
* Added \_\_str\_\_ method to descript filters
* Allow comparisons to be added
* Updated filtering to work more as a set of operations, that is easier to be tokenised, added support for and/or groupings
* More validation of filter definitions and documentation of the filtering object
* Added and support for combining filters, added more tests
* Initial simple implementation of resource filtering
* Added initial test cases for filtering
* Fixed bad formatting
* Improved "Added additional functionality to a resource" example
* Change doc link to not include version
* Meh, not really worth the test code
* Added dump and load test
* Added initial implementation of dict\_codec, added test cases for the new codec
* Migrating to django style versioning (managed by bumpversion). - Moved bumpversion config to setup.cfg - Version bump for development - Added placeholder in release history for 0.7 release
* Defined dict codec interface
* Serialisation revisions, added registration for text serialisation
* Migrated readme to python-odin with coveralls
* Migrated readme to python-odin organisation on github (and travis-ci)
* Added running validators to TypedDictField, added tests
* Fixed bug in type name generation of TypedDictField, added more tests
* Included validation as well, include tests
* Added TypedDictField to allow for typed dict items
* Clean up some pep8 and duplicate code
* Fixed bug in test that was not causing the correct exception to be raised
* Corrected error message source
* Added key\_choices option to DictOf field, allows for only specified keys to be used
* Added an empty flag on ListOf and DictOf fields so an error can be raised on an empty list (as apposed to a null list)
* Updated summary
* integrate bumpversion, role version back to 0.6.0
* Bumped to fix a release build issue
* Allow python 3.5 builds to fail
* Added Python 3.5-dev
* Bumped version to 0.6
* Pep8 fix
* Added changes for 0.6 release
* Added note to the Resource.to\_dict method to indicate this method is not recursive
* Python 2 fix
* Fixed bug in indexing, the wrong end of the \_loop\_idx value was being incremented
* Updated Badges to use shields.io
* Changed results to be point list
* Added examples of adapter usage
* Removed tagline from title
* Additional documentation
* Added helper resource for XML like codecs
* Updated resource to reflect change to default value of testing flag
* Updated docs on composite fields, explained container option and default to inline resources
* Added tests to ignore list
* Added helper property element\_field\_map
* Fix an issue where cleaning will fail MappingResult sequences
* Added assign shortcut for defining assignments
* Added shortcut method forward\_mapping\_factory
* Big in auto mappings of list resources that causes applied the to\_list flag with MapListOf objects that automatically handle this
* Updating dictionary mapping to support parsing multiple resources (handle when migrating between versions of resources)
* Added extra helper attributes for XML codec
* Changed dump example in README to use indent
* Added the apply\_to method to ResourceAdapter, makes using the adapter more succinct
* Updated interface on Adapter to match Resource
* Added code-climate config
* Removed duplicate code
* Un-comment XML load, it's not working at present
* Added fields list ot update, allowing fields to be specified for update
* Allow ignored fields to be provided to convert to Also provide ignored fields to full clean (no point validating data that is not going to be mapped)
* Pass through excluded field lists
* Added description to validators that can be used in sphinx doc generation
* Add max length into resource documentation
* Changed the generated type name for mapping factory to ensure a more unique name
* Bumped version to 0.5.7.1
* Include TimeStampField in \_\_all\_\_
* Added link to documentation generation on index page
* Bumped version to 0.5.7
* Additional documentation fixes
* Added value\_to\_object method for inserting data onto a resource (used by extensions eg baldr)
* Added support for excluding fields from the clean process (used in baldr for validation of forms)
* Added docs for sphinx doc generation
* Added option to not include type field (this is handy for Java frameworks that freak out when additional fields are include in JSON). Also changed dump methods to not actually define our custom options (they are still passed through via kwargs)
* Improved the build
* Updated docs to include updates to exisiting resources
* Added resource.update\_existing helper method and tests
* Added docs for update and diff
* Added TimeStampField
* Updated authors and added a placeholder HISTORY file to include release notes for stable releases
* Change Development status to 5 - Production/Stable for next release
* Bumped version to 0.5.6
* Added Gitter.im link
* Support passing in a list of resources
* More work on documentation
* Added support for additional user-defined mappings when using mapping factory
* Updated email and version to 0.5.5
* MapListOf behaves slightly different
* Placeholder for sphinx docs
* Added decorator to simplify creation of calculated fields
* Split document\_members into separate methods, add support for noindex
* Added include\_virtual option to field\_iter
* Add data\_type\_name to other contrib fields
* Updated docs to handle change to defaulting with composite fields
* Remove [ ] around optional items
* Initial API docs generation
* Added extra field to help with documentation generation
* Fixed spelling mistake in \_\_repr\_\_ method
* Use hash for \_\_eq\_\_ method
* Implement the hash method
* Extended TraversalPath to support parsing strings, comparison and addition
* Fixed compatibility with python2.7
* Add tests to ensure serialisation is correct
* Fixed test cases broken by change to precision
* Now returns as a tuple so it is not needed to use the as list flag
* Added prepare method to convert an amount field into a pair of items that can be serialised
* Changed no currency to have a default precision of 4
* Don't try to convert existing Amounts
* Simplified helpers and made easier to use
* Fixed mapping helper
* Made defining assignments easier with the define method
* Fix rst error
* Added new contrib modules
* Added limiting of currency to AmountField, updated documentation with geo and money
* Added common exception for codecs to raise
* Added support to composite fields to convert key values into the correct datatype
* Corrected test case
* Expanded get value method and added test cases
* Flipped Key/Field ordering of path to remain more consistent
* Fixed ordering of fields (was reversed previously), removed pre\_enter event as it no longer makes sense. Added test cases
* Shorted event names, fixed 2.7 compatibility bug
* Fixed issue with exit event
* Corrected exit events and stack
* Work on traversal tools
* Added item\_iter\_from\_object  to composite fields. This method provides a key/value iterator for any composite field
* Fix bug in composite fields list, where f.or is a type rather than an instance
* Fix bug in ApplyMapping helper, was not returning a value
* Added option to not serialise virtual fields to both json and msgpack codecs, added filter for composite fields to ResourceOptions (the \_meta attr)
* Apply a mapping helper
* Introduce a base Composite field class
* Renamed to ensure is picked up by test suite
* Switched back to using f.to\_python for processing field data but added collation of errors. Added flag to control dict cloning (not desired when loading data from JSON). Updated test cases
* Renamed with the test\_ prefix
* Added a test that demonstrates #16
* Changed received to returned as this is more clear
* Added handling of mapping results into JSON and MsgPack codecs
* Added ignore fields option for update command (allows you to specify any fields you don't want mapped, a good use case is mapping a resource to a Django model and preventing the ID field from being modified)
* Added logos
* Added support for handing different validation exceptions during running of validators
* Removed this for now
* Replaced Resource iter issue and addition from merged code
* Updated adapters to matches changes made to resources
* Updated to iterator handling in mapping (removed \_\_iter\_\_ method from Resource as this muddies the waters as this is not technically a sequence, use the field\_iter\_items to do this)
* Added simple wrapper to allow iterators to be supplied to mappings
* pep8
* Fixed bug where NOT\_DEFINED was being passed for fields that where not defined! Added test case to test for the issue
* Added update time for currencies listed
* Updated str and repr methods to use the internal format command, is more reliable between python 2 and 3
* Added \_\_div\_\_ for python 2.7
* Added tests, fixed issues discovered during testing
* Added support for currencies
* Initial commit on codegen tool
* Improved support for sphinx autodoc. Now generates a basic class structure with the constructor documented
* Added a diff method to mappings, this method. Tweaked param names
* Bumped version to 0.5.4
* Added support for allowing subclasses to be mapped (this can be useful if you are only interested in the base class fields)
* Updated str methods to support python 27 as well as 34
* Added support for latitude, longitude, latlng and point values
* Added PointField to \_\_all\_\_ definition
* Correct imports
* Initial version of lat/lng and points
* bumped version
* Added support for update mappings ie update an existing object with fields from another obj
* Use six.add\_metaclass decorator
* Bumped version to 0.5.2 (as have added a new feature required by baldr)
* Added mapping factory method, this is a really simple factory for mapping between two object types
* Added python 3.4 reference
* Changed include/exclude fields on the class so passing in include/exclude overrides class based items
* Allow include/exclude fields to be defined on the class
* Added not about msgpack
* Fixed bug in create\_resource\_from\_dict that was causing errors to be raised when full\_clean was False and caused many field clean/validation to be run twice
* Improved and added tests for decorators
* Bumped version to 0.5.1
* Added support for args and kwargs when constructing resources
* Update error to be an ImportError
* Added a couple of decorators that handle transforming of return values
* Fixed issue with inherited resources duplicating fields
* Added test case for bug that causes duplicate fields when multi-inheritance is in use
* Fix bug where virtual fields are not inherited
* Converted to a module to remove complaints from IDE
* pep8!
* Added virtual fields into test cases
* Included virtual fields in main odin import
* Added "constant" virtual field
* Made timezone offset hours/minutes separator optional
* Added "dog food" test case for json codec
* ignore build folder
* Added logging to resource cache
* Updated version to 0.5
* import msgpack-python as a dependency for docs
* Change reference to msgpack.org
* Added reference to adapters
* Basic overview of adapters
* Fix model reference to be resource
* Added msgpack\_codec docs
* Changed to be exception
* Tweak to ensure order is always the same between python versions
* Cleaned up and improved test coverage
* Updated test to handle msgpack also
* Added msgpack codec
* Added msgpack codec
* Update README.rst
* Updated for pre-release 0.5b1
* Added support for pickling
* Added test case for picking of timezone object
* Fixed bad ref in docs
* Not supported by Python2, removing as not entirely needed
* Added HttpDateTimeField docs, added to mapping class docs
* Improved functionality and test coverage of HttpDateTimeField
* Removed full\_clean from adapter, not required when is read-only, updated tests for complete coverage
* Additional mapping test cases
* Additional test cases for mapping and resources. Added checks of exception messages
* Fixed test that can brake randomly on Python 3.x
* Added HTTPDatetime field
* Updated define method to simplify mapping definition
* Relax date time parsing a little to allow for common different date time formats
* Copy rules from parents
* Update test cases to ensure that rules are inherited
* PEP8 fix
* Completed sub class mapping support (See test case for details)
* Tweaks to SubClassMappingTestCase.test\_subs test, correct the name and correct the resource lookup as the too resource can't be known!
* Additional tests to handle registration os mapping subclasses
* Improved loop indexing support and simplified apply method
* Added generation of sub class lookups for derived mappings. This is to support mapping lists of abstract resources with the correct mapper
* Updated mapping check, mappings must be exact mappings
* Updated test cases to not use items that will be deprecated!
* Updated doc string to center arrows better
* Added image to describe "inherited" mappings
* Extended FieldResolverBase to return from vs to fields, this allows for virtual fields that are read only to be mapped from but not to
* Updates to readme file, clarified upcoming features
* Added methods to simplify clearing of cached\_property data
* Added test cases for abstract mapping
* Corrected terminology, removed un-needed variables
* Fixed reference to deprecated from\_resource/to\_resource, this caused an error when the new from\_obj/to\_obj is used
* Added virtual fields to docs
* Added basic test case for virtual fields
* Fixed bug where field is not assigned to class. Improved support for virtual fields with an iterator for iterating through virtual fields defined on a resource
* Added initial work to support virtual fields
* Finalise the include/exclude fields functions
* Initial work on adapter support
* Run flake8 for python 3 with Python 3.4
* Add placeholder to prevent errors building docs
* Ignore def \_\_iter\_\_(self): from qa, is for IDE's only
* Fixed backwards compatibility for to\_obj
* Updated readme with better explanation of features and desciption
* Initial documentation of mappings
* Added backwards compatible changes to switch over to to\_obj/from\_obj from to\_resource/from\_resrouce
* Remove python 3.2 from testing list and add 3.4
* Remove python 3.2 from officially supported list
* Add python3.4 to support list
* Updated copyright notice
* Pep8 fixes
* Added assign\_field, used to assign values during a mapping operation. Improved automapping to automatically handle conversion of identical types. Added tests to support the new features
* Disable python 3.4 tests for now
* Added DictOf to documentation
* Added Dict of field, this allows for a hash map of resources (is a data structure used in some API's eg Facebook Graph API)
* Added python 3.4 to travis
* Added a util function to extract the fields from a dictionary that are included in a resource. - Include tests
* Bumped version to 0.4.3.2
* Changed way un\_mapped fields are generated, focus should always be on ensuring to fields are auto mapped, not from fields Added tests for automatic iterators
* Added not Implemented exceptions to not break doc building
* Fixed bug causing errors, in python < 3.3 a method can not return or yield can only do one or the other
* Pep8 fixes
* Auto generated list context
* Bumped version number to 0.4.3.1
* Migrated content type change from development
* Change model to resource
* Added tools into timezone aware now methods for both utc and local time
* Added content types handled by each codec
* Fixed spelling typo
* Comment out XML codec that is in development
* Added tests for xml\_codec.dump
* Added test case for xml output
* Allow the full\_clean flag to be passed through from codecs (handy if validation order needs to be controlled)
* Added baldr to docs
* Added reference to Django integration
* Implemented skip\_if\_none rule flag
* Updated tests for new mapping feature
* Exclude sphinx for tests for now
* Refactor of mapping internals and addition of field resolvers, this is prep work for adding mapping to/from django models, although this allows any object to be mapped
* Renamed kwargs to field\_values to produce nicer documentation ;)
* Basic sphinx doc integration for rendering classes
* Added documentation of resource level docs
* Renameded current field\_iter to field\_iter\_items (to better reflect what the iterater does) and added field\_iter that just returns fields. Introduced attribute\_field\_iter\_items and element\_field\_iter\_items that handle attribute and element fields (really for XML)
* Handle field\_value of None with MapDictAs
* Moved field\_iter into utils
* Corrected issue with Unicode literals causing syntax errors with python 3.2
* Change inheritance order so that mappings can be defined to/from other object types (prep for supporting Django Models)
* Update README.rst
* Updated README.rst with more details
* Updated version number to 0.4.3
* Correct usage example of simple validator (thanks flake8!)
* Added automatic resolution of mapping for DictAs and ListOf fields, added support for providing a context object in mappings
* Fixed bug in LengthValidator when test was reversed, added test case for this issue
* Added simple\_validator decorator for turning methods into simple validators
* Added an length validator that validates a list like item is a specific length
* Added initial documentation for the xml\_codec
* Correct typo
* Fix python3 compatibility
* Added xml\_codec.dump and dumps methods and updated some early tests
* Changed ObjectField from class to just being a reference to a DictField
* Added utility lists that create attribute and element fields
* Renamed ArrayOf to ListOf, backwards compatible
* Allow the type field to be overridden from the default of \`$\`
* Python 3 gotcha, numbers can't start with leading 0's
* Added test coverage for serialisers
* Serialisers for datetime data types
* Added serialises for date, time and datetime to an ISO format
* Corrected TODO message
* Corrected reference to doc\_text from help\_text
* Added todo notes for sections not yet written
* Initial documentation for Pint fields
* Exception documentation
* Added basic documentation for csv codec
* Added an example
* Updated json\_codec documentation
* Fix interdoc references
* Added an example of serializing data
* Expanded several sections to be more complete
* Initial work on mapping docs
* Refreshed docs
* Removed un-needed exception
* Removed checks that don't actually do anything as there is external protection for such cases
* Test cases for new apply method
* Update to date, time and datetime docs
* Disable coveralls with pypy on travis-ci, install is very slow..
* Added an Apply class method that allows a transform to be applied to a source item (or list of source items)
* Change serialise field reference to update method name in datetimeutil
* Added Date and Time fields
* Updated datetimeutil to support for ISO dates, times and datetimes
* Corrected example code and added some explanation of usage
* Added example mapping (explaination still required!)
* Slight change to map\_field decorator to assume  to\_field \*and\* from\_field default to the method name. Previously this was just the to\_field and the from field matched the to\_field
* Corrected broken test case, "blank" entry was removed as it was no longer required
* Updated overview of creating resources
* Major update of documentation
* Updated doc gen to use new doc\_text attribute on fields
* Updated documentation on Field class, added new doc\_text option, this is intended to replace help\_text
* Simplify methods and use lamba expressions
* Pass on \_\_init\_\_ attribute assume\_local's value
* Added build directory to those ignored by flake8
* Added cached\_property decorator for properties that do lazy generation of values that don't change
* Changed pep8 check to limit line length to 120chars, the default value for PyCharm
* Add additional tests for mapping, covering: - map\_list\_field decorator and it's operation - the situation where a target field that is in the source resource, but a value from a different field is required (see the same\_but\_different field in test cases for an example of this)
* Remove redundant method and simplify mapping rule generation code
* Removed extraneous imports
* Added new feature of mappings, to map to lists
* Enabled development branch with travis-ci
* Updated tox config to get tests working with pypy
* Updated test to handle changes to map\_field
* pep8 fix
* Added tox config for automating tests
* Renamed doc to docs, enabled extentions for tox tests
* pep8 fixes
* Change map functions to treat response of tuples as separate fields and lists as individual fields
* Added support for PyPy
* Updated test cases to separate contrib tests
* Add missing "; fi" to settings for Travis
* Update .travis.yml
* Work around for pint and pypy
* Added pypy to travis for test cases
* Change crate.io reference to point to pypi
* Bumped version for a future release
* Updated Resource.convert\_to and Mapping.convert to allow field values to be passed in
* Changed the map\_field decorator to assume the method name is the from\_field if None is provided
* Update README.rst
* Bumped version to 0.4.1.2, fixed an issue relating to parents. See #12
* Fixed issue #12 Meta parents not being populated correctly
* Fix deployment issue, with missing README.rst
* No longer required
* Issue #10 Added Urlfield that utilises UrlValidator Added tests cases for both field and validator
* Switched to django's assertJSONEqual method for checking JSON (is Python 3.3 compatible)
* Improved python3 tests compatibility
* Issue #11 Fix multiple abstracts causing namespace to not be inherited
* Added fake iterator to "trick" PyCharm into not displaying a warning
* Allowed name\_space to be specified as namespace
* Modifications to test cases to ensure python 3.3 tests don't fail due to python 3.3 changes (primarily randomisation of the hash function)
* Attempt travis build with 3.2 again post removing simplejson from requirements
* Removed simplejson that is not required
* Removed Python 3.2 from travis, coveralls is causing issues
* Added python 3.2 to travis tests
* Updated highlights and change support to Python 3.2+
* Some tweaks to resolve testing problems with python 3.3's random seed in the hash function
* Python 3 compatibility fix, TypeError no longer has a message argument
* Added some mapping helpers and associated tests
* Completed mapping support and associated test cases
* Added more test cases for exceptions
* Updated method naming to match mappings file, made mappings registration consistent with resources
* Updates to mapping and exceptions
* Moved resources to their own file, added tests for mapping, updated fixtures to mapping test cases
* Initial work for building mappings
* Added method to receive a map of fields by attrname, used by mapping classes
* Initial work on xml-codec
* Initial placeholder
* Changed \*\*kwargs to \*\*options Removed \*arg from DateTimeField and made consistent with other fields
* Updated tests to match changes in field file
* Split field to allow for simpler extension
* Removed un-used to\_string method from DateTimeField
* Removed test that is no longer required
* Updated tests to use a datetime to test serialisation changes
* Moved build\_object\_graph into resources, added serializer framework
* Added new "framework" for serializers, serializers are used by codecs to serialize data into specific formats
* Moved build object graph to this file
* Made a little more clear what is local
* Refactor on JSON codec to take control of datetype conversion
* Removed prepare method, we prefer returning of native types, is up to the codecs to determine how to handle them
* Update tests to handle updated json\_codec
* Added to\_dict method to convert a resource into a plain dict (useful for serialisation). Changed how names are generated, a full\_name is always created
* Updated test cases for changes
* Remove data\_type concept, dropped this approach, it is up to the codecs to determine how to handle transformations. This allows for easier modification by end users
* Added exception type for items that are already registered
* Update registration to store both full class name as well as name\_space.name
* Renamed JSRNEncoder to OdinEncoder
* Added special mention and link to crate.io, tweak to requires section
* Updated classifiers
* Bumped version to 0.4.1
* Added additional requirements and packages, bumped version to 0.4.1
* Updated to update doc version as well
* Update version update script
* Removed file, still in dev
* Removed src folder was making setup.py difficult
* Test coverage of fields to 100%
* Changed Field.to\_python to raise an exception if called (this should be overridden)
* Update test cases to get full coverage on pint fields
* Exclude doc\_gen from coverage reports, this is a non-essential sub-module in early development
* Added html templates for documentation
* Added base to allow simple overrides to templates
* Updated templates for doc generation with RST
* Added helper method to simplifying iterating over all fields and preparing them to be serialised
* Added prepare method
* Added placeholder templates
* Moved doc\_gen to be part of contrib
* Added Pint Float field and test cases
* Clean up travis config added placeholder for development branch
* Updated naming
* Removed redundant code
* Added test coverage to resources.Resource
* Removed code that is not being used. Fixed bug collecting error messages from a callable clean method
* Restore deepcopy method that is used in inheritance situations
* Quick clean up of CSV codec, updated to remove un-necessary variables
* Fixed bug in ResourceOptions
* Add coverage report to gitignore
* Updated test coverage on composite fields
* Renamed files to begin with test\_
* Simplified \_\_repr\_\_ method
* Added coverage notification (from coveralls) Tweaks to a few items
* Extended test coverage to datetimeutil
* Added coveragerc to ignore non-package files
* Updated travis config to run coveralls
* Added pint as an optional dependency
* Initial work on support for physical quantities using the pint library
* Updated test cases to resolve change to name\_space generation. The default is now to use the module path as a namespace
* Changed how resource\_name and name\_space are resolved to allow inheritance to work correctly
* Changed ResourceOptions object to auto generate a name\_space if one is not specified
* Added TypedArrayField to \_\_all\_\_ listing
* Minor code and message tidy ups, fixed bug with string formatting of datetimes
* Improved test coverage of basic fields
* Add support for clean\_FIELD methods. Remove references to JSRN, added option to disable full\_clean of resources in create\_resource\_from\_dict
* ObjectAs renamed to DictAs, fixed variable name typo bug
* Added data type to each field, Tidy ups to documentation, changed to\_json to to\_string, ObjectField is now DictField
* Added contrib module
* Added is\_attribute flag on fields for use in XML (ignored by other codecs)
* Initial work for XML parsing
* Update CSV codec to be consistent
* Tweaks to travis testing command to include coverage reports
* Bump of version to 0.4.0
* Quick migration of JSRN to ODIN additional documentation
* Quick migration of JSRN to ODIN
* Updated project to decouple json
* Updated to the latest code from JSRN
* Initial checkin
