refactor code
This commit is contained in:
31
src/session_cache.py
Normal file
31
src/session_cache.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from uuid import UUID
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class SessionCacheModel(BaseModel):
|
||||
session_id: UUID
|
||||
set_interface: list[int] | None = None
|
||||
confirm_interface: list[int] | None = None
|
||||
set_key_entry: list[int] | None = None
|
||||
confirm_key_entry: list[int] | None = None
|
||||
username: str | None = None
|
||||
customer_id: UUID
|
||||
|
||||
def deduce_passcode(self, attrs_per_key, confirm_key_entry: list[int]) -> list[int]:
|
||||
set_key_entry = self.set_key_entry
|
||||
assert (len(set_key_entry) == len(confirm_key_entry))
|
||||
set_interface = self.set_interface
|
||||
confirm_interface = self.confirm_interface
|
||||
set_key_vals = [set_interface[key * attrs_per_key:(key + 1) * attrs_per_key] for key in set_key_entry]
|
||||
confirm_key_vals = [confirm_interface[key * attrs_per_key:(key + 1) * attrs_per_key] for key in
|
||||
confirm_key_entry]
|
||||
|
||||
passcode = []
|
||||
for idx in range(len(set_key_entry)):
|
||||
set_key = set(set_key_vals[idx])
|
||||
confirm_key = set(confirm_key_vals[idx])
|
||||
intersection = list(set_key.intersection(confirm_key))
|
||||
assert (len(intersection) == 1)
|
||||
passcode.append(intersection[0])
|
||||
return passcode
|
||||
Reference in New Issue
Block a user