[Python-Dev] Adding NewType() to PEP 484 (original) (raw)
Peter Ludemann pludemann at google.com
Sat May 28 13:43:22 EDT 2016
- Previous message (by thread): [Python-Dev] Adding NewType() to PEP 484
- Next message (by thread): [Python-Dev] Adding NewType() to PEP 484
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I'm surprised that nobody has suggested UniqueType. ;)
On 28 May 2016 at 10:17, Ivan Levkivskyi <levkivskyi at gmail.com> wrote:
My final vote goes to "distinct type alias". But how should we call the function? NewType? Or should we change it to DistinctAlias or something?
-- Ivan 28 Тра 2016 19:14 "Guido van Rossum" <guido at python.org> пише:
Ohhhhh, another D-word! I really like distinct.
On Sat, May 28, 2016 at 8:19 AM, Steve Dower <steve.dower at python.org> wrote: > Did anyone suggest "distinct type alias"? > > Regardless of what name, I'm fairly sure people will call it whatever the > function to create it is called. So if the function is > typings.distinguishtype(...), then distinguished will stick. > > Top-posted from my Windows Phone _> _________________ > From: Guido van Rossum > Sent: 5/28/2016 7:38 > To: Steven D'Aprano > Cc: Python-Dev > Subject: Re: [Python-Dev] Adding NewType() to PEP 484 > > Just to add to the list of options, Twitter also came up with > > - invention > > - DomainType > > - TypedAlias > > But seriously I think we should just decide between Derived Type and > Distinguished Type [Alias]. > > The latter comes from the idea that when you write e.g. > > UserId = int > > then UserId is a type alias (that's existing PEP 484 terminology) and > the type checker doesn't distinguish it from int -- you can use it in > places where you logically expect a UserId but to the type checker > those variables have the type int. > > There is even a neat potential "origin story" that would explain why > we'd call it Distinguished Type Alias. > > The story is about gradually converting a large code base to being > consistent: initially you make UserId a regular type alias and you > start putting it in your code incrementally, making sure it has no > mypy errors as you go (but this just treats it as an int). After days, > when you think you are done, you change UserId to a distinguished type > alias and then mypy will point out the places where you've missed > something or you're doing something questionable with user IDs. > > And yes, in the wider context of subclassing, Derived Type is probably > confusing because a subclass is also called a derived class. > > > On Sat, May 28, 2016 at 5:24 AM, Steven D'Aprano <steve at pearwood.info> > wrote: >> On Fri, May 27, 2016 at 09:26:29PM -0700, Guido van Rossum wrote: >> >>> We discussed this over dinner at PyCon, some ideas we came up with: >>> >>> - Dependent types, harking back to a similar concept in Ada >>> ( https://en.wikibooks.org/wiki/AdaProgramming/TypeSystem#Derivedtypes) >>> which in that language is also spelled with "new". >> >> I started to explain this to my non-programmer wife, I got as far as >> explaining types, and that we need a name for this thing, and she >> stopped me and said >> >> "Please don't tell me this is leading to TypyMcTypeCheck." >> >> [...] >>> - BoatyMcBoatType >> >>> The nice thing about "distinguished" is that it's a relatively rare >>> word so it is easy to remember or look up. >> >> I would have thought that being rare, it would be harder to remember. >> >> >>> Personally I'm still in favor of Derived type (but I'm more into >>> ancient programming languages than most folks here). I could also live >>> with Distinguished Type. >> >> I think Derived Type is the nicest of the options. It accurately >> describes what it is: a type derived from another. And its shorter and >> easy to both say and write than "Distinguished type" (which sounds like >> "distinguished gentlemen" -- is it wearing a monocle and a top hat?). >> >> "Distinguished" is too vague for my tastes, it might as well be >> "flibblegubble type". All types are distinguished, the type checker >> has to distinguish int from float from list from str, so to call >> NewType("userid", int) a "distinguished type" is only to call it a type. >> >> >> >> -- >> Steve _>> ________________________ >> Python-Dev mailing list >> Python-Dev at python.org >> https://mail.python.org/mailman/listinfo/python-dev >> Unsubscribe: >> https://mail.python.org/mailman/options/python-dev/guido%40python.org > > > > -- > --Guido van Rossum (python.org/~guido) _> ________________________ > Python-Dev mailing list > Python-Dev at python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > https://mail.python.org/mailman/options/python-dev/steve.dower%40python.org
-- --Guido van Rossum (python.org/~guido)
Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/levkivskyi%40gmail.com
Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/pludemann%40google.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20160528/1acc7d3c/attachment.html>
- Previous message (by thread): [Python-Dev] Adding NewType() to PEP 484
- Next message (by thread): [Python-Dev] Adding NewType() to PEP 484
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]