- Removed support for Python 3.7 and 3.8.
- Fixed various `pylint` warnings and errors:
- Added missing encoding in `open()`.
- Avoided raising overly general exceptions.
- Removed unused imports.
- Improved string formatting.
- Updated workflow files to match new Python versions.
- Added `CHANGES.md` file.
- Implemented a workflow to check for new entries in `CHANGES.md`.