Skip to content

Commit 4c68119

Browse files
authored
Merge pull request #4 from Open-Inflation/snapshot-bot/update-snapshots
Snapshot bot/update snapshots
2 parents 4f67087 + 41d0374 commit 4c68119

17 files changed

Lines changed: 3838 additions & 6899 deletions

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,6 @@ jobs:
5656
- name: auto PR schema
5757
# отмена джобы исключается (поэтому и не always)
5858
if: success() || failure()
59-
uses: Miskler/pytest-jsonschema-snapshot-bot@v12
59+
uses: Miskler/pytest-jsonschema-snapshot-bot@v14
6060
with:
6161
github_token: ${{ secrets.GITHUB_TOKEN }}

docs/requirements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,4 @@ sphinx
22
sphinx-autoapi
33
jsoncrack-for-sphinx
44
furo
5-
enum-tools
65
sphinx_toolbox

docs/source/_api/fixprice_api.manager.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,4 @@
3535

3636
.. autosummary::
3737

38-
PWTimeoutError
39-
38+
PWTimeoutError

docs/source/conf.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ def _get_version() -> str:
5858
"sphinx.ext.linkcode",
5959
"sphinx.ext.doctest",
6060
"sphinx.ext.duration",
61-
"enum_tools.autoenum",
6261
"jsoncrack_for_sphinx",
6362
# "myst_parser", # если понадобится Markdown/MyST — просто раскомментируй
6463
]

example.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import asyncio
2+
from fixprice_api import FixPriceAPI, CatalogSort
3+
from PIL import Image
4+
5+
6+
async def main():
7+
async with FixPriceAPI() as api:
8+
# 1. Получаем дерево категорий
9+
tree_data = (await api.Catalog.tree()).json()
10+
first_alias = tree_data[next(iter(tree_data))]["alias"]
11+
print(f"Первая категория: {first_alias}")
12+
13+
# 2. Список товаров в категории
14+
products = (
15+
await api.Catalog.products_list(
16+
category_alias=first_alias,
17+
page=1,
18+
limit=24,
19+
sort=CatalogSort.POPULARITY,
20+
)
21+
).json()
22+
first_product_id = products[0]["id"]
23+
first_product_url = products[0]["url"]
24+
print(f"Первый товар: {products[0]['title']!s:.60s} ({first_product_id})")
25+
26+
# 3. Геолокация (влияет на каталог и баланс)
27+
cities = (await api.Geolocation.cities_list(country_id=2)).json() # Россия
28+
api.city_id = cities[0]["id"]
29+
print(f"Текущий city_id: {api.city_id}")
30+
31+
# 4. Проверка наличия товара по магазинам
32+
balance = (await api.Catalog.Product.balance(product_id=first_product_id)).json()
33+
print(f"Проверено магазинов: {len(balance)}")
34+
35+
# 5. Подробное инфо о товаре
36+
info = (await api.Catalog.Product.info(url=first_product_url)).json()
37+
print(f"Подробно о товаре: {list(info.keys())}")
38+
39+
# 6. Загрузка изображения
40+
image_url = products[0]["images"][0]["src"]
41+
image_stream = await api.General.download_image(image_url)
42+
with Image.open(image_stream) as img:
43+
print(f"Image format: {img.format}, size: {img.size}")
44+
45+
46+
if __name__ == "__main__":
47+
asyncio.run(main())

fixprice_api/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from .manager import FixPriceAPI
21
from .abstraction import CatalogSort
2+
from .manager import FixPriceAPI
33

44
__all__ = ["FixPriceAPI", "CatalogSort"]
5-
__version__ = "0.2.4"
5+
__version__ = "0.2.4.1"

fixprice_api/endpoints/advertising.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
"""Реклама"""
22

3-
from human_requests import autotest
4-
from human_requests.abstraction import FetchResponse, HttpMethod
53
from typing import TYPE_CHECKING
64

7-
from human_requests import ApiChild
5+
from human_requests import ApiChild, autotest
6+
from human_requests.abstraction import FetchResponse, HttpMethod
87

98
if TYPE_CHECKING:
109
from fixprice_api.manager import FixPriceAPI

fixprice_api/endpoints/catalog.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
from __future__ import annotations
44

55
import json
6+
from dataclasses import dataclass
67
from types import MethodType
8+
from typing import TYPE_CHECKING, Optional, overload
79

10+
from human_requests import ApiChild, ApiParent, api_child_field, autotest
11+
from human_requests.abstraction import FetchResponse, HttpMethod
812
from playwright.async_api import Response as PWResponse
9-
from dataclasses import dataclass
10-
from typing import Optional, TYPE_CHECKING, overload
13+
1114
from .. import abstraction
12-
from human_requests import autotest
13-
from human_requests.abstraction import FetchResponse, HttpMethod
14-
from human_requests import ApiChild, ApiParent, api_child_field
1515

1616
if TYPE_CHECKING:
1717
from fixprice_api.manager import FixPriceAPI
@@ -173,7 +173,9 @@ async def info(
173173
""")
174174

175175
nuxt_data = (
176-
json.loads(raw_json)["data"][0]["categoryData"]["product"]
176+
json.loads(raw_json)["useState"]["uniquePseudoAsyncDataStateKey"][
177+
"product"
178+
]
177179
if raw_json
178180
else None
179181
)

fixprice_api/endpoints/general.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
"""Общий (не класифицируемый) функционал"""
22

3-
from typing import TYPE_CHECKING
43
from io import BytesIO
5-
from human_requests.abstraction import Proxy
6-
from aiohttp_retry import ExponentialRetry, RetryClient
4+
from typing import TYPE_CHECKING
75

6+
from aiohttp_retry import ExponentialRetry, RetryClient
87
from human_requests import ApiChild
8+
from human_requests.abstraction import Proxy
99

1010
if TYPE_CHECKING:
1111
from fixprice_api.manager import FixPriceAPI

fixprice_api/endpoints/geolocation.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
from __future__ import annotations
44

55
from dataclasses import dataclass
6-
from human_requests import autotest
7-
from human_requests.abstraction import FetchResponse, HttpMethod
86
from typing import TYPE_CHECKING
97

10-
from human_requests import ApiChild, ApiParent, api_child_field
8+
from human_requests import ApiChild, ApiParent, api_child_field, autotest
9+
from human_requests.abstraction import FetchResponse, HttpMethod
1110

1211
if TYPE_CHECKING:
1312
from fixprice_api.manager import FixPriceAPI

0 commit comments

Comments
 (0)