Spaces:
Sleeping
Sleeping
Download scripts/utils.py from Abrar144/stylesense-backend: direct link, hf CLI and curl.
- Browser
- Download file 2.06 kB
-
https://huggingface.co/spaces/Abrar144/stylesense-backend/resolve/main/scripts/utils.py
- Command line
-
hf download hf://spaces/Abrar144/stylesense-backend/scripts/utils.py
-
curl -L -o utils.py https://huggingface.co/spaces/Abrar144/stylesense-backend/resolve/main/scripts/utils.py
2.06 kB
| """ | |
| Shared utilities for seeding scripts. | |
| """ | |
| from PIL import Image | |
| from io import BytesIO | |
| import re | |
| import random | |
| def image_to_bytes(pil_image: Image.Image, fmt: str = "WEBP", quality: int = 85) -> bytes: | |
| """Convert PIL image to bytes in the specified format.""" | |
| buf = BytesIO() | |
| pil_image.convert("RGB").save(buf, format=fmt, quality=quality) | |
| return buf.getvalue() | |
| def clean_text(text: str) -> str: | |
| """Remove extra whitespace and non-printable chars.""" | |
| return re.sub(r"\s+", " ", text).strip() | |
| def estimate_price(article_type: str) -> float: | |
| """Assign a realistic price in ৳ based on article type.""" | |
| price_ranges = { | |
| "Shirts": (399, 1499), | |
| "Tshirts": (299, 999), | |
| "Sweaters": (699, 2499), | |
| "Jeans": (999, 3499), | |
| "Casual Shoes": (799, 2999), | |
| "Sports Shoes": (1499, 4999), | |
| "Formal Shoes": (1499, 4999), | |
| "Sneakers": (1499, 4999), | |
| "Bags": (499, 2999), | |
| "Handbags": (799, 3999), | |
| "Backpacks": (599, 2499), | |
| "Dresses": (799, 3499), | |
| "Jackets": (999, 4999), | |
| "Watches": (799, 5999), | |
| "Sunglasses": (399, 1999), | |
| "Kurtas": (399, 1499), | |
| "Tops": (399, 1299), | |
| "Shorts": (399, 999), | |
| "Trousers": (699, 2499), | |
| "Track Pants": (499, 1499), | |
| "Sandals": (399, 1499), | |
| "Flip Flops": (199, 699), | |
| "Heels": (999, 3499), | |
| "Belts": (299, 1499), | |
| "Wallets": (399, 1999), | |
| "Sarees": (999, 4999), | |
| "Dupatta": (299, 999), | |
| "Caps": (199, 799), | |
| "Socks": (99, 399), | |
| "Jewellery": (199, 2999), | |
| "Scarves": (299, 999), | |
| "Ties": (299, 999), | |
| } | |
| low, high = price_ranges.get(article_type, (499, 1999)) | |
| # Round to nearest 99 for realistic pricing | |
| raw = random.uniform(low, high) | |
| return round(raw / 100) * 100 - 1 | |