Brought to you by Talk Python Courses and Six Feet Up consulting

#494: Python Wrapture

Published Tue, Sep 1, 2026, recorded Tue, Sep 1, 2026
0:00
00:28:37
Watch this episode on YouTube
Play on YouTube
Watch the live stream replay

About the show

Sponsored by us!

Support our work through:

Connect with the hosts

Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Tuesday at 7am PT. Older video versions available there too.

Finally, if you want an artisanal digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.

Calvin #1: OpenAI's Python SDK has migrated to HTTPX2

  • The OpenAI Python SDK has migrated to HTTPX2, the Pydantic-stewarded fork of httpx. Pydantic picked it up citing "limited activity recently" in the original project, promising "a reliably maintained path forward."
  • If you just use the default client, nothing to do. No code changes.
  • The catch is TLS. Quoting the guide: HTTPX "previously verified certificates against the CA bundle provided by certifi. HTTPX2 instead uses the operating-system trust store, and the SDK no longer installs certifi."
  • That "can break certificate verification in minimal container images without system CA certificates, environments using corporate TLS-inspecting proxies, and deployments that relied on a custom or modified certifi bundle."
  • The fix is SSL_CERT_FILE or SSL_CERT_DIR, or pass your own ssl.SSLContext via verify.
  • Deeper integrations need real edits: custom clients, auth handlers, hooks, and request mocking all take HTTPX2 objects now, and plain httpx is no longer pulled in transitively. So import httpx in your own code means declaring it yourself or moving over.
  • Temporary escape hatch: a legacy HTTPX client

Michael #2: TMOG - Native Task Manager for macOS, Windows, and Linux

A native, deeply instrumented system monitor for macOS, Windows, and Linux, now in public beta - from Plummers' Software, i.e. Dave Plummer, who wrote the original Windows Task Manager and donated it to Microsoft in 1995. Wikipedia

  • Three real native apps: Swift/AppKit on macOS, Win32 on Windows, C++/Qt 6 on Linux, with a shared C++ core keeping metric semantics aligned - no browser shell anywhere.
  • One dense summary: CPU, clocks, thermals, GPU, memory, storage, network, energy, and the processes responsible for the load, all click-through.
  • Per-core honesty: logical processor and NUMA views, P and E cores color-coded, optional kernel time, 60 FPS live meters.
  • Memory with context: pressure, wired, compressed, cached, committed, available, and swap, plus configurable scrolling history.
  • Processes that act like processes: tree view, filtering, sorting, follow mode, and native verbs including service and launchd control.
  • Phosphor themes: light, dark, green, amber, blue, or mono, with color and saturation you tune yourself.

Calvin #3: wrapture - one wrapper for mocking, tracing, and observability

  • Graham Dumpleton, author of wrapt and the original New Relic Python agent, has released wrapture. The name is wrapt plus capture. The core idea: wrap real code instead of replacing it, so the real code still runs while you watch every call.
  • Name a method with wrapture.binding(Class, "method"), open a timeline(), and you get a tape of what actually happened. Real return values, real nesting, arguments normalised against real signatures. tape.tree() prints the call graph as it ran.
  • One mechanism, three jobs: monkey patching with a real lifecycle (apply, remove, suspend, plus returns, raises, transforms_args), unit testing that asserts on real call flow instead of a flat MagicMock call list, and ad-hoc tracing of a running app.
  • The testing pitch is error paths. Inject TimeoutError at the payment gateway, then assert the ledger was never written. Stubs and mocks are strict and spec-required, and there is deliberately no bare Mock().
  • Tracing needs no code at all. A wrapture.toml naming targets and a sink, run with python -m wrapture main.py, and you get a live call tree with timings. It captures ordinary logging calls as nested events, and with the otel extra it exports spans, metrics and correlated logs with W3C trace ids that join across services.
  • Every line of code and docs was AI-written under their direction, and they say so up front. Two weeks from first commit, eleventh alpha, over 1000 tests, 150+ pages of docs. Alpha on PyPI, needs Python 3.12+ and wrapt 2.4.0+.

Michael #4: linkedin2md: turn your LinkedIn export into 40+ Markdown files

Via Juan Manuel Daza - a Python CLI that unpacks LinkedIn's data-export ZIP into clean, per-category Markdown you can drop straight into an LLM.

  • One command: linkedin2md Complete_LinkedInDataExport.zip, plus o for output dir, -lang en|es, and -pdf.
  • 40+ output files: profile, experience, education, skills, connections, posts, comments, reactions, recommendations, endorsements, job applications, even ad targeting and LinkedIn's inferences about you.
  • Built for LLM analysis: the README pitches NotebookLM, Claude Projects, Obsidian, and Ollama, with example prompts like "what patterns do you see in my career transitions?"
  • PDF resume mode: -pdf renders an A4 CV via weasyprint, and degrades gracefully to Markdown-only if it isn't installed.
  • Dependency note: "pure Python / zero-dep" holds for the Markdown path only - the PDF path needs weasyprint and markdown installed.
  • Install: pipx install linkedin2md recommended, pip in a venv otherwise - 86% Python, 10 releases, v0.3.1 in May.
  • Agentic dev angle: repo ships opencode config and an N3RV subagent pipeline, including a "judgment day" dual-model adversarial PR review.

Extras

Calvin:

Michael:

Joke: Tao of Programming: Book 5 Maintenance

Episode Transcript

Collapse transcript

00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.

00:05 This is episode 494, recorded September 1st, 2026.

00:09 Calvin, can you believe it is September?

00:11 It is my birthday month.

00:12 Well, awesome.

00:13 I'm excited for your birthday.

00:15 I'm excited to be here.

00:16 Let's do this.

00:16 Yeah, I'm Michael Kennedy.

00:18 And I'm Calvin Hendrix-Parker.

00:19 And this episode is brought to you by us.

00:21 Check out Six Feet Up if you have a impactful, meaningful consulting project.

00:26 They focus on that kind of stuff and they solve the hard problems.

00:29 so you keep on doing what you do.

00:31 If you want to learn things about Python, we have over 285 hours of Python courses at Talk Python Training.

00:37 So also check that out as well.

00:39 Sign up to the newsletter, follow us on the socials and watch the live stream if you wish.

00:45 All that stuff is in the show notes.

00:47 I wish to know what you're looking to do, what you're looking to talk about.

00:53 HTTPX2, amazing.

00:54 I have thoughts.

00:55 I know you do because I've seen you use it.

00:57 So if you all haven't moved over to HTTP/X2, probably a good time to do so.

01:04 I think in May of this year, the Pydantic folks took over the HTTP/X project and renamed it to HTTP/X2. So if you're wondering about the naming from HTTP/X to HTTP/X2, that is what that is about.

01:19 It's gotten a little more visibility. I think it was mentioned on a couple of lists here in August, but it actually happened back in May. The more kind of important news right now is that OpenAI Python SDK has moved to HTTPX2, which I'm sure there's a lot of folks out there who are

01:33 writing Ingentic apps or using the SDK in some way. That's a great news for you because now you're on the supported version by the great folks over at Pydantic. If you're just using the default client,

01:45 there's really nothing for you to do. There's no code changes. It is a drop-in replacement for the HTTPX, well, the original version of the OpenAI SDK, the one catch. If you are using HTTPX2 and

01:58 the new OpenAI Python SDK, the bit that's going to trip you up if you're doing some special stuff, like, for example, if you're using a really stripped down container that may not include

02:08 things like a certificate store in it, you're going to get run into an error. The HTTPX2 got away from using the CA bundle provided by Certify. And so HTTPX2 now uses the one built into

02:20 the operating system trust store. So the workaround for that is to pass in your own SSL cert files, your own cert dir. So basically as part of the verify argument into the client, you can pass in

02:32 your own SSL or when you build your SSL context, you'll be able to pass that in on your own. So just something to watch out for. I know a lot of people could probably spin their wheels quite a

02:43 bit trying to figure out what's wrong or how to do that. But the docs actually go over pretty much in depth right here. So I'm on the HTTPX2 markdown inside the SDK docs here. So if you are needing

02:56 to use that legacy HTTPX support, it is an option. There is a temporary escape hatch still available where you can use a legacy HTTPX client. I think they mentioned that down here at the very bottom.

03:06 I think it also works with legacy HTTPX aiohttp2. So there are some temporary measures if you want to get back on track quickly, but still be using the latest version of the SDK or just pass in

03:20 your own certificate store and you'll be good to go. Michael, what are your thoughts on this?

03:25 Well, this is, this is big news, but did you see the headlines that Python by side of him switched to it like four months ago? It was pretty incredible. Yeah. Yeah. Yeah. Just kidding. No,

03:34 this is actually, I wholeheartedly support this. I think just thanks to the Pydantic team over there who has done this work.

03:44 We actually covered, oh my gosh, sorry, I'm forgetting the person's name who sent this in.

03:49 It's like Michelle, Mikael, who did the original fork of HTTPX to something slightly different.

03:57 And then a month later, the Pydantic folks took it over.

04:00 And I think this is good because I won't rehash it, but HTTPX has been, while I think the best HTTP client I've used Python, also it's kind of gotten into a weird, tied itself into some weird knots.

04:13 And so I think what we're seeing from HTTPX2 is a really great direction.

04:18 So that's really good.

04:19 I mean, if you're holding off or if you're still using requests or you're wanting to jump in, this works synchronous or asynchronous.

04:24 Most of the time you can drop it in as a replacement for requests.

04:28 So there's no reason not to move to HTTPX, especially since it's got great support from a commercial entity of the fine folks at Pydantic.

04:35 Yeah, exactly.

04:35 It gives it hard to beat.

04:36 Yeah, it's definitely giving it a serious boost forward.

04:40 So I'm here for it.

04:42 Thanks, Pytano team.

04:43 It's cool to see OpenAI adopting it.

04:46 They use a lot of the tools that we sing the praises of here, which is also pretty neat.

04:49 Yeah.

04:50 Well, I think that you're going to find that when there's great minds thinking alike are going to be using similar patterns, dependencies, the well-adopted, well-trodden ones.

04:59 I mean, this is, again, letting you know, it's like a signal to the community that there's a lot of people who are putting real-world road usage on these libraries, Because I can't imagine what the downloads are for the opening SDK.

05:11 It must be huge.

05:12 I didn't go look, but I can only imagine.

05:15 Yeah.

05:15 I think your next item also is going to have an interesting, put a bunch of libraries and runtimes for a bunch of the tests at a very high scale pretty soon.

05:26 But I want to move on and talk about, I don't even know how to call it, TMog, a native task manager for macOS, Windows, and Linux.

05:34 Works for all three of these.

05:35 Now, you might think, don't you already have activity monitor?

05:39 Like, what do you want, Michael?

05:40 Let me show you, Calvin, and you kind of give your first impressions of this to the listeners.

05:47 And if you're listening and you want to see the video version, jump over to the right at the top of the episode file.

05:53 The video part will be about like 7 minutes and 29 seconds.

05:57 So check this out.

06:00 So I'm going to make it a little skinnier.

06:02 All right.

06:03 So this comes to us from Dave Plummer.

06:06 and Dave Plummer is the guy, he does Dave's Garage.

06:08 It's kind of a cool YouTube channel.

06:10 I've actually got to have dinner with him one time at a Microsoft event, which is kind of cool.

06:14 But notably for this conversation, he's the guy who made task manager for Windows, like in Windows, right?

06:20 From Microsoft.

06:21 That's cool.

06:22 And so, but this is for all the platforms.

06:24 Now there's a couple of things to note.

06:25 I left it in the very much pure first run because I put it on my laptop.

06:29 I put it on my workstation, but not on my streaming computer because that's, I just have too many computers.

06:34 First thing I said, Would you like Control-Shift-Escape to automatically run this?

06:37 Yes.

06:38 So even if your computer's frozen up and you can't get to your menus or whatever, you just hit Control-Shift-Escape, which is the way Task Manager works on Windows, and it'll bring this up.

06:46 So you could Command-Q it, and then it'll come back.

06:48 You can see it just popped up a running in the background thing.

06:50 That's the little watcher that just launches it, right?

06:53 Also, you'll notice it's got a bit of a color flare that I'm not a super fan of.

06:58 So you can go over here.

06:59 I don't like it.

07:00 Do you?

07:01 Well, it's called Visual Bloom.

07:03 You like it?

07:04 I do.

07:04 but I'm always looking for interesting visual eye candy in my apps and that's cool yeah well it's

07:10 got all these different flares you can do like a mono mono green but yeah but you can also just turn off the visual bloom and like turn up and down the saturation depending on how you want it so I kind of like it without the bloom but you know to each your own and check this out you got all

07:24 these different things that you would get and um like a proper task manager nice graphs but a lot of attention to detail too. So it's got a CPU, it's got the temperature, which is interesting.

07:36 It's got the GPU, memory utilization. But do you notice anything weird about the scale of the graphs, Calvin?

07:43 Just with the scale of the graphs here.

07:44 They're logarithmic, but not logarithmic in terms of the input, but logarithmic in terms of time.

07:50 So as stuff gets older, it compresses. So you can see a really long tail of performance history, but you can also see fine grain detail in the immediate part, which is super cool, I think it's all on the memory.

08:02 It's on the CPU, all the things.

08:03 Yeah.

08:04 Yeah.

08:04 I like that.

08:04 And each one of the, there's a bunch of stuff here.

08:06 There's like network, there's CPU.

08:08 And each one of these, if you click them, it takes you to like show you all the cores and all the things.

08:13 And right.

08:14 You can jump in to these different parts of the app with like crazy amounts of detail.

08:19 So these are all really neat.

08:20 You can go see all the processes and you can filter them by trees.

08:25 You can search or like show them as a tree.

08:27 So you can see, like, for example, Vivaldi has like a crap ton of stuff going underneath it, which is fine.

08:33 Background processes.

08:35 You can see system information, all sorts of fun stuff there.

08:40 What apps are startups?

08:41 What user are running?

08:42 Hey, it's me.

08:43 What services run?

08:45 And there's all these pro features like power and frequency, a bunch of network stuff.

08:51 There's some kind of pro thing coming, apparently.

08:54 the pro it's all in beta. So the pro feature is not available. So I didn't know.

08:58 I can't, you could do like benchmarks and manage this space and so on, but just the free stuff already, I think it's super cool.

09:04 How's this?

09:05 Well, I would love to see this.

09:07 I would love to have this as a client that can talk to remote systems too.

09:11 So you could switch between like three or four different remote systems.

09:13 Cause you just mentioned you've got like three or four or five computers sitting in your office lab, et cetera.

09:19 And so I'm regularly using like Bpy top on all of them.

09:22 So I can log into the machine, see it's like, see some of these stats, but I love the visual, again, eye candy for that this is giving me.

09:30 And I'd love to be able to have it like show me my framework desktop sitting over there, but from my MacBook sitting over here.

09:36 Yeah, that would be cool.

09:37 I'm a fan of BTOP as well, but there you can just do a terminal or a Tmux window for each one, right?

09:43 Yeah, and this is super.

09:45 In the navigation from sort of high level to detail, I thought it was really cool and it's free.

09:50 So, well, and the fact is cross-platform, Because I'm regularly moving back and forth between Linux and macOS.

09:56 And so I really appreciate good cross-platform tools, especially ones that are open source.

10:00 So my favorite terminal is Kitty.

10:02 Kitty runs Mac, Windows, Linux.

10:05 And so I get the same experience across all three platforms.

10:07 I don't feel like I've missed out on anything.

10:08 Hey, Michael, I've lost your audio.

10:10 Sorry.

10:12 What's interesting is the way that they've done the cross-platform is it's not just like some electrons-like thing, right?

10:20 It's native for each platform.

10:22 like swift and apple kit and native win 32 and ut6 yeah that's a first time around heart doing it right yeah that's the guy that writes low level content for windows now i'm pretty sure that this

10:36 electron app feels like an electron app no matter where you're at and it's like it just feels a little sometimes it feels suboptimal so i'm really well done but that is the way to do it right there

10:46 yeah so i think this is a neat uh neat tool that i've run across and just um happy to share it

10:51 Yeah. Let's see a little bit of real time feedback. Alfred says, don't care much for the color of fonts, but the logarithmic X axis graph is a very cool idea. Yeah. You have like six different choices of color palettes and you've got a dark mode and a light mode as well. And I would, I'll just add like for people listening, if you liked Winamp, do you remember Winamp? Was that one of the most insane?

11:14 I'm a big fan of Winamp. I haven't met a long time ago.

11:18 You could change the shape of Winamp.

11:21 Your Winamp could be completely different from anyone.

11:23 It's an audio player from back when, like, hey, let's put something on the computer.

11:26 Look, it plays audio.

11:27 It was so amazing.

11:29 If you like Winamp, you'll probably like this thing.

11:32 It's kind of the feel I get for it.

11:34 Nice.

11:35 All right.

11:37 The Rapture, what is going on here?

11:39 This is a very important spelling, not phonetic sort of thing.

11:41 Yeah, it is.

11:42 It is very important spelling.

11:44 this is about a new library available to folks. If you are familiar with Graham Dumpleton, which many of you probably are, maybe don't know it, but he's the original author of the New Relic Python

11:56 agent. And so thinking of someone who has their software in the critical path of many, many production applications, he is also the author of Wrapped. So Wrapped was a library for dealing with

12:09 the mechanics of monkey patching in Python, which I'm not a fan of monkey patching, but if you got you want to do it the right way.

12:15 This is probably a person who's thought deeply about how that should be done.

12:19 But wrapture is wrapped plus capture.

12:23 The core idea is to wrap real code instead of replacing it so that the real code still runs while you watch every call.

12:30 So you get a new method.

12:33 Basically, you wrap a method with your wrapture call, open up a timeline, and then you get like a play tape of what actually happened.

12:41 And you can actually do a tape.tree and you can actually print out the call graph as it ran.

12:47 So you can see all the args that got sent to that specific call.

12:50 You can see how it ran.

12:52 And so it's a really cool mechanism.

12:54 But it does sound like an awesome debugging tool.

12:57 Oh, my God.

12:58 Yeah, totally.

13:00 Yeah.

13:01 So you get monkey patching with a real life cycle.

13:05 You can actually apply them, remove them, suspend them, plus returns, raises, transforms.

13:11 there's a whole bunch of like functionality and features that now provides you if you're doing this. You also get a unit testing that can assert on real call flow instead of again and against

13:22 normalized against like real call signatures. And then you get the tape tree thing that, or I'm sorry, you get the tape tree that prints out the graph as it ran. So it's kind of cool

13:33 that you get this ad hoc tracing of a running app in real time. What I mean, I mentioned the injecting calls. So if you're doing unit testing against your application,

13:43 and I'll give a shout out to Brian Okken's new Lean TDD book here. He mentions in his book, he's not a fan of mocks because they can do a little more heavy lifting than most folks probably

13:54 should be doing with mocking as part of this testing operation. This gives you a better way, a more structured way to do that. You can do things like inject, for example, into the call

14:05 in real time into the real code, a timeout error. So if you're trying to simulate maybe a network connection out to a payment gateway, and you want to inject a timeout error in there, so you know

14:17 how your code would react to the timeout error, you can basically stub and mocks are strict, and they're spec required. And there's basically no bare mocks allowed with this set of tools. So

14:29 it gives you a very strict framework to run in that gives you all the pieces you want. And so then tracing needs no code at all. So you mentioned tracing. If you actually want to be able to do tracing with wrapture, there's a Toml file configuration that you can put in there.

14:43 You can define all your targets and then a sync, which is where all the data kind of goes to you.

14:49 And then you run it with the wrapture turned on and you get a live tree call from all the, with all the timings for everything you just configured in the wrapture Toml file.

14:58 You did not have to modify your own Python code to enable that. So you can get all that tracing logged. You know, it's a really cool tool. Another cool thing about the project is,

15:09 and there's a really good write-up here, obviously, from Graham on this, the whole thing was built on with AI on purpose. So he gives a really good mini essay inside of the blog post about his

15:21 opinions about Vibe Coding, agentic engineering, why he wrote it this way with agentic code, or agentic code agents, and how he was intentional about his usage of AI in writing this and doing it

15:32 all up front. So I thought those are a good way to convey to folks, you know, how this was made and

15:38 why it was made with AI. It's very interesting. And it's cool that he calls it out. I do think it's so interesting. He says like, we get a lot of submissions for the show for show topics. And

15:48 I've noticed a lot more coming in lately from just AI generated stuff. Like, Hey, here's a project I created. And it's not only is the project created with AI, but the email was written with AI and

16:00 I'm like, oh, please.

16:01 Okay.

16:03 I'm not going to tell people how I know, but it's absolutely obvious because humans wouldn't write this way.

16:07 Because if I tell them, then they're going to stop doing it.

16:09 They'll have to figure out a way to find out.

16:11 But as you know, we're both like, we see AI as a pretty incredible tool.

16:17 Yes.

16:18 But I also, what you can't tell really easily is how much thought from the human has gone into it.

16:24 And then maybe an implementation with the AI versus just some kind of like one big prompt and let's see what comes out.

16:29 You know what I mean?

16:30 Yep.

16:31 Another thing to note again on this project, while this is not in itself a production APM, it's a toolkit that APM-like things could build on.

16:40 It's also not a competitor to open telemetry, but it emits open telemetry rather than trying to replace it.

16:46 So it can play alongside of all your existing OTEL tools.

16:50 Again, if I was wanting one of these things to put in place into my applications, I think I'd trust that coming from a person like Graham.

16:57 Yeah, super cool.

16:58 I'm going to be interviewing Pablo and Laszlo about the Python 3.15 profiler changes that allow you to do production profiling without, you know, just attached to like some production code and just do profiling there soon on Python.

17:15 So, yeah, it feels like this lives in that space.

17:17 Yeah, it does live in that space.

17:18 It's kind of cool that you could basically configure the Toml file, restart the app in real time, turn on tracing and see what's going on and then tell it to turn itself off.

17:27 Yeah.

17:27 Yeah, that's really cool.

17:28 Really cool. All right. Let's jump over to my last item here, which is LinkedIn. I get a comment LinkedIn to Markdown or LinkedIn to MD. Now this is a project that does not have a ton of stars or

17:41 anything like that. But I think there's a lot of people out there for whom the job space is changing.

17:47 And a lot of these companies are using AI and stuff like that to pre-filter resumes. And it's like, To stand a chance, you know what I mean?

17:56 So this thing, what it lets you do is it lets you download your own LinkedIn data.

18:03 So you can go to LinkedIn and say, export all of my data.

18:05 And in here somewhere, it shows you what to do.

18:08 So you get some LinkedIn export, right?

18:10 And so this is just a CLI that you can say, LinkedIn to Markdown.

18:15 Give it your zip file, and it generates over 40 different analysis and views of you.

18:23 According to LinkedIn, at least.

18:25 And it gives you like a CV or a resume that you can submit.

18:30 All kinds of things it gives you here.

18:32 You can run Notebook LM against it or chat or Olama and ask it about yourself.

18:38 So it'll create a profile, your experience, your education, your skills, all your endorsements, what you've learned.

18:45 I feel it'll generate, like I said, the PDF.

18:48 It's configured to work with open code in the N3RV orchestration framework.

18:53 So you can work with it more.

18:54 Anyway, I just think this is a pretty interesting thing for folks out there, you know, job hunting or wanting to make themselves stand out of the way.

19:01 I'm already a fan.

19:03 Exactly.

19:04 When I saw Markdown, I'm like, oh, yeah, I like it.

19:05 Okay.

19:07 It's the LLM analysis.

19:09 I guess you're giving it good context because you're taking the LinkedIn data and put it into a format that the LLMs, the Generative AI pieces can do something more with.

19:19 Yeah, I think the basic idea is take every bit of data that LinkedIn has about you and convert it into structured, known markdown.

19:27 And now you can do all sorts of things with it.

19:29 Yeah.

19:30 Did you try it?

19:31 Did you get any interesting insights about your career, Mike?

19:33 I have not.

19:34 I honestly, I haven't done enough with LinkedIn lately, though I can tell you, I do frequently get, hey, your colleagues at the Python Software Foundation are doing X, Y, and Z.

19:44 could you connect me with somebody because i put i'm that i'm a psf fellow yeah on my linkedin oh now they all think i work for the psf i don't work for them i just there's this designation so

19:55 i put it on my linkedin yeah i get the same thing for indypi people want to provide offshore development services for my local python user group called indypi well i'm sure that it needs a huge

20:08 development team yay bots and ai or could they interest you maybe in uh some automation using ai have you thought about this calvin i don't know that maybe i get it all the time

20:21 i just it makes me want to go play a game it makes me want to just check out and just play

20:25 a game on python 3 you know what you could play a game on python 3 soon uh have you ever played

20:31 eve online a little bit i had uh christian one of the folks behind eve way back in the day uh in

20:41 2026 who uh to talk about running python that backs um eve online and it's a massive amount of compute and stuff that their mass their their mmo does and in fact i just spoke with him yesterday

20:54 about this article and we're going to do a talk python episode diving into it with the team i think

20:58 it's worthy it's worthy of a great talk because this is probably one of the more massive moves from python 2 to python 3 and it's not just standard python 2 it's the whole uh was it stackless

21:10 to, yeah, stackless Python 2.5. They did a migration in 2007 to 2.7. And in 2010, they went to 2.7.

21:18 In 2007, they went to 2.5. So it's got to be one of the larger code bases out there that is still running. I'm sure it's the largest code base still running Python 2. And they're talking about the

21:28 move to Python 3. And so they are seeing a huge performance boost by potentially moving into Python 3.0. Nothing else. They're going to enjoy life a lot better, not being on some weird, I'm sorry, I shouldn't say weird.

21:41 An alternate implementation of Python 2, they're going to move into probably a more standard Python 3 world since we have these threadless capabilities built into Python 3 now.

21:52 But it's a big community.

21:53 I'm not a gamer.

21:55 I take that back.

21:56 I look like a gamer because I've got all this cool gaming gear around me.

21:59 But it is probably one of the bigger Python news items in the gaming ecosystem.

22:05 So that's pretty cool.

22:07 I was a gamer when I was younger.

22:09 And for a long time, I was not.

22:11 But in the last four or five years, I've really gotten into it with my daughter.

22:14 We'll do like cooperative games, like Small Lands or Subnautica or something.

22:19 And we're just having a really nice time.

22:21 So let's see.

22:23 I asked a little bit of asking here.

22:26 And it says that there's typically around 20,000 online playing on Tranquility on a typical day.

22:34 Yeah, that's pretty high.

22:36 And I don't know.

22:36 I'm still trying to figure out how many.

22:38 There's something around half a million registered users.

22:41 Yeah.

22:42 They're moving.

22:42 A million players.

22:43 Yeah.

22:43 2.4 million lines of Python.

22:45 Like that's a hard number to wrap your head around.

22:48 Yeah.

22:49 It's an amazing project.

22:50 So.

22:50 Yeah.

22:50 There's nothing else.

22:51 Go look at the blog post just for the beautiful like space art that is included in it.

22:56 And don't you like how they presented it?

22:59 It's the move to Python 3.

23:02 It's like a game launch, right?

23:05 Yeah.

23:05 It's like you're in the mission.

23:06 Like the move to Python 3 is the mission.

23:09 Yeah, yeah, yeah.

23:10 It's like we're doing the mission of the migration.

23:14 I'm not logged in the right place to look, so I'm not entirely sure.

23:17 But someone else sent this over as a, hey, you should check.

23:21 Actually, it was LinkedIn of all places.

23:23 Hey, you should check this out and share this with me.

23:25 So that's super cool.

23:25 I might've been Sam.

23:26 So thanks for sending it over.

23:28 But yeah.

23:28 I got one other extra, which is kind of falling in line with my extras from last week.

23:33 If you are on old hardware, I think last week I mentioned or just different kinds of hardware where Python may not be supported as well.

23:42 Last week I mentioned some of the RISC-V hardware.

23:46 This week, uv now gains S390, PowerPC, and long Arch64 support.

23:54 So if you have got some friends who are on mainframes or the Power Platform, you're now gonna have the ability to use uv as a version 12.7 or 0.12.7.

24:04 Wow.

24:06 So is that uv itself or is that to the Python install for uv?

24:12 That here, I actually, I popped it open here.

24:15 uv itself is getting the Linux support for S390X, PowerPC, 64.

24:22 Nice.

24:23 That must be a breath.

24:24 For cross-platform dependency resolution.

24:26 So it's not the download and install of Python, but it is the dependency management for those platforms.

24:34 Like the uv add or uv sync or uv pip install, et cetera.

24:37 Yeah.

24:37 Cool.

24:38 If you were feeling left out and left behind because you're on a main frame or power, good news.

24:42 You're, you can go upgrade and check out uv now.

24:45 Yeah.

24:45 And, one more, a really nice sign of dedication and activity from the astral team within OpenAI, because I know that was a concern three, four months ago, right?

24:55 Yep.

24:55 All right.

24:56 I have got, one extra as well.

25:00 Let's see.

25:01 I want to just give a quick shout out to Will McGugan from Textual Enrich and all that.

25:06 He is releasing this project called Dinkus, a distraction-free markdown studio for Mac.

25:12 So no account, works offline, but it looks really nice.

25:15 It's got, it's like sort of markdown plus more, really, you know, really neat stuff here.

25:21 Like really nice work with tables and images and stuff that's typically not the best, you know, syntax highlighting for code and so on.

25:27 Stuff that's not great for typical markdown stuff.

25:30 I will point out that I kind of feel like it needs a bit.

25:34 It's not quite 100% ready and probably Will knows that.

25:38 But like, for example, it has this typewriter mode, which is sort of a non-standard, you know, it's like more for writers.

25:43 You can't tell it to not start in a typewriter mode.

25:45 So every file you open, you've got to find like a way to turn it off.

25:47 And there's not a hotkey to turn it off.

25:49 You've got to find the button.

25:50 You know what I mean?

25:50 Like that kind of stuff.

25:51 Like it's early days, but it's still, it's on sale for, what is it?

25:57 $9.

25:58 So yeah.

25:58 If you want to support Will, definitely.

26:00 Let's take the support Will.

26:01 Nothing else.

26:02 It's probably a good way of supporting Will and all the things he's been doing.

26:05 Yeah, a few people have used Will's work.

26:07 For example, over a billion downloads for rich and textual, I believe, which is an insane contribution for an individual.

26:15 So worth thinking about.

26:16 All right, shall we close this out with a little bit of Eastern philosophy?

26:21 No, we shall.

26:22 We shall.

26:23 I'm going to come back.

26:24 I'm going to come back to the Tao of programming one more time here.

26:27 Remember this, if people didn't listen time. This is a book that is like, some of the philosophies like Tao Te Ching sort of thing, but, but for, you know, a lot of sort of master student karate type of stuff, but for

26:42 programming. So we're going to do a little, a few readings from book five maintenance. Thus, this is, we, we closed out with it, but I got to do it again because it's short. It's so good. Thus spake the master programmer, though a program be but three lines long someday it will have to be

26:56 maintain this is true as well as wiser words have never been spoken exactly 5.1 a well-used door needs no oil on its hinges a swift flowing stream does not grow stagnant neither sound nor thoughts

27:09 can travel through a vacuum software rots if not used these are great mysteries it's true about the

27:14 rot folks ask about that because you know people who have software developed for them think it's done like and we release and they run and then something breaks and like well what happened like well, the rest of the world around your software changed.

27:27 And that's where a lot of the rot happens that you don't control.

27:30 And it's true.

27:31 And it's real, I think it's an insightful part of programming actually, right?

27:34 Like if you keep using it, eventually you'll see there's little issues and you'll get them fixed.

27:39 But if you don't, you come back 10 years later or whatever, you're like, oh, study would start.

27:43 The world is not a static place.

27:45 I'll leave a few passages for other folks, but we'll close it out with, does a good farmer neglect a crop he has planted?

27:51 Does a good teacher overlook even the most humble student?

27:54 does a good father allow a single child to starve does a good programmer refuse to maintain their code deep thoughts or in the in the terms of like pop culture things that make you go hmm

28:06 or rap from the 90s whatever you call it i'm definitely not letting my kids starve so i

28:10 so you better get out there and maintain your code obviously we'll maintain my code exactly all right well calvin thanks for being here kind of reminds me of the old

28:19 business software uh alliance would you you wouldn't steal a car would you

28:26 exactly put put your um napster down yeah but don't do you know what your napster's doing it's 10 10 p.m all right thanks so much calvin see you later all right talk to you


Want to go deeper? Check our courses




Subscribe to Python Bytes