0.3.5 (2014-11-05)
    * Allow the names of test cases generated by ``parameterized.expand`` to
      be customized.
      (https://github.com/wolever/nose-parameterized/pull/19;
      thanks @curtissiemens) 

0.3.4 (2014-10-03)
    * Use ``functools.wraps`` to wrap expanded functions
      (https://github.com/wolever/nose-parameterized/pull/17;
      thanks @toumorokoshi) 

0.3.3 (2014-01-03)
    * Replace unsafe characters with "_" in names generated by
      ``@parameterized.expand``.

0.3.2 (2014-01-02)
    * Add helpful error message when used with old-style classes.

0.3.1 (2013-08-01)

    * Fix bug: `nose_parameterized.param` wasn't being imported.

0.3 (2013-05-18)

    * Add `param` class.
    * Add explicit support for callable inputs.
    * Update readme to more throughly describe useage.
    * Remove un-used test helpers (`setup_logging`, `teardown_logging`,
     `logged_messages`, `assert_logged`, `assert_no_errors_logged`,
     `assert_contains`, `assert_not_contains`, `assert_raises`,
     `imported_from_test`).

0.2 (2013-01-15)

    * Add Python 3 support
