Skip to content

The one we've all been waiting for...#1527

Merged
jessicapilling merged 2101 commits into
masterfrom
UnitTests/NeateningAndFormalising
Jun 26, 2026
Merged

The one we've all been waiting for...#1527
jessicapilling merged 2101 commits into
masterfrom
UnitTests/NeateningAndFormalising

Conversation

@DavidT3

@DavidT3 DavidT3 commented Jun 24, 2026

Copy link
Copy Markdown
Owner

Finally, this is the PR that will merge multi-mission features into main branch!

The changes are too many to list in this description, but this PR brings a complete refactoring of XGA designed to implement support for telescopes other than XMM - specifically eROSITA and Chandra support has been added here, but the changes we made make it possible to add support for other telescopes fairly easily.

David Turner and others added 30 commits April 21, 2026 15:45
…ion, the required expmaps are now generated by calling a new 'make all expmaps' function in generate.multitelescope. A 'make all images' function was added at the same time.
… altered the handling of input temperature in black body, specifying that it is a quantity and allowing for one entry per source as well as one overall entry
…the TYPE_CHECKING flag to sourcetools/misc.py to avoid circular import errors from including BaseSource etc. as type hints.
… decorators that can be applied to specific tests so that they only run if the correct backend software are available.
…mport .... statements should still work in the multi-mission-era
Signed-off-by: David Turner <djturner@umbc.edu>
Signed-off-by: David Turner <djturner@umbc.edu>
… module (if a config file changed for instance). Support for rebuilding the census is also added, and should work in parallel, and hopefully faster in general.

Signed-off-by: David Turner <djturner@umbc.edu>
…e-init

* Moved XGA from Configure-on-Import to Configure-on-Use via module-level __getattr__, resolving initialization race conditions with the wider ecosystem (e.g., DAXA).
* Centralized lazy variable management in xga.utils with an exclusion mechanism for internal variables.
* Implemented a high-performance parallel census builder using ProcessPoolExecutor and os.scandir, significantly reducing startup time for large data archives.
* Added xga_reinit() to allow mid-session configuration directory switching and cache purging.
* Added rebuild_census() providing administrative control for full rebuilds and pruning of dead census entries.
* Refactored internal function signatures to break circular dependencies inherent in lazy loading.
Signed-off-by: David Turner <djturner@umbc.edu>
…product-level-imports of LightCurve work, as with other product classes

Signed-off-by: David Turner <djturner@umbc.edu>
… rather than fetching declared sources directly from the init. CAUTION THIS IS LIKELY NOT FUNCTIONING RIGHT QUITE YET.

Signed-off-by: David Turner <djturner@umbc.edu>
…XA because it doesn't support an environment variable based setting of the config directory yet.

Signed-off-by: David Turner <djturner@umbc.edu>
David Turner added 17 commits June 23, 2026 12:31
Signed-off-by: David Turner <djturner@umbc.edu>
Signed-off-by: David Turner <djturner@umbc.edu>
… BaseSource init. This should help with performance.

Signed-off-by: David Turner <djturner@umbc.edu>
… file exists on declaration. This is intended to be used by XGA internally in cases like _existing_xga_products, where we can do a listdir on a whole directory to check that files exist, rather than doing repeated os.path.exists calls, which is much slower.

Signed-off-by: David Turner <djturner@umbc.edu>
Signed-off-by: David Turner <djturner@umbc.edu>
…zation/reloading of XGA source/sample products. The _existing_xga_products method of BaseSource now uses listdir to store the file names of the contents of the current product directory, then compares to that, with product's own path checking behaviours turned off.

Signed-off-by: David Turner <djturner@umbc.edu>
…or faster lookup

Signed-off-by: David Turner <djturner@umbc.edu>
…s, for speeeeed

Signed-off-by: David Turner <djturner@umbc.edu>
…s, for speeeeed (take two)

Signed-off-by: David Turner <djturner@umbc.edu>
…s, for speeeeed (take three)

Signed-off-by: David Turner <djturner@umbc.edu>
…itial_products. Should hopefully make it even faster.

Signed-off-by: David Turner <djturner@umbc.edu>
…h the Image class (or its subclass) are now lazily loaded, which should hopefully speed up loading large samples even more.

Signed-off-by: David Turner <djturner@umbc.edu>
…pectra from AnnularSpectra when their ObsIDs are combined

Signed-off-by: David Turner <djturner@umbc.edu>
…ll a Pandas series

Signed-off-by: David Turner <djturner@umbc.edu>
…existing_xga_products method of BaseSource

Signed-off-by: David Turner <djturner@umbc.edu>
Signed-off-by: David Turner <djturner@umbc.edu>
…corded that I trust.

Signed-off-by: David Turner <djturner@umbc.edu>
@DavidT3 DavidT3 added enhancement New feature or request breaking change This should be released with a new major version e.g. 0.2 to 0.3 multi telescope Directly relating to, or benefiting, multiple telescopes. labels Jun 24, 2026
@jessicapilling jessicapilling self-requested a review June 26, 2026 14:08
@jessicapilling jessicapilling merged commit a74cb5d into master Jun 26, 2026
1 check passed
@jessicapilling jessicapilling deleted the UnitTests/NeateningAndFormalising branch June 26, 2026 14:14
@DavidT3 DavidT3 restored the UnitTests/NeateningAndFormalising branch June 26, 2026 14:16
@DavidT3 DavidT3 deleted the UnitTests/NeateningAndFormalising branch June 26, 2026 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change This should be released with a new major version e.g. 0.2 to 0.3 enhancement New feature or request multi telescope Directly relating to, or benefiting, multiple telescopes.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants