Version 0.9.13 Release Notes
New features:
Clearer warning message in fit reports when uncertainties should but cannot be estimated, including guesses of which Parameters to examine
SplitLorenztianModel and split_lorentzian function
HTML representations for Parameter, MinimizerResult, and Model so that they can be printed better with Jupyter
support parallelization for differential evolution
Bug fixes:
delay import of matplotlib (and so, the selection of its backend) as late as possible
fix for saving, loading, and reloading ModelResults
fix to leastsq to report the best-fit values, not the values tried last
fix synchronization of all parameter values on Model.guess()
improve deprecation warnings for outdated nan_policy keywords
fix for edge case in gformat()
Project managements:
using pre-commit framework to improve and enforce coding style
added code coverage report to github main page
updated docs, github templates, added several tests.
dropped support and testing for Python 3.4.
Version 0.9.12 Release Notes
New features:
- SkewedVoigtModel was added as built-in model
- Parameter uncertainties and correlations are reported for least_squares
- Plotting of complex-valued models is now handled in ModelResult class
- A model's independent variable is allowed to be an object
- Added usersyms to Parameters() initialization to make it easier to add custom functions and symbols
- the numdifftools package can be used to calculate parameter uncertainties and correlations for all solvers that do not natively support this
- emcee can now be used as method keyword-argument to Minimizer.minimize and minimize function, which allows for using emcee in the Model class
(Bug)fixes:
- asteval errors are now flushed after raising
- max_time and evaluation time for ExpressionModel increased to 1 hour
- loading a saved ModelResult now restores all attributes
- development versions of scipy and emcee are now supported
- ModelResult.eval() do no longer overwrite the userkws dictionary
- running the test suite requires pytest only
- improved FWHM calculation for VoigtModel
0.9.11:
make exception explicit
0.9.10:
add AMPGO and basin-hopping global optimization methods.
aborting a fit from the objective function now raises AbortFitException
fit statistics are more uniformly calculated.
the uncertainties package is now an external dependency, and an out-dated copy is no longer kept in lmfit.
more exceptions when import matplotlib are now tolerated.
many documentation fixes.
Version 0.9.9:
Lmfit now uses the asteval (https://github.com/newville/asteval) package
instead of distributing its own copy. The minimum required asteval version
is 0.9.12, which is available on PyPi. If you see import errors related to
asteval, please make sure that you actually have the latest version installed.
Changes to 0.9.7 not immediately obvious
Version 0.9.6 Release Notes
Support for SciPy 0.14 has been dropped: SciPy 0.15 is now required.
This is especially important for lmfit maintenance, as it means we can
now rely on SciPy having code for differential evolution and do not
need to keep a local copy.
A brute force method was added, which can be used either with
Minimizer.brute() or using the method='brute' option to
Minimizer.minimize(). This method requires finite bounds on all varying
parameters, or that parameters have a finite brute_step attribute set
to specify the step size.
Custom cost functions can now be used for the scalar minimizers using
the reduce_fcn option.
Many improvements to documentation and docstrings in the code were
made. As part of that effort, all API documentation in this main Sphinx
documentation now derives from the docstrings.
Uncertainties in the resulting best-fit for a model can now be
calculated from the uncertainties in the model parameters.
Parameters have two new attributes: brute_step, to specify the step
size when using the brute method, and user_data, which is unused but
can be used to hold additional information the user may desire. This
will be preserved on copy and pickling.