[Python-Dev] types.Union or types.UnionType?

2021-07-25 Thread Serhiy Storchaka
In 3.10 the union type (the type of the result of the | operator for
types) was added (https://www.python.org/dev/peps/pep-0604/). It is
exposed as types.Union. There are differences between typing.Union and
types.Union:

* typing.Union is indexable, types.Union is not.
* types.Union is a class, typing.Union is not.

types.Union corresponds to private class typing._UnionGenericAlias, not
typing.Union. It is confusing that typing.Union and types.Union have the
same name but are so different. Note also that most classes in the types
module have the "Type" suffix: FunctionType, MethodType, ModuleType,
etc. I think that it would be better to rename types.Union to
types.UnionType.

The name of types.Union is the part of already accepted PEP 604, so we
need to hear opinions of authors, sponsor and BDFL-delegate of the PEP.

I did not participate in the discussion about PEP 604 so I do not know
if there are arguments in favor of types.Union over types.UnionType.

___
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/RHRF7Q25GQ3EIEUJHW72YLQNMCUDLWRW/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: types.Union or types.UnionType?

2021-07-25 Thread Nick Coghlan
On Sun, 25 Jul 2021, 9:26 pm Serhiy Storchaka,  wrote:

> In 3.10 the union type (the type of the result of the | operator for
> types) was added (https://www.python.org/dev/peps/pep-0604/). It is
> exposed as types.Union. There are differences between typing.Union and
> types.Union:
>
> * typing.Union is indexable, types.Union is not.
> * types.Union is a class, typing.Union is not.
>
> types.Union corresponds to private class typing._UnionGenericAlias, not
> typing.Union. It is confusing that typing.Union and types.Union have the
> same name but are so different. Note also that most classes in the types
> module have the "Type" suffix: FunctionType, MethodType, ModuleType,
> etc. I think that it would be better to rename types.Union to
> types.UnionType.
>

If we wanted to be completely explicit, the most exact name would be
"TypeUnionType": it is the type of object you get specifically when
unioning types, not when unioning arbitrary objects.

Cheers,
Nick.


>
___
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/3O6STJNH6NCNWEBOGV3OB3DC6M2K47RN/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: types.Union or types.UnionType?

2021-07-25 Thread Guido van Rossum
I don't think that's how we name things. (Though it's a great tongue
twister. :-)

On Mon, Jul 26, 2021 at 1:33 AM Nick Coghlan  wrote:

>
>
> On Sun, 25 Jul 2021, 9:26 pm Serhiy Storchaka, 
> wrote:
>
>> In 3.10 the union type (the type of the result of the | operator for
>> types) was added (https://www.python.org/dev/peps/pep-0604/). It is
>> exposed as types.Union. There are differences between typing.Union and
>> types.Union:
>>
>> * typing.Union is indexable, types.Union is not.
>> * types.Union is a class, typing.Union is not.
>>
>> types.Union corresponds to private class typing._UnionGenericAlias, not
>> typing.Union. It is confusing that typing.Union and types.Union have the
>> same name but are so different. Note also that most classes in the types
>> module have the "Type" suffix: FunctionType, MethodType, ModuleType,
>> etc. I think that it would be better to rename types.Union to
>> types.UnionType.
>>
>
> If we wanted to be completely explicit, the most exact name would be
> "TypeUnionType": it is the type of object you get specifically when
> unioning types, not when unioning arbitrary objects.
>
> Cheers,
> Nick.
>
>
>> ___
> Python-Dev mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> https://mail.python.org/mailman3/lists/python-dev.python.org/
> Message archived at
> https://mail.python.org/archives/list/[email protected]/message/3O6STJNH6NCNWEBOGV3OB3DC6M2K47RN/
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
--Guido van Rossum (python.org/~guido)
*Pronouns: he/him **(why is my pronoun here?)*

___
Python-Dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/35HNF7IZ3U6GHLTOVKJAU4CESVDVDHGW/
Code of Conduct: http://python.org/psf/codeofconduct/