Skip to content

Commit 8e37042

Browse files
committed
fix linter
1 parent f5c914d commit 8e37042

File tree

6 files changed

+28
-22
lines changed

6 files changed

+28
-22
lines changed

src/openinflation_dataclass/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""Pydantic-модели для категорий, товаров и географии ретейла."""
1+
"""Pydantic models for products, categories, and retail geolocation."""
22

33
__version__ = "0.1.0"
44

src/openinflation_dataclass/card.py

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,22 @@
88

99

1010
class WholesalePrice(NetworkModel):
11-
"""Цена за единицу при оптовом пороге."""
11+
"""Wholesale unit price threshold."""
1212

1313
from_items: int | float
1414
price: float
1515

1616

1717
class MetaData(NetworkModel):
18-
"""Дополнительные метаданные товара."""
18+
"""Additional product metadata."""
1919

2020
name: str
2121
alias: str
2222
value: float | int | str
2323

2424

2525
class Card(NetworkModel):
26-
"""Карточка товара из источника."""
26+
"""Product card model from a source catalog."""
2727

2828
sku: str
2929
plu: str | None
@@ -57,14 +57,14 @@ class Card(NetworkModel):
5757
wholesale_price: list[WholesalePrice]
5858
price_unit: Literal["BYN", "RUB", "USD", "EUR", "AED"]
5959

60-
# Гайд на единицы:
61-
# Шоколад 200г:
60+
# Unit guide:
61+
# Chocolate 200 g:
6262
# unit="PCE", available_count=15, package_quantity=0.2, package_unit="KGM"
63-
# Молоко 1л:
63+
# Milk 1 L:
6464
# unit="PCE", available_count=10, package_quantity=1, package_unit="LTR"
65-
# Картошка на развес:
65+
# Potatoes by weight:
6666
# unit="KGM", available_count=12.7, package_quantity=None, package_unit=None
67-
# Водомат:
67+
# Water vending:
6868
# unit="LTR", available_count=29.2, package_quantity=0.5, package_unit="LTR"
6969
unit: Literal["PCE", "KGM", "LTR"]
7070
available_count: int | float | None
@@ -78,8 +78,14 @@ class Card(NetworkModel):
7878

7979
@model_validator(mode="after")
8080
def validate_business_rules(self) -> Card:
81-
if self.unit == "PCE" and self.available_count is not None and type(self.available_count) is not int:
82-
raise ValueError("Для unit='PCE' поле available_count должно быть int.")
81+
is_piece_unit = self.unit == "PCE"
82+
has_count = self.available_count is not None
83+
count_is_int = type(self.available_count) is int
84+
85+
if is_piece_unit and has_count and not count_is_int:
86+
raise ValueError("For unit='PCE', available_count must be int.")
8387
if (self.package_quantity is None) != (self.package_unit is None):
84-
raise ValueError("package_quantity и package_unit должны быть заполнены вместе или оба быть None.")
88+
raise ValueError(
89+
"package_quantity and package_unit must be set together or both set to None."
90+
)
8591
return self

src/openinflation_dataclass/geolocation.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
def _validate_hhmm(value: str, field_name: str) -> None:
1414
if re.fullmatch(r"(?:[01]\d|2[0-3]):[0-5]\d", value):
1515
return
16-
raise ValueError(f"{field_name} должно быть во времени формата HH:MM, получено: {value!r}")
16+
raise ValueError(f"{field_name} must match HH:MM format, got: {value!r}")
1717

1818

1919
class Schedule(NetworkModel):
20-
"""Время открытия/закрытия в формате HH:MM."""
20+
"""Opening/closing time in HH:MM format."""
2121

2222
open_from: str
2323
closed_from: str
@@ -31,7 +31,7 @@ def validate_hhmm(cls, value: str, info: object) -> str:
3131

3232

3333
class AdministrativeUnit(NetworkModel):
34-
"""Административная единица, в рамках которой расположен объект."""
34+
"""Administrative unit where the retail entity is located."""
3535

3636
settlement_type: Literal["village", "city"]
3737
name: str
@@ -43,7 +43,7 @@ class AdministrativeUnit(NetworkModel):
4343

4444

4545
class RetailUnit(NetworkModel):
46-
"""Торговая точка: магазин, ПВЗ или склад."""
46+
"""Retail entity: store, pickup point, or warehouse."""
4747

4848
retail_type: Literal["pickup_point", "store", "warehouse"]
4949
code: str

src/openinflation_dataclass/serialization.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99

1010

1111
def to_json(value: Any, *, ensure_ascii: bool = False) -> str:
12-
"""Сериализует pydantic-модели/структуры в JSON-строку для передачи по сети."""
12+
"""Serialize pydantic models/structures to a JSON string."""
1313
normalized = TypeAdapter(Any).dump_python(value, mode="json")
1414
return json.dumps(normalized, ensure_ascii=ensure_ascii, separators=(",", ":"))
1515

1616

1717
def from_json(payload: str | bytes | bytearray, model: type[T] | Any) -> T:
18-
"""Десериализует JSON-строку в указанный pydantic-тип."""
18+
"""Deserialize a JSON payload into a target pydantic type."""
1919
if isinstance(payload, (bytes, bytearray)):
2020
payload = payload.decode("utf-8")
2121
raw = json.loads(payload)

src/openinflation_dataclass/tree.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77

88
class Category(NetworkModel):
9-
"""Категория товаров с иерархией вложенности."""
9+
"""Product category with nested children."""
1010

1111
uid: str
1212
alias: str

src/openinflation_dataclass/types.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ def _bytesio_from_network(value: Any) -> BytesIO:
1717
try:
1818
raw = base64.b64decode(value.encode("ascii"), validate=True)
1919
except (ValueError, UnicodeEncodeError, binascii.Error) as exc:
20-
raise ValueError("Некорректная base64-строка для BytesIO.") from exc
20+
raise ValueError("Invalid base64 string for BytesIO.") from exc
2121
return BytesIO(raw)
22-
raise TypeError(f"Ожидался BytesIO/base64-строка/bytes, получено: {type(value)!r}")
22+
raise TypeError(f"Expected BytesIO/base64 string/bytes, got: {type(value)!r}")
2323

2424

2525
def _bytesio_to_network(value: BytesIO) -> str:
@@ -34,7 +34,7 @@ def _bytesio_to_network(value: BytesIO) -> str:
3434

3535

3636
class NetworkModel(BaseModel):
37-
"""Базовая pydantic-модель для сетевых сущностей."""
37+
"""Base pydantic model for network-facing entities."""
3838

3939
model_config = ConfigDict(
4040
extra="forbid",

0 commit comments

Comments
 (0)