Skip to content

Latest commit

 

History

History
160 lines (100 loc) · 7.1 KB

CHANGES.md

File metadata and controls

160 lines (100 loc) · 7.1 KB

Change log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. Dates formatted as YYYY-MM-DD as per ISO standard.

Consistent identifier (represents all versions, resolves to latest): DOI

Unreleased

Added

  • Add simpy and treat-sim to the environment, as these were required in the notebooks in docs/.
  • Add nbqa and pylint to the environment for linting, plus a relevant files lint.sh and .pylintrc.
  • Add tests for output_analysis functions (functional, unit and back tests).
  • Add validation of parameters in ReplicationsAlgorithm.
  • Add validation of data type in OnlineStatistics.

Changed

  • Simplified distribution value type tests to a single test where possible using pytest.mark.parametrize.
  • Linted .py and .ipynb files using pylint (most addressed, some remain unresolved).
  • Provided advice on tests, building docs and linting in the README.md.
  • 00_front_page.md now just imported README.md (reducing duplication, and keping it up-to-date).

Removed

  • Removed duplicate sw21_tutorial.ipynb.

Fixed

  • Within confidence_interval_method, convert data provided to OnlineStatistics to np.array so that it is actually used to update the class (when before, it was not, as it was a list).

Fixed

  • Patched ReplicationsAlgorithm look ahead will now correctly use _klimit() to calculate extra no. replications to run.

Added

  • output_analysis module - focussed at the moment on selecting the number of replications
  • ReplicationsAlgorithm that implements the automated approach to selecting the number of replications for a single performance measures.
  • ReplicationsAlgorithmModelAdapter - a Protocol to adapt any model to work with with ReplicationsAlgorithm
  • confidence_interval_method - select the number of replication using the classical confidence interval method
  • plotly_confidence_interval_method - visualise the confidence interval method using plotly.
  • ReplicationObserver a Protocol for observering the replications algorithm
  • ReplicationTabulizer record replications algorithm in a pandas dataframe.
  • Documentation for ReplicationsAlgorithm

Updated

  • sim-tools dev conda environment now pip installs local python package in editable model.

Fixed

  • BUILD: added rich library.

Removed

  • Scipy Dependency

Added

  • Added nspp_plot and nspp_simulation functions to time_dependent module.
  • DOCS: added nspp_plot and nspp_simulation examples to time dependent notebook
  • DOCS: simple trace notebook

Changed

  • BREAKING: to prototype trace functionality. config name -> class breaks with v0.5.0

Fixed

  • THINNING: patched compatibility of thinning algorithm to work with numpy >= v2. np.Inf -> np.inf

Added

  • EXPERIMENTAL: added trace module with Traceable class for colour coding output from different processes and tracking individual patients.

Fixed

  • DIST: fix to NSPPThinning sampling to pre-calcualte mean IAT to ensure that correct exponential mean is used.
  • DIST: normal distribution allows minimum value and truncates automaticalled instead of resampling.

Changed

  • BUILD: Dropped legacy setuptools and migrated package build to hatch
  • BUILD: Removed setup.py, requirements.txt and MANIFEST in favour of pyproject.toml

Fixed

  • PATCH: distributions.Discrete was not returning numpy arrays.

Changed

  • Update Github action to publish to pypi. Use setuptools instead of build

Fixed:

  • PYPI has deprecated username and password. PYPI Publish Github action no works with API Token

Added

  • Distributions classes now have python type hints.
  • Added distributions and time dependent arrivals via thinning example notebooks.
  • Added datasets module and function to load example NSPP dataset.
  • Distributions added
    • Erlang (mean and stdev parameters)
    • ErlangK (k and theta parameters)
    • Poisson
    • Beta
    • Gamma
    • Weibull
    • PearsonV
    • PearsonVI
    • Discrete (values and observed frequency parameters)
    • ContinuousEmpirical (linear interpolation between groups)
    • RawEmpirical (resample with replacement from individual X's)
    • TruncatedDistribution (arbitrary truncation of any distribution)
  • Added sim_tools.time_dependent module that contains NSPPThinning class for modelling time dependent arrival processes.
  • Updated test suite for distributions and thinning
  • Basic Jupyterbook of documentation.

Fixed

  • Modified Setup tools to avoid numpy import error on build.
  • Updated github action to use up to date actions.

v0.2.0 DOI

Added

  • Added sim_tools.distribution module. This contains classes representing popular sampling distributions for Discrete-event simulation. All classes encapsulate a numpy.random.Generator object, a random seed, and the parameters of a sampling distribution.

Changed

  • Python has been updated, tested, and patched for 3.10 and 3.11 as well as numpy 1.20+
  • Minor linting and code formatting improvement.