Files
inkreach-prefect/api/_common/batch.py
T

37 lines
1.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""批量切分辅助:对应 TS SDK 里订单 OID/快递单号、SDS 订单关键词的批量拆分。"""
from __future__ import annotations
import re
_MULTI_SEP = re.compile(r"[,,\s\n\r]+")
def parse_id_text(text: str) -> list[str]:
"""把逗号/空白/换行分隔的字符串解析为去重的 ID 列表(RIIN 用)。"""
items = _MULTI_SEP.split(text or "")
seen: dict[str, None] = {}
for item in items:
item = item.strip()
if item and item not in seen:
seen[item] = None
return list(seen.keys())
def split_lines(text: str) -> list[str]:
"""把换行分隔的字符串解析为去重的列表(SDS 订单号 keywords 用)。"""
items = re.split(r"[\n\r]+", text or "")
seen: dict[str, None] = {}
for item in items:
item = item.strip()
if item and item not in seen:
seen[item] = None
return list(seen.keys())
def chunk(items: list[str], size: int) -> list[list[str]]:
"""把列表按 size 切成多批。"""
if not items:
return []
return [items[i : i + size] for i in range(0, len(items), size)]