Skip to content

Commit 42cb50b

Browse files
Merge branch 'theupdateframework:develop' into metaclass-fix
2 parents 086216f + ba9ea5b commit 42cb50b

8 files changed

Lines changed: 90 additions & 80 deletions

File tree

.github/workflows/dependency-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ jobs:
1717
- name: 'Checkout Repository'
1818
uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b
1919
- name: 'Dependency Review'
20-
uses: actions/dependency-review-action@11310527b429536e263dc6cc47873e608189ba21
20+
uses: actions/dependency-review-action@0ff3da6f81b812d4ec3cf37a04e2308c7a723730

requirements-test.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
-r requirements-pinned.txt
55

66
# additional test tools for linting and coverage measurement
7-
coverage==6.5.0
7+
coverage==7.0.1
88
black==22.12.0
99
isort==5.11.4
1010
pylint==2.15.9

tuf/api/metadata.py

Lines changed: 55 additions & 51 deletions
Large diffs are not rendered by default.

tuf/ngclient/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,9 @@
77
from tuf.ngclient.config import UpdaterConfig
88
from tuf.ngclient.fetcher import FetcherInterface
99
from tuf.ngclient.updater import Updater
10+
11+
__all__ = [
12+
FetcherInterface.__name__,
13+
Updater.__name__,
14+
UpdaterConfig.__name__,
15+
]

tuf/ngclient/_internal/requests_fetcher.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def __init__(self) -> None:
5050
self.chunk_size: int = 400000 # bytes
5151

5252
def _fetch(self, url: str) -> Iterator[bytes]:
53-
"""Fetches the contents of HTTP/HTTPS url from a remote server
53+
"""Fetch the contents of HTTP/HTTPS url from a remote server
5454
5555
Args:
5656
url: URL string that represents a file location.
@@ -108,7 +108,7 @@ def _chunks(self, response: "requests.Response") -> Iterator[bytes]:
108108
response.close()
109109

110110
def _get_session(self, url: str) -> requests.Session:
111-
"""Returns a different customized requests.Session per schema+hostname
111+
"""Return a different customized requests.Session per schema+hostname
112112
combination.
113113
114114
Raises:

tuf/ngclient/_internal/trusted_metadata_set.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -99,41 +99,41 @@ def __init__(self, root_data: bytes):
9999
self._load_trusted_root(root_data)
100100

101101
def __getitem__(self, role: str) -> Metadata:
102-
"""Returns current ``Metadata`` for ``role``"""
102+
"""Return current ``Metadata`` for ``role``"""
103103
return self._trusted_set[role]
104104

105105
def __len__(self) -> int:
106-
"""Returns number of ``Metadata`` objects in ``TrustedMetadataSet``"""
106+
"""Return number of ``Metadata`` objects in ``TrustedMetadataSet``"""
107107
return len(self._trusted_set)
108108

109109
def __iter__(self) -> Iterator[Metadata]:
110-
"""Returns iterator over ``Metadata`` objects in ``TrustedMetadataSet``"""
110+
"""Return iterator over ``Metadata`` objects in ``TrustedMetadataSet``"""
111111
return iter(self._trusted_set.values())
112112

113113
# Helper properties for top level metadata
114114
@property
115115
def root(self) -> Metadata[Root]:
116-
"""Current root ``Metadata``"""
116+
"""Get current root ``Metadata``"""
117117
return self._trusted_set[Root.type]
118118

119119
@property
120120
def timestamp(self) -> Optional[Metadata[Timestamp]]:
121-
"""Current timestamp ``Metadata`` or ``None``"""
121+
"""Get current timestamp ``Metadata`` or ``None``"""
122122
return self._trusted_set.get(Timestamp.type)
123123

124124
@property
125125
def snapshot(self) -> Optional[Metadata[Snapshot]]:
126-
"""Current snapshot ``Metadata`` or ``None``"""
126+
"""Get current snapshot ``Metadata`` or ``None``"""
127127
return self._trusted_set.get(Snapshot.type)
128128

129129
@property
130130
def targets(self) -> Optional[Metadata[Targets]]:
131-
"""Current targets ``Metadata`` or ``None``"""
131+
"""Get current targets ``Metadata`` or ``None``"""
132132
return self._trusted_set.get(Targets.type)
133133

134134
# Methods for updating metadata
135135
def update_root(self, data: bytes) -> Metadata[Root]:
136-
"""Verifies and loads ``data`` as new root metadata.
136+
"""Verify and load ``data`` as new root metadata.
137137
138138
Note that an expired intermediate root is considered valid: expiry is
139139
only checked for the final root in ``update_timestamp()``.
@@ -173,12 +173,12 @@ def update_root(self, data: bytes) -> Metadata[Root]:
173173
new_root.verify_delegate(Root.type, new_root)
174174

175175
self._trusted_set[Root.type] = new_root
176-
logger.info("Updated root v%d", new_root.signed.version)
176+
logger.debug("Updated root v%d", new_root.signed.version)
177177

178178
return new_root
179179

180180
def update_timestamp(self, data: bytes) -> Metadata[Timestamp]:
181-
"""Verifies and loads ``data`` as new timestamp metadata.
181+
"""Verify and load ``data`` as new timestamp metadata.
182182
183183
Note that an intermediate timestamp is allowed to be expired:
184184
``TrustedMetadataSet`` will throw an ``ExpiredMetadataError`` in
@@ -243,7 +243,7 @@ def update_timestamp(self, data: bytes) -> Metadata[Timestamp]:
243243
# protection of new timestamp: expiry is checked in update_snapshot()
244244

245245
self._trusted_set[Timestamp.type] = new_timestamp
246-
logger.info("Updated timestamp v%d", new_timestamp.signed.version)
246+
logger.debug("Updated timestamp v%d", new_timestamp.signed.version)
247247

248248
# timestamp is loaded: raise if it is not valid _final_ timestamp
249249
self._check_final_timestamp()
@@ -260,7 +260,7 @@ def _check_final_timestamp(self) -> None:
260260
def update_snapshot(
261261
self, data: bytes, trusted: Optional[bool] = False
262262
) -> Metadata[Snapshot]:
263-
"""Verifies and loads ``data`` as new snapshot metadata.
263+
"""Verify and load ``data`` as new snapshot metadata.
264264
265265
Note that an intermediate snapshot is allowed to be expired and version
266266
is allowed to not match timestamp meta version: ``TrustedMetadataSet``
@@ -338,7 +338,7 @@ def update_snapshot(
338338
# protection of new snapshot: it is checked when targets is updated
339339

340340
self._trusted_set[Snapshot.type] = new_snapshot
341-
logger.info("Updated snapshot v%d", new_snapshot.signed.version)
341+
logger.debug("Updated snapshot v%d", new_snapshot.signed.version)
342342

343343
# snapshot is loaded, but we raise if it's not valid _final_ snapshot
344344
self._check_final_snapshot()
@@ -360,7 +360,7 @@ def _check_final_snapshot(self) -> None:
360360
)
361361

362362
def update_targets(self, data: bytes) -> Metadata[Targets]:
363-
"""Verifies and loads ``data`` as new top-level targets metadata.
363+
"""Verify and load ``data`` as new top-level targets metadata.
364364
365365
Args:
366366
data: Unverified new targets metadata as bytes
@@ -377,7 +377,7 @@ def update_targets(self, data: bytes) -> Metadata[Targets]:
377377
def update_delegated_targets(
378378
self, data: bytes, role_name: str, delegator_name: str
379379
) -> Metadata[Targets]:
380-
"""Verifies and loads ``data`` as new metadata for target ``role_name``.
380+
"""Verify and load ``data`` as new metadata for target ``role_name``.
381381
382382
Args:
383383
data: Unverified new metadata as bytes
@@ -433,12 +433,12 @@ def update_delegated_targets(
433433
raise exceptions.ExpiredMetadataError(f"New {role_name} is expired")
434434

435435
self._trusted_set[role_name] = new_delegate
436-
logger.info("Updated %s v%d", role_name, version)
436+
logger.debug("Updated %s v%d", role_name, version)
437437

438438
return new_delegate
439439

440440
def _load_trusted_root(self, data: bytes) -> None:
441-
"""Verifies and loads ``data`` as trusted root metadata.
441+
"""Verify and load ``data`` as trusted root metadata.
442442
443443
Note that an expired initial root is considered valid: expiry is
444444
only checked for the final root in ``update_timestamp()``.
@@ -453,4 +453,4 @@ def _load_trusted_root(self, data: bytes) -> None:
453453
new_root.verify_delegate(Root.type, new_root)
454454

455455
self._trusted_set[Root.type] = new_root
456-
logger.info("Loaded trusted root v%d", new_root.signed.version)
456+
logger.debug("Loaded trusted root v%d", new_root.signed.version)

tuf/ngclient/fetcher.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class FetcherInterface(metaclass=abc.ABCMeta):
3030

3131
@abc.abstractmethod
3232
def _fetch(self, url: str) -> Iterator[bytes]:
33-
"""Fetches the contents of HTTP/HTTPS ``url`` from a remote server.
33+
"""Fetch the contents of HTTP/HTTPS ``url`` from a remote server.
3434
3535
Implementations must raise ``DownloadHTTPError`` if they receive
3636
an HTTP error code.
@@ -51,7 +51,7 @@ def _fetch(self, url: str) -> Iterator[bytes]:
5151
raise NotImplementedError # pragma: no cover
5252

5353
def fetch(self, url: str) -> Iterator[bytes]:
54-
"""Fetches the contents of HTTP/HTTPS ``url`` from a remote server.
54+
"""Fetch the contents of HTTP/HTTPS ``url`` from a remote server.
5555
5656
Args:
5757
url: URL string that represents a file location.

tuf/ngclient/updater.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def __init__(
106106
self.config = config or UpdaterConfig()
107107

108108
def refresh(self) -> None:
109-
"""Refreshes top-level metadata.
109+
"""Refresh top-level metadata.
110110
111111
Downloads, verifies, and loads metadata for the top-level roles in the
112112
specified order (root -> timestamp -> snapshot -> targets) implementing
@@ -143,7 +143,7 @@ def _generate_target_file_path(self, targetinfo: TargetFile) -> str:
143143
return os.path.join(self.target_dir, filename)
144144

145145
def get_targetinfo(self, target_path: str) -> Optional[TargetFile]:
146-
"""Returns ``TargetFile`` instance with information for ``target_path``.
146+
"""Return ``TargetFile`` instance with information for ``target_path``.
147147
148148
The return value can be used as an argument to
149149
``download_target()`` and ``find_cached_target()``.
@@ -177,7 +177,7 @@ def find_cached_target(
177177
targetinfo: TargetFile,
178178
filepath: Optional[str] = None,
179179
) -> Optional[str]:
180-
"""Checks whether a local file is an up to date target
180+
"""Check whether a local file is an up to date target
181181
182182
Args:
183183
targetinfo: ``TargetFile`` from ``get_targetinfo()``.
@@ -208,7 +208,7 @@ def download_target(
208208
filepath: Optional[str] = None,
209209
target_base_url: Optional[str] = None,
210210
) -> str:
211-
"""Downloads the target file specified by ``targetinfo``.
211+
"""Download the target file specified by ``targetinfo``.
212212
213213
Args:
214214
targetinfo: ``TargetFile`` from ``get_targetinfo()``.
@@ -260,7 +260,7 @@ def download_target(
260260
with open(filepath, "wb") as destination_file:
261261
shutil.copyfileobj(target_file, destination_file)
262262

263-
logger.info("Downloaded target %s", targetinfo.path)
263+
logger.debug("Downloaded target %s", targetinfo.path)
264264
return filepath
265265

266266
def _download_metadata(

0 commit comments

Comments
 (0)