mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-07-19 10:48:58 +08:00
Update .pre-commit-config.yaml to reflect current linting and formatt… (#12841)
* Update .pre-commit-config.yaml to reflect current linting and formatting setup - Replaced outdated references to `black` with the actual tools used in the repo: `ruff` and `ruff-format`. - Ensured all configured hooks are up to date and relevant to Python development. - This aligns the linting and formatting setup with the project's actual pre-commit pipeline. - Improves consistency for contributors by preventing confusion between formatting tools. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * We use httpx, not requests * response = httpx.get(request_url, timeout=10).raise_for_status() --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Christian Clauss <cclauss@me.com>
This commit is contained in:
@ -18,7 +18,7 @@ repos:
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: v0.11.11
|
||||
hooks:
|
||||
- id: ruff
|
||||
- id: ruff-check
|
||||
- id: ruff-format
|
||||
|
||||
- repo: https://github.com/codespell-project/codespell
|
||||
@ -29,7 +29,7 @@ repos:
|
||||
- tomli
|
||||
|
||||
- repo: https://github.com/tox-dev/pyproject-fmt
|
||||
rev: "v2.6.0"
|
||||
rev: v2.6.0
|
||||
hooks:
|
||||
- id: pyproject-fmt
|
||||
|
||||
@ -53,12 +53,11 @@ repos:
|
||||
args:
|
||||
- --explicit-package-bases
|
||||
- --ignore-missing-imports
|
||||
- --install-types # See mirrors-mypy README.md
|
||||
- --install-types
|
||||
- --non-interactive
|
||||
additional_dependencies: [types-requests]
|
||||
|
||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
||||
rev: "v4.0.0-alpha.8"
|
||||
rev: v4.0.0-alpha.8
|
||||
hooks:
|
||||
- id: prettier
|
||||
types_or: [toml, yaml]
|
||||
|
@ -5,12 +5,10 @@ after providing the drug name and zipcode.
|
||||
|
||||
"""
|
||||
|
||||
from urllib.error import HTTPError
|
||||
|
||||
import httpx
|
||||
from bs4 import BeautifulSoup
|
||||
from requests import exceptions, get
|
||||
|
||||
BASE_URL = "https://www.wellrx.com/prescriptions/{0}/{1}/?freshSearch=true"
|
||||
BASE_URL = "https://www.wellrx.com/prescriptions/{}/{}/?freshSearch=true"
|
||||
|
||||
|
||||
def fetch_pharmacy_and_price_list(drug_name: str, zip_code: str) -> list | None:
|
||||
@ -18,8 +16,8 @@ def fetch_pharmacy_and_price_list(drug_name: str, zip_code: str) -> list | None:
|
||||
|
||||
This function will take input of drug name and zipcode,
|
||||
then request to the BASE_URL site.
|
||||
Get the page data and scrape it to the generate the
|
||||
list of lowest prices for the prescription drug.
|
||||
Get the page data and scrape it to generate the
|
||||
list of the lowest prices for the prescription drug.
|
||||
|
||||
Args:
|
||||
drug_name (str): [Drug name]
|
||||
@ -28,12 +26,12 @@ def fetch_pharmacy_and_price_list(drug_name: str, zip_code: str) -> list | None:
|
||||
Returns:
|
||||
list: [List of pharmacy name and price]
|
||||
|
||||
>>> fetch_pharmacy_and_price_list(None, None)
|
||||
|
||||
>>> fetch_pharmacy_and_price_list(None, 30303)
|
||||
|
||||
>>> fetch_pharmacy_and_price_list("eliquis", None)
|
||||
|
||||
>>> print(fetch_pharmacy_and_price_list(None, None))
|
||||
None
|
||||
>>> print(fetch_pharmacy_and_price_list(None, 30303))
|
||||
None
|
||||
>>> print(fetch_pharmacy_and_price_list("eliquis", None))
|
||||
None
|
||||
"""
|
||||
|
||||
try:
|
||||
@ -42,10 +40,7 @@ def fetch_pharmacy_and_price_list(drug_name: str, zip_code: str) -> list | None:
|
||||
return None
|
||||
|
||||
request_url = BASE_URL.format(drug_name, zip_code)
|
||||
response = get(request_url, timeout=10)
|
||||
|
||||
# Is the response ok?
|
||||
response.raise_for_status()
|
||||
response = httpx.get(request_url, timeout=10).raise_for_status()
|
||||
|
||||
# Scrape the data using bs4
|
||||
soup = BeautifulSoup(response.text, "html.parser")
|
||||
@ -53,14 +48,14 @@ def fetch_pharmacy_and_price_list(drug_name: str, zip_code: str) -> list | None:
|
||||
# This list will store the name and price.
|
||||
pharmacy_price_list = []
|
||||
|
||||
# Fetch all the grids that contains the items.
|
||||
# Fetch all the grids that contain the items.
|
||||
grid_list = soup.find_all("div", {"class": "grid-x pharmCard"})
|
||||
if grid_list and len(grid_list) > 0:
|
||||
for grid in grid_list:
|
||||
# Get the pharmacy price.
|
||||
pharmacy_name = grid.find("p", {"class": "list-title"}).text
|
||||
|
||||
# Get price of the drug.
|
||||
# Get the price of the drug.
|
||||
price = grid.find("span", {"p", "price price-large"}).text
|
||||
|
||||
pharmacy_price_list.append(
|
||||
@ -72,7 +67,7 @@ def fetch_pharmacy_and_price_list(drug_name: str, zip_code: str) -> list | None:
|
||||
|
||||
return pharmacy_price_list
|
||||
|
||||
except (HTTPError, exceptions.RequestException, ValueError):
|
||||
except (httpx.HTTPError, ValueError):
|
||||
return None
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user