CHANGES
=======

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
* If no regression coefficient is present, dont try to print it
* Updated some docstrings
* 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
* Added comments, and did some code cleaning
* Added a test to make sure the parameter errors produced by the finite difference method are correct
* Fixed the issue with py2.7. Floor division is a thing
* Py2.7 compliance
* Added a test for unequal data length; and fixed the bugs that it unearthed
* Bomb-proofed \_cov\_mat\_unequal\_lengths. Polished finit\_difference tests
* 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
* Switched to using \_eval\_model in the test
* Fixed typo
* Changed \_get\_data to \_eval\_model since that is more descriptive
* Fixed imports in ODE\_2D\_example.py
* Cosmetic changes in vector\_valued\_2D.py
* Fixed imports in vector\_valued\_2D.py
* Fixed imports in simple\_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
* Switched keywordonly from getargspec to signature
* 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
* nitpick ignore module refs for now, and updated the build directory in conf so it is not scanned
* pip install sphinx with --upgrade
* Removed cache directory from sphinx command
* Added docs\_build directory
* Added sphinx-build script to autotest doc building
* 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
* Added a constrained fitting example
* Made the notes on measurement errors a warning so it stands out
* Fixed some typos, and added a label to the Global Fitting section
* Started to weave a web of links
* Fixed a small typo, and added another reference to the apidocs
* Processed comments
* Fixed a last few more rst formatting errors in the docstrings. These fixes required explicit escaping in the docstrings, so it's a separate commit, so it may be dropped separately

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
* Made the notes on measurement errors a warning so it stands out
* Fixed some typos, and added a label to the Global Fitting section
* Started to weave a web of links
* Fixed a small typo, and added another reference to the apidocs
* Processed comments
* Fixed a last few more rst formatting errors in the docstrings. These fixes required explicit escaping in the docstrings, so it's a separate commit, so it may be dropped separately
* 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
* Fixed rst syntax error
* Changed setup.cfg accordingly
* Changed from README.md to README.rst
* Deploy to test \*only\*
* Deploy to test upon tagging this branch
* README -> README.md
* Changed from setup.py to pbr with setup.cfg. This will automize version management amongst other things
* 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
* Slight cosmetic change
* Removed print statements
* Only pass the numerical\_jacobian to minimize if it exists
* Updated covariance handeling in HasCovarianceMatrix to deal with all types of datasets
* Added a test to make sure the method for estimation of covariances for datasets of unequal length is backwards compatible with equal length
* Added ConstrainedNumericalLeastSquares, and tests. Not all bugs have been ironed out yet, but this is as a first version it works. Stay tuned for the next commits
* ODEModel now also passes the jacobian of the model to the integrator
* Add a config file for travis-ci
* Changed another test to EAFP
* Changed the if-statement back to a try-except, in order to be more EAFP
* Added some very simple initial data to make sure code examples from the readme will run
* Slightly improved the global fitting example
* Added some notes on global fitting to the docs, a long hidden feature of symfit
* Fixed #61. D should now be present in the next version of the docs
* Fixed #62. ODE models can now be evaluated at single points like their supposed to. Added a test to ensure this is true
* Made TakesData even more bulletproof
* Fixed errors that happens when variables are None, which can now happen due to the ODE code
* Update README.md
* Newline at the end of the file
