[Python-ideas] Moving typing out of the stdlib in Python 3.7?

Paul Moore p.f.moore at gmail.com
Mon Nov 6 04:00:16 EST 2017


On 6 November 2017 at 06:42, Lukasz Langa <lukasz at langa.pl> wrote:
>> Now it's annoying already. Because you have to write every tutorial to
>> include a special case for them. But at least it's not a required step
>> to run your program.
>>
>> However, if you do code using type hints and typing is not installed,
>> you can't even run the program without installing something. So we
>> finally have Python 3 by default on most Linux system, but still would
>> not be able to assume we can run a modern script on it.
>
> This is a valid concern. Although this particular problem is self-inflicted by Debian, I can understand their rationale behind explicit packaging. They need to have control over the entire package graph.

It's also a problem for virtual environments, which won't include
typing by default, and don't see the system installed packages. As
Nick says, we could modify venv to always include typing, but most
users, and all tools (tox, pew, pipenv, etc) use virtualenv rather
than venv still, so this would be of very limited benefit.

> I wonder if there's a way in .deb to specify a required installed package. I'm not calling it a "dependency" since obviously it would rather be "python3-typing" that depends on "python3". Barry, do you know?

There's always "include typing in the standard library" :-)

> But even if Debian installs python3-typing by default, will "pip install -U typing" be possible in this scenario? I guess it wouldn't be terrible if that only worked in virtualenvs, although ideally it would work also for the raw host installation.

It would push yet more people into doing "sudo pip install -U typing",
which is something we've been trying really hard to encourage them to
stop doing over on the pip issues list. We strongly recommend using
system supplied packages, but I'd be surprised if Debian is any more
able to keep up with the latest versions of typing than Python core
is.

Paul


More information about the Python-ideas mailing list