Skip to content

Commit 3b8843e

Browse files
committed
merge with main
2 parents 9ab8f6e + f0dd62b commit 3b8843e

8 files changed

Lines changed: 264 additions & 199 deletions

File tree

.pre-commit-config.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ ci:
55
autoupdate_schedule: quarterly
66
repos:
77
- repo: https://github.com/keewis/blackdoc
8-
rev: v0.3.9
8+
rev: v0.4.1
99
hooks:
1010
- id: blackdoc
1111
files: \.py$
1212
- repo: https://github.com/astral-sh/ruff-pre-commit
13-
rev: v0.9.4
13+
rev: v0.12.1
1414
hooks:
15-
- id: ruff
15+
- id: ruff-check
1616
args: [--fix, --exit-non-zero-on-fix]
1717
exclude: ^(docs/|tests)
1818
- id: ruff-format
@@ -28,10 +28,10 @@ repos:
2828
additional_dependencies: [toml]
2929
exclude: tests/
3030
- repo: https://github.com/asottile/pyupgrade
31-
rev: v3.19.1
31+
rev: v3.20.0
3232
hooks:
3333
- id: pyupgrade
34-
args: [--py38-plus, --keep-runtime-typing]
34+
args: [--py39-plus, --keep-runtime-typing]
3535
- repo: https://github.com/pre-commit/pre-commit-hooks
3636
rev: v5.0.0
3737
hooks:
@@ -41,7 +41,7 @@ repos:
4141
args: [--branch, main]
4242
- id: requirements-txt-fixer
4343
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
44-
rev: v2.14.0
44+
rev: v2.15.0
4545
hooks:
4646
- id: pretty-format-toml
4747
args: [--autofix]

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ a product.
2525

2626
Sign up for `Keepa Data Access <https://get.keepa.com/d7vrq>`_.
2727

28-
Documentation can be found at`keepa Documentation <https://keepaapi.readthedocs.io/en/latest/>`_.
28+
Documentation can be found at `Keepa Documentation <https://keepaapi.readthedocs.io>`_.
2929

3030

3131
Requirements

pyproject.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ dependencies = [
2929
"pydantic"
3030
]
3131
description = "Interfaces with keepa.com's API."
32-
dynamic = ["version"]
3332
keywords = ["keepa"]
3433
name = "keepa"
3534
readme = "README.rst"
3635
requires-python = ">=3.9"
36+
version = "1.3.14"
3737

3838
[project.optional-dependencies]
3939
doc = [
@@ -46,7 +46,8 @@ test = [
4646
"pandas",
4747
"pytest-asyncio",
4848
"pytest-cov",
49-
"pytest"
49+
"pytest",
50+
"pytest-rerunfailures"
5051
]
5152

5253
[project.urls]

src/keepa/__init__.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
"""Keepaapi module."""
1+
"""Keepa module."""
2+
3+
from importlib.metadata import PackageNotFoundError, version
4+
5+
# single source versioning from the installed package (stored in pyproject.toml)
6+
try:
7+
__version__ = version("keepa")
8+
except PackageNotFoundError:
9+
__version__ = "unknown"
210

3-
__version__ = "1.3.14"
411
from keepa.data_models import ProductParams
512
from keepa.interface import (
613
DCODES,
@@ -20,19 +27,20 @@
2027
from keepa.plotting import plot_product
2128

2229
__all__ = [
23-
"ProductParams",
24-
"Domain",
30+
"AsyncKeepa",
2531
"DCODES",
32+
"Domain",
2633
"KEEPA_ST_ORDINAL",
27-
"SCODES",
28-
"AsyncKeepa",
2934
"Keepa",
35+
"ProductParams",
36+
"SCODES",
37+
"__version__",
3038
"convert_offer_history",
3139
"csv_indices",
3240
"format_items",
3341
"keepa_minutes_to_time",
3442
"parse_csv",
43+
"plot_product",
3544
"process_used_buybox",
3645
"run_and_get",
37-
"plot_product",
3846
]

src/keepa/data_models.py

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Contains the data models for keepa requests."""
22

3-
from typing import List, Optional, Union
3+
from typing import Optional, Union
44

55
from pydantic import BaseModel
66

@@ -32,7 +32,7 @@ class ProductParams(BaseModel):
3232
3333
"""
3434

35-
author: Optional[Union[List[str], str]] = None
35+
author: Optional[Union[list[str], str]] = None
3636
availabilityAmazon: Optional[int] = None
3737
avg180_AMAZON_lte: Optional[int] = None
3838
avg180_AMAZON_gte: Optional[int] = None
@@ -353,19 +353,19 @@ class ProductParams(BaseModel):
353353
backInStock_USED_NEW_SHIPPING: Optional[bool] = None
354354
backInStock_USED_VERY_GOOD_SHIPPING: Optional[bool] = None
355355
backInStock_WAREHOUSE: Optional[bool] = None
356-
binding: Optional[Union[List[str], str]] = None
357-
brand: Optional[Union[List[str], str]] = None
356+
binding: Optional[Union[list[str], str]] = None
357+
brand: Optional[Union[list[str], str]] = None
358358
buyBoxIsAmazon: Optional[bool] = None
359359
buyBoxIsFBA: Optional[bool] = None
360360
buyBoxIsUnqualified: Optional[bool] = None
361-
buyBoxSellerId: Optional[Union[List[str], str]] = None
361+
buyBoxSellerId: Optional[Union[list[str], str]] = None
362362
buyBoxUsedCondition_lte: Optional[int] = None
363363
buyBoxUsedCondition_gte: Optional[int] = None
364364
buyBoxUsedIsFBA: Optional[bool] = None
365365
buyBoxUsedSellerId: Optional[str] = None
366-
categories_include: Optional[Union[List[int], int]] = None
367-
categories_exclude: Optional[Union[List[int], int]] = None
368-
color: Optional[Union[List[str], str]] = None
366+
categories_include: Optional[Union[list[int], int]] = None
367+
categories_exclude: Optional[Union[list[int], int]] = None
368+
color: Optional[Union[list[str], str]] = None
369369
couponOneTimeAbsolute_lte: Optional[int] = None
370370
couponOneTimeAbsolute_gte: Optional[int] = None
371371
couponOneTimePercent_lte: Optional[int] = None
@@ -952,11 +952,11 @@ class ProductParams(BaseModel):
952952
deltaPercent90_USED_VERY_GOOD_SHIPPING_gte: Optional[int] = None
953953
deltaPercent90_WAREHOUSE_lte: Optional[int] = None
954954
deltaPercent90_WAREHOUSE_gte: Optional[int] = None
955-
edition: Optional[Union[List[str], str]] = None
955+
edition: Optional[Union[list[str], str]] = None
956956
fbaFees_lte: Optional[int] = None
957957
fbaFees_gte: Optional[int] = None
958-
format: Optional[Union[List[str], str]] = None
959-
genre: Optional[Union[List[str], str]] = None
958+
format: Optional[Union[list[str], str]] = None
959+
genre: Optional[Union[list[str], str]] = None
960960
hasParentASIN: Optional[bool] = None
961961
hasReviews: Optional[bool] = None
962962
isAdultProduct: Optional[bool] = None
@@ -1005,8 +1005,8 @@ class ProductParams(BaseModel):
10051005
itemWeight_gte: Optional[int] = None
10061006
itemWidth_lte: Optional[int] = None
10071007
itemWidth_gte: Optional[int] = None
1008-
label: Optional[Union[List[str], str]] = None
1009-
languages: Optional[Union[List[str], str]] = None
1008+
label: Optional[Union[list[str], str]] = None
1009+
languages: Optional[Union[list[str], str]] = None
10101010
lastOffersUpdate_lte: Optional[int] = None
10111011
lastOffersUpdate_gte: Optional[int] = None
10121012
lastPriceChange_lte: Optional[int] = None
@@ -1021,8 +1021,8 @@ class ProductParams(BaseModel):
10211021
lightningStart_gte: Optional[int] = None
10221022
listedSince_lte: Optional[int] = None
10231023
listedSince_gte: Optional[int] = None
1024-
manufacturer: Optional[Union[List[str], str]] = None
1025-
model: Optional[Union[List[str], str]] = None
1024+
manufacturer: Optional[Union[list[str], str]] = None
1025+
model: Optional[Union[list[str], str]] = None
10261026
newPriceIsMAP: Optional[bool] = None
10271027
nextUpdate_lte: Optional[int] = None
10281028
nextUpdate_gte: Optional[int] = None
@@ -1058,13 +1058,13 @@ class ProductParams(BaseModel):
10581058
packageWeight_gte: Optional[int] = None
10591059
packageWidth_lte: Optional[int] = None
10601060
packageWidth_gte: Optional[int] = None
1061-
partNumber: Optional[Union[List[str], str]] = None
1062-
platform: Optional[Union[List[str], str]] = None
1063-
productGroup: Optional[Union[List[str], str]] = None
1061+
partNumber: Optional[Union[list[str], str]] = None
1062+
platform: Optional[Union[list[str], str]] = None
1063+
productGroup: Optional[Union[list[str], str]] = None
10641064
productType: Optional[int] = None
10651065
publicationDate_lte: Optional[int] = None
10661066
publicationDate_gte: Optional[int] = None
1067-
publisher: Optional[Union[List[str], str]] = None
1067+
publisher: Optional[Union[list[str], str]] = None
10681068
releaseDate_lte: Optional[int] = None
10691069
releaseDate_gte: Optional[int] = None
10701070
rootCategory: Optional[int] = None
@@ -1079,11 +1079,11 @@ class ProductParams(BaseModel):
10791079
salesRankReference: Optional[int] = None
10801080
salesRankTopPct_lte: Optional[int] = None
10811081
salesRankTopPct_gte: Optional[int] = None
1082-
sellerIds: Optional[Union[List[str], str]] = None
1083-
sellerIdsLowestFBA: Optional[Union[List[str], str]] = None
1084-
sellerIdsLowestFBM: Optional[Union[List[str], str]] = None
1085-
size: Optional[Union[List[str], str]] = None
1086-
studio: Optional[Union[List[str], str]] = None
1082+
sellerIds: Optional[Union[list[str], str]] = None
1083+
sellerIdsLowestFBA: Optional[Union[list[str], str]] = None
1084+
sellerIdsLowestFBM: Optional[Union[list[str], str]] = None
1085+
size: Optional[Union[list[str], str]] = None
1086+
studio: Optional[Union[list[str], str]] = None
10871087
title: Optional[str] = None
10881088
title_flag: Optional[str] = None
10891089
totalOfferCount_lte: Optional[int] = None
@@ -1095,7 +1095,7 @@ class ProductParams(BaseModel):
10951095
buyBoxIsPreorder: Optional[bool] = None
10961096
buyBoxIsBackorder: Optional[bool] = None
10971097
buyBoxIsPrimeExclusive: Optional[bool] = None
1098-
type: Optional[Union[List[str], str]] = None
1098+
type: Optional[Union[list[str], str]] = None
10991099
warehouseCondition: Optional[int] = None
11001100
singleVariation: Optional[bool] = None
11011101
outOfStockPercentage90_lte: Optional[int] = None

0 commit comments

Comments
 (0)