Changes
=======

0.6.0 (2010-05-02)
------------------

- (Hopefully) fix intermittent datetime-granularity-related test
  failures.

- Internationalized error messages.  This required some changes to
  error message formatting, which may impact you if you were feeding
  colander an error message template.

- New project dependency: ``translationstring`` package for
  internationalization.

- New argument to ``colander.String`` constructor: ``allow_empty``.
  This is a boolean representing whether an empty string is a valid
  value during deserialization, defaulting to ``False``.

- Add minimal documentation about the composition of a
  colander.Invalid exception to the narrative docs.

- Add (existing, but previously non-API) colander.Invalid attributes
  to its interface within the API documentation.

0.5.2 (2010-04-09)
------------------

- Add Email and Regex validators (courtesy Steve Howe).

- Raise a ``colander.Invalid`` error if a ``colander.SequenceSchema``
  is created with more than one member.

- Add ``Function`` validator.

- Fix bug in serialization of non-Unicode values in the ``String`` class.

- Get rid of ``pserialize`` in favor of making ``serialize`` always
  partially serialize.

- Get rid of ``pdeserialize``: it existed only for symmetry.  We'll
  add something like it back later if we need it.

0.5.1 (2010-04-02)
------------------

- The constructor arguments to a the ``colander.Schema`` class are now
  sent to the constructed SchemaNode rather than to the type it represents.

- Allow ``colander.Date`` and ``colander.DateTime`` invalid error
  messages to be customized.

- Add a ``pos`` argument to the ``colander.Invalid.add`` method.

- Add a ``__setitem__`` method to the ``colander.Invalid`` class.

- The ``colander.Mapping`` constructor keyword argument
  ``unknown_keys`` has been renamed to ``unknown``.

- Allow ``colander.Mapping`` type to accept a new constructor
  argument: ``partial``.

- New interface methods required by types and schema nodes:
  ``pserialize`` and ``pdeserialize``.  These partially serialize or
  partially deserialize a value (the definition of "partial" is up to
  the type).

0.5 (2010-03-31)
----------------

- 0.4 was mispackaged (CHANGES.txt missing); no code changes from 0.4
  however.

0.4 (2010-03-30)
----------------

- Add ``colander.DateTime`` and ``colander.Date`` data types.

- Depend on the ``iso8601`` package for date support.

0.3 (2010-03-29)
----------------

- Subnodes of a schema node are now kept in the ``children`` attribute
  rather than the ``nodes`` attribute.

- Add an ``sdefault`` property to ``colander.SchemaNode`` objects.

- Add a ``clone`` method to ``colander.SchemaNode`` objects.

- Add a ``__str__`` method to the ``colander.Invalid`` exception that
  prints an error summary.

- Various error message improvements.

- Add ``colander.Length`` validator class.

0.2 (2010-03-23)
----------------

- Make nodetype overrideable.

- Add __getitem__ to SchemaNode.

- Fix OneOf message.

- Capitalize node titles.

- Deal with empty strings in String, Boolean, and Float types.

- Introduce description; make title the same as name.

- Remove copy method from schemanode.

- Allow schema nodes to have titles.

- The term "structure" is too overloaded to use for schema purposes:
  structure -> schema node.

- Make Sequence more like Tuple and Mapping (it uses a substructure
  rather than a structure parameter to denote its type).

- Add __repr__ and copy methods to structure.

- Add accept_scalar flag to Sequence.


0.1 (2010-03-14)
----------------

- Initial release.
