Following some additional discussion on the PR (see comments after https://github.com/numpy/numpy-stubs/pull/66#issuecomment-620139434), the proposed path forward is:
- Add the module `numpy.typing` to the type stubs only for now - Initially it will contain types for ArrayLike and DtypeLike - When the stubs are merged into NumPy, add the `numpy.typing` module to NumPy itself. Any further objections? On Mon, Apr 27, 2020 at 10:50 AM Ilhan Polat <ilhanpo...@gmail.com> wrote: > > > Interestingly this was proposed independently here: > > Wow apologies for missing the entire thread about it and the noise. > > > On Sun, Apr 26, 2020 at 11:19 PM Joshua Wilson <josh.craig.wil...@gmail.com> > wrote: >> >> To try and add some more data points to the conversation: >> >> > Maybe we can go for a bit more distant name like "numpy.annotations" or >> > whatever. >> >> Interestingly this was proposed independently here: >> >> https://github.com/numpy/numpy-stubs/pull/66#issuecomment-619131274 >> >> Related to that, Ralf was opposed to numpy.typing because it would >> shadow a stdlib module name: >> >> https://github.com/numpy/numpy-stubs/pull/66#issuecomment-619123629 >> >> But, types is _also_ a stdlib module name. Maybe the above points give >> some extra weight to "numpy.annotations"? >> >> > Unless we anticipate adding a long list of type aliases (more than the >> > three suggested so far) >> >> While working on some types in SciPy here: >> >> https://github.com/scipy/scipy/pull/11936#discussion_r415280894 >> >> we ran into the issue of typing things that are "integer types" or >> "floating types". For the time being we just inlined a definition like >> Union[float, np.floating], but conceivably we would want to unify >> those definitions somewhere instead of redefining them in every >> project. (Note that existing types like SupportsInt etc. were not what >> we wanted.) This perhaps suggests that the ultimate number of type >> aliases might be larger than we initially thought. >> >> On Sun, Apr 26, 2020 at 6:25 AM Ilhan Polat <ilhanpo...@gmail.com> wrote: >> > >> > I agree that parking all these in a secondary namespace sounds a better >> > option, can't say that I feel for the word "typing" though. There are >> > already too many type, dtype, ctypeslib etc. Maybe we can go for a bit >> > more distant name like "numpy.annotations" or whatever. >> > >> > On Sat, Apr 25, 2020 at 8:51 AM Kevin Sheppard >> > <kevin.k.shepp...@gmail.com> wrote: >> >> >> >> Typing is for library developers more than end users. I would also worry >> >> that putting it into the top level might discourage other typing classes >> >> since it is more difficult to add to the top level than to a lower level >> >> module. np.typing seems very clear to me. >> >> >> >> On Sat, Apr 25, 2020, 07:41 Stephan Hoyer <sho...@gmail.com> wrote: >> >>> >> >>> >> >>> >> >>> On Fri, Apr 24, 2020 at 11:31 AM Sebastian Berg >> >>> <sebast...@sipsolutions.net> wrote: >> >>>> >> >>>> On Fri, 2020-04-24 at 11:10 -0700, Stefan van der Walt wrote: >> >>>> > On Fri, Apr 24, 2020, at 08:45, Joshua Wilson wrote: >> >>>> > > But, Stephan pointed out that it might be confusing to users for >> >>>> > > objects to only exist at typing time, so we came around to the >> >>>> > > question of whether people are open to the idea of including the >> >>>> > > type >> >>>> > > aliases in NumPy itself. Ralf's concrete proposal was to make a >> >>>> > > module >> >>>> > > numpy.types (or maybe numpy.typing) to hold the aliases so that >> >>>> > > they >> >>>> > > don't pollute the top-level namespace. The module would initially >> >>>> > > contain the types >> >>>> > >> >>>> > That sounds very sensible. Having types available with NumPy should >> >>>> > also encourage their use, especially if we can add some documentation >> >>>> > around it. >> >>>> >> >>>> I agree, I might have a small tendency for `numpy.types` if we ever >> >>>> find any usage other than direct typing that may be the better name? >> >>> >> >>> >> >>> Unless we anticipate adding a long list of type aliases (more than the >> >>> three suggested so far), I would lean towards adding ArrayLike to the >> >>> top level NumPy namespace as np.ArrayLike. >> >>> >> >>> Type annotations are becoming an increasingly core part of modern Python >> >>> code. We should make it easy to appropriately type check functions that >> >>> act on NumPy arrays, and a top level np.ArrayLike is definitely more >> >>> convenient than np.types.ArrayLike. >> >>> >> >>>> Out of curiousity, I guess `ArrayLike` would be an ABC that a >> >>>> downstream project can register with? >> >>> >> >>> >> >>> ArrayLike will be a typing Protocol, automatically recognizing >> >>> attributes like __array__ to indicate that something can be cast to an >> >>> array. >> >>> >> >>>> >> >>>> >> >>>> - Sebastian >> >>>> >> >>>> >> >>>> > >> >>>> > Stéfan >> >>>> > _______________________________________________ >> >>>> > NumPy-Discussion mailing list >> >>>> > NumPy-Discussion@python.org >> >>>> > https://mail.python.org/mailman/listinfo/numpy-discussion >> >>>> >> >>>> >> >>>> _______________________________________________ >> >>>> NumPy-Discussion mailing list >> >>>> NumPy-Discussion@python.org >> >>>> https://mail.python.org/mailman/listinfo/numpy-discussion >> >>> >> >>> _______________________________________________ >> >>> NumPy-Discussion mailing list >> >>> NumPy-Discussion@python.org >> >>> https://mail.python.org/mailman/listinfo/numpy-discussion >> >> >> >> _______________________________________________ >> >> NumPy-Discussion mailing list >> >> NumPy-Discussion@python.org >> >> https://mail.python.org/mailman/listinfo/numpy-discussion >> > >> > _______________________________________________ >> > NumPy-Discussion mailing list >> > NumPy-Discussion@python.org >> > https://mail.python.org/mailman/listinfo/numpy-discussion >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion@python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion