Skip to content

Commit 9ac5d77

Browse files
authored
Merge pull request #1970 from braingram/remove_deprecated
Start 5.0.0 development (remove deprecated code)
2 parents 65749ef + adefaa1 commit 9ac5d77

18 files changed

Lines changed: 77 additions & 684 deletions

asdf/_asdf.py

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def __init__(
100100
self._extension_manager = None
101101

102102
if custom_schema is not None:
103-
self._custom_schema = schema._load_schema_cached(custom_schema, None, True)
103+
self._custom_schema = schema._load_schema_cached(custom_schema, True)
104104
else:
105105
self._custom_schema = None
106106

@@ -1121,7 +1121,7 @@ def get_history_entries(self):
11211121

11221122
return []
11231123

1124-
def schema_info(self, key="description", path=None, preserve_list=True, refresh_extension_manager=NotSet):
1124+
def schema_info(self, key="description", path=None, preserve_list=True):
11251125
"""
11261126
Get a nested dictionary of the schema information for a given key, relative to the path.
11271127
@@ -1140,27 +1140,18 @@ def schema_info(self, key="description", path=None, preserve_list=True, refresh_
11401140
Default = None (full dictionary).
11411141
preserve_list : bool
11421142
If True, then lists are preserved. Otherwise, they are turned into dicts.
1143-
refresh_extension_manager : bool
1144-
If `True`, refresh the extension manager before looking up the
1145-
key. This is useful if you want to make sure that the schema
1146-
data for a given key is up to date.
11471143
"""
1148-
if refresh_extension_manager is not NotSet:
1149-
warnings.warn("refresh_extension_manager is deprecated", DeprecationWarning)
1150-
11511144
if isinstance(path, AsdfSearchResult):
11521145
return path.schema_info(
11531146
key,
11541147
preserve_list=preserve_list,
1155-
refresh_extension_manager=refresh_extension_manager,
11561148
)
11571149

11581150
return node_info.collect_schema_info(
11591151
key,
11601152
path,
11611153
self.tree,
11621154
preserve_list=preserve_list,
1163-
refresh_extension_manager=refresh_extension_manager,
11641155
extension_manager=self.extension_manager,
11651156
)
11661157

@@ -1169,7 +1160,6 @@ def info(
11691160
max_rows=display.DEFAULT_MAX_ROWS,
11701161
max_cols=display.DEFAULT_MAX_COLS,
11711162
show_values=display.DEFAULT_SHOW_VALUES,
1172-
refresh_extension_manager=NotSet,
11731163
):
11741164
"""
11751165
Print a rendering of this file's tree to stdout.
@@ -1194,16 +1184,12 @@ def info(
11941184
Set to False to disable display of primitive values in
11951185
the rendered tree.
11961186
"""
1197-
if refresh_extension_manager is not NotSet:
1198-
warnings.warn("refresh_extension_manager is deprecated", DeprecationWarning)
1199-
12001187
lines = display.render_tree(
12011188
self.tree,
12021189
max_rows=max_rows,
12031190
max_cols=max_cols,
12041191
show_values=show_values,
12051192
identifier="root",
1206-
refresh_extension_manager=refresh_extension_manager,
12071193
extension_manager=self.extension_manager,
12081194
)
12091195
print("\n".join(lines))

asdf/_core/_validators/ndarray.py

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,26 @@
1-
import warnings
2-
31
from asdf.extension import Validator
42
from asdf.tags.core.ndarray import validate_datatype, validate_max_ndim, validate_ndim
53

64

7-
def _warn_if_not_array(node, schema_property):
8-
# warn here for non-ndarray tags, in a major version bump we can
9-
# remove this and update the tags below to only match ndarrays
10-
if not getattr(node, "_tag", "").startswith("tag:stsci.edu:asdf/core/ndarray-"):
11-
warnings.warn(
12-
f"Use of the {schema_property} validator with non-ndarray tags is deprecated. "
13-
"Please define a custom validator for your tag",
14-
DeprecationWarning,
15-
)
16-
17-
185
class NdimValidator(Validator):
196
schema_property = "ndim"
20-
tags = ["**"]
7+
tags = ["tag:stsci.edu:asdf/core/ndarray-*"]
218

229
def validate(self, expected_ndim, node, schema):
23-
_warn_if_not_array(node, self.schema_property)
2410
yield from validate_ndim(None, expected_ndim, node, schema)
2511

2612

2713
class MaxNdimValidator(Validator):
2814
schema_property = "max_ndim"
29-
tags = ["**"]
15+
tags = ["tag:stsci.edu:asdf/core/ndarray-*"]
3016

3117
def validate(self, max_ndim, node, schema):
32-
_warn_if_not_array(node, self.schema_property)
3318
yield from validate_max_ndim(None, max_ndim, node, schema)
3419

3520

3621
class DatatypeValidator(Validator):
3722
schema_property = "datatype"
38-
tags = ["**"]
23+
tags = ["tag:stsci.edu:asdf/core/ndarray-*"]
3924

4025
def validate(self, expected_datatype, node, schema):
41-
_warn_if_not_array(node, self.schema_property)
4226
yield from validate_datatype(None, expected_datatype, node, schema)

asdf/_display.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import sys
1212

1313
from ._node_info import create_tree
14-
from .util import NotSet
1514

1615
__all__ = [
1716
"DEFAULT_MAX_COLS",
@@ -33,7 +32,6 @@ def render_tree(
3332
show_values=DEFAULT_SHOW_VALUES,
3433
filters=None,
3534
identifier="root",
36-
refresh_extension_manager=NotSet,
3735
extension_manager=None,
3836
):
3937
"""
@@ -44,7 +42,6 @@ def render_tree(
4442
node=node,
4543
identifier=identifier,
4644
filters=[] if filters is None else filters,
47-
refresh_extension_manager=refresh_extension_manager,
4845
extension_manager=extension_manager,
4946
)
5047
if info is None:

asdf/_node_info.py

Lines changed: 5 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
from .schema import load_schema
55
from .treeutil import get_children, is_container
6-
from .util import NotSet
76

87

98
def _filter_tree(info, filters):
@@ -139,7 +138,7 @@ def _get_schema_key(schema, key):
139138
return None
140139

141140

142-
def create_tree(key, node, identifier="root", filters=None, refresh_extension_manager=NotSet, extension_manager=None):
141+
def create_tree(key, node, identifier="root", filters=None, extension_manager=None):
143142
"""
144143
Create a `NodeSchemaInfo` tree which can be filtered from a base node.
145144
@@ -153,19 +152,13 @@ def create_tree(key, node, identifier="root", filters=None, refresh_extension_ma
153152
A list of functions that take a node and identifier and return True if the node should be included in the tree.
154153
preserve_list : bool
155154
If True, then lists are preserved. Otherwise, they are turned into dicts.
156-
refresh_extension_manager : bool
157-
DEPRECATED
158-
If `True`, refresh the extension manager before looking up the
159-
key. This is useful if you want to make sure that the schema
160-
data for a given key is up to date.
161155
"""
162156
filters = [] if filters is None else filters
163157

164158
schema_info = NodeSchemaInfo.from_root_node(
165159
key,
166160
identifier,
167161
node,
168-
refresh_extension_manager=refresh_extension_manager,
169162
extension_manager=extension_manager,
170163
)
171164

@@ -182,7 +175,6 @@ def collect_schema_info(
182175
identifier="root",
183176
filters=None,
184177
preserve_list=True,
185-
refresh_extension_manager=NotSet,
186178
extension_manager=None,
187179
):
188180
"""
@@ -201,19 +193,13 @@ def collect_schema_info(
201193
A list of functions that take a node and identifier and return True if the node should be included in the tree.
202194
preserve_list : bool
203195
If True, then lists are preserved. Otherwise, they are turned into dicts.
204-
refresh_extension_manager : bool
205-
DEPRECATED
206-
If `True`, refresh the extension manager before looking up the
207-
key. This is useful if you want to make sure that the schema
208-
data for a given key is up to date.
209196
"""
210197

211198
schema_info = create_tree(
212199
key,
213200
node,
214201
identifier=identifier,
215202
filters=[] if filters is None else filters,
216-
refresh_extension_manager=refresh_extension_manager,
217203
extension_manager=extension_manager,
218204
)
219205

@@ -229,18 +215,10 @@ def collect_schema_info(
229215
return info
230216

231217

232-
def _get_extension_manager(refresh_extension_manager):
233-
from ._asdf import AsdfFile, get_config
234-
from .extension import ExtensionManager
235-
236-
if refresh_extension_manager is NotSet:
237-
refresh_extension_manager = False
218+
def _get_extension_manager():
219+
from ._asdf import AsdfFile
238220

239221
af = AsdfFile()
240-
if refresh_extension_manager:
241-
config = get_config()
242-
af._extension_manager = ExtensionManager(config.extensions)
243-
244222
return af.extension_manager
245223

246224

@@ -364,15 +342,13 @@ def set_schema_from_node(self, node, extension_manager):
364342
self.schema = schema
365343

366344
@classmethod
367-
def from_root_node(
368-
cls, key, root_identifier, root_node, schema=None, refresh_extension_manager=NotSet, extension_manager=None
369-
):
345+
def from_root_node(cls, key, root_identifier, root_node, schema=None, extension_manager=None):
370346
"""
371347
Build a NodeSchemaInfo tree from the given ASDF root node.
372348
Intentionally processes the tree in breadth-first order so that recursively
373349
referenced nodes are displayed at their shallowest reference point.
374350
"""
375-
extension_manager = extension_manager or _get_extension_manager(refresh_extension_manager)
351+
extension_manager = extension_manager or _get_extension_manager()
376352

377353
current_nodes = [(None, root_identifier, root_node)]
378354
seen = set()

asdf/_tests/test_deprecated.py

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +0,0 @@
1-
import pytest
2-
3-
import asdf
4-
5-
6-
def test_resolver_deprecation():
7-
8-
def resolver(uri):
9-
return uri
10-
11-
with pytest.warns(DeprecationWarning, match="resolver is deprecated"):
12-
asdf.schema.load_schema("http://stsci.edu/schemas/asdf/asdf-schema-1.0.0", resolver=resolver)
13-
14-
15-
@pytest.mark.parametrize("value", (True, False))
16-
def test_deprecate_refresh_extension_manager(value):
17-
af = asdf.AsdfFile({"foo": 1})
18-
with pytest.warns(DeprecationWarning, match="refresh_extension_manager is deprecated"):
19-
af.schema_info(refresh_extension_manager=value)
20-
with pytest.warns(DeprecationWarning, match="refresh_extension_manager is deprecated"):
21-
af.info(refresh_extension_manager=value)
22-
sr = af.search("foo")
23-
with pytest.warns(DeprecationWarning, match="refresh_extension_manager is deprecated"):
24-
sr.schema_info(refresh_extension_manager=value)
25-
26-
27-
@pytest.mark.parametrize(
28-
"schema_property, schema_value",
29-
(
30-
("ndim", 3),
31-
("datatype", "uint8"),
32-
("max_ndim", 3),
33-
),
34-
)
35-
def test_validator_deprecation(tmp_path, schema_property, schema_value):
36-
schema = f"""%YAML 1.1
37-
---
38-
type: object
39-
properties:
40-
a:
41-
{schema_property}: {schema_value}"""
42-
43-
schema_path = tmp_path / "custom_schema.yaml"
44-
with schema_path.open("w") as f:
45-
f.write(schema)
46-
47-
af = asdf.AsdfFile({"a": 1}, custom_schema=schema_path)
48-
with pytest.warns(DeprecationWarning, match=f"Use of the {schema_property} validator with non-ndarray tag"):
49-
with pytest.raises(asdf.exceptions.ValidationError):
50-
af.validate()
51-
52-
53-
def test_url_mapping_deprecation():
54-
with pytest.warns(DeprecationWarning, match="url_mapping is deprecated"):
55-
asdf.schema.get_validator(url_mapping=lambda s: s)

0 commit comments

Comments
 (0)