------------------------------------------------------------------- Thu Sep 5 09:41:05 UTC 2024 - Ben Greiner - Update to 1.3.2 * fix typo in restoring a _buildmodel dict (PR #957, Issue #956) * fixes for Numpy2 support (PR #959, Issue #958) * ensure that correct initial params are used when re-fitting a ModeRresult (PR #961, Issue #960) * make sure that CompositeModels cannot have a prefix (PR #961, Issue #954) * now require asteval>=1.0 and uncertainties>=3.2.2 - Fix requirements - Drop support-numpy-2.patch - Add lmfit-pr965-asteval.patch gh#lmfit/lmfit-py#965 ------------------------------------------------------------------- Fri Jul 5 03:01:53 UTC 2024 - Steve Kowalik - Update to 1.3.1: * New features: + add 'min_rel_change' as optional variable in calculation of confidence intervals with Model.conf_interval(). + Model.eval_uncertainty now takes an optional dscale parameter (default value of 0.01) to set the step size for calculating derivatives + add calculation of predicted_interval to Model.eval_uncertainty * Bug fixes/enhancements: + allow Model.eval_uncertainty to be performed with single points for x independent variables + allow Model._parse_param to handle older-style passed-in 'argnames' and 'kwargs' as for variadic function + better allow (or re-allow) Model function independent variables / keyword arguments to be given non-default values at model creation time + add form as independent variable for builtin Step, Rectangle, Thermal Distribution models. + use Model._reprstring(long=True) for model Model.__repr__(). + restore best-fit parameter values for high accuracy values of constrained values + improvement to Model for the difference between Parameter, "independent variable", and "option". + better saving/loading saved states of Model now use dill, have several cleanups, and are now versioned for future-proofing. + fix bug calculating r-squared for fits with weights + fix bug in modelresult.eval_uncertainty() after load_modelresult() + add test for MinimizerResult.uvars after successful fit * Maintenance/Deprecations: + drop support for Python 3.7 + fix tests for Python 3.12 and Python 3.13-dev + increase minimum numpy verstio to 1.23 and scipy to 1.8. + updates for compatibility with numpy 2.0 + the dill package is now required - Switch to autosetup macro. - Add patch support-numpy-2.patch: * Support numpy 2.0 more thoroughly. ------------------------------------------------------------------- Mon Aug 21 10:32:37 UTC 2023 - Markéta Machová - Update to 1.2.2 * add create_params function * add ModelResult.summary() to return many resulting fit statistics and attributes into a JSON-able dict. * update tests for latest versions of NumPy and SciPy. * Coercing of user input data and independent data for Model to float64 ndarrays is somewhat less aggressive and will not increase the precision of numpy ndarrays * improve Model.make_params and create_params to take optional dict of Parameter attributes * Outputs of residual functions, including Model._residual, are more explicitly coerced to 1d-arrays of datatype Float64. This decreases the expectation for the user-supplied code to return ndarrays, and increases the tolerance for more “array-like” objects or ndarrays that are not Float64 or 1-dimensional. ------------------------------------------------------------------- Fri Jan 13 15:42:09 UTC 2023 - Ben Greiner - Update to v1.1.0 ## New features: * add Pearson4Model (@lellid; PR #800) * add SplineModel (PR #804) * add R^2 rsquared statistic to fit outputs and reports for Model fits (Issue #803; PR #810) * add calculation of dely for model components of composite models (Issue #761; PR #826) ## Bug fixes/enhancements: * make sure variable spercent is always defined in params_html_table functions (reported by @MySlientWind; Issue #768, PR #770) * always initialize the variables success and covar the MinimizerResult (reported by Marc W. Pound; PR #771) * build package following PEP517/PEP518; use pyproject.toml and setup.cfg; leave setup.py for now (PR #777) * components used to create a CompositeModel can now have different independent variables (@Julian-Hochhaus; Discussion #787; PR #788) * fixed function definition for StepModel(form='linear'), was not consistent with the other ones (@matpompili; PR #794) * fixed height factor for Gaussian2dModel, was not correct (@matpompili; PR #795) * for covariances with negative diagonal elements, we set the covariance to None (PR #813) * fixed linear mode for RectangleModel (@arunpersaud; Issue #815; PR #816) * report correct initial values for parameters with bounds (Issue #820; PR #821) * allow recalculation of confidence intervals (@jagerber48; PR #798) * include 'residual' in JSON output of ModelResult.dumps (@mac01021; PR #830) * supports and is tested against Python 3.11; updated minimum required version of SciPy, NumPy, and asteval (PR #832) ## Deprecations: * remove support for Python 3.6 which reached EOL on 2021-12-23 (PR #790) - Clean check section from extra example ------------------------------------------------------------------- Tue Dec 28 19:11:00 UTC 2021 - Ben Greiner - Update to v1.0.3 **Potentially breaking change:** * argument ``x`` is now required for the ``guess`` method of Models (Issue #747; PR #748) To get reasonable estimates for starting values one should always supply both ``x`` and ``y`` values; in some cases it would work when only providing ``data`` (i.e., y-values). With the change above, ``x`` is now required in the ``guess`` method call, so scripts might need to be updated to explicitly supply ``x``. **Bug fixes/enhancements:** * do not overwrite user-specified figure titles in Model.plot() functions and allow setting with ``title`` keyword argument (PR #711) * preserve Parameters subclass in deepcopy (@jenshnielsen; PR #719) * coerce ``data`` and ``indepdent_vars`` to NumPy array with ``dtype=float64`` or ``dtype=complex128`` where applicable (Issues #723 and #728) * fix collision between parameter names in built-in models and user-specified parameters (Issue #710 and PR #732) * correct error message in PolynomialModel (@kremeyer; PR #737) * improved handling of altered JSON data (Issue #739; PR #740, reported by Matthew Giammar) * map ``max_nfev`` to ``maxiter`` when using ``differential_evolution`` (PR #749, reported by Olivier B.) * correct use of noise versus experimental uncertainty in the documentation (PR #751, reported by Andrés Zelcer) * specify return type of ``eval`` method more precisely and allow for plotting of (Complex)ConstantModel by coercing their ``float``, ``int``, or ``complex`` return value to a ``numpy.ndarray`` (Issue #684 and PR #754) * fix ``dho`` (Damped Harmonic Oscillator) lineshape (PR #755; @rayosborn) * reset ``Minimizer._abort`` to ``False`` before starting a new fit (Issue #756 and PR #757; @azelcer) * fix typo in ``guess_from_peak2d`` (@ivan-usovl; PR #758) **Various:** * update asteval dependency to >= 0.9.22 to avoid DeprecationWarnings from NumPy v1.20.0 (PR #707) * remove incorrectly spelled ``DonaichModel`` and ``donaich`` lineshape, deprecated in version 1.0.1 (PR #707) * remove occurrences of OrderedDict throughout the code; dict is order-preserving since Python 3.6 (PR #713) * update the contributing instructions (PR #718; @martin-majlis) * (again) defer import of matplotlib to when it is needed (@zobristnicholas; PR #721) * fix description of ``name`` argument in ``Parameters.add`` (@kristianmeyerr; PR #725) * update dependencies, make sure a functional development environment is installed on Windows (Issue #712) * use ``setuptools_scm`` for version info instead of ``versioneer`` (PR #729) * transition to using ``f-strings`` (PR #730) * mark ``test_manypeaks_speed.py`` as flaky to avoid intermittent test failures (repeat up to 5 times; PR #745) * update scipy dependency to >= 1.14.0 (PR #751) * improvement to output of examples in sphinx-gallery and use higher resolution figures (PR #753) * remove deprecated functions ``lmfit.printfuncs.report_errors`` and ``asteval`` argument in ``Parameters`` class (PR #759) ------------------------------------------------------------------- Wed Feb 17 11:46:57 UTC 2021 - Ben Greiner - Update to version 1.0.2 * officially supports Python 3.9 and has dropped support for Python 3.5. The minimum version of the following dependencies were updated: asteval>=0.9.21, numpy>=1.18, and scipy>=1.3. New features: * added two-dimensional Gaussian lineshape and model (PR #642; @mpmdean) * all built-in models are now registered in lmfit.models. lmfit_models; new Model class attribute valid_forms (PR #663; @rayosborn) * added a SineModel (PR #676; @lneuhaus) * add the run_mcmc_kwargs argument to Minimizer.emcee to pass to the emcee.EnsembleSampler.run_mcmc function (PR #694; @rbnvrw) - Skip python36 build: Numpy 1.20 dropped support for Python 3.6 (NEP 29) ------------------------------------------------------------------- Tue Jun 16 08:44:01 UTC 2020 - Tomáš Chvátal - Skip two failing tests that are borked on non 64bit intel ------------------------------------------------------------------- Mon Jun 8 07:06:22 UTC 2020 - John Paul Adrian Glaubitz - Update to version 1.0.1 + New features: - added thermal distribution model and lineshape (PR #620; @mpmdean) - introduced a new argument ``max_nfev`` to uniformly specify the maximum number of function evalutions (PR #610) **Please note: all other arguments (e.g., ``maxfev``, ``maxiter``, ...) will no longer be passed to the underlying solver. A warning will be emitted stating that one should use ``max_nfev``.** - the attribute ``call_kws`` was added to the ``MinimizerResult`` class and contains the keyword arguments that are supplied to the solver in SciPy. + Bug fixes: - fixes to the ``load`` and ``__setstate__`` methods of the Parameter class - fixed failure of ModelResult.dump() due to missing attributes (Issue #611, PR #623; @mpmdean) - ``guess_from_peak`` function now also works correctly with decreasing x-values or when using pandas (PRs #627 and #629; @mpmdean) - the ``Parameter.set()`` method now correctly first updates the boundaries and then the value (Issue #636, PR #637; @arunpersaud) + Various: - fixed typo for the use of expressions in the documentation (Issue #610; @jkrogager) - removal of PY2-compatibility and unused code and improved test coverage (PRs #619, #631, and #633) - removed deprecated ``isParameter`` function and automatic conversion of an ``uncertainties`` object (PR #626) - inaccurate FWHM calculations were removed from built-in models, others labeled as estimates (Issue #616 and PR #630) - corrected spelling mistake for the Doniach lineshape and model (Issue #634; @rayosborn) - removed unsupported/untested code for IPython notebooks in lmfit/ui/* - from version 1.0.0 + New features: - no new features are introduced in 1.0.0. + Improvements: - support for Python 2 and use of the ``six`` package are removed. (PR #612) + Various: - documentation updates to clarify the use of ``emcee``. (PR #614) - from version 0.9.15 + New features, improvements, and bug fixes: - move application of parameter bounds to setter instead of getter (PR #587) - add support for non-array Jacobian types in least_squares (Issue #588, @ezwelty in PR #589) - add more information (i.e., acor and acceptance_fraction) about emcee fit (@j-zimmermann in PR #593) - "name" is now a required positional argument for Parameter class, update the magic methods (PR #595) - fix nvars count and bound handling in confidence interval calculations (Issue #597, PR #598) - support Python 3.8; requires asteval >= 0.9.16 (PR #599) - only support emcee version 3 (i.e., no PTSampler anymore) (PR #600) - fix and refactor prob_bunc in confidence interval calculations (PR #604) - fix adding Parameters with custom user-defined symbols (Issue #607, PR #608; thanks to @gbouvignies for the report) + Various: - bump requirements to LTS version of SciPy/ NumPy and code clean-up (PR #591) - documentation updates (PR #596, and others) - improve test coverage and Travis CI updates (PR #595, and others) - update pre-commit hooks and configuration in setup.cfg + To-be deprecated: - function Parameter.isParameter and conversion from uncertainties.core.Variable to value in _getval (PR #595) - from version 0.9.14 + New features: - the global optimizers ``shgo`` and ``dual_annealing`` (new in SciPy v1.2) are now supported (Issue #527; PRs #545 and #556) - ``eval`` method added to the Parameter class (PR #550 by @zobristnicholas) - avoid ZeroDivisionError in ``printfuncs.params_html_table`` (PR #552 by @aaristov and PR #559) - add parallelization to ``brute`` method (PR #564, requires SciPy v1.3) + Bug fixes: - consider only varying parameters when reporting potential issues with calculating errorbars (PR #549) and compare ``value`` to both ``min`` and ``max`` (PR #571) - guard against division by zero in lineshape functions and ``FWHM`` and ``height`` expression calculations (PR #545) - fix issues with restoring a saved Model (Issue #553; PR #554) - always set ``result.method`` for ``emcee`` algorithm (PR #558) - more careful adding of parameters to handle out-of-order constraint expressions (Issue #560; PR #561) - make sure all parameters in Model.guess() use prefixes (PRs #567 and #569) - use ``inspect.signature`` for PY3 to support wrapped functions (Issue #570; PR #576) - fix ``result.nfev``` for ``brute`` method when using parallelization (Issue #578; PR #579) + Various: - remove "missing" in the Model class (replaced by nan_policy) and "drop" as option to nan_policy (replaced by omit) deprecated since 0.9 (PR #565). - deprecate 'report_errors' in printfuncs.py (PR #571) - updates to the documentation to use ``jupyter-sphinx`` to include examples/output (PRs #573 and #575) - include a Gallery with examples in the documentation using ``sphinx-gallery`` (PR #574 and #583) - improve test-coverage (PRs #571, #572 and #585) - add/clarify warning messages when NaN values are detected (PR #586) - several updates to docstrings (Issue #584; PR #583, and others) - update pre-commit hooks and several docstrings - Update BuildRequires and Requires from setup.py ------------------------------------------------------------------- Wed Apr 24 08:42:15 UTC 2019 - pgajdos@suse.com - version update to 0.9.13 New features: Clearer warning message in fit reports when uncertainties should but cannot be estimated, including guesses of which Parameters to examine (#521, #543) SplitLorenztianModel and split_lorentzian function (#523) HTML representations for Parameter, MinimizerResult, and Model so that they can be printed better with Jupyter (#524, #548) support parallelization for differential evolution (#526) Bug fixes: delay import of matplotlib (and so, the selection of its backend) as late as possible (#528, #529) fix for saving, loading, and reloading ModelResults (#534) fix to leastsq to report the best-fit values, not the values tried last (#535, #536) fix synchronization of all parameter values on Model.guess() (#539, #542) improve deprecation warnings for outdated nan_policy keywords (#540) fix for edge case in gformat() (#547) Project managements: using pre-commit framework to improve and enforce coding style (#533) added code coverage report to github main page updated docs, github templates, added several tests. dropped support and testing for Python 3.4. - deleted patches - lmfit-scipy.patch (upstreamed) ------------------------------------------------------------------- Tue Mar 5 14:57:02 UTC 2019 - Todd R - Fix spurious unit test errors. ------------------------------------------------------------------- Fri Jan 18 10:24:44 UTC 2019 - Tomáš Chvátal - Apply patch to fix build with new scipy: * lmfit-scipy.patch ------------------------------------------------------------------- Fri Jan 18 10:19:27 UTC 2019 - Tomáš Chvátal - Update to 0.9.12: * make exceptions explicit * use inspect.getfullargspec for Python3 * test-suite: use pytest features, improve coverage, fix mistakes ------------------------------------------------------------------- Thu Mar 22 04:46:08 UTC 2018 - toddrme2178@gmail.com - Initial version