Moved functionality in multifunction in algorithms/apply_restrictions.py to methods implemented on each class.
Renamed the current dag mapping functions to *_legacy and added copies of these without the legacy that use class methods instead of multifunctions. (Short-to-medium term goal will be to move all other algorithms over to using the non-legacy functions then remove the legacy functions. This may be better done with multiple PRs rather than one huge PR for all algorithms)
Added cutoff decorator for class methods and make traversal function use this to check for cutoffs instead of requiring all types to have a typecode.
I think this is a step in the right direction, but other opinions are welcome.
algorithms/apply_restrictions.py
to methods implemented on each class.*_legacy
and added copies of these without the legacy that use class methods instead of multifunctions. (Short-to-medium term goal will be to move all other algorithms over to using the non-legacy functions then remove the legacy functions. This may be better done with multiple PRs rather than one huge PR for all algorithms)cutoff
decorator for class methods and make traversal function use this to check for cutoffs instead of requiring all types to have a typecode.I think this is a step in the right direction, but other opinions are welcome.