chore(tradein): четыре символа, на которые нет ни одной ссылки #3224

Merged
lekss361 merged 1 commit from chore/3212-dead-code-tradein into main 2026-08-29 14:57:29 +00:00
4 changed files with 0 additions and 24 deletions

View file

@ -46,7 +46,6 @@ import matplotlib
matplotlib.use("Agg") # headless-safe backend — ОБЯЗАТЕЛЬНО до любого рендера: в Docker-образе
# нет GUI toolkit (Tkinter/Qt/GTK), импорт matplotlib без явного backend может тянуть их/падать.
import matplotlib.font_manager as _font_manager
import segno
from matplotlib.figure import Figure # object API, НЕ pyplot — см. _price_range_chart_svg
from matplotlib.patches import Rectangle
@ -441,14 +440,6 @@ def _expires_date(estimate: AggregatedEstimate) -> dt.date:
return dt.date.today() + dt.timedelta(days=30)
def _qr_code_data_url(text: str, size: int = 4) -> str:
"""QR-код как SVG data URL."""
qr = segno.make(text, error="m")
buf = io.BytesIO()
qr.save(buf, kind="svg", scale=size, dark="#1a1d23", light="#ffffff")
return f"data:image/svg+xml;base64,{base64.b64encode(buf.getvalue()).decode('ascii')}"
def _conf_label(confidence: str) -> str:
return {"high": "Высокая", "medium": "Средняя", "low": "Низкая"}.get(confidence, confidence)

View file

@ -141,13 +141,6 @@ def _find_files(dir_path: str, prefix: str) -> list[str]:
# ─────────────────────────────────────────────────────────────────────────────
# Стриминговый парсер (lxml iterparse + очистка)
# ─────────────────────────────────────────────────────────────────────────────
def _local_name(tag: object) -> str:
"""Локальное имя тега без namespace; '' для не-элементов (комментарии/PI)."""
if not isinstance(tag, str):
return ""
return tag.rsplit("}", 1)[-1]
def _stream_rows(path: str, marker_attr: str) -> Iterator[etree._Element]:
"""Yield row-элементов файла, у которых есть атрибут marker_attr, освобождая память.

View file

@ -71,7 +71,3 @@ class AvitoWarmupCookiesMissingError(AvitoBlockedError):
proxy-ротация, consecutive-block breaker в pipeline/backfill) отработали как на обычном
блоке площадки, без отдельного except-блока на call-сайтах.
"""
class AvitoParseError(AvitoError):
"""Cannot parse Avito HTML structure (selector changes)."""

View file

@ -92,10 +92,6 @@ class IMVAddressNotFoundError(Exception):
"""Raised when /coords/by_address returns no geoHash for given address."""
class IMVCityMismatchError(Exception):
"""Raised when locationId не входит в ожидаемый город (sanity check)."""
class IMVAuthError(Exception):
"""Avito API rejected auth / quota exceeded (HTTP 401 / 403)."""