6666from typing import Dict , Iterator , Optional
6767
6868from tuf import exceptions
69- from tuf .api .metadata import Metadata
69+ from tuf .api .metadata import Metadata , Root , Snapshot , Targets , Timestamp
7070from tuf .api .serialization import DeserializationError
7171
7272logger = logging .getLogger (__name__ )
@@ -114,22 +114,22 @@ def __iter__(self) -> Iterator[Metadata]:
114114
115115 # Helper properties for top level metadata
116116 @property
117- def root (self ) -> Metadata :
117+ def root (self ) -> Metadata [ Root ] :
118118 """Current root Metadata"""
119119 return self ._trusted_set ["root" ]
120120
121121 @property
122- def timestamp (self ) -> Optional [Metadata ]:
122+ def timestamp (self ) -> Optional [Metadata [ Timestamp ] ]:
123123 """Current timestamp Metadata or None"""
124124 return self ._trusted_set .get ("timestamp" )
125125
126126 @property
127- def snapshot (self ) -> Optional [Metadata ]:
127+ def snapshot (self ) -> Optional [Metadata [ Snapshot ] ]:
128128 """Current snapshot Metadata or None"""
129129 return self ._trusted_set .get ("snapshot" )
130130
131131 @property
132- def targets (self ) -> Optional [Metadata ]:
132+ def targets (self ) -> Optional [Metadata [ Targets ] ]:
133133 """Current targets Metadata or None"""
134134 return self ._trusted_set .get ("targets" )
135135
@@ -152,7 +152,7 @@ def update_root(self, data: bytes) -> None:
152152 logger .debug ("Updating root" )
153153
154154 try :
155- new_root = Metadata .from_bytes (data )
155+ new_root = Metadata [ Root ] .from_bytes (data )
156156 except DeserializationError as e :
157157 raise exceptions .RepositoryError ("Failed to load root" ) from e
158158
@@ -199,7 +199,7 @@ def update_timestamp(self, data: bytes) -> None:
199199 # timestamp/snapshot can not yet be loaded at this point
200200
201201 try :
202- new_timestamp = Metadata .from_bytes (data )
202+ new_timestamp = Metadata [ Timestamp ] .from_bytes (data )
203203 except DeserializationError as e :
204204 raise exceptions .RepositoryError ("Failed to load timestamp" ) from e
205205
@@ -276,7 +276,7 @@ def update_snapshot(self, data: bytes) -> None:
276276 ) from e
277277
278278 try :
279- new_snapshot = Metadata .from_bytes (data )
279+ new_snapshot = Metadata [ Snapshot ] .from_bytes (data )
280280 except DeserializationError as e :
281281 raise exceptions .RepositoryError ("Failed to load snapshot" ) from e
282282
@@ -387,7 +387,7 @@ def update_delegated_targets(
387387 ) from e
388388
389389 try :
390- new_delegate = Metadata .from_bytes (data )
390+ new_delegate = Metadata [ Targets ] .from_bytes (data )
391391 except DeserializationError as e :
392392 raise exceptions .RepositoryError ("Failed to load snapshot" ) from e
393393
0 commit comments