From 67b22ef85f334be8670bec7ff75bd12941053589 Mon Sep 17 00:00:00 2001 From: Brett Date: Mon, 2 Jun 2025 17:18:28 -0400 Subject: [PATCH] return dict_keys instead of KeysView for AsdfFile.keys --- asdf/_asdf.py | 3 +++ asdf/tags/core/__init__.py | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/asdf/_asdf.py b/asdf/_asdf.py index e72526ec3..951084a6b 100644 --- a/asdf/_asdf.py +++ b/asdf/_asdf.py @@ -557,6 +557,9 @@ def tree(self, tree): self._tree = AsdfObject(tree) def keys(self): + """ + Return view of top-level keys in the tree. + """ return self.tree.keys() def __getitem__(self, key): diff --git a/asdf/tags/core/__init__.py b/asdf/tags/core/__init__.py index 2b74bcb13..228f3c21b 100644 --- a/asdf/tags/core/__init__.py +++ b/asdf/tags/core/__init__.py @@ -1,4 +1,5 @@ import collections +import functools from .constant import Constant from .external_reference import ExternalArrayReference @@ -24,7 +25,9 @@ # to pass an isinstance(..., dict) check and to allow it to be "lazy" # loaded when "lazy_tree=True". class AsdfObject(collections.UserDict, dict): - pass + @functools.wraps(collections.UserDict.keys) + def keys(self): + return self.data.keys() class Software(dict):