@@ -52,11 +52,7 @@ class Anchor:
52
52
resource : Schema
53
53
54
54
def added_to (self , registry : Registry ):
55
- return registry .with_anchor (
56
- uri = self .uri ,
57
- anchor = self .name ,
58
- resource = self .resource ,
59
- )
55
+ return registry .with_anchor (anchor = self )
60
56
61
57
62
58
@frozen
@@ -67,11 +63,7 @@ class DynamicAnchor:
67
63
resource : Schema
68
64
69
65
def added_to (self , registry : Registry ):
70
- return registry .with_anchor (
71
- uri = self .uri ,
72
- anchor = self .name ,
73
- resource = self .resource ,
74
- )
66
+ return registry .with_anchor (anchor = self )
75
67
76
68
77
69
@frozen
@@ -126,10 +118,10 @@ def with_resources(self, pairs):
126
118
contents = contents .set (id , (resource , m ()))
127
119
return attrs .evolve (self , contents = contents )
128
120
129
- def with_anchor (self , uri , anchor , resource ):
130
- uri_resource , anchors = self ._contents [uri ]
131
- new = uri_resource , anchors .set (anchor , resource )
132
- return attrs .evolve (self , contents = self ._contents .set (uri , new ))
121
+ def with_anchor (self , anchor : Anchor | DynamicAnchor ):
122
+ uri_resource , anchors = self ._contents [anchor . uri ]
123
+ new = uri_resource , anchors .set (anchor . name , anchor )
124
+ return attrs .evolve (self , contents = self ._contents .set (anchor . uri , new ))
133
125
134
126
def resolver (self , root ) -> Resolver :
135
127
uri = id_of (root ) or ""
@@ -168,7 +160,7 @@ def lookup(self, ref: str):
168
160
segment = segment .replace ("~1" , "/" ).replace ("~0" , "~" )
169
161
target = target [segment ]
170
162
elif fragment :
171
- target = anchors [fragment ]
163
+ target = anchors [fragment ]. resource
172
164
173
165
return target , self .with_base_uri (uri )
174
166
0 commit comments