Video summary
The Python Steering Council recently gathered at EuroPython 2026 for its first-ever panel appearance, marking a significant milestone since replacing Guido van Rossum as the benevolent dictator of life five years ago. Comprising four current members and one absent colleague from Meta, this diverse group represents the technical leadership responsible for guiding the language's future direction. Their primary mandate is to ensure consensus-driven decision-making regarding Python Enhancement Proposals (PEPs), core team organization, and packaging standards without allowing corporate interests or individual biases to dictate outcomes. Beyond pure code governance, they also manage financial resources allocated by the Python Software Foundation, funding critical initiatives such as paid developers in residence, annual core sprints for deep-dive development work, and essential infrastructure projects like GitHub migrations and documentation integration.
A major highlight of their presentation was an enthusiastic preview of new features arriving in Python 3.15, most notably lazy imports and frozen dictionaries. Lazy imports introduce a `lazy` keyword that delays module loading until the imported object is actually used for the first time, significantly reducing memory usage and startup times, particularly beneficial for large command-line interfaces or applications with heavy dependencies like Instagram's original implementation. Alongside this performance enhancement comes the introduction of frozen dictionaries, which function similarly to tuples but allow for immutable key-value mappings once created, expanding Python's toolkit for data structures that require strict integrity after initialization. The release also brings a highly sophisticated sampling profiler named Tachyon within the standard library, capable of handling async I/O tasks and providing detailed flame graphs with up to one million samples per second, offering developers unprecedented visibility into complex application behaviors.
The council members addressed important concerns regarding corporate influence and community health during their Q&A session, firmly stating that they operate independently from their employers' directives despite having sponsors like Meta or Google. They illustrated this independence by explaining how the adoption of lazy imports required both Meta and HRT to undo previous internal forks in favor of a unified standard that prioritized the broader community over specific corporate optimizations. Furthermore, they emphasized that social dynamics and contributor well-being are just as critical as technical decisions, actively discussing mentorship strategies, retention issues, and ensuring new contributors feel welcome within the ecosystem. The council operates under strict charter rules limiting representation from any single company to two members at most and maintains a self-correcting mechanism where core developers can recall steering council members if misconduct is suspected, reinforcing their commitment to serving Python as an open community rather than a corporate asset.
Read the full video transcript
Good morning everyone.
>> [applause]
>> So we're the the Python Steering
Council. I don't think we've ever been
at EuroPython in quite these numbers
because this is 4/5 of the entire
Steering Council. Uh so I think this is
the first time we have a Steering
Council panel at EuroPython, but it was
overdue. So
uh we'll start with some introductions.
Uh
>> Oh, you go first.
>> No, no, you go first.
>> Okay.
My name is Dong-geun and I'm the
Steering Council from last year with the
amazing colleague in here. And yeah.
>> Yeah, so I'm Pablo. I come from London
although from the accent you can say
that probably I was not born there. Uh
and I've been in the Steering Council
for 6 years, I think.
>> Um we don't have our slides up, but I
don't
>> Yeah, we we have a slide. If you want to
show the slides.
>> Magic of the slides.
Wow.
>> Um
>> [applause]
>> Uh I'm Savannah. Uh this is my first
year on the Steering Council. Uh I live
in the US but I am Canadian.
>> [laughter]
>> Yeah, that deserves applause.
>> yeah.
Just in case anyone was wondering.
>> Because of your first year on the
Steering Council, right?
>> Yeah, yeah, yeah.
>> Um my name is Thomas Wouters. I'm from
Amsterdam in the Netherlands. I've been
on the Steering Council uh I've been on
the Steering Council 6 years but not
continuously.
And then I will also mention Barry
Warsaw who's not here because he's
American.
Uh he's been on the Steering Council I
think 5 years but also not continuously.
>> Oh, yeah. And I forgot to mention I'm
from South Korea. Sorry. I am too
nervous now.
>> So um
actually I will also mention we all work
at different places. We all kind of work
in the tech industry but uh that part is
a little diverse as well.
Uh,
>> There's two buttons and you press the
wrong one.
>> [laughter]
>> Yes.
Well, there's three buttons. I didn't
press the wrong one.
>> Oh, okay. Okay. Three buttons.
>> [snorts]
>> So, what does the steering council do?
Uh, the steering council was made to
replace Guido when he decided he no
longer wanted to be the
benevolent dictator for life. Uh, he
mentioned this yesterday. I don't know
if everyone was, uh, watching the
uh, podcast recording. There was a
little bit of a kerfuffle, uh, around
the walrus operator and he realized,
uh, he didn't want to do this anymore.
So, we,
uh, the Python the Python core dev
community came together, discussed how
to replace Guido who had been doing that
for like 30 years. Um, and the answer
was obviously five people.
So, uh, I will tell you five people
probably still not enough.
Um, the
uh,
steering council is elected by the core
dev group, the core team, from people
who run who are nominated by the core
team, but not not necessarily part of
the core team. Uh, however, everyone
who's been on the steering council so
far has been from the core team. Uh,
it's just not required as part of the
process.
Uh, the main purpose of the, uh,
steering council is to do the technical
leadership of Python of the language and
assume the authority that everyone
wants, uh, there to be, you know, the
the final say on PEPs, the final say on
packaging, the final say on,
uh, how the core team should be,
uh, organized, uh,
the veto on new core team members that
are proposed and voted on.
Uh, and And that's what we do. And we're
also supposed to
uh,
do all of this by consensus. So we need
to seek consensus among the community
and not just push our own ideas through.
And trust me, we have a lot of ideas of
our own,
but we do take care to both see what the
core dev team thinks and also what
the larger Python community thinks and
what we need.
We also do a little bit of the technical
direction of the developers in residence
who are paid by the PSF
to work on Python itself.
And we generally spend PSF money on
Python development. So we spend a little
bit of money on like
documentation integration and tracking.
We spend a little bit of money on
various different like the GitHub
migration when we move to get up issues,
that kind of thing on a project basis.
The main thing we spend money on are the
developers in residence and then
we also host a or
we fund basically fund a
sorry
a core sprint for the core team once a
year where we all come together for a
week and really deep dive on Python
development.
And all of that needs money. So we also
help the PSF do a [clears throat] little
bit of fundraising, although not as much
as we probably should.
So the developers in residence are
the project started in 2020
2019.
Uh
where we wanted to hire people to work
on Python itself and at the time Google
came along and said hey we want to
donate a bunch of money to the PSF to
support Python and we put that money in
the development residence program and
hired Lukasz as the first one
and then a couple of years later or a
year later Meta took over that
sponsorship.
Only wanted to do it for 1 year. Meta
took over. Meta's been sponsoring that
position
since then. And then Bloomberg also
stepped up and Vercel stepped up last
year. So, we have three developers in
residence. However, Lukasz decided he
didn't
decided he needed to move to Canada. He
wanted to move to Canada. And because of
that, he could no longer do that work.
He needed a corporate sponsor. So, he
now works at Meta, but not because he
was developer in residence. I was part
of the hiring process, so I can assure
you no hanky-panky there.
But, we do have a vacancy now. Um
the
we are going to fill that vacancy. We
just need to, you know, get our asses in
gear. Uh there will be three developers
in residence. There may be more because
there is room for growth there as well.
We just need money, right? So, and it
doesn't have to be one big sponsor. Like
like I said, specific companies have
sponsored the specific roles in the
past, but it's not a requirement.
And
if you have ideas of what we can do to
fundraise money for those positions, you
should talk to us. If you have ideas of
what to spend money on for Python
development, you can also come.
>> We should fix the name of the
development itself. We should fix the
name of the developers in residence
because you see, when Lukasz was there,
Lukasz was a developer in residence. And
then there was a deputy developer in
residence. But now that Lukasz is not
there, the deputy is to no one. Like
this
>> We also need to hire someone.
>> The city of the city of developer in
residence
>> We need to do a lot, Pablo.
>> Okay.
>> [laughter]
>> So,
I mentioned the core team sprints, the
annual event. This is a picture from
last year at ARM. There's usually a
corporate host. This year it'll be Open
AI.
And we alternate between Europe and the
US at least we try to. So we don't know
yet where we're going to be hosting next
year, but there are some some ideas.
And that's a really productive time.
It's usually right before around the
time the final Python release is
prepared
because we have a an annual release
process. So there's a lot of bug fixing
and then there's a lot of preparation
for the next Python release.
So if you want to support the
development of Python itself,
we do that through sponsorship of the
PSF. You can donate to the PSF as well.
You can donate directly to
the CPython project or you can donate to
the PSF in general and then some portion
of that goes to
Python development
of the language.
So now
>> Are you still your
it's my turn to mess up the big clicker.
Okay, Python 315 is nearly here. Are
people excited about Python 315? Anyone?
>> [applause]
>> We're going to talk about some really
cool features that are landing in this
release. Pablo, do you want to talk
about lazy imports?
>> Why me?
>> Why you?
>> Okay, yes. So lazy imports is is is very
cool. So as you know, like this is a
like it's the second round of this
because the steering council asked
included we rejected the first round and
then here's the second round.
Now now much better.
So you know, the idea here I mean it's a
complex feature. So we we don't have
time to just go over the entire thing,
but the idea is that now there's a new
keyword called lazy
that you can put on your imports and
then
it will not import at the time you know,
that the import is declared. It will
only actually trigger the thing the
first time you use it, right? And then
the cool thing about this is that it
will help with many many things. I mean
the purpose quite extensive, but you can
expect things for you know, if you have
ever have a CLI in Python like a source
CLI and then like you do that that help
and it takes like an hour to just show
you the help. Perhaps not great
experience, you know, like something can
be improved there. And the reason, of
course, is that because that is going to
import half the planet.
So, with lazy imports, you will only use
actually what what is required.
And that's one example when this becomes
very useful. But it's not just about
time. Like, for instance, importing
everything if you don't use it
like requires a lot of space as well, so
memory. And this helps with memory a
lot. And it's not just about CLIs. Like,
for instance, Meta has a very famous
post about like all the
improvements in Instagram just because
of the original version of lazy imports.
And HRP, for instance, has a fork based
on the Meta one that actually help a lot
with our our use cases. So, now we hope
that, you know, it was a very
complicated feature to get in because,
you know, there's a lot of nuances. But
in Python 3.15, you can now just use it.
And hopefully, we hope that you will
enjoy it a lot.
>> Yeah, frozen
>> dict. And now we have our frozen dict,
so you you can now you can create frozen
dict and you cannot modify once you
create it. So, now we have a tuple, we
have a frozen set, and we have a frozen
dict. Please enjoy.
>> [applause]
>> Wow, applause for frozen dict, but not
for lazy imports. Wow.
Just I mean, Pablo and I worked on lazy
imports, so that that feels that feels
like a personal attack right there.
>> [applause]
>> Uh Py
Oh, lazy with clapping. Uh
Python 3.15 is the most colorful Python
yet.
I think very many of the standard
library modules now have colors thanks
to largely to Hugo, maybe. I don't know.
Lots of people contributed to this.
But you should see it in all of your
favorite packages in this coming
release.
>> On your own packages, right? Because our
also allows colors. So your CLIs will
have colors if you want.
>> It's true.
>> Wow.
>> Applause.
>> [applause]
>> Ah, yeah, this is very cool.
So so in the Yes, of course. Yeah, yeah,
yeah.
In the the new the new installment of
Palomax did another profiler. We make a
a huge profiler in the standard library.
In fact, it's so big that the European
Union will probably regulate it soon.
>> [laughter]
>> Whoops. It's illegal in certain
countries. You can only use it in
Germany in highways.
That's how fast it is.
Yeah, but anyway, so so it's a it's a
new sampling profiler in the standard
library. It's called Tachyon. But they
didn't allow me to have a Tachyon
module, so now it's in this
new like replace module called
profiling. So you can go to
profiling.sampling and then the old
CProfile is now is profiling.tracing.
Also, you can use it as CProfile, but
but it is very annoying because you
know, CProfile is CSub like the PSub.
case and nobody remembers that. Anyway,
so now you have a
super sampling profiler with like a ton
of output. You can like read flame
graphs.
You can see live your processes. You can
attach to running processes. If you have
a process that is hanging, you can also
like take a snapshot of that to know
what is going on.
You can also for the first time this is
the first profiler that can also sample
async IO. So like you have like Thanks
to actually someone. So you have a bunch
of task. You can you can see like you
know, what async IO is doing looking at
all the hot task hierarchy.
If you have a bunch of task waiting for
IO, you can also see that as well. So
you can see everything the thing that is
happening. So for example, you're using
FastAPI,
you can see like all the all the
different requests happening and who's
calling that, which is very cool.
And it can sample to 1 million samples
per second.
Very impressive. And it also works with
free threading. Very cool.
>> Has a really nice UI, too.
>> Yes.
>> [applause]
>> Uh and and you can't read like this at
all cuz it's like the smallest font
ever, but that's kind of the point.
There's a lot of features in Python
3.15. Um and so you should definitely
read the what's new and read all the
cool things that are coming to the next
version of Python.
Um let's see. Oh yeah, and this is my
plea for you to go and try out the
latest beta. Uh beta 3 is out now.
Release candidate uh one will come out
in August and then uh 3.15 final in
October. Please try it out. Tell us
where we've broke things. Uh
bugs are gifts. Uh so please file
issues.
Uh and then as the release manager for
3.16 uh I want you to get excited about
3.16 alpha one that starts right right
after 3.15. A little bit early, but uh
yeah, get excited, I guess.
>> [applause]
>> Okay, I need you to control this cuz I'm
going to read the questions.
>> So now we have a Q&A. Um
so we Well, ah yeah, yeah. Okay, so so
so we want to hear from you. So there is
a Discord No, we are still taking them
from there. So there's a Discord channel
uh where you can put your questions.
We'll read them.
>> There's a thread in the in the
general chat in the Euro Python Discord
server. Um you can There's some
questions already, but if you have other
ones, like we'll get to them.
>> And there's also mics for the people in
the room. So you can walk to a mic as
well.
>> Well, in case you are all shy, we did
the stupid also thing to like like have
some stupid AI questions. Uh they are so
stupid. Uh and we wanted to
>> [laughter]
>> We wanted to share it with you. Like
like here is a bunch of examples of a
stupid AI questions.
Uh my favorite one is this like
>> [laughter]
>> My favorite one is the the first one
because it's like oh, you know, would
you rather fight a duck-size in a py or
100 chicken-size in a py uh We actually
generate an image of such a thing,
uh which is so stupid because both are
the same size. Like [laughter]
Stupid AI. Anyway, uh just give us good
questions, right? Like this is the This
is the bar. It's very low.
And I'm going to leave this here, yes,
just for uh you know, spice spice in the
room.
>> The bar is very low.
>> Yes. Shall we start with one from
Discord?
>> Yes. The first question uh is what is
your favorite part of being on the
steering council, and what is your least
favorite part of being on the steering
council?
>> I can I can tell you what my favorite
part is because it's also probably
Barry, Dong-hee, and Savannah's least
favorite part of being on the steering
council, which is me arguing with Pablo.
>> I mean, it it is a regular occurrence
where like I'll look at Dong-hee and
Barry and be like, "Do you guys just
want to leave for a bit and let them
like hash this out?" And uh
all in good fun, though.
>> Yeah, no, no, all good. All good.
>> yeah, yeah.
>> Yeah, Pablo and I get along great. We
just uh
like to argue, both of us.
>> Yes.
>> What's my favorite part? I think um
maybe like a misconception about CPython
is that every core dev works on every
area of CPython, and so prior to being
on the steering council, um
like I knew about what work was going
on, but I think being on the steering
council lets me have like a nerdy
research project like once a week
whenever someone on the team submits a
new PEP, and then I get to go and like
deep dive into some new area that I
haven't worked in before. I think that's
like very fun and interesting. Um so
yeah, that's probably my favorite part.
>> I think my favorite part is that's like
solving really complex problems together
with with with people and friends. I
think that's that's what I like the
most, like which is also kind of my
least favorite part because like some of
the problems we need to solve are like
quite like, you know, difficult
>> Social dynamics.
>> Yeah, yeah, yeah, the social dynamics.
The because like, you know, we need to
like the the the rule of the steering
council is that you cannot win, right?
Like so you you need to choose between
like many of the times two things that
you actually don't even like or tell
friends that their PEP is not accepted
and things like that. And that, of
course, you know, is is the good for the
language, and that's our job, but like
can be quite quite heavy.
Um so, yeah, that that's probably the
part that I enjoy less.
>> Yeah, so my favorite part is that I can
participate at very difficult technical
discussion with with amazing people, and
I can also give a different view that I
have. So, that's that's
all of the my happy point. And I
personally even grows that because I can
cover that that I never have an
experience before, but now I have
experience to to to read a episode.
That's a good thing for me.
>> Uh shall we take one from the audience
since we have someone over there?
>> Sure. Let's do it.
>> Hello. Uh first of all, I'd like to
thank you very much for all the work
that you're doing on Python. So, um um
yeah, my thanks for that. Um question I
have is um first of all, I'm going to
assume that the work that you do on the
on the steering council is uh very much
independent of like the work that you do
for the for the company your respective
companies. Um but I can imagine there
have been instances where uh your
company said like, "Hey, we would like
you to advocate this thing of our own
Python or advocate that thing." Have
there been instances of that where you
felt pressure from your company to do
something that you may or may not uh be
uh uh
uh behind.
>> Um I'll start because I think my
company's probably the one you would
most think of as putting pressure on me
to get things done because for instance
like
>> Thomas? What company?
>> It matter.
>> [laughter]
>> Facebook.
Uh I mean, Facebook's been in the Python
community for a long time, but hadn't
really been that active in core
development. Now, we have a whole bunch
of core developers working at Meta. Um
the
the company doesn't tell us what to do
on core development at all. Like, I want
to make that entirely clear. My manager
doesn't, my director doesn't, all the
people above me don't.
If I if they did, I would tell them no.
Um
I worked at Google for 17 years while I
was a core developer, also while while I
was on the steering council uh they
never asked me to do anything but if
they had I would have just said no and I
mean the worst they can do is fire me so
try and fire me I'm I'm from the
Netherlands I I'm not from the US I'm
not worried about getting fired. So
>> [laughter]
[applause]
>> I I think I think one good example of
this as well is that like we you can
actually see how we actually often take
decisions for the language that are
extremely against the you know benefit
of our own companies. Like one example
for this I would say that actually
affect both of us is lazy imports right?
Both meta and HRT have a fork for lazy
imports based on the old idea and then
we did the lazy imports in a way that
works for everyone with the community
feedback in a way that you know doesn't
involve hacks and whatnot and this
actually goes like it affects both
companies because we now need to undo
the previous version and then do the new
version and do a huge migration uh which
probably at meta is much worse sucks to
be you uh but like
but but you see like this is a good
example right? Like we we we want what
is best for the community and we want to
do these changes to also incorporate
things from the community and and the
PEP not only you know has the the the
ideas that we have that um we knew that
it was going to be better but also like
a bunch of things that people wanted and
that actually goes against the you know
first order benefit. You can argue that
of course uh you know in the long run
these companies will benefit more from
you know having to maintain their own
versions but like in the immediate you
know future uh like it's it's a problem
and this happens constantly. The other
thing I wanted to add is that we are
five right? So even if this will ever
happen with one person
uh like you have four that are still you
know don't have any benefit in that
sense if you are like extremely negative
about the you know involvement of the
steering council but like we we will
check each other very soon. And the
other thing I want to add is that by the
steering council charter um they can
only be two uh people from the same
company max in the Steering Council
precisely to control the background of
this. So, I think that's This has never
been a problem, but even if you are very
paranoid and you are like your tin hat
kind of thing like uh you know, it's
it's it's checked out and like it's very
controlled.
>> I think there there's another backstop
which is uh the Steering Council can be
basically recalled by core devs. So, if
anyone else thinks that there's
something fishy going on, uh there's
more remediation possible.
>> Also, we don't vote on our own PEPs just
to make that clear. Like if you author a
PEP, you're not part of the the deciding
body. So, that's more in a general
sense, but yeah.
>> Yeah, uh
Pablo and Savannah had a PEP earlier
this year
and it was so uncontroversial that it
took Barry and Dong-Yuan me I think 5
minutes to I mean I mean I was already
for, but we still discussed it for like
5 minutes and accepted
>> We we take this seriously. Like when I
when I have a PEP of my own, I always
offer to go out of the room. Yeah, so in
case like they want to discuss something
without me
and the same for everyone. So, we we
take those things very seriously in that
sense.
>> Another Discord question.
>> Uh
do you have any personal learning since
being on the Steering Council which you
may not have expected before?
>> [laughter]
>> Personal?
>> Any personal learnings like
>> Uh personal learnings? People are hard.
Like
>> I mean
>> I was on the PSF board for like 5 or 6
years before I was on the Steering
Council and nothing surprised me.
Uh
I mean, it's it's very different work,
but the surprising things about people,
they're all the same.
>> I mean, maybe this kind of dovetails
with another question that's in the chat
about what the Steering Council's role
is in in the Python community. Like
broader than just the technical
decisions, like do we talk about the
people stuff, the community stuff that
aren't peps? And the answer is yes. Uh
like the project's health is more than
just the code that goes in the code
base. It's also the people that come
back to the project, you know, day over
day, week over week, year over year. Um
and so like we want those people to be
happy and healthy and wanting to
maintain the stuff that they maintain.
So that's absolutely part of what we
talk about.
>> I will say it's almost as much as the
peps or even more. Like we we talk about
all sorts of things that are not
immediately like related to the peps.
Like for example, like there's been like
like lots of lots of talking about not
only the let's say free threading,
right? Like not only free threading by
itself and the technical aspects of free
threading, but like how how to maintain
it, like how to ensure that like this is
not really hard going forward and we
don't shoot ourselves in the foot, like
how like every even every feature and
every pep we we approach it from
different angles, right? Like what if
you are an educator and you want to
teach this like it doesn't matter or
like what if you are someone in like
this happens all the time. Like who
benefits from this? Like who will use
this this kind of thing? So so this
happening all all the time.
>> I mean I think we also talk a lot about
like mentorship and like discussion
health on discuss.python.org
and like various other factors. How do
we get new contributors into the
project? Like what are the challenges we
face there?
Um yeah, Don G, were you going to
>> Oh yeah, I know so that the technical
decision is pretty easier, but like
people issues is tough and sometimes we
we send the message, but sometimes
people interpret that what that what we
didn't want. So that kind of thing is
very tough. Yeah.
>> Yeah, communication is hard. Yeah.
>> We're really
>> Oh, we're
>> angry timer at us. We're
>> [laughter]
>> We're 10 seconds over and it's like
>> Well,
do do we do you want us to stop or
should we keep going? We can keep going
for another half hour.
>> [laughter]
>> They're like, please stop.
>> break. Coffee break. People want their
coffee.
You can ask us questions later.
[laughter]
>> For
>> [applause]
>> What further people on Discord, uh, will
answer the questions asked on Discord.
Uh, and if you're not on Discord, maybe
that's a reason to join the Discord.
Thank you.
>> Thanks, folks.
>> Thank you.