On Tue, Mar 8, 2022 at 10:02 AM Sebastian Berg <sebast...@sipsolutions.net> wrote: > > On Tue, 2022-03-08 at 08:26 -0800, Stefan van der Walt wrote: > > Hi Sebastian, > > > > On Tue, Mar 8, 2022, at 07:41, Sebastian Berg wrote: > > > just a brief note that: > > > > > > https://github.com/numpy/numpy/pull/21145 > > > > > > will add `np.from_dlpack` (to import objects implementing the > > > `__dlpack__` dunder [1]. > > > > In other places in the ecosystem, like pandas and xarray, `from_x` > > and friends live as static methods on their respective classes. Any > > reason not to add this as `numpy.array.from_dlpack`? We may also want > > to consider adding all the other `from*`'s there and deprecating the > > original usage (without removing it). > > > One thing I did not mention, is that what the data-api folks included > the symbol in their namespace [1]. So keeping it in the main namespace > has the benefit of aligning with that.
The array API specification doesn't even have an "array" object as part of the namespace. Only top-level creation functions are supported for creating arrays. But it's also true in general that the array API specification prefers a functional API to methods on the array object. Aaron Meurer > > > A class-/staticmethod would be an interesting API choice. But I > suppose it would mainly be nice if we have a clear intention of moving > the others, too? (Which unfortunately seems slow?) > > If we almost certainly only consider duplicating this as methods, I > would tend to not worry about it for this PR – adding it doesn't stop > us from doing that later. > But of course it may still be a good time to discuss it! > > An annoyance with methods is that our class is `np.ndarray` with an > awkward `__new__` [2]. > So if it is `np.array.from_*` it would not be (only) a static- or > classmethod, but also attached to that function. > > Cheers, > > Sebastian > > > [1] > https://data-apis.org/array-api/latest/API_specification/generated/signatures.creation_functions.from_dlpack.html > > [2] I suppose there may be a point in moving `np.ndarray(...)` users to > something more appropriate. And maybe even eventually making > `np.array` the actual class. But, if possible, the last part would be > a very long haul. > > > > > > > Stéfan > > > > _______________________________________________ > NumPy-Discussion mailing list -- numpy-discussion@python.org > To unsubscribe send an email to numpy-discussion-le...@python.org > https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ > Member address: asmeu...@gmail.com _______________________________________________ NumPy-Discussion mailing list -- numpy-discussion@python.org To unsubscribe send an email to numpy-discussion-le...@python.org https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ Member address: arch...@mail-archive.com