Releases: lycosystem/lyscripts
1.0.2
1.0.1
1.0.0
What's New
Compared to the last "stable" version 0.7.3, everything is basically a full rewrite, has been entirely removed, or is an entirely new feature.
Most importantly, we now rely heavily on pydantic for the CLI and the validation of all command inputs. This allows us to merge and validate inputs from several sources, e.g. multiple YAML files and the CLI args. A schema defining the structure of these is available under schemas/ly.json. This means that e.g. in VS Code, one can reuse this schema for any *.ly.yaml files and get docs and autocompletion.
Below are the changes relative to the last pre-release (1.0.0rc3):
Bug Fixes
- Change
infotocorefor mid-level lydata columns - Use bug-fixed lydata
.ly.enhance()method.
Documentation
- Update documentation for
integrateandevidencecommands. - Improve
data collectdescription.
Features
- Add
integratecommand for thermodynamic integration. Thanks @noemibuehrer! - Add command spawning websever for interactive data collection.
Miscellaneous Tasks
- Add missing links to changelog.
- Add CITATION.cff.
Testing
- Update tests for new lydata.
Build
- Add uvicorn, fastapi to deps.
- Require at least lydata 0.4.0.
Change
- Make compatible with new lyDATA version.
- Centralize inverse temperature schedule generation.
- Store selected log-level globally.
- Disable properties in collector.
1.0.0rc3
What's New
Documentation
- Fix
joincommand's example call.
Features
- Add
data fetchcommand. Fixes #75.
Change
- Access data only via lydata for compatibility.
We have changed the lydata 2nd level headers slightly for the patient and tumor info (see lycosystem/lydata#21 for more info).
Since the lydata package was already updated to be compatible with that change, we simply need to route every access the lyscripts make to the data through lydata package and hence be compatible too. - Make CLI work with new lydata format.
This is also related to lycosystem/lydata#21
1.0.0rc2
What's New
Bug Fixes
- Divide by midext prevalence. Fixes #72.
This fixes a bug we reintroduced where we didn't compute observed and
model prevalence in an analogous and comparable way.
Documentation
- Fix build badge in README.
- Fix outdated links to rmnldwg.
Miscellaneous Tasks
- Update pre-commit & ruff rules.
Testing
- Fix the dataset used for testing prevalences.
Build
- Switch to
srclayout. Fixes #74.
Ci
- Use tests action with coverage.
1.0.0rc1
What's New
The new package version (v1) is getting smaller and smaller bug fixes, indicating that we may be able to release 1.0.0 soon. Below are the most recent changes:
Bug Fixes
- Use 'fork' start method under MacOS.
- Specify config file encoding for other OSes.
- Cast scenario pattern to bool if possible. Fixes #70.
Since we allow defining a pattern with keywords like"involved"or1
instead of onlyTrue, we also need to make sure that is correctly cast
to its boolean value for lydata'sCobjects.
Documentation
- Add warning for Windows & MacOS regarding multiprocess(ing).
Miscellaneous Tasks
- Add link to changelog.
Testing
- Ensure observed prevalence is correct. Related #70.
Build
- Exclude buggy pydantic-settings. pydantic/pydantic-settings#605 is present in
version 2.9.0 and 2.9.1 of pydantic-settings. So, these versions must be
excluded.
Ci
- Update release scripts to use OIDC. This is more secure.
Remove
- Unnecessary custom help formatter.
1.0.0.a7
What's New
Bug Fixes
- Make config -> model -> config round trip test pass.
- Remove
thin_byfactor in wrong place. - Pass involvement & diagnosis correctly to risks and prevalences.
Features
- Create Modality config from model.
- Create Graph config from model.
- Create Model config from model.
Note that the three features above come with certain limitations. It is not possible
to export all aspects of a model to a configuration. Especially the distributions
over diagnosis times cannot be converted to a DistributionConfig.
Miscellaneous Tasks
- Fix changelog version link.
- Update ly schema.
Testing
- Round trip config -> model -> config.
1.0.0.a6
What's New
Mostly fixes and tests regarding the correct reproducibility of (midline) models created from a v0 config.
Bug Fixes
- Better handle midline model.
This means disabling the evolution over midline extension. Also, since the new
version oflymph-model, themidext_probparameter is not epected to be the
first one anymore when passed toset_params(). - Pass only ipsilateral diagnosis to unilateral model.
- Pass diagnose & involvement correctly to models as dict.
Testing
- Ensure unilateral model receives correct diagnosis.
- Test that diagnosis is used correctly in posteriors.
Build
- Bump lydata & lymph-model dependency.
1.0.0.a5
What's New
After some more "real-world" testing of the new CLIs and APIs while working on LyProX, some improvements where made and some bugs were fixed.
Bug Fixes
- Provide rich
consoleto compute progress bars. - Correctly build deprecated models.
Features
- Enable sampling only named parameter subset.
Testing
- Check model construction & named params.
- Update integration test config YAML files.
- Add external model symbol check.
- Adding dists works correctly.
Previously, it could happen that in aBilateralorMidlinemodel the
individual submodel's distributions where not synced.
Build
- Bump lymph-model.
Change
- Require every YAML file to have
version. - Better version-related error and docs.
- Make in-/output names more consistent.
Remove
- Drop CLI required argument
version.
1.0.0.a4
What's New
In this pre-release, all CLIs were refactored or rewritten to make heavy use of pydantic models and settings. This allows for both cleaner and pydantic's amazing validation out of the box.
It also allows us to provide configuration YAML files to all commands that may even be split and merged and reused as we wish.
After some testing of the package in this state, we may be able to publish a stable 1.0 release.
Bug Fixes
- Update data loading to new lydata API.
- Add sampling config back to sample CLI.
- Finish
data filtercommand. - Correctly log number of excluded pateints in
lyproxify. - Allow extra args in CLI cmds.
- Logging during progress bar.
Documentation
- Deactivate help of removed commands.
- Link only to stable versions.
- Fix intersphinx links.
- Update link to schedule module.
- Configure how pydantic models are displayed.
- Add more info about schema.
- Better explain sampling.
- Add proper info to
cli_cmd()methods.
Features
- Add mandatory
versionfield to command settings.
This will allow to differentiate between old and new configs and create
the models accordingly. - Add translation of old to new model configs.
- Add dynamic YAML config source.
- Configure logging nicely.
- Update
data enhancecommand. - Update
data joincommand. - Update
data filtercommand. - Update
data splitcommand. - Capture lydata logging output.
- Update YAML schema for CLIs.
- Update
data lyproxifycmd. - Allow sampling only specified params.
Via a new CLI arg namedparam_namesone may restrict the parameters
sampled to a named subset. In combination with the fact that any Python
model may be loaded, this results in an enormously flexible sampler. - Update inv temp
schedulecmd. - Allow providing start state to sampling func.
Testing
- Replace subprocess calls with monkeypatch.
This allows for better debugging during test calls. - Load generated data correctly.
The synthetic data for testing already has "early" and "late" as
T-stages. Thus, the mapping needed to be adapted.
Build
- pydantic-settings >= 2.7 needed.
Change
- Make
versionfield in command settings required. - Use pydantic for subcommands.
- Use loguru over default logging.
- Rename
datafield toinput. - Use pydantic for plot utils, too.
- Use rich logging handler.
Refac
- Slightly change CLI inheritances.
- Sort configs alphabetically.
- Make sampling more reusable.
Remove
- Unused utility functions.
- Plotting scripts except histogram/betaposterp helpers.