![](https://secure.gravatar.com/avatar/851ff10fbb1363b7d6111ac60194cc1c.jpg?s=120&d=mm&r=g)
Hi All, I'd very much like to get `__array_ufunc__` in, and am willing to do some work, but fear we need to get past the last sticking point. As I noted in Chuck's PR [1], in python 3.6 there is now an explicit language change [2], which I think is relevant: ``` It is now possible to set a special method to None to indicate that the corresponding operation is not available. For example, if a class sets __iter__() to None, the class is not iterable. ``` It seems to me entirely logical (but then it would, I suggested it before...) that we allow opting out by setting `__array_ufunc__` to None; in that case, binops return NotImplemented and ufuncs raise errors. (In addtion, or alternatively, one could allow setting `__array__` to None, which would generally disable something to be turned into an array object). But I should note that I much prefer to get something in over wait yet another round! In astropy, there is now more and more clamouring to offer options for pure ndarray functions where quantities are more logical because quantities are twice as slow -- this would instantly be solved with __array_ufunc__... If we can decide on this, then I'd gladly help with remaining issues (e.g., the `ndarray.__array_ufunc__` method, so super can be used). All the best, Marten [1] https://github.com/numpy/numpy/pull/8247 [2] https://docs.python.org/3.6/whatsnew/3.6.html#other-language-changes