CHANGELOG#
v1.1.0 (2026-03-20)#
Bug fixes#
fix: dev environment fix (
b8ef202)
Code style#
Continuous integration#
ci: fix pyproject sem-rel cfg syntax, pt.2 (
eee9bc3)ci: fix pyproject sem-rel cfg syntax (
6400759)ci: debug sem-rel not matching branch with wildcard option (
3175bb2)ci: pyproject syntax fix (
34a055d)ci: release fails if a version number could not be determined (
a38bbfc)ci: make sure release job checks out a branch name instead of commit (
c0f147a)ci: publish shall run on main branch only (
4e66a9a)ci: run release job on branches != main only (
a8a36ee)ci: typo (
a6f7e7f)ci: pypi environment restricts publishing packages from main branch only (
cac2da8)ci: allow semantic-release to create a new version if every branch (
93575f6)ci: run release job on PRs, new commit for version num should be merged to main eventually (
c645a48)PyPI: move from test.pypi.org to pypi.org (
8028424)GH Action: install dependencies from pyproject.toml (
b023a96)GH Action: allow other branches than main to be tested (
cc1133b)
Documentation#
Enh#
Performance improvements#
perf: move tests outside package to make it leaner (
e85f1fa)
Refactoring#
Project: update project config with copier, replaces cookiecutter (
17a973c)
Unknown Scope#
Last sample endpoint (
1384666)added a dry-run option. (
6ca935d)reprioritized the remaining upgrades (
b211659)added U3: profiles/templates backend with MOUSE/SAXSess examples (
b6774da)added U2 (source patch endpoint) and U5 (better run summaries) (
30be686)added quick start documentation on the web API (
b5e7659)added end-to-end FastAPI tests (
39c57de)web api buildout with better partial graph refresh (
2d1e023)basic web functionality wired up (
dc32c6a)added draft server and API using FastAPI (
9c0a821)option to store the entire processingdata in the output hdf5 file (
053534b)adding traceability to the output HDF5 files (
45a69d2)CLI and ipython entry point, and added to the documentation. (
c20b7f4)minifixes (
d98aac3)tried to reduce code size by removing unnecessary casts (
7002226)Chore: switch off matplotlib setup by pint (
730157e)Chore: matplotlib is not a dependency (
aa3fb35)adding averaging statistics (SEM and STD) to indexed_averager for Q and Psi (
2c31853)improving display of mermaid graphs with optional short_title descriptor (
5d27dae)fixing CI-CD error and modifying .gitignore (
d0b7e0f)adding mermaid functionatlity to docs (
551e746)updating badge targets (
1a94b67)re-adding autosummary (
575feb0)thoroughly reworked documentation generation (
3a6bb67)update generate_module_doc and tests to adapt to new arguments processstepdoc (
b41e076)update combine_uncertainties to new arguments documentation (
9b02521)generate module doc not in the right branch. (
6662da1)draft merge-uncertainties modules for combining BaseData uncertainties (
f3c4c12)drafting a tiled IoSource (
cde0357)removed duplicate functionality and cleaned up processstepdescriber usage, arguments dictionary is now more comprehensive (
8ea3585)documentation syntax updates (
f093b6c)draft merge-uncertainties modules for combining BaseData uncertainties (
926b263)drafting a tiled IoSource (
04443b6)removing standard header from md files, and adding a module documentation generation script. (
a75e7f5)change rst to markdown (
8300563)early documentation structure draft (
8fb5ad3)adding processing_data normallizer and applying it in the correction modules (
9e6e99b)adding module template for documentation (
935152b)applying parameter schema to all modules (
8850997)adding argument_specs schema, better default_configuration, and fixes to validate_required_keys (
dace233)simple bitwise or mask to allow adding multiple masks into the main mask (following NeXus uint32 convention) (
04fd3d6)test for processing data sinks (
167d6aa)adjust pipeline run tests to include iosinks (
b3908d3)append-sink tests (
1fbd2fa)updated processstep tests (iosinks support) (
6955e66)append-processing-step tests (
9745688)modifying pipeline to automatically add sinks to process steps (
dc75d1b)adding a sink-processing-data process step (like append-processing-data) (
b73ca41)adding an append-sink process step (like append-source) (
ff16afd)adding helper methods for destination resource string processing for io_sinks (
798adc7)making io_sinks and io_sources optional input arguments in process_step (
5a1ea10)a small CSV file sink (
e4f4574)reorganizing to match project style (
a0c88f8)Introducing IO Sinks (
b530c50)cleanup of commented-out text (
0138863)removing unused uncertainties requirement (
335700f)cleanup of unused methods (
fd3d38b)adding an explainer on the instrument modules (
67e3970)calculating X-ray scattering geometry from pixel and sample coordinates. (
28a6ae5)fixing pixel coordinate calculation with multi-frame inputs (
ab21e51)cleanup (
a6e3710)rethinking the pixel coordinates calculator (
7dfb3c0)reorganisation of modules, and start on a split geometry calculator (pixel coordinates, derived matrices calculator(q, psi, etc.)) (
7c78c1e)added a to_base_units to BaseData and some more small changes (
61c38c8)fix trig units (
652010b)fix rank of data of twotheta output (
d830183)ensure units are dimensionless before certain unary operations (log and trigionometric operations) (
04e73e4)redefine pint units of pixel and px to dimensionless detector pixels (
2aa32db)Add summary for MoDaCor library in README (
e48565d)Allowing units label update (e.g. for setting scaling factor units) (
4221bdf)fixing unit of Omega (solid angle) (
bd6f990)fixing unit naming to make it clearer (
62e542f)fixing uncertainties handling with multiple keys (
a47fe45)correcting logger name (
10a0e92)adding calculation time per processing step (
cbe599e)adding internal docs and removing unused code (
1d60dc2)small improvements (
4b735d8)small improvements (
a704ff0)Integration tests for the tracing information (
e5d5d06)Introducing tracing to make troubleshooting easier. Allows tracking of changes to datasets, units, uncertainties through a processing pipeline (
8730984)small refactor for readability in find_scale_factor_1d (
d196636)adding multiply to init (
16349e0)tiny module for multiplying data with a scale factor (
e8e9720)adding a scale factor finder (
9b366aa)small bugfix (
f41a4f8)using attrs in all iosources (
0468798)renaming Loader to Source (
7fbca17)added a csv source (
51c2815)tests for updated xs_geometry (
e53d5ee)bugfix in the geometry calculation - shift half a pixel (
aec2976)bugfix in xs_geometry (
2a0a3a0)fix for geometry bug (
cb5ac1a)added modules for loading (extra or all) io_sources and process_data from configuration (
71074af)adding a solid_angle_correction which is really just a divide by a BaseData in a specific databundle.. consider abstracting if we need similar divisions (
ff812d0)adding new modules to the init.py registry (
19ab2cb)filename change and update on required_arguments (
af8c46c)filename change and update on required_arguments (
6b1f0e0)added an indexed averager as the second step in the azimuthal/radial averager. Also improved nomenclature of process_step_describer works_on -> modifies (
1f46888)added a pixel indexer as the first in a two-step azimuthal/radial averager (
6499a5f)added the required_arguments documentation to xs_geometry (
700b558)now with MessageHandler messages (
d56d32b)forgot tests (
1ed3568)combining two methods for conciseness (
1c57f16)correcting data dimensions to […, y, x] (
fcc8ae2)simplifying xs_geometry (
f4d7a67)added an indexer for basedata and associated test (
d8a8c66)updated MessageHandler with use and test in reduce_dimensionality process step (
e75a65a)fix for non-multiplicative units handling - now raises error (
23210ab)simplifying _VarianceDict (
dc721fd)validation of the ‘axes’ metadata shape in BaseData (
acdf1aa)improving BaseData repr (
06aca7b)adding a copy method to BaseData (
2dda60a)improving process_step_registry (
abbac45)fixing units case of 1d data (
e3726ac)updating reduce_dimensionality to also maintain all basedata information (
db4092f)fixing basedata to maintain auxiliary properties in math operations (
3f6c7de)small fixes to the XS Geometry class (
9b21584)adding calculators for X-ray scattering geometry, which add Q, Q0, Q1, Q2, Theta (scattering angle), Psi (azimuthal angle) and Omega (solid angle) (
d98b7f8)adding _prepared_data to ProcessStep that does not get reset after run completion (
b24e967)removed auto-uncertainties requirement (
8694f73)updated edit dates (
5a3b13b)added to the pipeline the option of round-tripping yaml -> spec -> visual web editor (e.g. React) -> spec -> yaml (
fa0a8f5)adding support for dot/graphviz and mermaid (markdown) flowchart output of the pipeline (
5e96306)making administrative updates to ensure all files have the correct headers (
d548a06)adding a process step registry with tests (
86c2683)Sorting pipeline by ID (to avoid overwriting identical keys), allowing step_id to be string or int, and adding tests. (
95dd12c)adding some internal tests (
9daae76)small fixes to pipeline (
da24b7d)Generic fixes to pipeline (
d82bada)expanded test for divide. working on pipeline now (
a239c39)add pipeline integration test (
c4fb93f)fix pipeline test: using the correct keyword (
091c273)fix pipeline test - config keys actually checked now (
b9c5240)pipeline: import MoDaCor module by its name in the config (
8ed5a9c)renaming to improve usability (
453a15a)added test cases for the basic math operations (
03a6fa1)reduce_dim_weighted can average or sum, weighted (default) or unweighted (
0b713a0)added a weighted averaging operation for reducing dimensionality (
151093d)cleanup of maths (
174004c)added maths to basedata. might split sections off later for manageability. (
d3c1cd1)extended test for poisson_uncertainties (
9b66591)add test for processstep call (
4e69144)added a call method to ProcessStep that refers to .execute() (
bc276ca)add configuration to ProcessSteps (in Yaml loader) (
0739750)change call signature of pipeline: graph as first argument (
5fe8245)added auto_uncertainties to the base packages, a fast uncertainties propagator with units (
c509713)subtract_databundles can be used for background subtraction (
3be9ed5)added basic operations between DataBundles and IoSource elements (
f5a4ae4)remove unused imports (
899e31f)tests match modifications to modify_config_* methods (
8ffd470)process_step now adds default keys to self.configuration, and has more specific modify_config* methods (
11fa741)helper added to construct basedata from iosources location keys (
e5c29c2)modify_config now takes a dict or kwargs (
e5a9745)adding the ability to extract an attribute value using get_static_metadata (
26b4e8f)adding basic operations - WIP (
48bfc17)cleaning duplicate (
ff4e399)using repr instead for more convenient operation (
21540aa)adding more helpful str representation in ProcessingData (
b73f53c)cleanup of IoRegistry (
a07a18b)minifix (
b2e61ff)fixed HDFLoader tests (
2c27407)automatic preload to make the IoSources more useful off the bat (
782047a)fix source_reference setting in IoSource instances (
1a0b0d8)removed outdated ‘index’ from iosources, done through slicing as far as I remember (
81676c4)addressed tests (
b39932b)work with source’s reference if needed (
f4bec11)fix header (
a1e39f2)filling out the HDFLoader and YAMLLoader methods to match IoSource (
09206a5)better naming: resouce_location (
17b52fd)unifying names between iosources: YAMLLoader (
d7d6752)unifying names between iosources: HDFLoader (
057589a)unifying names between iosources: YAMLLoader (
3193454)added all to YAMLLoader (
5e34526)final changes to YAMLLoader (
537f311)updating BaseData tests to deal with the simplified BaseData (
59a4b65)cleaning up BaseData (
798dc84)simplifying BaseData, uncertainty handling should be done in processing steps (
d9eab76)slight cleanup of now-simplified BaseData (
97b38ec)slight cleanup of now-simplified BaseData (
17d3bd6)define an arbitrary intensity unit (
019a7e4)Simplifying BaseData to make it workable (
1eebce4)small fix (
787df35)added a convenience method to BaseData (
65deec6)updated basedata tests (
6096c85)updated poisson uncertainty module tests. (
d6aa36b)fixing tests (
7702fbe)adjusted BaseData to match the discussed requirements (
79b91f8)applying the modifications, but in the wrong branch. will redo. (
34a88ed)there is a practical use for the to_units method (
f6bc7d9)
v1.0.0 (2025-06-16)#
Unknown Scope#
updated classes diagram (
5d3daa7)extending IoSources to match IoSource for getting data attributes, shape and dtype (
7f992ef)updated iosource header (
c179688)updated iosource with results from 20250613 discussion (
2dccf03)header update (
38b8b14)header update (
f2a5596)header update (
c46fe7b)renaming to match hdf_loader naming (
2afcad7)static_data IoSource now loads defaults from yaml with path-like interface and tests (
99b837f)slowly figuring out how to realise operations (
81c2daf)making variances behave even more like a dict (
0b8f18f)better poisson uncertainties test (
885b6db)fixed poisson_uncertainties test (
db0523c)updated basedata _VarianceDict class to make item assignment behave as expected (
ecc26fb)updated basedata _VarianceDict class to make item assignment behave as expected (
c1f5fda)fixed flake8 error (
eef3aac)fix pytest warning: rename TestProcessingStep -> TESTProcessingStep (
b19e701)adding to basedata test (
32b66ed)fixing stuff for tests (
33185d3)to_units should be a processing module for clear separation of functionality (
164579d)updated docstring and minor fixes (
808cd57)making uncertainties (std) and variances available (
f6ce279)added to_units converter to BaseData (
694c0b5)BaseData adjustment for ease-of-use and generality (
e0276a7)adapt PoissonUncertainties unit test to use processing data (
bf20968)modification of the poisson uncertainties module for pipeline use (
ee3e940)pipeline with PoissonUncertainties step is now running (
663fee6)adjust names of bundles and BaseData keys to contain “signal” (
ff9a21a)begin adapting the calculate function (
cc5f122)update pipeline integration test to use new ProcessStep (
aec63ce)update to new BaseData unit handling (
ebdceeb)use modacor’s unit registry (
5fe0eda)arithmetic: data is divided by normalization (
98f9389)BaseData no longer has a .data property (
5a53260)remove test of display_data property: display_units not defined (
19d0a66)basedata: use simplified call signature (
619368a)import uncertainties.unumpy for variance calculation tests (
7a55d68)adapt PoissonUncertainties unit test to use processing data (
86c719b)modification of the poisson uncertainties module for pipeline use (
ce86eae)pipeline with PoissonUncertainties step is now running (
594315b)adjust names of bundles and BaseData keys to contain “signal” (
e8c342f)add license text to license.py (
fdd7ddf)add to last commit (
648cb25)adding a central license to shorten headers (
2f88d39)add license text to license.py (
0f5cfb9)renaming for clarity (
da2bf41)small improvement to .gitignore (
769a67d)example static metadata IoSource (
555cc83)consistency between loaded data values and arrays, enforcing metadata (
2655daf)add to last commit (
441068d)adding a central license to shorten headers (
939516c)begin adapting the calculate function (
7cf56a1)update pipeline integration test to use new ProcessStep (
61724fd)update to new BaseData unit handling (
06f8763)use modacor’s unit registry (
540ce4a)Delete src/modacor/modules/base_modules/poisson_uncertainty.py (
09def97)add note to self: need ProcessStep registry to populate pipeline (
b8ba70b)Updating the ProcessStep definition (#34) (
605c3f6)test and draft config format for pipeline import from yaml (
4a40871)initial yaml loader for pipelines (
a12d58e)add hash function to make test run (already in draft PR #33) (
4e03a00)add pyyaml to requirements for yaml definition of pipelines (
0f76ece)changing unit handling to central pint unit registry (
ee3f2f5)minor polishing (
e9f9083)adding a multiply by variable processing step (
fa04cd7)provide azimuthal variance (
93d0dae)import central unit registry (
cfdd867)fix PoissonUncertainties module: needs to return outputs (
4e4eeea)change internal_units to signal_units and removing ingest and display units (
adfa551)use smaller array for testing (
2b57000)implement the test, still broken (
2b787b7)test runs until PoissonUncertainties are actually calculated (
7c91102)First uncertainties commit, test is broken (
29bec04)Starting on Poisson Testing (
04eaa24)prepare test running PoissonUncertainties module in a pipeline (
537ccdf)adapt: DataBundle no longer has a data attribute (
7a33677)first integration test: run pipeline with dummy processsteps (
58e1c5d)add hash function to ProcessStep (
15125a9)remove DataBundle from the arguments for running the pipeline (
def0dba)fixing error (
986f10b)fixing file reference in documentation (
5d337fd)polish import_tester (
683a0f8)removing unused fields (
4b12b8f)make an integrated dataset behave like a normal one (
49e8412)Tidy up (
312cb82)HDF Loader Tests Now Passing (
d17e05d)fix a bunch of tests (
503d1e0)adding a new poisson uncertainties estimator (
22c2233)flake8 config file (
2d34c5d)Delete src/modacor/dataclasses/pipelinedata.py (
5045ae9)renaming pipelinedata to processingdata (
be76a32)feed-back of flake8 (
07cdc34)Allow longer lines (
5b74de3)Updated formatting with black, flake8 and isort (
c89718b)Removing an outdated module (
cbd7f87)configuration for flake8 (
dc45d13)increase line length (
d56fc36)add init.py in runner submodule (
d995aff)modify branch addition methods to operate on another Pipeline (
3dcdce7)use the same syntax for incoming and outgoing branch addition (
ee8ada7)cleanup of databundle and adding pipelinedata (
2015907)adding a header and cleanung up datbundle. (
7c4e7e3)add separate methods for adding in- and outgoing branches (
a635247)renaming raw_data to signal in BaseData (
2f6429f)fix importing BaseData (
a104dce)fix reference to self (
06c2173)HDF Testing (
d874571)HDF IO Test Commit (
920b02f)work on integration (
125dacd)prepare running the pipeline - not yet tested (
f544fea)Update pyproject.toml (
7f8d1c7)add functionality for branching the pipeline, with simple tests (
e8093f8)Update pyproject.toml (
acf17b9)Update pyproject.toml (
70eed8a)updating the pre-commit config (
6e247b4)updated BaseData (
72912e7)Attempt to fix tox.ini (
9a25376)Removed unused imports (
c5bf606)modifications to basedata and databundle (
a50204c)updating databundle (
f56265a)Updating package metadata (
eb4b8c8)test addition of a simple hashable object (
e9bdcbf)initial pipeline draft based on graphlibs TopologicalSorter (
7c5cfc5)Added tests for io sub-package (
e0f3218)Modified HDF Loader (
1fa7fd0)Start of HDF5 Loader (
3397b14)clean-up (
5435da4)put back scalers are normalization factor (
8ad59ff)Error Propagation (
9e17100)Error Propagation (
6f2854c)Error Propagation (
d0b87f2)WIP on azimuthal integration (
ca15a97)Requirements Changes (
d7041d5)Adding units to normalization (
1ef17ef)Updates to init files (
663ede2)Error Propagation (
d0a040b)Updated requirements (
1c2b91c)Missed comma (
09fecf1)Updates to the logger (
f09b5df)Added file headers to io and updated definitions (
fa7996b)Fixing linting (
6bd4918)fix renaming of ProcessStep (
0de2352)fix relative import error (
6fa77f4)dynamic requirements.txt (
90b233b)Populated io (
4faa1db)fix imports (
886002c)fix scatteringdata duplicate and databundle import (
0a02cbd)Tox modifications (
b8ee1aa)Modified imports (
7993f93)One step further (
c9e0fd0)Modifed ProcessStep (
22d05d1)fix import all modules (
5561826)fix all relative imports in tests (
675e504)move test into project … (
ad171a4)Changes for tox (
142582e)databundle (
1d18bca)typos (
fb85395)License modification (
5d331e4)Small updates (
d176c49)migrate dask array to numpy (
62fd3b2)ScatteringData to DataBundle (
108e8a4)implement base dataclass (
8049030)implement normalization and variances in dict (
f41c0ab)Updated processstep naming and content (
7ae6ca7)adding the flow charts (
e07cb55)modified to use the actual datapoint in basedata now. (
d9bd951)Getting towards a working concept (
0772d80)something like this (
dfd97bf)Getting towards a proof-of-principle (
2a77207)more experimentation to explore delayed execution (
5f365a1)Making changes to classes based on experimentation… (
1710f40)Added some flow diagrams to help clarify… (
b17ff22)Update README.rst (
1e658e2)Changed name of note to step_note (
accd141)fixed tests and validator. (
4b768e6)Changed naming slightly, and added a message handler placeholder (
0880270)changes broke tests (
e81e369)test implementation of basedata and processstep dataclasses (
eb6dcc4)
v0.0.0 (2025-02-13)#
Unknown Scope#
Initial commit (
4753f2a)