mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-26 17:38:39 +00:00
core: improve typing annotations
This commit is contained in:
parent
0a594ea1e9
commit
5b6fa1136a
@ -10,8 +10,12 @@ from trezor.ui.text import Text
|
||||
from apps.common.confirm import require_confirm
|
||||
from apps.common.request_pin import PinCancelled, request_pin
|
||||
|
||||
if False:
|
||||
from typing import Any
|
||||
from trezor.messages.ChangePin import ChangePin
|
||||
|
||||
async def change_pin(ctx, msg):
|
||||
|
||||
async def change_pin(ctx: wire.Context, msg: ChangePin) -> Success:
|
||||
|
||||
# confirm that user wants to change the pin
|
||||
await require_confirm_change_pin(ctx, msg)
|
||||
@ -42,7 +46,7 @@ async def change_pin(ctx, msg):
|
||||
return Success(message="PIN removed")
|
||||
|
||||
|
||||
def require_confirm_change_pin(ctx, msg):
|
||||
def require_confirm_change_pin(ctx: wire.Context, msg: ChangePin) -> None:
|
||||
has_pin = config.has_pin()
|
||||
|
||||
if msg.remove and has_pin: # removing pin
|
||||
@ -64,7 +68,7 @@ def require_confirm_change_pin(ctx, msg):
|
||||
return require_confirm(ctx, text)
|
||||
|
||||
|
||||
async def request_pin_confirm(ctx: wire.Context, *args, **kwargs) -> str:
|
||||
async def request_pin_confirm(ctx: wire.Context, *args: Any, **kwargs: Any) -> str:
|
||||
while True:
|
||||
pin1 = await request_pin_ack(ctx, "Enter new PIN", *args, **kwargs)
|
||||
pin2 = await request_pin_ack(ctx, "Re-enter new PIN", *args, **kwargs)
|
||||
@ -73,7 +77,7 @@ async def request_pin_confirm(ctx: wire.Context, *args, **kwargs) -> str:
|
||||
await pin_mismatch()
|
||||
|
||||
|
||||
async def request_pin_ack(ctx: wire.Context, *args, **kwargs) -> str:
|
||||
async def request_pin_ack(ctx: wire.Context, *args: Any, **kwargs: Any) -> str:
|
||||
try:
|
||||
await ctx.call(ButtonRequest(code=ButtonRequestType.Other), ButtonAck)
|
||||
return await ctx.wait(request_pin(*args, **kwargs))
|
||||
@ -81,7 +85,7 @@ async def request_pin_ack(ctx: wire.Context, *args, **kwargs) -> str:
|
||||
raise wire.ActionCancelled("Cancelled")
|
||||
|
||||
|
||||
async def pin_mismatch():
|
||||
async def pin_mismatch() -> None:
|
||||
text = Text("PIN mismatch", ui.ICON_WRONG, ui.RED)
|
||||
text.normal("The PINs you entered", "do not match.")
|
||||
text.normal("")
|
||||
|
@ -39,8 +39,10 @@ def _process_slip39(words: str) -> Optional[bytes]:
|
||||
if threshold == 1:
|
||||
raise ValueError("Threshold equal to 1 is not allowed.")
|
||||
|
||||
remaining = storage.recovery.get_remaining()
|
||||
|
||||
# if this is the first share, parse and store metadata
|
||||
if not storage.recovery.get_remaining():
|
||||
if not remaining:
|
||||
storage.recovery.set_slip39_iteration_exponent(iteration_exponent)
|
||||
storage.recovery.set_slip39_identifier(identifier)
|
||||
storage.recovery.set_slip39_threshold(threshold)
|
||||
@ -55,7 +57,7 @@ def _process_slip39(words: str) -> Optional[bytes]:
|
||||
raise RuntimeError("Slip39: This mnemonic was already entered")
|
||||
|
||||
# add mnemonic to storage
|
||||
remaining = storage.recovery.get_remaining() - 1
|
||||
remaining -= 1
|
||||
storage.recovery.set_remaining(remaining)
|
||||
storage.recovery_shares.set(index, words)
|
||||
if remaining != 0:
|
||||
|
@ -15,7 +15,7 @@ usb.bus.open()
|
||||
utils.set_mode_unprivileged()
|
||||
|
||||
|
||||
def _boot_recovery():
|
||||
def _boot_recovery() -> None:
|
||||
# load applications
|
||||
import apps.homescreen
|
||||
|
||||
@ -27,7 +27,7 @@ def _boot_recovery():
|
||||
loop.schedule(recovery_homescreen())
|
||||
|
||||
|
||||
def _boot_default():
|
||||
def _boot_default() -> None:
|
||||
# load applications
|
||||
import apps.homescreen
|
||||
import apps.management
|
||||
|
@ -6,7 +6,7 @@ bytes, string, embedded message and repeated fields.
|
||||
from micropython import const
|
||||
|
||||
if False:
|
||||
from typing import Any, Dict, List, Type, TypeVar
|
||||
from typing import Any, Dict, Iterable, List, Type, TypeVar, Union
|
||||
from typing_extensions import Protocol
|
||||
|
||||
class AsyncReader(Protocol):
|
||||
@ -124,7 +124,7 @@ class BoolType:
|
||||
class EnumType:
|
||||
WIRE_TYPE = 0
|
||||
|
||||
def __init__(self, _, enum_values):
|
||||
def __init__(self, name: str, enum_values: Iterable[int]) -> None:
|
||||
self.enum_values = enum_values
|
||||
|
||||
def validate(self, fvalue: int) -> int:
|
||||
@ -190,6 +190,11 @@ async def load_message(
|
||||
fields = msg_type.get_fields()
|
||||
msg = msg_type()
|
||||
|
||||
if False:
|
||||
SingularValue = Union[int, bool, bytearray, str, MessageType]
|
||||
Value = Union[SingularValue, List[SingularValue]]
|
||||
fvalue = 0 # type: Value
|
||||
|
||||
while True:
|
||||
try:
|
||||
fkey = await load_uvarint(reader)
|
||||
@ -276,7 +281,7 @@ async def dump_message(
|
||||
if isinstance(ftype, type) and issubclass(ftype, MessageType):
|
||||
ffields = ftype.get_fields()
|
||||
else:
|
||||
ffields = None
|
||||
del ffields
|
||||
|
||||
for svalue in fvalue:
|
||||
await dump_uvarint(writer, fkey)
|
||||
|
@ -108,7 +108,7 @@ def header(
|
||||
display.text(44, 35, title, BOLD, fg, bg)
|
||||
|
||||
|
||||
def header_warning(message: str, clear=True) -> None:
|
||||
def header_warning(message: str, clear: bool = True) -> None:
|
||||
# TODO: review: is the clear=True really needed?
|
||||
display.bar(0, 0, WIDTH, 30, style.YELLOW)
|
||||
display.text_center(WIDTH // 2, 22, message, BOLD, style.BLACK, style.YELLOW)
|
||||
@ -116,7 +116,7 @@ def header_warning(message: str, clear=True) -> None:
|
||||
display.bar(0, 30, WIDTH, HEIGHT - 30, style.BG)
|
||||
|
||||
|
||||
def header_error(message: str, clear=True) -> None:
|
||||
def header_error(message: str, clear: bool = True) -> None:
|
||||
# TODO: review: as above
|
||||
display.bar(0, 0, WIDTH, 30, style.RED)
|
||||
display.text_center(WIDTH // 2, 22, message, BOLD, style.WHITE, style.RED)
|
||||
|
@ -42,8 +42,8 @@ class Loader(ui.Control):
|
||||
self.normal_style = style.normal
|
||||
self.active_style = style.active
|
||||
self.target_ms = _TARGET_MS
|
||||
self.start_ms = None
|
||||
self.stop_ms = None
|
||||
self.start_ms = None # type: Optional[int]
|
||||
self.stop_ms = None # type: Optional[int]
|
||||
|
||||
def start(self) -> None:
|
||||
self.start_ms = utime.ticks_ms()
|
||||
@ -62,6 +62,8 @@ class Loader(ui.Control):
|
||||
target = self.target_ms
|
||||
start = self.start_ms
|
||||
stop = self.stop_ms
|
||||
if start is None:
|
||||
return
|
||||
now = utime.ticks_ms()
|
||||
if stop is None:
|
||||
r = min(now - start, target)
|
||||
|
Loading…
Reference in New Issue
Block a user