Clean up code quality, docs, and stability.
"Breaking" Changes
A few names of classes and functions were changed. However, you should not have been using them in the first place. If you were ... sorry.
WalmartResponse
->_WalmartResponse
get_items_ids
->_get_items_ids
ttl_cache
->_ttl_cache
Bug Fixes
WalmartReviewResponse.reviews
now returns the proper object typeWalmartProduct.customerRatingImage
showed up twice in API docs; therefor showing up twice in the class. Duplicate has been removed.taxonomy
now explicitly constructs response object
Stricter Linting
Switched to using Ruff for linting and applying more rules. See pyproject.toml
for the exact list. When possible, these rules are followed. If a rule is not possible to follow, a noqa
is added to that line. Or, in the case of static checking, a type: ignore
is added.
Better Docstrings
The docstrings are now following the Numpy doc standards. Before, they were a strange hybrid of numpy and google.
Better Stability
A few areas of code were wrong. And some had room for raising an error, if the Walmart servers returned garbage data.
Response items that construct objects from lists, now include a dict.get(...) or []
to prevent a NoneType object is not iterable
.
Other small, miscellaneous code quality and readability changes were made.
Notes
#4 / #3 was caused by an annotation issue. Originally, I solved this by using List
over list
. However, I have returned to using the newer annotations. That means that the code is now using from __future__ import annotations
This package should no longer have any development needed on it, unless a change to the Walmart I/O system occurs. If you have any issues or find any bugs, please open an issue and I will get to it (you are welcome to try to fix it yourself, PRs are welcome.)
If no issues are found, do not expect any more development on this package. If Walmart I/O makes any breaking changes, you are welcome to notify me. However, depending on those changes, I might not maintain this package.