Skip to content

Commit 8ecd4d3

Browse files
committed
fix: TODOs
1 parent 5f7eaf1 commit 8ecd4d3

File tree

4 files changed

+16
-19
lines changed

4 files changed

+16
-19
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,10 @@ jobs:
1919
- name: Lint
2020
run: make lint
2121
run-tests:
22-
# TODO: Use `latest` once we drop support for Python 3.7
23-
runs-on: ubuntu-22.04
22+
runs-on: ubuntu-latest
2423
strategy:
2524
matrix:
26-
pythonversion: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
25+
pythonversion: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
2726
steps:
2827
- uses: actions/checkout@v4
2928
- uses: actions/setup-python@v5

easypost/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def get_lowest_stateless_rate(
102102
):
103103
continue
104104

105-
if lowest_rate is None or float(rate.rate) < float(lowest_rate.rate):
105+
if lowest_rate is None or float(rate["rate"]) < float(lowest_rate["rate"]):
106106
lowest_rate = rate
107107

108108
if lowest_rate is None:

setup.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,17 @@
99
]
1010

1111
DEV_REQUIREMENTS = [
12-
"bandit==1.7.5",
13-
"black==23.*",
14-
"build==1.0.*;python_version>='3.8'", # TODO: remove python pin when 3.7 is dropped
15-
"urllib3==1.*", # TODO: Pinned because vcrpy did a dumb and didn't pin urllib3
16-
"flake8==5.*", # TODO: flake8 v6 requires Python 3.8.1+
17-
"isort==5.*",
18-
"mypy==1.4.*", # TODO: mypy v1.5 requires Python 3.8+
19-
"pdoc==13.*", # TODO: pdoc v14 requires Python 3.8+
20-
"pytest-cov==4.*",
12+
"bandit==1.8.*",
13+
"black==25.*",
14+
"build==1.2.*",
15+
"flake8==6.*",
16+
"isort==6.*",
17+
"mypy==1.15.*",
18+
"pdoc==14.*", # v15 requires Python 3.9
19+
"pytest-cov==5.*", # v6 requires Python 3.9
2120
"pytest-vcr==1.*",
22-
"pytest==7.*",
23-
"vcrpy==4.*", # TODO: vcrpy v5 requires Python 3.8+
21+
"pytest==8.*",
22+
"vcrpy==6.*", # v7 requires Python 3.9
2423
]
2524

2625
with open("README.md", encoding="utf-8") as f:
@@ -55,17 +54,17 @@
5554
"Tracker": "https://github.com/EasyPost/easypost-python/issues",
5655
"Source": "https://github.com/EasyPost/easypost-python",
5756
},
58-
python_requires=">=3.7, <4",
57+
python_requires=">=3.8, <4",
5958
classifiers=[
6059
"Development Status :: 5 - Production/Stable",
6160
"Environment :: Web Environment",
6261
"Programming Language :: Python",
63-
"Programming Language :: Python :: 3.7",
6462
"Programming Language :: Python :: 3.8",
6563
"Programming Language :: Python :: 3.9",
6664
"Programming Language :: Python :: 3.10",
6765
"Programming Language :: Python :: 3.11",
6866
"Programming Language :: Python :: 3.12",
67+
"Programming Language :: Python :: 3.13",
6968
"Intended Audience :: Developers",
7069
"Operating System :: OS Independent",
7170
"License :: OSI Approved :: MIT License",

tests/test_address.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ def test_address_create_verify(incorrect_address, test_client):
3636

3737
# Delivery verification assertions
3838
assert address.verifications.delivery.success is False
39-
# TODO: details is not deserializing correctly, related to the larger "double EasyPostObject" wrapping issue
40-
# assert address.verifications.delivery.details == {}
39+
assert address.verifications.delivery.details.to_dict() == {}
4140
assert address.verifications.delivery.errors[0].code == "E.ADDRESS.NOT_FOUND"
4241
assert address.verifications.delivery.errors[0].field == "address"
4342
assert address.verifications.delivery.errors[0].suggestion is None

0 commit comments

Comments
 (0)