This is a complete rewrite of the original project designed with a more Pythonic approach and a simpler API.
Client:
- Removed `MainAPI` in favor of `PyPiClient`
- Removed `PackageInfo` and `ReleaseInfo`. Their functionalities have been merged into `PyPiClient`. (`Client.get_package`)
- Added `Client.get_stats`. This also removes the `Statistics` and `TopPackage` models, in favor of a single `Stats` model.
- Added `Client.get_all_projects` and `Client.get_files` from the Simple API.
Objects:
- Added data classes `Base`, `Package`, `ReleaseURL`, `Vulnerability`, and `PackageFile`.
Utils:
- Added `Size` to represent human-readable sizes.
- Added `iso_to_datetime` and `remove_additional`.
Other Changes:
- Moved package information from `setup.py` to `setup.cfg`
- Merged `PackageNotFound` and `VersionNotFound` into a single exception `NotFound`.
- Added a general exception: `ClientError`.