CHANGES
=======

* 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
* Retired the old fit_result.params.a paradigm from test_general.py. It is updated to the new fit_result.value(a)
* Fixed typos, comments and improved readability of vector model initiation to be in accordance with style guide
* Improved the test of Maximize to compare directly with the results from scipys minimize
* Added namedtuple type assert for calls to Model
* Seperated the testing of predefined distributions
* Fixed py2 compatibility of skip
* Fixed merge conflicts
* 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
* Enable both deployments, should be a go
* Test branch only
* Switched to branch master
* Added encrypted PyPI password, should now be able to deplot to PyPI test server
* 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
* Exploit proper test discovery with Travis
* Removed symfit.tests from the package
* Catch LinAlgError in case of singular covariance matrix, don't return one in that case
* Changed test locations to adhere to pytest/nosetest standards. This facilitates automatic test discovery dramatically
* Skipping tests which are known failures
* Added a bunch of docstrings to tests.py, and did some minor cleaning
* removed seaborn and matplotlib from the travis requirements. Maybe travis should install requirements.txt from now on?
* Minor polishing to reflect the changes in 5a57fd6
* Improved the tragedy that was tests_constrained
* Restricted travis to only run the symfit tests, and not the sympy ones as well
* Added tests for bounds and guesses to the vector fitting tests
* 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
* Save changes to local ODE branch
* Fixed #49 and Fixed #48. ODE models are now supported and fitable with at least NumericalLeastSquare. Other objects should be checked
* Defined some model abcs, time to merge with ode
* ODE roughly works now, up to the changes in the abc branch. Redifining ABC's now
* Commit some minor changes before switching branch
* Working ODEModel, compatiple with the default NumericalLeastSquares. Some fundamental changes to the definition of a Model have been made though, so all excisting tests now fail. This will be fixed by #49 in the near feature
* First attempt at defining abc's
* ODE work thus far
* 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
* Fixed #43. Added methods for (co)variance, stdev and value to fit_results directly for convinience
* Update README.md
* Fixed a crusial typo
* Fixed #40: all BaseFit children must have error_func and eval_jacobian
* Slightly changed the fits. py2 compatibility is restored
* Made signatures py2 compatible, removed keywordonly arguments and replaced them by a decorator, and removed ABC, thereby fixing #38, restoring py2 compatibility!
* keywordonly decorator build. Its a very pragmatic version of it, making readability the priority
* Made inspect py2 compatible
* Updated setup.py
* Added keywordonly
* Removed type annotations
* Made Expr.__call__ consistent with calling a Model instance: also positional arguments are allowed now. However it turns out to be best not to fiddle with Expr to much since they don't have an instance dict. Therefore the current implementation with Model.numerical_components seems like a good idea, although it's best to only use it as an internal method. #39
* Update README.md

0.3.0
-----

* MANIFEST changed
* Updated version number, and discontinued py2 support
* Updated version number, and discontinued py2 support
* Added requirements.txt
* Reinitiated all tests
* 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

0.2.5
-----

* Updated setup.py
* Fixed #20 and fixed #17. Python3 should now be supported

0.2.4
-----

* Üpdated
* Submodels can now be evaluated easely. Fixed #14
* Fixed #19, #16. Might have solved #17, this has to be checked
* Added math
* Fixed some minor mistakes in the new docs
* Docs changed to include basic instructions for Likelihood and Minimize
* Added a test for the seperation of 2 2D gaussians in proximity to one another. Here we start to run into the fit an elephant problem, but some people might want to fit elephants
* Added a test for Finding a single 2D gaussian population
* stdev could be None, which messed up the printing of the results. Fixed it, althoug formatting may no longer be nice in case this happens
* Update installation.rst
* Update CONTRIBUTING.rst
* Update CONTRIBUTING.rst
* Update CONTRIBUTING.rst
* Create CONTRIBUTING.rst
* Update AUTHORS.rst
