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 type
* `WalmartProduct.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.