"""Check what non-sneaker items might be slipping through the bol import""" import gzip, csv from collections import defaultdict TARGET_BRANDS = { 'nike', 'adidas', 'adidas originals', 'new balance', 'puma', 'asics', 'jordan', 'vans', 'converse', 'reebok', 'skechers', 'hoka', 'on running', 'on', 'salomon', 'diadora', 'karhu', 'filling pieces', 'autry', 'common projects', 'saucony', 'hummel', 'geox', 'floris van bommel', 'nubikk', 'cruyff', 'fila', 'lacoste', 'tommy hilfiger', 'reebok classic', } # Words that indicate NOT a sneaker EXCLUDE_KEYWORDS = [ 'sandaal', 'sandal', 'slipper', 'slide', 'flip flop', 'muil', 'clog', 'laars', 'boot', 'pump', 'ballerina', 'espadrille', 'loafer', 'mocassin', 'pantoffel', 'wandelschoen', 'hiking', 'voetbal', 'football', 'rugby', 'tennis ', 'indoor', 'zaal', 'badschoen', 'waterschoen', 'aqua', 'sokken', 'veters', 'inlegzool', 'schoenlepel', 'tas ', 'rugzak', 'badslippers', 'teenslippers', 'klompen', ] suspicious = defaultdict(list) clean_count = 0 dirty_count = 0 with gzip.open(r'D:\bol-footwear-feed.csv.gz', 'rt', encoding='utf-8', errors='replace') as f: reader = csv.DictReader(f, delimiter='|', quotechar='"') for row in reader: subgroup = row.get('Category.subgroup', '').lower() if 'sneaker' not in subgroup: continue if row.get('OfferNL.isDeliverable') != 'Y' or row.get('OfferNL.condition') != 'new': continue brand = row.get('brand', '').strip() if brand.lower() not in TARGET_BRANDS: continue title = row.get('title', '').lower() brick = row.get('Gpc.brickName', '').lower() subsub = row.get('Category.subssubgroup', '').lower() found = False for kw in EXCLUDE_KEYWORDS: if kw in title or kw in brick: suspicious[kw].append(title[:80]) dirty_count += 1 found = True break if not found: clean_count += 1 print(f"Clean sneakers: {clean_count}") print(f"Suspicious items: {dirty_count}") print() for kw, items in sorted(suspicious.items(), key=lambda x: -len(x[1])): print(f" '{kw}': {len(items)} items") for t in items[:3]: print(f" - {t}")