[Python-ideas] Add new `Symbol` type

Eric V. Smith eric at trueblade.com
Mon Jul 9 18:16:45 EDT 2018


On 7/9/2018 5:01 PM, Brett Cannon wrote:
> 
> 
> On Fri, 6 Jul 2018 at 09:24 Eric V. Smith <eric at trueblade.com 
> <mailto:eric at trueblade.com>> wrote:
> 
>     On 7/6/2018 11:20 AM, Flavio Curella wrote:
>      > I think this thread can be resolved as 'used
>     unittest.mock.sentinel'. It
>      > doesn't have 'global sentinels', but I'm not convinced they are
>     actually
>      > necessary, since `mock.sentinel` objects with the same name
>     compare as
>      > equal. Thanks to Nathaniel, I now understand that JS has global
>     symbols
>      > for historical reasons that we don't have, and I'm not convinced of
>      > their usefulness.
> 
>     Do all Python distributions ship with unittest.mock? I see to recall
>     that Debian and/or Ubuntu strips out part of the normal distribution.
> 
> 
> It's usually tkinter and such, not unittest stuff from my understanding.

Good to know. Thanks.

>     For example, dataclasses.py has a sentinel, and it includes some
>     code to
>     get a more helpful repr. It would make sense to re-use the
>     unittest.mock.sentinel code, but not if that code isn't always
>     guaranteed to be present.
> 
> 
> Would it make sense to abstract this out to the 'types'  to have a 
> single 'types.sentinel' object for those rare cases that Guido pointed out?

I think so. I'd hate to import unittest.mock just to get a sentinel 
object for dataclasses.

Eric



More information about the Python-ideas mailing list