Resolve "Codebase Overhaul"
This is a though one.
- I partially used monkeytype to generate type hints from the testcases.
- Additionally, the type hints have been reviewed and improved, e.g. using Literals.
- Variable names have been refactored to PEP8 standard, like
Ringtoring. - Classes, methods and functions have been equipped to recognise the old variables
Ringusing@handle_legacy_kwargsand@properties. -
TrackableBaseClasshas been introduced to identify trackable methods. Maybe some more classes need this feature, if they are intended to be tracked, but have no.trackmethod yet. - Imports were generally cleaned. This concerns mainly
__future__andbuiltinsimports. Further, we now use global instead of local imports for readability.
Known issues:
- Type hints for GPU are generally missing, as I cant download cupy without GPU.
- References to bmath still without type hints, requires full rewrite of bmath.py.
- Type hints may be incomplete and need to be extended on demand.
- There are 98 open TODOs in this branch, several concerning potential bugs that I came across.
Closes #35 (closed).
Edited by Simon Lauber