diff --git a/examples/repo_example/basic_repo.py b/examples/repo_example/basic_repo.py index 480a109053..39855f71ef 100644 --- a/examples/repo_example/basic_repo.py +++ b/examples/repo_example/basic_repo.py @@ -28,6 +28,7 @@ from collections import OrderedDict from datetime import datetime, timedelta from pathlib import Path +from typing import Any, Dict from securesystemslib.keys import generate_ed25519_key from securesystemslib.signer import SSlibSigner @@ -48,7 +49,7 @@ from tuf.api.serialization.json import JSONSerializer -def _in(days): +def _in(days: float) -> datetime: """Adds 'days' to now and returns datetime object w/o microseconds.""" return datetime.utcnow().replace(microsecond=0) + timedelta(days=days) @@ -89,8 +90,8 @@ def _in(days): # Define containers for role objects and cryptographic keys created below. This # allows us to sign and write metadata in a batch more easily. -roles = {} -keys = {} +roles: Dict[str, Metadata] = {} +keys: Dict[str, Dict[str, Any]] = {} # Targets (integrity) @@ -117,7 +118,7 @@ def _in(days): local_path = Path(__file__).resolve() target_path = f"{local_path.parts[-2]}/{local_path.parts[-1]}" -target_file_info = TargetFile.from_file(target_path, local_path) +target_file_info = TargetFile.from_file(target_path, str(local_path)) roles["targets"].signed.targets[target_path] = target_file_info # Snapshot (consistency) @@ -332,7 +333,7 @@ def _in(days): del roles["targets"].signed.targets[target_path] # Increase expiry (delegators should be less volatile) -roles["targets"].expires = _in(365) +roles["targets"].signed.expires = _in(365) # Snapshot + Timestamp + Sign + Persist diff --git a/pyproject.toml b/pyproject.toml index 339f2416dc..db4dd91496 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -79,7 +79,8 @@ show_error_codes = "True" files = [ "tuf/api/", "tuf/ngclient", - "tuf/exceptions.py" + "tuf/exceptions.py", + "examples/", ] [[tool.mypy.overrides]] diff --git a/tox.ini b/tox.ini index a6e0d765d8..f7c891e343 100644 --- a/tox.ini +++ b/tox.ini @@ -40,9 +40,9 @@ commands = changedir = {toxinidir} commands = # Use different configs for new (tuf/api/*) and legacy code - black --check --diff tuf/api tuf/ngclient - isort --check --diff tuf/api tuf/ngclient - pylint -j 0 tuf/api tuf/ngclient --rcfile=pyproject.toml + black --check --diff tuf/api tuf/ngclient examples + isort --check --diff tuf/api tuf/ngclient examples + pylint -j 0 tuf/api tuf/ngclient --rcfile=pyproject.toml examples # NOTE: Contrary to what the pylint docs suggest, ignoring full paths does # work, unfortunately each subdirectory has to be ignored explicitly.