CHANGES
=======

0.4.5
-----

* Added CallableNumericalModel (#182)
* Added P.C. Kroon's ORCID
* Make sure zenodo gets the authors right
* fixed a typo
* Added citation request
* Add Examples to docs (#180)
* Add \_\_version\_\_ (#167)
* Deleted docs/\_build, this should no longer be tracked (#181)

0.4.4
-----

* BasinHopping -> wraps scipy.optimize.basinhopping (#177)
* Fixed params and constraints (#165) (#168)

0.4.3
-----

* Freeze to sympy <= 1.1.1 until a solution has been found. (#170)
* Global Minimizers (#166)
* Update README, fixes #165
* The constraint example in the README suffered from a long time bug (#164)

0.4.2
-----

* Make parameters fully pickleable (#158)
* Fixed #161
* Fixed #159, ODEModels now have \_\_str\_\_ (#162)
* Corrected a mistake in README
* Housekeeping
* Fixed #135. ODEModels can now be evaluated for any t-value. (#157)
* Fix #42 and #82. (#153)
* Demand numpy 1.12
* Fixed deprecation test for py27
* Fixed sphynx warning
* changed the default param and var names to reduce the chance of conflict. (But starting with \_ is not allowed because Model results are returned as a namedtuple)
* Updated docs to inspectless style
* Fixed sphynx warning
* Added a test for the deprecation warnings and exceptions raised
* Added a clearer error message
* Made auto-generated names clearer by adding an underscore
* Updated tests to reflect inspectless style
* No longer consider convinience methods as deprecated
* Fix merge conflicts

0.4.1
-----

* Rename wrap\_jac to resize\_jac
* Environment issue, cant test locally
* Address more out of band comments
* Address out of band comments
* Fixed docstring to find sympy.symbols
* Fixed merge conflicts
* Updated contrib tests to new standard
* Throw warning when no name is provided to a symbol
* Accept all\* sympy symbol types as vars
* Added a deprecation warning for variables and parameters
* Address comments the right way..
* Address comments
* Add test for #150
* Cover case if jacobian is None
* Make minimizers deal with fixed parameters
* Revert "Make minimizers deal with fixed parameters"
* Make minimizers deal with fixed parameters
* Fixed #149 by replacing len with shape
* Fixed changes in scipy minimize and matplotlib. Fixed minor issue with fixed parameters. Quickfix #144
* Made Exception syntax py2 friendly
* Updated contrib tests
* Made the convinience methods use sympy
* Removed inspect, more sympy style
* Added DOI

0.4.0
-----

* Fixed warning due to docstring
* Removed test\_new\_fit.py
* Throws an Error if you try to add weights to LikeLihood fits
* Added example of calling a minimizer directly
* Docs describing the new structure
* Added a covariance matrix to Likelihood fitting
* Fixed ScipyMinize's identity crisis. It's now a definitive mix-in class
* No scipy for 3.7-dev, so not worth all the errors
* Add 3.7-dev to travis
* Made pytest.ini to ignore RuntimeWarnings and UserWarnings
* Fixed Py2 errors. You want to check the docstring
* Fixed Sphinx build error
* Added a docstring to Models eval\_jac
* Fixed broken links in the docs
* Made existing documentation compatible with new structure
* Cleared sphynx indentattion warning
* py2 new-style classes
* py2 compatible kwarg function calls
* Fixed compatibility with newer numpys stricter (better) indexing rules
* py2 dict initiation
* py2 keywordonly decorator
* py2 compatible syntax
* Cleaned up cov matrix calculation so it now works with all current tests under py3.6
* cov matrix is now calculated for ODEs, up to a factor of two
* Improved the test of an exactly solvable ODE
* Removed fancy dict initialisation
* Processed pckroon's comments, cleanup
* Removed leftover print statements
* Added basic tests for Minimizers
* Minimizers now return FitResults
* Moved FitResults to a seperate file
* Now using wrapped\_jacobian for consistency
* Added comments and docstrings to some Minimizers
* Added negation as the way to maximize
* Added Constraint objects to the public API
* Initial Commit of new Fit
* Updated docstring to reflex changes to FitResults
* Stdevs can be None again
* In tests comparing Maximize to scipys equivalent, we should still use SLSQP
* Updated tests for bounds
* Force max >= min for fixed params
* Force max >= min
* SLSQP is no longer the default of Minimize. This caused more problems than it solved
* Constraint object work with all models now

0.3.7
-----

* Switched back to last known working sphynx
* Added a space
* Use the reference
* Fixed #123. Use np.array type if no array operations are supported on the provided data
* Fixed #120. Only dividing by the overal chi once in the last step and then replacing nan by zero does the trick
* Removed some old commented debugging lines
* fixed fit by specifying seed for gaussian

0.3.6
-----

* Updated two tests to reflect that stdevs can be None by default if they are not computed
* Pragmatic fix of #116. Should be improved by giving ODEModels a numerical\_jacobian some day
* Added/extended some comments
* Did it properly now. Locally tests passed, making debugging challenging..
* Implemented sigma \*= np.ones(N). Fixes #109
* Changed my github username. Reflecting that change here
* Changed the dependancy of travis to matplotlib rather than mpl2.0rc2
* Changed FitResults to be more flexible wrt GoF qualifiers
* Now that #45 was fixed, this line could be made a lot cleaner
* FitResults are now initiated with a model, not just the list of Parameters. This feels more consistent
* Fixed a bug in README and fixed a typo
* Fixed #57, ParameterDict has been destroyed, so it no longer has an identity crisis. It has been replaced with an OrderedDict. However, Pitje06's point in #45 is now even more evident; confusion between the content of FitResults.params and Model.params is bound to arrise
* Removed read-only proporties from FitResults all together
* Removed \_\_ elsewhere where it wasn't strictly needed
* Fixes #91, removed the private parts from FitResults
* Fixed a minor mistake in the docs with header types
* Updated the examples to reflect the API update
* Adapted the tests to be compatible with the API update
* Changed no\_show to show to get rid of double negations, and introduced .execute to make the API consistant with the project
* Install matplotlib 2.0.0rc2 for all py versions
* Install matplotlib 2.0.0rc2 for py3.6
* Include installation instructions for the dependencies of contrib
* Made InteractiveGuess2D objects printable
* Add py3.6 to the travis build
* Added interactive guess to the module docs
* Final polishing
* Changed the example to prevent #104 from cropping up
* Process comments
* Fixed an issue with the dimensionaly of the Dfun argument to odeint
* Minor cosmetic changes to ODE\_2D\_example.py
* Removed constraint\_type as a class attribute since it wasn't needed and caused the docs to panic
* Added leastsqbound to the list of things to ignore, since it uses a different style of docstrings then we do (numpy?)
* Enabled nitpick ignore for some packages
* Updated some docstring that triggered warnings
* Updated the bash command to a conditional code block for py3.5
* Only build docs in py3.5
* Fixed keywordonly in inheritance scenarios. Now survices all tests
* Added inheritance tests for keywordonly
* Updated keywordonly such that all tests for it work in py2. However, all other tests fail
* Added tests for the keywordonly decorator
* Fixed keywordonly in inheritance scenarios. Now survices all tests
* Added inheritance tests for keywordonly
* Updated keywordonly such that all tests for it work in py2. However, all other tests fail
* Added tests for the keywordonly decorator
* Switched keywordonly from getargspec to signature
* Fixed #99. Now only Eq, Le and Ge constraints are allowed
* Seperated tests for Minimize from test\_general
* Fixed duplicate target name warning
* Made splitting over multiple lines in occordance with PEP8 and the Hitchhikers guide to Python (aka the bible)
* Made sure tuple unpacking is always presented as the first choice
* Some minor corrections to the style guide
* Updated to version 0.3.5. 0.3.4 was skipped because PyPI is unforgiving to the correction of mistakes, but rightfully so. See pypa/packaging-problems, #74
* Fix #95
* Still trying to fix #95
* Trying to fix #95, so trying a few things
* Added \_build to gitignore
* Wrapped all lines to ~80 characters
* FInished linking to API docs
* Extended some docstrings and added internal API links

0.3.5
-----

* Fixed FutureWarning for comparing with None
* Added \_build to gitignore
* Added myself to AUTHORS
* Wrapped all lines to ~80 characters
* FInished linking to API docs
* Extended some docstrings and added internal API links
* Added a constrained fitting example
* Moved specific py2 dependancy to requirements.txt with an environment marker
* Added setuptools to pip install -U, to make pbs happy
* Link Fit.model to Fit.fit.model
* Added more tests of auto fit, as well as the same checks for ConstrainedNumericalLeastSquares and NumericalLeastSquares seperately
* Made minor changes to tests to switch to the use of either Fit, or to manually select a type
* Model.shared\_parameters to check if parameters are shared between vector components
* Define the new smart Fit object
* Added tests for the new auto-fit object
* Set pbr environment variable in before\_deploy
* Final commit. Branch master will now be deployed to pypi if a commit is tagged
* Fixed keyword formatting
* Auto package everything in the symfit package
* Added matplotlib and seaborn to travis again, since the tests are still broken in this branch
* Changed .travis.yml to use pip instead of conda
* Restricted travis to only run the symfit tests, and not the sympy ones as well
* Minor cosmetic changes
* Give default values to arguments to .execute through keywordonly, such that in the future they can be added to the docs dynamically
* Merged constrained fitting branch into master
* New version of ConstrainedNumericalLeastSquares, all ready to go, and with new tests :)
* Minor fix to a test, calling models returns a namedtuple of arrays, the slicing of those arrays was missing
* Add a config file for travis-ci
