Once and for all reformat.
Will be using black code formatter
This commit is contained in:
@@ -11,7 +11,9 @@ import token_bot.persistant_database as pdb
|
||||
|
||||
|
||||
class Alert:
|
||||
def __init__(self, alert: pdb.AlertType, flavor: Flavor, region: Region, price: int = 0) -> None:
|
||||
def __init__(
|
||||
self, alert: pdb.AlertType, flavor: Flavor, region: Region, price: int = 0
|
||||
) -> None:
|
||||
# AlertType is the Primary Key
|
||||
self.alert_type: pdb.AlertType = alert
|
||||
# Flavor (Retail, Classic) is the Sort Key
|
||||
@@ -22,18 +24,18 @@ class Alert:
|
||||
self.users: List[pdb.User] = []
|
||||
|
||||
@classmethod
|
||||
def from_item(cls, primary_key: int, sort_key: str, users: List[int]) -> 'Alert':
|
||||
def from_item(cls, primary_key: int, sort_key: str, users: List[int]) -> "Alert":
|
||||
alert_type = pdb.AlertType(primary_key)
|
||||
flavor_repr, region_repr, price_repr = sort_key.split('-')
|
||||
flavor_repr, region_repr, price_repr = sort_key.split("-")
|
||||
flavor = Flavor(int(flavor_repr))
|
||||
region = Region(region_repr)
|
||||
price = int(price_repr)
|
||||
return cls(alert_type, flavor, region, price)
|
||||
|
||||
@classmethod
|
||||
def from_str(cls, string_trinity: str) -> 'Alert':
|
||||
alert_repr, flavor_repr, region_repr, price_repr = string_trinity.split('-')
|
||||
if len(string_trinity.split('-')) != 4:
|
||||
def from_str(cls, string_trinity: str) -> "Alert":
|
||||
alert_repr, flavor_repr, region_repr, price_repr = string_trinity.split("-")
|
||||
if len(string_trinity.split("-")) != 4:
|
||||
raise ValueError
|
||||
alert = pdb.AlertType(int(alert_repr))
|
||||
flavor = Flavor(int(flavor_repr))
|
||||
@@ -61,20 +63,24 @@ class Alert:
|
||||
def key(self) -> dict[str, str | int]:
|
||||
return {
|
||||
self.primary_key_name: self.primary_key,
|
||||
self.sort_key_name: self.sort_key
|
||||
self.sort_key_name: self.sort_key,
|
||||
}
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.alert_type.value}-{self.flavor.value}-{self.region.value}-{self.price}"
|
||||
|
||||
def __eq__(self, other):
|
||||
return self.alert_type == other.alert_type and self.flavor == other.flavor and self.price == other.price
|
||||
return (
|
||||
self.alert_type == other.alert_type
|
||||
and self.flavor == other.flavor
|
||||
and self.price == other.price
|
||||
)
|
||||
|
||||
def to_human_string(self):
|
||||
if self.alert_type == AlertType.SPECIFIC_PRICE:
|
||||
raise NotImplementedError
|
||||
else:
|
||||
alert_type_str = ' '.join(self.alert_type.name.split("_"))
|
||||
alert_type_str = " ".join(self.alert_type.name.split("_"))
|
||||
return f"{alert_type_str.title()}"
|
||||
|
||||
async def _lazy_load(self, table: Table, consistent: bool = False) -> None:
|
||||
@@ -95,19 +101,16 @@ class Alert:
|
||||
item={
|
||||
self.primary_key_name: self.primary_key,
|
||||
self.sort_key_name: self.sort_key,
|
||||
'users': user_ids
|
||||
"users": user_ids,
|
||||
}
|
||||
)
|
||||
|
||||
async def get(self, table: Table, consistent: bool = False) -> bool:
|
||||
try:
|
||||
response = await table.get_item(
|
||||
key=self.key,
|
||||
consistent_read=consistent
|
||||
)
|
||||
response = await table.get_item(key=self.key, consistent_read=consistent)
|
||||
except ItemNotFound:
|
||||
return False
|
||||
self.users = [pdb.User(int(user_id)) for user_id in response['users']]
|
||||
self.users = [pdb.User(int(user_id)) for user_id in response["users"]]
|
||||
self._loaded = True
|
||||
return True
|
||||
|
||||
@@ -116,13 +119,17 @@ class Alert:
|
||||
|
||||
return self.users
|
||||
|
||||
async def add_user(self, table: Table, user: pdb.User, consistent: bool = False) -> None:
|
||||
async def add_user(
|
||||
self, table: Table, user: pdb.User, consistent: bool = False
|
||||
) -> None:
|
||||
await self._lazy_load(table, consistent=consistent)
|
||||
|
||||
if user not in self.users:
|
||||
await self._append_user(table=table, user=user)
|
||||
|
||||
async def remove_user(self, table: Table, user: pdb.User, consistent: bool = True) -> None:
|
||||
async def remove_user(
|
||||
self, table: Table, user: pdb.User, consistent: bool = True
|
||||
) -> None:
|
||||
await self._lazy_load(table, consistent=consistent)
|
||||
|
||||
if user in self.users:
|
||||
|
||||
Reference in New Issue
Block a user