Draft: 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
Ring
toring
. - Classes, methods and functions have been equipped to recognise the old variables
Ring
using@handle_legacy_kwargs
and@properties
. -
TrackableBaseClass
has been introduced to identify trackable methods. Maybe some more classes need this feature, if they are intended to be tracked, but have no.track
method yet. - Imports were generally cleaned. This concerns mainly
__future__
andbuiltins
imports. 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.
Edited by Simon Fabian Lauber