from typing import Dict class Order: def __init__(self, raw_data: Dict): self.raw_data = raw_data def __getitem__(self, item): return self.raw_data[item] def contains_sku(self, sku: str) -> bool: for item in self["line_items"]: if item["sku"] == sku: return True return False def contains_meta_data_entry(self, meta_data_entry_key: str) -> bool: meta_data_entries = {meta_data_entry["key"]: meta_data_entry["value"] for meta_data_entry in self["meta_data"]} if meta_data_entry_key in meta_data_entries.keys(): return True return False @classmethod def from_api_response(cls, raw_data) -> "Order": return Order(raw_data)