Skip to content

Commit 11f32ce

Browse files
lint
1 parent a7a5f42 commit 11f32ce

10 files changed

Lines changed: 34 additions & 31 deletions

File tree

pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ requests-aws4auth = "^1.3.1"
2727
ruff = "^0.9.4"
2828
debugpy = "^1.8.13"
2929

30-
[tool.ruff]
30+
[tool.ruff.lint]
3131
select = [
3232
"E", # pycodestyle error
3333
"W", # pycodestyle warning
@@ -43,3 +43,4 @@ select = [
4343
"UP", # pyupgrade
4444
"S", # bandit
4545
]
46+
ignore = ["COM812"]

src/solesearch_api/models/sneaker.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from datetime import datetime
22
from decimal import Decimal
33
from functools import reduce
4-
from typing import Any
54

65
from pydantic import computed_field
76
from sqlalchemy import Index, UniqueConstraint

src/solesearch_api/routes/scrape.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from celery.result import AsyncResult
22
from fastapi import APIRouter, HTTPException, Request
33

4-
from solesearch_api.tasks.scraping import adidas_new_releases_task
5-
from solesearch_api.tasks.scraping import nike_scraping_task
6-
from solesearch_api.tasks.scraping import nike_instock_scraping_task
4+
from solesearch_api.tasks.scraping import (
5+
adidas_new_releases_task,
6+
nike_instock_scraping_task,
7+
nike_scraping_task,
8+
)
79

810
router = APIRouter(
911
prefix="/scrape",

src/solesearch_api/tasks/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@ def init_beat(*args, **kwargs):
5151
},
5252
}
5353

54+
import solesearch_api.tasks.alerting
5455
import solesearch_api.tasks.scraping
55-
import solesearch_api.tasks.alerting.healthcheck
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Import all tasks to ensure they are registered with Celery
2+
from solesearch_api.tasks.alerting.healthcheck import healthcheck

src/solesearch_api/tasks/alerting/healthcheck.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import logging
2+
23
import requests
34
from requests_aws4auth import AWS4Auth
45

56
from solesearch_api.config import (
67
AWS_ACCESS_KEY_ID,
78
AWS_HEALTHCHECK_URL,
8-
AWS_SECRET_ACCESS_KEY,
99
AWS_REGION,
10+
AWS_SECRET_ACCESS_KEY,
1011
ENVIRONMENT,
1112
)
1213
from solesearch_api.tasks import app
@@ -24,11 +25,12 @@
2425

2526
@app.task(name="solesearch_api.tasks.alerting.healthcheck")
2627
def healthcheck():
27-
if not ENVIRONMENT == "production":
28+
if ENVIRONMENT != "production":
2829
return
2930
response = requests.post(
3031
AWS_HEALTHCHECK_URL,
3132
json={"ping": True},
3233
auth=auth,
34+
timeout=20,
3335
)
3436
response.raise_for_status()

src/solesearch_api/tasks/scraping/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
adidas_new_releases_task,
44
)
55
from solesearch_api.tasks.scraping.retail.adidas.pdp import adidas_pdp_task
6-
from solesearch_api.tasks.scraping.retail.nike.new_releases import nike_scraping_task
76
from solesearch_api.tasks.scraping.retail.nike.in_stock import (
87
nike_instock_scraping_task,
98
)
9+
from solesearch_api.tasks.scraping.retail.nike.new_releases import nike_scraping_task

src/solesearch_api/tasks/scraping/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import json
2+
import logging
23
import os
34
import random
45
import time
56
from datetime import datetime
67
from typing import Callable
78

8-
import logging
99
import requests
1010
from requests.adapters import HTTPAdapter
1111
from sqlmodel import Session

src/solesearch_api/tasks/scraping/retail/nike/new_releases.py

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import re
2-
from datetime import UTC, datetime
1+
from datetime import datetime
32
from zoneinfo import ZoneInfo
43

54
import logfire
@@ -9,7 +8,6 @@
98
Image,
109
Link,
1110
NikeLaunch,
12-
Price,
1311
Sneaker,
1412
SneakerSize,
1513
)
@@ -289,23 +287,22 @@ def json_to_sneakers(self, json: dict) -> list[Sneaker]:
289287
# First, check for 1st-level cards that are images and see if any productIds match
290288
position = 0
291289
for card in thread["cards"]:
292-
if card["subType"] == "image":
293-
if card.get("actions"):
294-
# if any action has a productId that matches the current productId, use this image
295-
for action in card["actions"]:
296-
if action["product"]["productId"] == product_id:
297-
if card.get("imageId") and card.get("imageSlug"):
298-
image_url = f"https://static.nike.com/a/images/{card['imageId']}/{card['imageSlug']}.jpg"
299-
else:
300-
image_url = card["defaultURL"]
301-
sneaker_images.append(
302-
Image(
303-
platform=Platform.RETAIL,
304-
position=position,
305-
url=image_url,
306-
),
307-
)
308-
position += 1
290+
if card["subType"] == "image" and card.get("actions"):
291+
# if any action has a productId that matches the current productId, use this image
292+
for action in card["actions"]:
293+
if action["product"]["productId"] == product_id:
294+
if card.get("imageId") and card.get("imageSlug"):
295+
image_url = f"https://static.nike.com/a/images/{card['imageId']}/{card['imageSlug']}.jpg"
296+
else:
297+
image_url = card["defaultURL"]
298+
sneaker_images.append(
299+
Image(
300+
platform=Platform.RETAIL,
301+
position=position,
302+
url=image_url,
303+
),
304+
)
305+
position += 1
309306
if not sneaker_images:
310307
for index, image in enumerate(carousel["cards"]):
311308
if image["subType"] == "image":

src/solesearch_api/utils/browser.py

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

1111

1212
def get_random_user_agent():
13-
return random.choice(USER_AGENTS)
13+
return random.choice(USER_AGENTS) # noqa: S311
1414

1515

1616
def get_default_browser_headers():

0 commit comments

Comments
 (0)