Changed:
Rename cli entrypoint to ‘snmf’ from ‘diffpy.stretched-nmf’
Fixed:
Produce an error if test files are missing
Use matplotlib-base when installing with conda-forge
0.2.0
Added:
Coverage report in each PR
Implement tests for
compute_objective_function()Add spelling check pre-commit via Codespell
Added XRD example using real data
SNMFOptimizer.converged_ attribute to indicate whether the optimization
successfully reached the convergence tolerance (True) or stopped because the maximum number of iterations was reached (False). * L-BFGS-B method in scipy for weight optimization in def get_weights * Support for Python 3.13 * ‘SNMFOptimizer.objective_log’ attr: dictionary list to track the optimization process, recording the step, iteration, objective, and timestamp at each update. Uses the ‘step’, ‘iteration’, ‘objective’ and ‘timestamp’ keys. * ‘SNMFOptimizer(verbose : Optional[bool])’ option and SNMFOptimizer.verbose attribute to allow users to toggle diagnostic console output. * Add docformatter config block to the end of the pyproject.toml file.
Changed:
Refactor
get_objective_function()into a static method and getterMove project/package naming and related references to the new
diffpy.stretched-nmfname.Update to scikit-package 0.3
Modified all print messages for improved readability and tied them to the new
verbose flag. * Refactored convergence checks and step-size calculations to pull objective values directly from objective_log instead of relying on a separate history array.
Fixed:
Add getting started section and re-arrange install success check instructions
Support
scikit-packageLevel 5 standard (https://scikit-package.github.io/scikit-package/).Remove extraneous files
Register
pytest.mark.slowin pytest config to avoid unknown-marker warnings.Add entry point to the application
Fix CLI bug due to typo
Reformat README for PyPi compatibility
Consistently label variables as private or fit-derived
Absolute tolerance for updated weighted matrix from 0.5 to 1e-05 in test_subroutines.py
Include GitHub Issues templates for bug report and feature request
Conform variable names to PEP-8
Removed:
Old tests and source files from prior, pre-release development.
cvxpy dependency for linear weight optimization in def get_weights
Support for Python 3.10
Removed the ‘SNMFOptimizer._objective_history’ list, which was made redundant
by the comprehensive ‘SNMFOptimizer.objective_log’ tracking system.
otes
0.1.3
Fixed:
Updated README instructions for pip and conda-forge install
Updated README instructions to check for successful installation
0.1.2
Added:
Use GitHub Actions to build, release, upload to PyPI
Added issue template for PyPI/GitHub release
Changed:
Added tag check for release
citation from arXiv to npj Comput Mater in docs
Fixed:
Python version from 3.9 to 3.12 in CI news item
tests folder at the root of the repo
re-cookiecuter repo to groupd’s package standard
Add pip dependencies under pip.txt and conda dependencies under conda.txt
0.1.0
Added:
Initial release of diffpy.snmf
Changed:
Support Python version 3.12
Remove support for Python version 3.9
Fixed:
Repo structure modified to the new diffpy standard
Code linting based on .pre-commit-config.yaml