Skip to content

Releases: asdf-format/asdf

4.0.0

19 Nov 15:14
d676e11
Compare
Choose a tag to compare

This is a major release for asdf that includes removal of deprecated features and changes to some defaults.

Please see the "what's new" documentation:
https://asdf.readthedocs.io/en/4.0.0/asdf/whats_new.html#whats-new-4-0-0
for a description of the included changes.

Changes include:

Feature

  • Switch default ASDF standard to 1.6.0. (#1744 <https://github.com/asdf-format/asdf/pull/1744>_)
  • Raise RuntimeError if a Convert subclass supports multiple tags but doesn't
    implement select_tag. (#1853 <https://github.com/asdf-format/asdf/pull/1853>_)

General

  • Set memmap=False to default for asdf.open and AsdfFile.__init__.
    (#1801 <https://github.com/asdf-format/asdf/pull/1801>_)

Removal

  • remove copy_arrays (replaced by memmap) (#1800 <https://github.com/asdf-format/asdf/pull/1800>_)
  • Remove deprecated API. See docs for full details. (#1852 <https://github.com/asdf-format/asdf/pull/1852>_)
  • Switch default convert_unknown_ndarray_subclasses to False and issue
    deprecation warning if it is enabled. (#1858 <https://github.com/asdf-format/asdf/pull/1858>_)

3.5.0

02 Oct 22:35
Compare
Choose a tag to compare

Bugfix

  • Allow asdf.util.load_yaml to handle recursive objects (#1825 <https://github.com/asdf-format/asdf/pull/1825>_)

Doc

  • added issue links to changelog entries #1827
  • Change asdf standard changelog entries to notes to ease transition to
    towncrier #1830

General

  • fix changelog checker to remove brackets #1828

Removal

  • Deprecate ignore_version_mismatch. This option has done nothing since
    asdf 3.0.0 and will be removed in an upcoming asdf version #1819

3.4.0

04 Aug 16:22
01e9a52
Compare
Choose a tag to compare
  • Fix issue where roundtripping a masked array with no masked values removes the mask [#1803]
  • Use a custom exception AsdfSerializationError to indicate when an object in the
    tree fails to be serialized by asdf (and by yaml). This exception currently inherits
    from yaml.representer.RepresenterError to provide backwards compatibility. However
    this inheritance may be dropped in a future asdf version. Please migrate to the new
    AsdfSerializationError. [#1809]
  • Drop importlib_metadata as a dependency on Python 3.12 and newer [#1810]
  • Bumped minimal requirement on attrs from 20.1.0 to 22.2.0 [#1815]

3.3.0

12 Jul 21:31
dda613b
Compare
Choose a tag to compare
  • Fix __asdf_traverse__ for non-tagged objects [#1739]
  • Deprecate asdf.testing.helpers.format_tag [#1774]
  • Deprecate asdf.versioning.AsdfSpec [#1774]
  • Deprecate asdf.util.filepath_to_url use pathlib.Path.to_uri [#1735]
  • Record package providing manifest for extensions used to write
    a file and AsdfPackageVersionWarning when installed extension/manifest
    package does not match that used to write the file [#1758]
  • Fix bug where a dictionary containing a key id caused
    any contained references to fail to resolve [#1716]
  • Issue a AsdfManifestURIMismatchWarning during write if a used
    extension was created from a manifest registered with a uri that
    does not match the id in the manifest [#1785]
  • Allow converters to provide types as strings that can
    resolve to public classes (even if the class is implemented
    in a private module). [#1654]
  • Add options to control saving the base array when saving array views
    controlled via AsdfConfig.default_array_save_base,
    AsdfFile.set_array_save_base and
    SerializationContext.set_array_save_base [#1753]
  • Deprecate ignore_implicit_conversion and "implicit conversion" [#1724]
  • Add lazy_tree option to asdf.open and asdf.config
    to allow lazy deserialization of ASDF tagged tree nodes to
    custom objects. [#1733]

3.2.0

05 Apr 16:09
694494d
Compare
Choose a tag to compare
  • Deprecate AsdfFile.version_map [#1745]
  • Fix numpy.ma.MaskedArray saving for numpy 2.x [#1769]
  • Add float16 support [#1692]
  • Removed unused asdf-unit-schemas dependency [#1767]

3.1.0

27 Feb 20:49
b499251
Compare
Choose a tag to compare

3.1.0 (2024-02-27)

The ASDF Standard is at v1.6.0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Cleanup asdf.util including deprecating: human_list
    resolve_name minversion and iter_subclasses [#1688]

  • Deprecate validation on AsdfFile.tree assignment. Please
    use AsdfFile.validate to validate the tree [#1691]

  • Deprecate validation during AsdfFile.resolve_references. Please
    use AsdfFile.validate to validate the tree [#1691]

  • Deprecate asdf.asdf and AsdfFile.resolve_and_inline [#1690]

  • Deprecate automatic calling of AsdfFile.find_references during
    AsdfFile.__init__ and asdf.open [#1708]

  • Allow views of memmapped arrays to keep the backing mmap
    open to avoid segfaults [#1668]

  • Introduce memmap argument to asdf.open that
    overrides copy_arrays with documentation that describes
    that the default for memmap when copy_arrays
    is removed in an upcoming asdf release will be False and
    asdf will no longer by-default memory map arrays. [#1667]

  • Introduce asdf.util.load_yaml to load just the YAML contents
    of an ASDF file (with the option tagged to load the contents
    as a tree of asdf.tagged.Tagged instances to preserve tags) [#1700]

  • Require pytest 7+ and update asdf pytest plugin to be compatible
    with the current development version of pytest (8.1) [#1731]

  • Eliminate the use of the legacy tmpdir fixture in favor of
    the new tmp_path fixture for temporary directory creation. [#1759]

  • Remove conversion of warnings to errors in asdf pytest plugin. This
    prevented other warning filters (like those provided with -W)
    from working. If you want these warnings to produce errors you can
    now add your own warning filter [#1757]

  • Only show str representation during info and search
    if it contains a single line (and does not fail) [#1748]

3.0.1

30 Oct 13:39
8e7fe6c
Compare
Choose a tag to compare

The ASDF Standard is at v1.6.0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Fix bug in asdftool diff for arrays within a list [#1672]

3.0.0

16 Oct 16:49
959a83d
Compare
Choose a tag to compare

Asdf 3.0.0 is the first major asdf release since 2018.

Thank you to all the contributors!

There are many large and small changes in asdf 3.0.

Please see the updated docs and the What's New page for more details.

The ASDF Standard is at v1.6.0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  • Drop support for ASDF-in-FITS. [#1288]
  • Add all_array_storage, all_array_compression and
    all_array_compression_kwargs to asdf.config.AsdfConfig [#1468]
  • Move built-in tags to converters (except ndarray and integer). [#1474]
  • Add block storage support to Converter [#1508]
  • Remove deprecated legacy extension API [#1464]
  • Fix issue opening files that don't support fileno [#1557]
  • Allow Converters to defer conversion to other Converters
    by returning None in Converter.select_tag [#1561]
  • Remove deprecated tests.helpers [#1597]
  • Remove deprecated load_custom_schema [#1596]
  • Remove deprecated TagDefinition.schema_uri [#1595]
  • Removed deprecated AsdfFile.open and deprecated asdf.open
    AsdfFile.write_to and AsdfFile.update kwargs [#1592]
  • Fix AsdfFile.info loading all array data [#1572]
  • Blank out AsdfFile.tree on close [#1575]
  • Move ndarray to a converter, add convert_unknown_ndarray_subclasses
    to asdf.config.AsdfConfig, move asdf.Stream to
    asdf.tags.core.Stream, update block storage support for
    Converter and update internal block API [#1537]
  • Remove deprecated resolve_local_refs argument to load_schema [#1623]
  • Move IntegerType to converter and drop cache of converted values. [#1527]
  • Remove legacy extension API [#1637]
  • Fix bug that left out the name of the arrays that differed
    for asdftool diff comparisons [#1652]

2.15.2

29 Sep 17:54
443aa60
Compare
Choose a tag to compare

The ASDF Standard is at v1.6.0

  • Add support for python 3.12 [#1641]

2.15.1

07 Aug 21:48
Compare
Choose a tag to compare

The ASDF Standard is at v1.6.0

  • Drop Python 3.8 support [#1556]
  • Drop NumPy 1.20, 1.21 support [#1568]
  • Convert numpy scalars to python types during yaml encoding to handle NEP51 changes for numpy 2.0 [#1605]
  • Vendorize jsonschema 4.17.3 [#1591]

jsonschema vendorization

Asdf 2.15.1 includes internally a version of jsonschema 4.17.3. This inclusion was done to deal with incompatible changes in jsonschema 4.18.

Many libraries that use asdf import jsonschema to allow catching of ValidationError instances that might be raised during schema validation. Prior to asdf 2.15 this error type was not part of the public asdf API. For 2.15 and later users are expected to import ValidationError from asdf.exceptions (instead of jsonschema directly).

To further ease the transition, asdf will, when possible, use exceptions imported from any installed version of jsonschema. This means that when the asdf internal jsonschema raises a ValidationError on a system where jsonschema was separately installed, the internal jsonschema will attempt to use ValidationError from the installed version. This should allow code that catches exceptions imported from jsonschema to continue to work with no changes. However, asdf cannot guarantee compatibility with future installed jsonschema versions and users are encouraged to update their code to import ValidationError from asdf.exceptions.

Finally, asdf is temporarily keeping jsonschema as a dependency as many libraries expected this to be installed by asdf. We expect to drop this requirement soon (likely in 3.0.0) and this change might occur in a minor or even patch version.

The above text is also available in the updated docs under What's New.

Full Changelog: 2.15.0...2.15.1