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):
- Add
simpy
andtreat-sim
to the environment, as these were required in the notebooks indocs/
. - Add
nbqa
andpylint
to the environment for linting, plus a relevant fileslint.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
.
- Simplified distribution value type tests to a single test where possible using
pytest.mark.parametrize
. - Linted
.py
and.ipynb
files usingpylint
(most addressed, some remain unresolved). - Provided advice on tests, building docs and linting in the
README.md
. 00_front_page.md
now just importedREADME.md
(reducing duplication, and keping it up-to-date).
- Removed duplicate
sw21_tutorial.ipynb
.
- Within
confidence_interval_method
, convert data provided toOnlineStatistics
tonp.array
so that it is actually used to update the class (when before, it was not, as it was a list).
- Patched
ReplicationsAlgorithm
look ahead will now correctly use_klimit()
to calculate extra no. replications to run.
output_analysis
module - focussed at the moment on selecting the number of replicationsReplicationsAlgorithm
that implements the automated approach to selecting the number of replications for a single performance measures.ReplicationsAlgorithmModelAdapter
- aProtocol
to adapt any model to work with withReplicationsAlgorithm
confidence_interval_method
- select the number of replication using the classical confidence interval methodplotly_confidence_interval_method
- visualise the confidence interval method using plotly.ReplicationObserver
aProtocol
for observering the replications algorithmReplicationTabulizer
record replications algorithm in a pandas dataframe.- Documentation for
ReplicationsAlgorithm
sim-tools
dev conda environment now pip installs local python package in editable model.
- BUILD: added rich library.
- Scipy Dependency
- Added
nspp_plot
andnspp_simulation
functions totime_dependent
module. - DOCS: added
nspp_plot
andnspp_simulation
examples to time dependent notebook - DOCS: simple trace notebook
- BREAKING: to prototype trace functionality. config name -> class breaks with v0.5.0
- THINNING: patched compatibility of thinning algorithm to work with numpy >= v2.
np.Inf
->np.inf
- EXPERIMENTAL: added
trace
module withTraceable
class for colour coding output from different processes and tracking individual patients.
- 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.
- BUILD: Dropped legacy
setuptools
and migrated package build tohatch
- BUILD: Removed
setup.py
,requirements.txt
andMANIFEST
in favour ofpyproject.toml
- PATCH:
distributions.Discrete
was not returning numpy arrays.
- Update Github action to publish to pypi. Use setuptools instead of build
- PYPI has deprecated username and password. PYPI Publish Github action no works with API Token
- 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.
- Modified Setup tools to avoid numpy import error on build.
- Updated github action to use up to date actions.
- Added
sim_tools.distribution
module. This contains classes representing popular sampling distributions for Discrete-event simulation. All classes encapsulate anumpy.random.Generator
object, a random seed, and the parameters of a sampling distribution.
- 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.