Skip to content

0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Mar 13:38

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 getter
  • Move project/package naming and related references to the new diffpy.stretched-nmf name.
  • 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-package Level 5 standard (https://scikit-package.github.io/scikit-package/).
  • Remove extraneous files
  • Register pytest.mark.slow in 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