On Fri, 2023-02-10 at 10:34 -0700, Nathan wrote: > On Fri, Feb 10, 2023 at 3:31 AM Sebastian Berg < > sebast...@sipsolutions.net> > wrote: > > > Hi all, > > > > I was wondering if we should introduce a new `np.types` namespace. > > The > > main reason is that we have the DType classes, that most users > > don't > > need to worry about. These mirror the scalar classes, but getting > > them > > is weird currently. > > > > I never wanted to put these in the top-level (because I feel they > > probably won't be used much day to day). That would be thing like: > > > > * np.types.IntDType, np.types.Int64DType (or maybe without dtype) > > * np.types.NumberDType (an abstract DType) > > * np.types.InexactDType > > * ... > > * np.types.DTypeMeta (the metaclass used, just to have it > > somewhere) > > > > > > > Maybe there are some more types that we could use a public > > entrypoint > > for (e.g. the type used by array-function dispatched functions or > > `np.ufunc` could in principle move also). > > > > Small bikeshed: the name np.types indicates to me that it has > something to
We tried discussing it in the community meeting today and it led to bike-shedding. So lets see if a poll can give an idea for a preferred color: https://discuss.scientific-python.org/t/where-to-put-dtype-classes/655 Happy to add more options (or just get posts there). I don't care too much overall about the where, I just feel it is well time to put it somewhere. - Sebastian > do with static typing. If this namespace only includes dtype classes, > then > np.dtype_classes is a more natural name. If it includes things like > `np.ufunc` then that's not as clear, and I don't have a better idea > offhand > than np.types. > > > > > What do you think? I don't really have a good idea for an > > alternative > > but at some point not making these nicely public is not great... > > > > Related to your proposal but not orthogonal to it, I still think it > would > still be nice to be able to do things like: > > >>> np.dtype[numbers.Number] > np.types.NumberDType > > I know that currently __class_getitem__ is used by the typing > support, but > I think the typing will still work if you also got back a usable > dtype > instance at runtime instead of a GenericAlias, which has a confusing > repr > and is not useful at runtime. > > > > (I will note that the DType classes do get printed sometimes in > > error > > messages.) > > > > See also https://github.com/numpy/numpy/issues/22920. > > > > > > Cheers, > > > > Sebastian > > > > _______________________________________________ > > 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: nathan12...@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: sebast...@sipsolutions.net _______________________________________________ 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