Skip to content

WIP: Release Cycle, ? 2025#586

Open
TimothyWillard wants to merge 79 commits intomainfrom
dev
Open

WIP: Release Cycle, ? 2025#586
TimothyWillard wants to merge 79 commits intomainfrom
dev

Conversation

@TimothyWillard
Copy link
Contributor

@TimothyWillard TimothyWillard commented Jul 23, 2025

Description

This PR is a running accumulation of changes to merge from dev into main that will be merged at a to be decided release cycle.

News

Breaking Changes

  • ...

New Features

Bug Fixes

Notes

TimothyWillard and others added 30 commits June 30, 2025 17:44
Added a module for representing distributions that can be used
throughout gempyor. Started with `DistributionABC` as and abstract base
for all distributions. Implemented `FixedDistribution` and
`NormalDistribution` using that ABC. Finally, exposed a field
discriminated type to easily create distributions from config.
Added a representation for uniform distributions to
`gempyor.distributions`.
Added a representation of a poisson distribution to
`gempyor.distributions`
Added a representation for binomial distribution to
`gempyor.distributions`.
Added a lognormal distribution to `gempyor.distributions`.
Added a truncated normal distribution to `gempyor.distributions`.
Added a representation for gamma distributions to `gempyor.distributions`
Added a representation for Weibull distributions to `gempyor.distributions`. Also, fixed a return type hint error.
Unit tests and validation for the `NormalDistribution` class in `gempyor_pkg/tests/distributions/`
Unit tests and validation for the `FixedDistribution` class in `gmepyor_pkg/tests/distributions/`. Also removal of an unused parameter in the `FixedDistribution` `.sample()` method.
Unit tests and validation for the `UniformDistribution` class in `gempyor_pkg/tests/distributions/`. Also linting from a previous commit I forgot to add.
Unit tests and validation for the `LognormalDistribution` class in `gempyor_pkg/tests/distributions/` + a fix for an issue that I created in `2c5fce5`
Add tests for the `TruncatedNormalDistribution` class from `gempyor.distributions`. Also, formatting fixes and bound fixes.
Unit tests and validation for `PoissonDIstribution` class in `gempyor.distributions`. Also, formatting and bounds fixes.
Unit tests and validation for the `BinomialDistribution` class in `gempyor.distributions`. Also a bounds fix in `distributions.py`.
Unit tests and validation for the `GammaDistribution` class of `gempyor.distributions`. Also, a bounds fix in `distributions.py`.
Unit tests and validation for the `WeibullDistribution` class of `gempyor.distributions`. Also, bounds and formatting fixes.
Co-authored-by: Timothy Willard <9395586+TimothyWillard@users.noreply.github.com>
Co-authored-by: Timothy Willard <9395586+TimothyWillard@users.noreply.github.com>
Add `BetaDistribution`, de-duplicate `rng` code, remove unnecessary `rng` tests.
…dependency.

`test_spatial_groups()` relies on an inference config file used in the "slow" groups.
These tests are duplicates, which gets addressed in #570 , but for now we need to add both to the slow group to allow workflow success.
Remove old "slow" group, add timing feature to workflow for testing purposes (to be removed later).
Remove temporary time marker to ensure the test timing is appropriate.
Take 10 samples rather than 1 to reduce the risk of an identical series of samples being drawn (causing a test failure when arrays are compared).
use pydantic capabilities for default_factory

Co-authored-by: Timothy Willard <9395586+TimothyWillard@users.noreply.github.com>
emprzy and others added 27 commits July 28, 2025 16:26
…ion_from_confuse_config()`

This code is presently broken.
…ion_from_confuse_config()`

This code is presently broken.
Add new `__call__` syntactic sugar to `Distributions`.
Co-authored-by: Timothy Willard <9395586+TimothyWillard@users.noreply.github.com>
Co-authored-by: Timothy Willard <9395586+TimothyWillard@users.noreply.github.com>
Co-authored-by: Timothy Willard <9395586+TimothyWillard@users.noreply.github.com>
Co-authored-by: Carl A. B. Pearson <pearsonca@users.noreply.github.com>
Co-authored-by: Carl A. B. Pearson <pearsonca@users.noreply.github.com>
…-into-gem.parameters

Incorporate `gempyor.distributions` into `gempyor.parameters`
Pulled the script that generates info on the flepiMoP install out of
`bin/flepimop-install` into its own `bin/flepimop-install-info` for
standalone use.

Also updated installation script to also install the tests for the R
packages.
Created a custom `flepimop-install` action and incorporated it into the
gempyor, flepicommon, and inference CI workflows. This custom action
takes care of:
* Installing apt packages required by some of the R dependencies,
* Installing miniconda,
* Either pulling a conda venv from cache or installing flepiMoP with the
  standard install scripts with a user specified python/R version, and
* Displaying install information for debugging purposes.
Added a step to the gempyor CI workflow to run doctests as well as fixed
the current state of doctests throughout the gempyor package. Mostly
quick fixes, more detailed and higher quality examples will be required
in follow ups.
Add spacing to list item entries so IDEs are a bit less confused when
viewing the file. Addresses #485.
* Removed the trigger whenever there is a push to the `dev` branch for
	the GitHub actions, in practice results in actions being ran twice on
  PR from `dev` into `main`.
* Split the slow gempyor tests out into their own job that depends on
	the fast tests job and only runs with python 3.11. Running the slow
  tests with all python versions is not needed.
Extracted out the custom R pkg installer into its own
`bin/flepimop-install-r-pkgs` script. This is helpful, because:
1. It helps to modularize `bin/flepimop-install` a little bit more for
	 maintainability, and
2. Assists with development of R packages by making them easier to
	 reinstall for testing. R does not have an `--editable` install like
   python does so edits to `flepimop-inference-*` require reinstall.
Follow up to #585 to account for the arguments of
`gempyor.seir.write_seir` taking the out dataframe instead of the
states, leaving it to the user to call `gempyor.seir.states2DF`.
Prior to #549 providing an explicit mobility of 0 was allowed, this
reallows this previous behaivor. Minor change to the `MobilityFileRow`
pydantic model was required and then adjust ments to the unit tests.
Should address #605.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

low priority Low priority. next release Marks a PR as a target to include in the next release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants