Not an easy task @bam241 and I think I see where you're going with it. My main concern with the current implementation is the amount of DAGMC-specific code in higher-level sections of the Python API. I think there's some refactoring we can do to avoid special logic in the Model and...
A.dot(B)method syntax for functions of more than one argument (usenp.dot(A, B)instead) Side-effects like mutation of arguments or mutation of global variables Theoutargument of NumPy functions Dtype casting likenp.float64(x)(usex.astype('float64')orx.astype(np.float64)instead). ...
A.dot(B) method syntax for functions of more than one argument (use np.dot(A, B) instead) Side-effects like mutation of arguments or mutation of global variables The out argument of NumPy functions Dtype casting like np.float64(x) (use x.astype('float64') or x.astype(np.float64) ...