<div dir="ltr"><div dir="ltr">On Mon, Sep 16, 2019 at 1:46 PM Peter Andreas Entschev <<a href="mailto:peter@entschev.com">peter@entschev.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">What would be the use case for a duck-array to implement __array__ and<br>
return a NumPy array?</blockquote><div><br></div><div>some users need a genuine, actual numpy array (for passing to Cyton code, for example).</div><div>if __array__ is not implemented, how can they get that from an array-like object??</div><div><br></div><div>Only the author of the array-like object knows how best to make a numpy array out of it.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Unless I'm missing something, this seems<br>
redundant and one should just use array/asarray functions then. </blockquote><div><br></div><div>but if the object does not impliment __array__, then user's can't use the array/asarray functions!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This<br>
would also prevent error-handling, what if the developer intentionally<br>
wants a NumPy-like array (e.g., the original array passed to the<br>
duckarray function) or an exception (instead of coercing to a NumPy<br>
array)?<br></blockquote><div><br></div><div>I'm really confused now -- if a end-user wants a duckarray, they should call duckarray() -- if they want an actual numpy array, they should call .asarray().</div><div><br></div><div>Why would anyone want an Exception? If you don't want an array, then don't call asarray()</div><div><br></div><div>If you call duckarray(), and the object has not implemented __duckarray__, then you will get an exception -- whoch you should.</div><div><br></div><div>If you call __array_, and __array__ has not been implimented, then you will get an exception.</div><div><br></div><div>what is the potential problem here?</div><div><br></div><div>Which makes me think -- why should Duck arrays ever implement an __array__ method that raises an Exception? why not jsut not impliment it? (unless you wantt o add some helpful error message -- which I did for the example in my PR.</div><div><br></div><div>(PR to the numpy repo in progress)</div><div><br></div><div>-CHB</div><div><br></div><div><br></div></div>-- <br><div dir="ltr" class="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div></div>