The `if obj is None` stanza seems superfluous; function will return after next `if` anyway.
More trivial, but since I was tricked before: maybe put `__array_finalize__` *after* `__array_wrap__`, so they are in order?