From c2031a1258e0500bbcb192817c43196b2f857a69 Mon Sep 17 00:00:00 2001 From: matejcik Date: Tue, 14 May 2024 14:31:24 +0200 Subject: [PATCH] style: fix typing errors --- shamir_mnemonic/cli.py | 1 + shamir_mnemonic/recovery.py | 2 ++ shamir_mnemonic/shamir.py | 8 ++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/shamir_mnemonic/cli.py b/shamir_mnemonic/cli.py index cc48141..5a75ea4 100644 --- a/shamir_mnemonic/cli.py +++ b/shamir_mnemonic/cli.py @@ -177,6 +177,7 @@ def print_group_status(idx: int) -> None: def print_status() -> None: bn = style(str(recovery_state.groups_complete()), bold=True) + assert recovery_state.parameters is not None bt = style(str(recovery_state.parameters.group_threshold), bold=True) click.echo() if recovery_state.parameters.group_count > 1: diff --git a/shamir_mnemonic/recovery.py b/shamir_mnemonic/recovery.py index 40158d3..20e89f1 100644 --- a/shamir_mnemonic/recovery.py +++ b/shamir_mnemonic/recovery.py @@ -101,6 +101,8 @@ def recover(self, passphrase: bytes) -> bytes: if group.is_complete(): reduced_groups[group_index] = group.get_minimal_group() + # some groups have been added so parameters must be known + assert self.parameters is not None if len(reduced_groups) >= self.parameters.group_threshold: break diff --git a/shamir_mnemonic/shamir.py b/shamir_mnemonic/shamir.py index 5ebd7f6..c140b1a 100644 --- a/shamir_mnemonic/shamir.py +++ b/shamir_mnemonic/shamir.py @@ -21,7 +21,7 @@ import hmac import secrets -from typing import Any, Dict, Iterable, List, NamedTuple, Sequence, Set, Tuple +from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Sequence, Set, Tuple import attr @@ -49,7 +49,7 @@ class ShareGroup: def __init__(self) -> None: self.shares: Set[Share] = set() - def __iter__(self) -> Iterable[Share]: + def __iter__(self) -> Iterator[Share]: return iter(self.shares) def __len__(self) -> int: @@ -94,7 +94,7 @@ def group_parameters(self) -> ShareGroupParameters: def member_threshold(self) -> int: return next(iter(self.shares)).member_threshold - def is_complete(self) -> int: + def is_complete(self) -> bool: if self.shares: return len(self.shares) >= self.member_threshold() else: @@ -295,7 +295,7 @@ def split_ems( group_threshold: int, groups: Sequence[Tuple[int, int]], encrypted_master_secret: EncryptedMasterSecret, -) -> List[List[str]]: +) -> List[List[Share]]: """ Split an Encrypted Master Secret into mnemonic shares.