Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-asdf-astropy for
openSUSE:Factory checked in at 2026-04-17 21:05:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-asdf-astropy (Old)
and /work/SRC/openSUSE:Factory/.python-asdf-astropy.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-asdf-astropy"
Fri Apr 17 21:05:24 2026 rev:19 rq:1347772 version:0.11.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-asdf-astropy/python-asdf-astropy.changes
2026-03-19 17:41:27.419951604 +0100
+++
/work/SRC/openSUSE:Factory/.python-asdf-astropy.new.11940/python-asdf-astropy.changes
2026-04-17 21:05:40.821340536 +0200
@@ -1,0 +2,8 @@
+Fri Apr 17 17:23:08 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.11.0:
+ * Add support for astropy.wcs.wcsapi.HighLevelWCSWrapper.
+ * Update version checks for transform schema compatibility to
+ use package versions instead of manifests
+
+-------------------------------------------------------------------
Old:
----
asdf_astropy-0.10.0.tar.gz
New:
----
asdf_astropy-0.11.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-asdf-astropy.spec ++++++
--- /var/tmp/diff_new_pack.uas24e/_old 2026-04-17 21:05:41.905385154 +0200
+++ /var/tmp/diff_new_pack.uas24e/_new 2026-04-17 21:05:41.905385154 +0200
@@ -27,7 +27,7 @@
%{?sle15_python_module_pythons}
Name: python-asdf-astropy%{psuffix}
-Version: 0.10.0
+Version: 0.11.0
Release: 0
Summary: ASDF serialization support for astropy
License: BSD-3-Clause
@@ -36,25 +36,26 @@
BuildRequires: %{python_module base >= 3.11}
BuildRequires: %{python_module packaging >= 19}
BuildRequires: %{python_module pip}
-BuildRequires: %{python_module setuptools >= 60}
+BuildRequires: %{python_module setuptools > 77}
BuildRequires: %{python_module setuptools_scm >= 3.4}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-asdf >= 2.15.0
+Requires: python-asdf >= 3.3.0
Requires: python-asdf-coordinates-schemas >= 0.4
Requires: python-asdf-standard >= 1.1.0
Requires: python-asdf-transform-schemas >= 0.6
-Requires: python-astropy >= 5.2
-Requires: python-numpy >= 1.25
+Requires: python-astropy >= 6.0
+Requires: python-numpy >= 1.26.4
Requires: python-packaging >= 19
%if %{with test}
BuildRequires: %{python_module asdf-astropy = %{version}}
+BuildRequires: %{python_module gwcs >= 0.22}
BuildRequires: %{python_module pytest-asdf-plugin}
BuildRequires: %{python_module pytest-astropy}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest}
-BuildRequires: %{python_module scipy}
+BuildRequires: %{python_module scipy >= 1.14.1}
%endif
BuildArch: noarch
%python_subpackages
@@ -88,6 +89,8 @@
%if !%{with test}
%files %{python_files}
+%license LICENSE.rst
+%doc CHANGES.rst README.rst
%{python_sitelib}/asdf_astropy
%{python_sitelib}/asdf_astropy-%{version}.dist-info
%endif
++++++ asdf_astropy-0.10.0.tar.gz -> asdf_astropy-0.11.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/asdf_astropy-0.10.0/CHANGES.rst
new/asdf_astropy-0.11.0/CHANGES.rst
--- old/asdf_astropy-0.10.0/CHANGES.rst 2026-02-13 19:05:09.000000000 +0100
+++ new/asdf_astropy-0.11.0/CHANGES.rst 2026-03-27 17:50:53.000000000 +0100
@@ -1,3 +1,14 @@
+0.11.0 (2026-03-27)
+-------------------
+
+- Add support for ``astropy.wcs.wcsapi.HighLevelWCSWrapper``. [#296]
+
+0.10.1 (2026-03-20)
+-------------------
+
+- Update version checks for transform schema compatibility to use package
+ versions instead of manifests [#317]
+
0.10.0 (2026-02-13)
-------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/asdf_astropy-0.10.0/PKG-INFO
new/asdf_astropy-0.11.0/PKG-INFO
--- old/asdf_astropy-0.10.0/PKG-INFO 2026-02-13 19:05:17.938753800 +0100
+++ new/asdf_astropy-0.11.0/PKG-INFO 2026-03-27 17:51:05.114689000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: asdf-astropy
-Version: 0.10.0
+Version: 0.11.0
Summary: ASDF serialization support for astropy
Author-email: The Astropy Developers <[email protected]>
Project-URL: documentation, https://asdf-astropy.readthedocs.io/en/latest/
@@ -16,7 +16,7 @@
Requires-Dist: asdf-coordinates-schemas>=0.4
Requires-Dist: asdf-transform-schemas>=0.6
Requires-Dist: asdf-standard>=1.1.0
-Requires-Dist: astropy>=5.3.0
+Requires-Dist: astropy>=6.0
Requires-Dist: numpy>=1.26.4
Requires-Dist: packaging>=19
Provides-Extra: docs
@@ -30,10 +30,11 @@
Requires-Dist: tomli; extra == "docs"
Provides-Extra: test
Requires-Dist: coverage; extra == "test"
+Requires-Dist: gwcs>=0.22; extra == "test"
Requires-Dist: pytest-astropy; extra == "test"
Requires-Dist: pytest-asdf-plugin; extra == "test"
Requires-Dist: pytest; extra == "test"
-Requires-Dist: scipy; extra == "test"
+Requires-Dist: scipy>=1.14.1; extra == "test"
Dynamic: license-file
ASDF serialization support for astropy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/asdf_astropy-0.10.0/asdf_astropy/_version.py
new/asdf_astropy-0.11.0/asdf_astropy/_version.py
--- old/asdf_astropy-0.10.0/asdf_astropy/_version.py 2026-02-13
19:05:17.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy/_version.py 2026-03-27
17:51:05.000000000 +0100
@@ -1,5 +1,6 @@
-# file generated by setuptools-scm
+# file generated by vcs-versioning
# don't change, don't track in version control
+from __future__ import annotations
__all__ = [
"__version__",
@@ -10,25 +11,14 @@
"commit_id",
]
-TYPE_CHECKING = False
-if TYPE_CHECKING:
- from typing import Tuple
- from typing import Union
-
- VERSION_TUPLE = Tuple[Union[int, str], ...]
- COMMIT_ID = Union[str, None]
-else:
- VERSION_TUPLE = object
- COMMIT_ID = object
-
version: str
__version__: str
-__version_tuple__: VERSION_TUPLE
-version_tuple: VERSION_TUPLE
-commit_id: COMMIT_ID
-__commit_id__: COMMIT_ID
+__version_tuple__: tuple[int | str, ...]
+version_tuple: tuple[int | str, ...]
+commit_id: str | None
+__commit_id__: str | None
-__version__ = version = '0.10.0'
-__version_tuple__ = version_tuple = (0, 10, 0)
+__version__ = version = '0.11.0'
+__version_tuple__ = version_tuple = (0, 11, 0)
-__commit_id__ = commit_id = 'g00045d9e2'
+__commit_id__ = commit_id = 'g154571ed9'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/asdf_astropy-0.10.0/asdf_astropy/converters/wcs/highlevelwrapper.py
new/asdf_astropy-0.11.0/asdf_astropy/converters/wcs/highlevelwrapper.py
--- old/asdf_astropy-0.10.0/asdf_astropy/converters/wcs/highlevelwrapper.py
1970-01-01 01:00:00.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy/converters/wcs/highlevelwrapper.py
2026-03-27 17:50:53.000000000 +0100
@@ -0,0 +1,14 @@
+from asdf.extension import Converter
+
+
+class HighLevelWCSWrapperConverter(Converter):
+ tags = ("tag:astropy.org:astropy/wcs/highlevelwcswrapper-*",)
+ types = ("astropy.wcs.wcsapi.high_level_wcs_wrapper.HighLevelWCSWrapper",)
+
+ def from_yaml_tree(self, node, tag, ctx):
+ from astropy.wcs.wcsapi import HighLevelWCSWrapper
+
+ return HighLevelWCSWrapper(node["wcs"])
+
+ def to_yaml_tree(self, hlwcs, tag, ctx):
+ return {"wcs": hlwcs.low_level_wcs}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/asdf_astropy-0.10.0/asdf_astropy/converters/wcs/tests/conftest.py
new/asdf_astropy-0.11.0/asdf_astropy/converters/wcs/tests/conftest.py
--- old/asdf_astropy-0.10.0/asdf_astropy/converters/wcs/tests/conftest.py
1970-01-01 01:00:00.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy/converters/wcs/tests/conftest.py
2026-03-27 17:50:53.000000000 +0100
@@ -0,0 +1,32 @@
+import pytest
+from astropy.wcs import WCS
+
+
[email protected]
+def gwcs_4d_identity_units():
+ pytest.importorskip("gwcs")
+ from gwcs.examples import gwcs_4d_identity_units
+
+ return gwcs_4d_identity_units()
+
+
[email protected]
+def astropy_wcs_4d():
+ wcs = WCS(naxis=4)
+ wcs.wcs.ctype = "RA---CAR", "DEC--CAR", "FREQ", "TIME"
+ wcs.wcs.cunit = "deg", "deg", "Hz", "s"
+ wcs.wcs.cdelt = -2.0, 2.0, 3.0e9, 1
+ wcs.wcs.crval = 4.0, 0.0, 4.0e9, 3
+ wcs.wcs.crpix = 6.0, 7.0, 11.0, 11.0
+ wcs.wcs.cname = "Right Ascension", "Declination", "Frequency", "Time"
+ return wcs
+
+
[email protected](
+ params=[
+ "gwcs_4d_identity_units",
+ "astropy_wcs_4d",
+ ],
+)
+def all_4d_wcses(request):
+ return request.getfixturevalue(request.param)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/asdf_astropy-0.10.0/asdf_astropy/converters/wcs/tests/test_highlevelwcswrapper.py
new/asdf_astropy-0.11.0/asdf_astropy/converters/wcs/tests/test_highlevelwcswrapper.py
---
old/asdf_astropy-0.10.0/asdf_astropy/converters/wcs/tests/test_highlevelwcswrapper.py
1970-01-01 01:00:00.000000000 +0100
+++
new/asdf_astropy-0.11.0/asdf_astropy/converters/wcs/tests/test_highlevelwcswrapper.py
2026-03-27 17:50:53.000000000 +0100
@@ -0,0 +1,58 @@
+import asdf
+import pytest
+from astropy.wcs import WCS
+from astropy.wcs.wcsapi import HighLevelWCSWrapper
+from astropy.wcs.wcsapi.wrappers.sliced_wcs import SlicedLowLevelWCS
+
+from asdf_astropy.testing.helpers import assert_gwcs_equal, assert_wcs_equal
+
+try:
+ import gwcs
+except ImportError:
+ gwcs = None
+
+
[email protected]
+def sliced_astropy_wcs_4d(astropy_wcs_4d):
+ return SlicedLowLevelWCS(astropy_wcs_4d, 1)
+
+
[email protected]
+def hl_wcs(request):
+ return HighLevelWCSWrapper(request.getfixturevalue(request.param))
+
+
[email protected](
+ "hl_wcs",
+ [
+ "gwcs_4d_identity_units",
+ "astropy_wcs_4d",
+ "sliced_astropy_wcs_4d",
+ ],
+ indirect=True,
+)
+def test_hllwcs_serialization(hl_wcs, tmp_path):
+ file_path = tmp_path / "test_highlevelwcswrapper.asdf"
+ with asdf.AsdfFile() as af:
+ af["hl_wcs"] = hl_wcs
+ af.write_to(file_path, version="1.6.0")
+
+ ll_wcs = hl_wcs.low_level_wcs
+ with asdf.open(file_path) as af:
+ loaded_hl_wcs = af["hl_wcs"]
+ loaded_ll_wcs = loaded_hl_wcs._low_level_wcs
+
+ # Unwrap the SlicedLowLevelWCS
+ if isinstance(loaded_ll_wcs, SlicedLowLevelWCS):
+ assert isinstance(ll_wcs, SlicedLowLevelWCS)
+ assert loaded_ll_wcs._slices_array == ll_wcs._slices_array
+ loaded_ll_wcs = loaded_ll_wcs._wcs
+ ll_wcs = ll_wcs._wcs
+
+ if isinstance(loaded_ll_wcs, WCS):
+ assert_wcs_equal(ll_wcs, loaded_ll_wcs)
+ elif gwcs and isinstance(loaded_ll_wcs, gwcs.WCS):
+ assert_gwcs_equal(loaded_ll_wcs, ll_wcs)
+ else:
+ msg = f"Loaded an unexpected type: {type(loaded_ll_wcs)}"
+ raise TypeError(msg)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/asdf_astropy-0.10.0/asdf_astropy/converters/wcs/tests/test_slicedwcs.py
new/asdf_astropy-0.11.0/asdf_astropy/converters/wcs/tests/test_slicedwcs.py
--- old/asdf_astropy-0.10.0/asdf_astropy/converters/wcs/tests/test_slicedwcs.py
2026-02-13 19:05:09.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy/converters/wcs/tests/test_slicedwcs.py
2026-03-27 17:50:53.000000000 +0100
@@ -1,30 +1,24 @@
import asdf
import numpy as np
import pytest
-from astropy.wcs import WCS
from astropy.wcs.wcsapi.wrappers.sliced_wcs import SlicedLowLevelWCS
from asdf_astropy.testing.helpers import assert_wcs_equal
-def create_wcs():
- wcs = WCS(naxis=4)
- wcs.wcs.ctype = "RA---CAR", "DEC--CAR", "FREQ", "TIME"
- wcs.wcs.cunit = "deg", "deg", "Hz", "s"
- wcs.wcs.cdelt = -2.0, 2.0, 3.0e9, 1
- wcs.wcs.crval = 4.0, 0.0, 4.0e9, 3
- wcs.wcs.crpix = 6.0, 7.0, 11.0, 11.0
- wcs.wcs.cname = "Right Ascension", "Declination", "Frequency", "Time"
[email protected](
+ params=[
+ lambda wcs: SlicedLowLevelWCS(wcs, 1),
+ lambda wcs: SlicedLowLevelWCS(wcs, [slice(None), slice(None),
slice(None), 10]),
+ lambda wcs: SlicedLowLevelWCS(SlicedLowLevelWCS(wcs, slice(None)),
[slice(3), slice(None), slice(None), 10]),
+ lambda wcs: SlicedLowLevelWCS(wcs, [Ellipsis, slice(5, 10)]),
+ lambda wcs: SlicedLowLevelWCS(wcs, np.s_[:, 2, 3, :]),
+ ],
+)
+def sl_wcs(astropy_wcs_4d, request):
+ return request.param(astropy_wcs_4d)
- wcs0 = SlicedLowLevelWCS(wcs, 1)
- wcs1 = SlicedLowLevelWCS(wcs, [slice(None), slice(None), slice(None), 10])
- wcs3 = SlicedLowLevelWCS(SlicedLowLevelWCS(wcs, slice(None)), [slice(3),
slice(None), slice(None), 10])
- wcs_ellipsis = SlicedLowLevelWCS(wcs, [Ellipsis, slice(5, 10)])
- wcs2 = SlicedLowLevelWCS(wcs, np.s_[:, 2, 3, :])
- return [wcs0, wcs1, wcs2, wcs_ellipsis, wcs3]
-
[email protected]("sl_wcs", create_wcs())
def test_sliced_wcs_serialization(sl_wcs, tmp_path):
file_path = tmp_path / "test_slicedwcs.asdf"
with asdf.AsdfFile() as af:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/asdf_astropy-0.10.0/asdf_astropy/extensions.py
new/asdf_astropy-0.11.0/asdf_astropy/extensions.py
--- old/asdf_astropy-0.10.0/asdf_astropy/extensions.py 2026-02-13
19:05:09.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy/extensions.py 2026-03-27
17:50:53.000000000 +0100
@@ -4,7 +4,6 @@
"""
import importlib.metadata
-from importlib.util import find_spec
import asdf
from asdf.extension import Extension, ManifestExtension
@@ -35,6 +34,7 @@
from .converters.unit.magunit import MagUnitConverter
from .converters.unit.quantity import QuantityConverter
from .converters.unit.unit import UnitConverter
+from .converters.wcs.highlevelwrapper import HighLevelWCSWrapperConverter
from .converters.wcs.slicedwcs import SlicedWCSConverter
from .converters.wcs.wcs import WCSConverter
@@ -426,19 +426,21 @@
# to avoid including the new tags until those libraries can be updated.
# We make the assumption here that the next version of each
# downstream library manifest will fix the issue.
-_REQUIRED_DOWNSTREAM_MANIFESTS = {
- "dkist": "asdf://dkist.nso.edu/dkist/extensions/dkist-wcs-1.5.0",
- "asdf_wcs_schemas":
"asdf://asdf-format.org/astronomy/gwcs/extensions/gwcs-1.4.0",
- "stdatamodels":
"asdf://stsci.edu/jwst_pipeline/extensions/jwst_transforms-1.2.0",
+_REQUIRED_DOWNSTREAM_VERSIONS = {
+ "dkist": "1.14.0",
+ "asdf_wcs_schemas": "0.5.0",
+ "stdatamodels": "3.1.0",
}
_include_new_transforms = True
_resource_manager = asdf.get_config().resource_manager
-for package_name, required_manifest_uri in
_REQUIRED_DOWNSTREAM_MANIFESTS.items():
+for package_name, required_version in _REQUIRED_DOWNSTREAM_VERSIONS.items():
# don't use astropy.utils.minversion as it imports the package
- if find_spec(package_name) is None:
+ try:
+ version = importlib.metadata.version(package_name)
+ except importlib.metadata.PackageNotFoundError:
# not installed
continue
- if required_manifest_uri not in _resource_manager:
+ if version < required_version:
# don't include new manifest
_include_new_transforms = False
break
@@ -530,6 +532,7 @@
UncertaintyConverter(),
WCSConverter(),
SlicedWCSConverter(),
+ HighLevelWCSWrapperConverter(),
]
@@ -555,6 +558,7 @@
_ASTROPY_EXTENSION_MANIFEST_URIS = [
+ "asdf://astropy.org/astropy/manifests/astropy-1.6.0",
"asdf://astropy.org/astropy/manifests/astropy-1.5.0",
"asdf://astropy.org/astropy/manifests/astropy-1.4.0",
"asdf://astropy.org/astropy/manifests/astropy-1.3.0",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/asdf_astropy-0.10.0/asdf_astropy/resources/manifests/astropy-1.6.0.yaml
new/asdf_astropy-0.11.0/asdf_astropy/resources/manifests/astropy-1.6.0.yaml
--- old/asdf_astropy-0.10.0/asdf_astropy/resources/manifests/astropy-1.6.0.yaml
1970-01-01 01:00:00.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy/resources/manifests/astropy-1.6.0.yaml
2026-03-27 17:50:53.000000000 +0100
@@ -0,0 +1,78 @@
+id: asdf://astropy.org/astropy/manifests/astropy-1.6.0
+extension_uri: asdf://astropy.org/astropy/extensions/astropy-1.6.0
+title: Astropy extension
+description: |-
+ A set of tags for serializing astropy objects. This does not include most
+ model classes, which are handled by an implementation of the ASDF
+ transform extension.
+asdf_standard_requirement:
+ gte: 1.6.0
+tags:
+- tag_uri: tag:astropy.org:astropy/time/timedelta-1.2.0
+ schema_uri: http://astropy.org/schemas/astropy/time/timedelta-1.2.0
+ title: Represents an instance of TimeDelta from astropy
+ description: |-
+ Represents the time difference between two times.
+- tag_uri: tag:astropy.org:astropy/fits/fits-1.2.0
+ schema_uri: http://astropy.org/schemas/astropy/fits/fits-1.2.0
+ title: A FITS file inside of an ASDF file.
+ description: |-
+ This schema is useful for distributing ASDF files that can
+ automatically be converted to FITS files by specifying the exact
+ content of the resulting FITS file.
+
+ Not all kinds of data in FITS are directly representable in ASDF.
+ For example, applying an offset and scale to the data using the
+ `BZERO` and `BSCALE` keywords. In these cases, it will not be
+ possible to store the data in the native format from FITS and also
+ be accessible in its proper form in the ASDF file.
+
+ Only image and binary table extensions are supported.
+- tag_uri: tag:astropy.org:astropy/table/table-1.3.0
+ schema_uri: http://astropy.org/schemas/astropy/table/table-1.3.0
+ title: A table.
+ description: |-
+ A table is represented as a list of columns, where each entry is a
+ column object, containing the data and some additional information.
+
+ The data itself may be stored inline as text, or in binary in either
+ row- or column-major order by use of the `strides` property on the
+ individual column arrays.
+
+ Each column in the table must have the same first (slowest moving)
+ dimension.
+- tag_uri: tag:astropy.org:astropy/transform/units_mapping-1.2.0
+ schema_uri: http://astropy.org/schemas/astropy/transform/units_mapping-1.2.0
+ title: Mapper that operates on the units of the input.
+ description: |-
+ This transform operates on the units of the input, first converting to
+ the expected input units, then assigning replacement output units without
+ further conversion.
+- tag_uri: tag:astropy.org:astropy/table/ndarraymixin-1.0.0
+ schema_uri: http://astropy.org/schemas/astropy/table/ndarraymixin-1.0.0
+ title: NdarrayMixin column.
+ description: |-
+ Represents an astropy.table.NdarrayMixin instance.
+- tag_uri: tag:astropy.org:astropy/wcs/slicedwcs-1.1.0
+ schema_uri: http://astropy.org/schemas/astropy/wcs/slicedwcs-1.1.0
+ title: Represents an instance of SlicedLowLevelWCS
+ description: |-
+ The SlicedLowLevelWCS class is a wrapper class for WCS that applies slices
+ to the WCS, allowing certain pixel and world dimensions to be retained or
+ dropped.
+
+ It manages the slicing and coordinate transformations while preserving
+ the underlying WCS object.
+- tag_uri: tag:astropy.org:astropy/wcs/wcs-1.0.0
+ schema_uri: http://astropy.org/schemas/astropy/wcs/wcs-1.0.0
+ title: FITS WCS (World Coordinate System) Converter
+ description: |-
+ Represents the FITS WCS object, the HDUlist of the FITS header is preserved
+ during serialization and during deserialization the WCS object is recreated
+ from the HDUlist.
+- tag_uri: tag:astropy.org:astropy/wcs/highlevelwcswrapper-1.0.0
+ schema_uri: http://astropy.org/schemas/astropy/wcs/highlevelwcswrapper-1.0.0
+ title: Represents an instance of HighLevelWCSWrapper
+ description: |-
+ Wrapper class that can take any astropy.wcs.wcsapi.BaseLowLevelWCS
+ object and expose the high-level WCS API.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/asdf_astropy-0.10.0/asdf_astropy/resources/schemas/wcs/highlevelwcswrapper-1.0.0.yaml
new/asdf_astropy-0.11.0/asdf_astropy/resources/schemas/wcs/highlevelwcswrapper-1.0.0.yaml
---
old/asdf_astropy-0.10.0/asdf_astropy/resources/schemas/wcs/highlevelwcswrapper-1.0.0.yaml
1970-01-01 01:00:00.000000000 +0100
+++
new/asdf_astropy-0.11.0/asdf_astropy/resources/schemas/wcs/highlevelwcswrapper-1.0.0.yaml
2026-03-27 17:50:53.000000000 +0100
@@ -0,0 +1,28 @@
+%YAML 1.1
+---
+$schema: "http://stsci.edu/schemas/yaml-schema/draft-01"
+id: "http://astropy.org/schemas/astropy/wcs/highlevelwcswrapper-1.0.0"
+
+title: Represents a HighLevelWCSWrapper object
+
+description: >-
+ Wrapper class that can take any astropy.wcs.wcsapi.BaseLowLevelWCS
+ object and expose the high-level WCS API.
+
+allOf:
+ - type: object
+ properties:
+ wcs:
+ anyOf:
+ # Known WCS objects
+ - tag: "tag:astropy.org:astropy/wcs/wcs-1*"
+ - tag: "tag:stsci.edu:gwcs/wcs-*"
+ - tag: "tag:astropy.org:astropy/wcs/slicedwcs-*"
+ - tag: "tag:sunpy.org:ndcube/resampledwcs-*"
+ - tag: "tag:sunpy.org:ndcube/reorderedwcs-*"
+ - tag: "tag:sunpy.org:ndcube/compoundwcs-*"
+ # Allow anything else because any APE-14 compliant object is valid
+ - {}
+
+
+ required: ["wcs"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/asdf_astropy-0.10.0/asdf_astropy/testing/helpers.py
new/asdf_astropy-0.11.0/asdf_astropy/testing/helpers.py
--- old/asdf_astropy-0.10.0/asdf_astropy/testing/helpers.py 2026-02-13
19:05:09.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy/testing/helpers.py 2026-03-27
17:50:53.000000000 +0100
@@ -271,3 +271,34 @@
with asdf.open(path) as af:
assert_wcs_equal(wcs, af["wcs"])
+
+
+def _assert_gwcs_frame_equal(a, b):
+ __tracebackhide__ = True
+
+ import gwcs.coordinate_frames as cf
+
+ assert type(a) is type(b)
+
+ if a is None:
+ return None
+
+ if not isinstance(a, cf.CoordinateFrame):
+ return a == b
+
+ assert a.name == b.name # nosec
+ if not isinstance(a, cf.EmptyFrame):
+ assert a.axes_order == b.axes_order # nosec
+ assert a.axes_names == b.axes_names # nosec
+ assert a.unit == b.unit # nosec
+ assert a.reference_frame == b.reference_frame # nosec
+ return None
+
+
+def assert_gwcs_equal(a, b):
+ assert a.name == b.name # nosec
+ assert a.pixel_shape == b.pixel_shape
+ assert len(a.available_frames) == len(b.available_frames) # nosec
+ for a_step, b_step in zip(a.pipeline, b.pipeline, strict=False):
+ _assert_gwcs_frame_equal(a_step.frame, b_step.frame)
+ assert_model_equal(a_step.transform, b_step.transform)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/asdf_astropy-0.10.0/asdf_astropy.egg-info/PKG-INFO
new/asdf_astropy-0.11.0/asdf_astropy.egg-info/PKG-INFO
--- old/asdf_astropy-0.10.0/asdf_astropy.egg-info/PKG-INFO 2026-02-13
19:05:17.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy.egg-info/PKG-INFO 2026-03-27
17:51:05.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: asdf-astropy
-Version: 0.10.0
+Version: 0.11.0
Summary: ASDF serialization support for astropy
Author-email: The Astropy Developers <[email protected]>
Project-URL: documentation, https://asdf-astropy.readthedocs.io/en/latest/
@@ -16,7 +16,7 @@
Requires-Dist: asdf-coordinates-schemas>=0.4
Requires-Dist: asdf-transform-schemas>=0.6
Requires-Dist: asdf-standard>=1.1.0
-Requires-Dist: astropy>=5.3.0
+Requires-Dist: astropy>=6.0
Requires-Dist: numpy>=1.26.4
Requires-Dist: packaging>=19
Provides-Extra: docs
@@ -30,10 +30,11 @@
Requires-Dist: tomli; extra == "docs"
Provides-Extra: test
Requires-Dist: coverage; extra == "test"
+Requires-Dist: gwcs>=0.22; extra == "test"
Requires-Dist: pytest-astropy; extra == "test"
Requires-Dist: pytest-asdf-plugin; extra == "test"
Requires-Dist: pytest; extra == "test"
-Requires-Dist: scipy; extra == "test"
+Requires-Dist: scipy>=1.14.1; extra == "test"
Dynamic: license-file
ASDF serialization support for astropy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/asdf_astropy-0.10.0/asdf_astropy.egg-info/SOURCES.txt
new/asdf_astropy-0.11.0/asdf_astropy.egg-info/SOURCES.txt
--- old/asdf_astropy-0.10.0/asdf_astropy.egg-info/SOURCES.txt 2026-02-13
19:05:17.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy.egg-info/SOURCES.txt 2026-03-27
17:51:05.000000000 +0100
@@ -85,9 +85,12 @@
asdf_astropy/converters/unit/tests/test_quantity.py
asdf_astropy/converters/unit/tests/test_unit.py
asdf_astropy/converters/wcs/__init__.py
+asdf_astropy/converters/wcs/highlevelwrapper.py
asdf_astropy/converters/wcs/slicedwcs.py
asdf_astropy/converters/wcs/wcs.py
asdf_astropy/converters/wcs/tests/__init__.py
+asdf_astropy/converters/wcs/tests/conftest.py
+asdf_astropy/converters/wcs/tests/test_highlevelwcswrapper.py
asdf_astropy/converters/wcs/tests/test_slicedwcs.py
asdf_astropy/converters/wcs/tests/test_wcs.py
asdf_astropy/io/__init__.py
@@ -101,6 +104,7 @@
asdf_astropy/resources/manifests/astropy-1.3.0.yaml
asdf_astropy/resources/manifests/astropy-1.4.0.yaml
asdf_astropy/resources/manifests/astropy-1.5.0.yaml
+asdf_astropy/resources/manifests/astropy-1.6.0.yaml
asdf_astropy/resources/manifests/units-1.0.0.yaml
asdf_astropy/resources/manifests/units-1.1.0.yaml
asdf_astropy/resources/manifests/units-1.2.0.yaml
@@ -125,6 +129,7 @@
asdf_astropy/resources/schemas/units/equivalency-1.2.0.yaml
asdf_astropy/resources/schemas/units/magunit-1.0.0.yaml
asdf_astropy/resources/schemas/units/magunit-1.1.0.yaml
+asdf_astropy/resources/schemas/wcs/highlevelwcswrapper-1.0.0.yaml
asdf_astropy/resources/schemas/wcs/slicedwcs-1.0.0.yaml
asdf_astropy/resources/schemas/wcs/slicedwcs-1.1.0.yaml
asdf_astropy/resources/schemas/wcs/wcs-1.0.0.yaml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/asdf_astropy-0.10.0/asdf_astropy.egg-info/requires.txt
new/asdf_astropy-0.11.0/asdf_astropy.egg-info/requires.txt
--- old/asdf_astropy-0.10.0/asdf_astropy.egg-info/requires.txt 2026-02-13
19:05:17.000000000 +0100
+++ new/asdf_astropy-0.11.0/asdf_astropy.egg-info/requires.txt 2026-03-27
17:51:05.000000000 +0100
@@ -2,7 +2,7 @@
asdf-coordinates-schemas>=0.4
asdf-transform-schemas>=0.6
asdf-standard>=1.1.0
-astropy>=5.3.0
+astropy>=6.0
numpy>=1.26.4
packaging>=19
@@ -18,7 +18,8 @@
[test]
coverage
+gwcs>=0.22
pytest-astropy
pytest-asdf-plugin
pytest
-scipy
+scipy>=1.14.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/asdf_astropy-0.10.0/pyproject.toml
new/asdf_astropy-0.11.0/pyproject.toml
--- old/asdf_astropy-0.10.0/pyproject.toml 2026-02-13 19:05:09.000000000
+0100
+++ new/asdf_astropy-0.11.0/pyproject.toml 2026-03-27 17:50:53.000000000
+0100
@@ -18,7 +18,7 @@
"asdf-coordinates-schemas>=0.4",
"asdf-transform-schemas>=0.6",
"asdf-standard>=1.1.0",
- "astropy>=5.3.0",
+ "astropy>=6.0",
"numpy>=1.26.4",
"packaging>=19",
]
@@ -35,10 +35,11 @@
]
test = [
"coverage",
+ "gwcs>=0.22",
"pytest-astropy",
"pytest-asdf-plugin",
"pytest",
- "scipy", # indirect requirement via astropy
+ "scipy>=1.14.1", # oldest version supported by gwcs
]
[project.urls]
'documentation' = 'https://asdf-astropy.readthedocs.io/en/latest/'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/asdf_astropy-0.10.0/tox.ini
new/asdf_astropy-0.11.0/tox.ini
--- old/asdf_astropy-0.10.0/tox.ini 2026-02-13 19:05:09.000000000 +0100
+++ new/asdf_astropy-0.11.0/tox.ini 2026-03-27 17:50:53.000000000 +0100
@@ -31,11 +31,11 @@
parallel: pytest-xdist
extras =
test
- alldeps: all
commands_pre=
devdeps: pip install -U --pre -i
https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy
devdeps: pip install -U --pre -i https://pypi.anaconda.org/liberfa/simple
pyerfa
devdeps: pip install -U --pre -i https://pypi.anaconda.org/astropy/simple
astropy
+ devdeps: pip install -U git+https://github.com/spacetelescope/gwcs.git
# Generate `requiremments-min.txt`
oldestdeps: minimum_dependencies asdf-astropy --filename
{envtmpdir}/requirements-min.txt