7171from typing import Dict , Iterator , Mapping , Optional
7272
7373from tuf import exceptions
74- from tuf .api .metadata import Key , Metadata , Root , Targets
74+ from tuf .api .metadata import Key , Metadata , Root , Snapshot , Targets , Timestamp
7575from tuf .api .serialization import DeserializationError
7676
7777logger = logging .getLogger (__name__ )
@@ -156,22 +156,22 @@ def __iter__(self) -> Iterator[Metadata]:
156156
157157 # Helper properties for top level metadata
158158 @property
159- def root (self ) -> Metadata :
159+ def root (self ) -> Metadata [ Root ] :
160160 """Current root Metadata"""
161161 return self ._trusted_set ["root" ]
162162
163163 @property
164- def timestamp (self ) -> Optional [Metadata ]:
164+ def timestamp (self ) -> Optional [Metadata [ Timestamp ] ]:
165165 """Current timestamp Metadata or None"""
166166 return self ._trusted_set .get ("timestamp" )
167167
168168 @property
169- def snapshot (self ) -> Optional [Metadata ]:
169+ def snapshot (self ) -> Optional [Metadata [ Snapshot ] ]:
170170 """Current snapshot Metadata or None"""
171171 return self ._trusted_set .get ("snapshot" )
172172
173173 @property
174- def targets (self ) -> Optional [Metadata ]:
174+ def targets (self ) -> Optional [Metadata [ Targets ] ]:
175175 """Current targets Metadata or None"""
176176 return self ._trusted_set .get ("targets" )
177177
@@ -196,7 +196,7 @@ def update_root(self, data: bytes) -> None:
196196 logger .debug ("Updating root" )
197197
198198 try :
199- new_root = Metadata .from_bytes (data )
199+ new_root = Metadata [ Root ] .from_bytes (data )
200200 except DeserializationError as e :
201201 raise exceptions .RepositoryError ("Failed to load root" ) from e
202202
@@ -261,7 +261,7 @@ def update_timestamp(self, data: bytes) -> None:
261261 raise RuntimeError ("Cannot update timestamp after snapshot" )
262262
263263 try :
264- new_timestamp = Metadata .from_bytes (data )
264+ new_timestamp = Metadata [ Timestamp ] .from_bytes (data )
265265 except DeserializationError as e :
266266 raise exceptions .RepositoryError ("Failed to load timestamp" ) from e
267267
@@ -330,7 +330,7 @@ def update_snapshot(self, data: bytes) -> None:
330330 ) from e
331331
332332 try :
333- new_snapshot = Metadata .from_bytes (data )
333+ new_snapshot = Metadata [ Snapshot ] .from_bytes (data )
334334 except DeserializationError as e :
335335 raise exceptions .RepositoryError ("Failed to load snapshot" ) from e
336336
@@ -429,7 +429,7 @@ def update_delegated_targets(
429429 ) from e
430430
431431 try :
432- new_delegate = Metadata .from_bytes (data )
432+ new_delegate = Metadata [ Targets ] .from_bytes (data )
433433 except DeserializationError as e :
434434 raise exceptions .RepositoryError ("Failed to load snapshot" ) from e
435435
0 commit comments