Skip to content

Release 1.1 to main#1114

Draft
mpound wants to merge 62 commits into
mainfrom
release-1.1
Draft

Release 1.1 to main#1114
mpound wants to merge 62 commits into
mainfrom
release-1.1

Conversation

@mpound

@mpound mpound commented May 1, 2026

Copy link
Copy Markdown
Collaborator

how badly have these diverged?

astrofle and others added 30 commits February 19, 2026 12:27
This attribute is updated every time a selection is made
through the iPlotter.
This attribute is updated every time a selection is made
through the iPlotter.
* docs: add gbtidl/dysh examples
* docs: update dysh-to-GBTIDL tables
* bump patch version
perf: PR drive by vectorize INTNUM construction in GBTFITSLoad
Forces the use of the same units as spectral_axis in
the SpectralRegions to avoid unit conversion roundoffs
resulting in the inclusion of extra channels.
…e-using-include-regions

1017 baseline issue using include regions
* Enable example data cache in CI

Also fix bug in cache bootstrapping mechanism (doubt many people were actually seeing this but would break the CI workflow)

* Set git checkout fetch depth to 1

Don't need full history for CI

* Bump various action versions to get rid of deprecation warnings

  Warning: Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as
  expected: actions/cache@v4, actions/checkout@v4, astral-sh/setup-uv@v5. Actions will be forced to run with
  Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available

  that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment
  variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out
  by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see:
  https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

* Clean up Splatalogue test skipping with decorator and local/remote split

Replace ad-hoc try/except blocks (including broken warnings.warn(exception))
with a skip_if_splatalogue_down decorator in conftest.py. Split mixed tests
into local (always run) and remote (skip gracefully on network errors) classes.
Add ConnectionError to notebook test ALLOWED_ERROR_NAMES.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
#1076)

When a Spectrum has DATE-OBS but no MJD-OBS in its metadata, compute
MJD-OBS from the already-parsed _obstime and store it in meta.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add scan_info() and partial-match warnings in calibration methods (#745, #748)

Add scan_info() method to GBTFITSLoad that shows available IFNUM/FDNUM/PLNUM
combinations for given scans. Modify _common_selection() to warn (instead of
silently dropping) when some requested scans have no matching data, displaying
the available parameters for those scans.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* bump for bug fix

* Change exception to valueerror with better message. User logger instead of warnings and change some warnings to info

* add scan_info to GBTOnline

* fix: update test_set_item to use caplog for logger.warning checks

warnings.warn was changed to logger.warning in __setitem__, so the test
needs caplog instead of pytest.warns to capture the log messages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: use caplog for partial-match warning test in TestScanInfo

The _common_selection partial-match message uses logger.info, so the test
needs caplog instead of pytest.warns. Also use a real scan (177, ifnum=7
only) instead of a fake scan number to trigger the partial-match path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* SCANS should be SCAN

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* remove claude

* fix: use logger.warning in sdfitsload.__setitem__ and make test data-independent

- Change sdfitsload.py __setitem__ from warnings.warn to logger.warning
  for consistency with gbtfitsload.py override
- Make test_common_selection_partial_match_warns dynamically discover
  scans with different ifnum sets instead of hardcoding scan numbers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix: revert sdfitsload.py change and fix test_set_item for mixed warn/log

Revert sdfitsload.__setitem__ back to warnings.warn. Fix test_set_item
to use pytest.warns for sdfitsload warnings and caplog for gbtfitsload
logger.warning. The incorrect-length case only triggers logger.warning
(ValueError raised before super().__setitem__), so it needs caplog.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* specify file name as glob.glob return list order is not guaranteed

* add scan_info example

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Downgrade version from 1.1.1 to 1.1.0

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
astrofle and others added 11 commits April 2, 2026 20:06
ScanPlot now supports spectral units below 1 MHz, as well as
wavelengths, energy or velocity.
…lim-does-not-update-the-colorbar-label

Fix issue #1082
The fitsio write path in `_build_chunk_recarray` explicitly skipped the
DATA column when overlaying in-memory mutations, on the false assumption
that DATA is never mutated. Users can assign `sdf["DATA"] = ...`, which
updates the in-memory bintable; the writer now honors those mutations.

Add a regression test parametrized over both the fitsio and astropy
write paths via a monkeypatched HAS_FITSIO.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.15.6 → v0.15.9](astral-sh/ruff-pre-commit@v0.15.6...v0.15.9)

* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.15.9 → v0.15.10](astral-sh/ruff-pre-commit@v0.15.9...v0.15.10)

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Pedro Salas <salas.mz@gmail.com>
Updates the BANDWID value if calibrating a subset of channels.
* Fix issue #1089: clean up LazyFlagArray memmap temp files on exit

LazyFlagArray.to_dense() created memmap-backed temp files with
delete=False but never cleaned them up, filling /tmp over time.
Track temp files and remove them via cleanup(), __del__, and atexit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix Windows CI: release memmap before unlinking temp files

On Windows a file backing an open np.memmap cannot be deleted, so
cleanup() now forces a gc pass to release finalizer-tracked memmaps
and keeps any still-locked paths for a later retry. Tests drop the
dense reference before cleanup to mirror real usage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Warn when tempdir free space is below memmap size

LazyFlagArray.to_dense() now checks shutil.disk_usage on the tempdir
before creating the memmap and logs a warning if free space is less
than the estimated array size, so a silent disk-fill is less likely.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…-not-update-certain-spectrum-metadata

Fix for issue #979
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.15.6 → v0.15.9](astral-sh/ruff-pre-commit@v0.15.6...v0.15.9)

* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.15.9 → v0.15.12](astral-sh/ruff-pre-commit@v0.15.9...v0.15.12)

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Pedro Salas <salas.mz@gmail.com>
Co-authored-by: Marc Pound <22331890+mpound@users.noreply.github.com>
@mpound mpound requested a review from teuben May 4, 2026 21:58
@mpound mpound changed the title Release 1.1 Release 1.1 to main May 5, 2026

@teuben teuben left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great piece of work, but should we hold off for the review to be finished to have this really merged in

@mpound

mpound commented May 5, 2026

Copy link
Copy Markdown
Collaborator Author

Of course. Converting to a draft.

@mpound mpound marked this pull request as draft May 5, 2026 18:39
mpound and others added 14 commits May 14, 2026 08:22
#1109)

The history-logging decorators (@log_call_to_history, @log_call_to_result,
@log_function_call) gated kwargs logging on `"kwargs" in sig.parameters`,
which is only true when the decorated function literally declares **kwargs.
For methods with named parameters like Spectrum.smooth, calls made with
keyword arguments had their kwargs silently discarded from history.

Also, format_dysh_log_record formatted arg/kwarg values with str() instead
of repr(), so string values lost their surrounding quotes.

Always log caller-supplied kwargs and use repr() for values. Drops the now
unused inspect import and signature caches.

Adds src/dysh/tests/test_log.py covering the positional, keyword, and
result-side keyword call forms from the issue.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
* promote hidden kwargs to parameters

* patch failing test for now

* doc update

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix ruff B008 error

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add example usage to baseline. fix doc for exclude_regions=None

* add example usage to baseline. fix doc for exclude_regions=None

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* update test that will fail upon merge

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Fix Splatalogue CI failures (#1062)

- Fix ALLOWED_ERROR_NAMES in notebook tests to use bare class names
  (e.g. "ConnectTimeout") that actually match the ename field nbclient
  checks, rather than fully-qualified names that never matched
- Add mock_splatalogue_query fixture to conftest.py so the splatalogue
  code path can be tested without network access
- Add TestSearchMocked class with 5 tests covering dysh's transformation
  layer: column rename, obs_frequency computation, redshift math,
  intintensity coercion, and column filtering

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix remaining Windows CI notebook failures

- Add NameError to ALLOWED_ERROR_NAMES so cascading failures from
  network-allowed errors (ConnectTimeout etc.) don't fail the test when
  downstream cells reference undefined variables
* Skip notebook execution on Read the Docs builds, but don't change local behavior

* Rebuild all notebooks

export READTHEDOCS=True; ls notebooks/examples/*.ipynb | xargs -P 4 -I{} uv run jupyter nbconvert --to notebook --execute --inplace {}

---------

Co-authored-by: Thomas Chamberlin <tchamber@nrao.edu>
* ensure required columns are present before getting a spec

* add regression test for #1117

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* rename variable to avoid precommit error

* this also closes #1116
* feature: Spectrum.header

prints Spectrum information
If the units were changed while zoomed in, then the
axes limits would not update to the new units, leaving
a potentially blank plot. On top of that, the home button
would preserve the coordinates at the time the toolbar
was initialized. This PR fixes that by setting the axes
limits after every unit change, and by updating the home
button location to one compatible with the plot units.
smooth makes a copy of the mask so the original is not modified.
Fixes plotter zoom issue when changing units
* add weakref.finalize and look for DYSH_SCRATCH to prevent /tmp from filling up

* fix bad typos!

* add tests to ensure $DYSH_SCRATCH, $TMPDIR are obeyed and that weakref.finalize() ensures tmp file cleanupwhen no longer needed. Claude helped with this.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix flaky Windows test for to_dense() temp file cleanup via weakref.finalize

The assertion that the temp file is gone right after del+gc.collect() was
racing the OS on Windows, where the memmap's file handle isn't guaranteed
to release synchronously. Poll briefly instead of asserting immediately.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* skip Windows-flaky finalize cleanup test instead of retry-looping

The retry loop didn't reliably converge on Windows CI; skip the test
there instead since the underlying weakref.finalize behavior is already
covered by test_to_dense_memmap_cleanup and test_del_cleans_up_tempfiles.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* update note about scratch dir environment variables

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…ng-changes-the-input-spectrum

Fix for issue #1067
BUILDDIR is nested inside SOURCEDIR for the docs build, and myst-nb
was re-discovering and re-executing notebooks left in a previous
_build output, causing nested _build/jupyter_execute/_build/... trees
to grow on every incremental `make html` run. Excluding _build (and
.ipynb_checkpoints) stops Sphinx from treating prior build output as
source.

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants