2020
2121class PretixCache (BaseModel ):
2222 item_names_by_id : dict [int , str ]
23- tickets_by_key : dict [str , list [Ticket ]]
23+ tickets_by_key : dict [str , set [Ticket ]]
2424
2525
2626class PretixConnector :
@@ -36,7 +36,7 @@ def __init__(self, *, url: str, token: str, cache_file: Path | None = None) -> N
3636 self ._cache_file = cache_file
3737
3838 self .item_names_by_id : dict [int , str ] = {}
39- self .tickets_by_key : dict [str , list [Ticket ]] = defaultdict (list )
39+ self .tickets_by_key : dict [str , set [Ticket ]] = defaultdict (set )
4040
4141 self ._load_cache ()
4242
@@ -111,7 +111,7 @@ async def _fetch_pretix_orders(self, since: datetime | None = None) -> None:
111111 variation = variation_name ,
112112 )
113113 if order .is_paid :
114- self .tickets_by_key [ticket .key ].append (ticket )
114+ self .tickets_by_key [ticket .key ].add (ticket )
115115 elif ticket .key in self .tickets_by_key : # remove cancelled tickets
116116 self .tickets_by_key .pop (ticket .key )
117117
@@ -174,6 +174,6 @@ def get_tickets(self, *, order: str, name: str) -> list[Ticket]:
174174 key = generate_ticket_key (order = order , name = possible_name )
175175
176176 if key in self .tickets_by_key :
177- return self .tickets_by_key [key ]
177+ return list ( self .tickets_by_key [key ])
178178
179179 return []
0 commit comments