CHANGES
=======

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
* 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
* 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
* Fixed a the shape of jac in covariance matrix calculation if there's no independent data. Also fixed two ODE tests
* Because no PR is complete without tests, and because tests find bugs
* Added a finite difference method to approximate jacobians of CallabelModels
* 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
* Use Fit instead of ConstrainedNumericalLeastSquares by default
* Minor housekeeping
* 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
* Changed examples to use ConstrainedNumericalLeastSquares
* Reordered some of the imports
* 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
* Changed nose to pytest, since nose is retarded
* Add the [all] extra requirement
* 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
* Fixed rst formatting errors in the docstrings
* Changed some permanently redirected links
* Added a description how the figures were made exactly to dependencies.rst
* Made the harmonic oscillator figures conform to the other figures
* Changed doc version to 0.3.3. Fixes #65
* Fix #68
* Fixed build warnings, and some minor blemishes
* Seaborn'ed the oscillator image
* Fixed a bunch of rst make-up
* Improved style guide, particularly on accessing vector valued functions
* Improved fitting types, added a few typos. Added a bunch of comments with questions/remarks
* Removed .api from the tutorial Redid most of the examples to follow the changes in preferred syntax Added some (rst) comments with unclear things
* fixed indentation and a typo, and processed @tBuLi's comments
* Added an harmonic oscillator to the docs. Fixes #77

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
* Fixed rst formatting errors in the docstrings
* Changed some permanently redirected links
* Added a description how the figures were made exactly to dependencies.rst
* Made the harmonic oscillator figures conform to the other figures
* Changed doc version to 0.3.3. Fixes #65
* Fix #68
* Fixed build warnings, and some minor blemishes
* Seaborn'ed the oscillator image
* Fixed a bunch of rst make-up
* Improved style guide, particularly on accessing vector valued functions
* Improved fitting types, added a few typos. Added a bunch of comments with questions/remarks
* Removed .api from the tutorial Redid most of the examples to follow the changes in preferred syntax Added some (rst) comments with unclear things
* fixed indentation and a typo, and processed @tBuLi's comments
* Added an harmonic oscillator to the docs. Fixes #77
* Make travis install just the contrib optional dependencies (for now). Specifying [\*] give pip errors
* Make travis install all extras
* Added matplotlib (required by interactive guess) to an extra/contrib section in setup.cfg
* 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
* Changed to deploy master branch only, should be ready for use in the field\!
* Reactivated setup.cfg for making wheels universal
* Deploy both a universal wheel and a source dist
* Added a lot of debuging print statements
* Added skip\_cleanup=True
* Removed matrix line, which was readded by merging with master
* Removed import of other test objects  entirely since that is now done by nosetests
* Fixed the bug in passing assumptions to sympy.Symbol
* Fixed a small mistake of calling .value instead of .stdev
* Re-enabled all tests
* Changed checking for namedtuple to tuple for now, because the namedtyple returns a new type and can therefore not be checked for that easily
* Added \_\_init\_\_.py to make tests a package
* Improved the 2 2D Gaussian test
* Switched all tests to the FitResults.value paradigm
* 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
* Moved install twine to the install section rather than before\_deploy
* Force install twine before deploying
* Updated version number to trigger an upload to testpypi
* Deploy to PyPI test from all branches temporarily to see if this solves the issue
* Added encrypted password
* Prepared .travis.yml up to but excluding password
* Removed 3.3 support and changed setup.py accordingly
* Force scipy 0.18.1 to be installed
* 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
* Minimize.execute now passes on args and kwargs, something it should have been doing all along
* Removed hard type assertions in FitResults, because its causing more problems than it solves
* Updated some docstrings and removed some commented code that has to go bye bye
* Minor cleanup
* Added ConstrainedNumericalLeastSquares to the API, and did some cleanup
* Fixed a minor mistake in the initiation of Minimize from constraint objects
* Changed interface of Minimize and its subclasses somewhat such that error\_func and eval\_jacobian accept the different types of data (dependent, independent, sigma), seperately. This makes the code inside these functions a lot clearer, and consistent with other Fitting objects
* Fixed some minor typos and changed docstrings
* Changed all the data shorthand properties from dict to OrderedDict, to make sure one can always rely on the alphabetic ordering being respected
* 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
* Update tutorial.rst
* Fixed errors that happens when variables are None, which can now happen due to the ODE code
* Update README.md
* Fixed some estatics
* Updated version number
* Fixed merge conflicts
* Deleted some unused imports
* added initial style guide to the docs. #36
* Minor changes to ODE tests
* Minor changes to ODE tests
* Added images for the docs
* #53, included ODEs in the documentation
* Added an example of integrating a complex double equilibrium model. No fitting included. #48
* Added axis labels
* Example of simple ODE fitting has been added:
* Removed .api from examples
* Improved docstring on ODEModel and cleaned up some of its code
* Fixed #59, which caused problems with unicode Argument names
* Newline at the end of the file
* Fixed a small beautymark
* Split off TakesData from BaseFit to suit PR#33
* Added some documentation for the ODE branch
* Fixed some typos. Probably added some too
* Fixed #50 by adding more data
* to appease git..
* Fixed minor bug and increased the number of iterations for NonLinearLeastSquares
* Fixed merge conflicts
* Removed some commented out code
* Made the internal API consistent with #47, internally we now take full advantage of the sexier model API
* Made Model's into dicts, thereby fixing #47
* Added some notes on NonLinearLeastSquares to the docs, and hopefully got rid of \_\_weakref\_\_ autodocking
* Minor changes to make the docs look better
* Removed BaseFit as a seperate entry
* 0.3.2 setup made

0.3.2
-----

* (Non)LinearLeastSquares finished
* Update README.md
* Updated the README
* Added pyinstaller support. Works by checking if the script is running as exe and then searches the exe folder for the required source file. Does require to distribute the python source code with the exe
* Added some tests for the new parameters/variables convinience methods
* Fixed #27. Also added some docstrings to the support module
* Updated text slightly to include the sigma keyword
* Fixed #22, the biggest problem of symfit. The docs should be changed to clearly reflect the implementation of the sigma keyword in symfit

0.2.6
-----

* Updated setup.py. Also included dependencies this time
* Steps taken towards #22, but more theoretical backing is needed. This new version does reduce the problem, and now defaults to curve\_fit with absolute\_error=True. Fixed #23
* Fixed #26. Symbols are ordered alphabetically
* Fixed #24. Fitting to a constant is now allowed
