We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode #411 TLS Client: Hello <<guitar solo>>

#411 TLS Client: Hello >

2024/11/25
logo of podcast Python Bytes

Python Bytes

AI Deep Dive AI Chapters Transcript
People
B
Brian
Python 开发者和播客主持人,专注于测试和软件开发教育。
M
Michael
帮助医生和高收入专业人士管理财务的金融教育者和播客主持人。
Topics
Michael 重写了 TalkPython.fm 网站,将底层框架从 Flask 迁移到 Quart,以解决 Flask 缺乏更新的问题,并详细描述了这个多阶段升级过程,包括测试所有 1000 个页面。他比较了其他框架(FastAPI、Litestar、Django、Hugo)的优缺点,最终选择 Quart 是因为它流行、维护良好且与 Flask 的代码迁移成本低。 在重构过程中,他首先将同步代码迁移到 Quart,然后进行异步化改造,最终实现了五倍的性能提升。他使用网站地图测试了所有页面,并修复了用户反馈的几个小问题。 Brian 介绍了 PyPI 现在支持数字证明以增强 Python 包供应链安全性的消息。他解释了数字证明如何验证 PyPI 上的文件与上游源代码仓库、工作流程和生成文件的提交哈希之间的关联,从而增强安全性。对于使用 GitHub Actions 和受信任发布的维护者,只需更新 pypa/gh-action-pypi-publish 的版本即可。对于其他情况,则有计划支持自动生成和发布,或者可以手动生成和发布,但不推荐。 他还介绍了 PEP 639(改进许可证清晰度)现在受 PyPI 支持的消息,该 PEP 允许使用 SPDX 表达式更清晰地指定软件许可证,并提供了使用 license 和 license-files 字段的示例。

Deep Dive

Chapters
Michael discusses the reasons and process behind rewriting Talk Python in Quart, considering various frameworks and the benefits of Quart over Flask.
  • Rewrote Talk Python in Quart, considering FastAPI, Litestar, Django, Hugo, and Flask.
  • Quart chosen for its maintenance and potential to switch back to Flask with minimal changes.
  • Performance improvements and simplified asynchronous code handling.

Shownotes Transcript

Translations:
中文

Hello and welcomed python bites. Are we delivered python news and headlines directly to your earbuds? This episode four hundred and eleven recorded we had the four one one today. Four eleven recorded november twenty fifth twenty twenty four. And i'm brian .

and Michael .

Kennedy and this episode is brought you by us. So um will links in shann's but check out tatho training and come for courses and patrons supporters thank you for sticking that um also uh we have lots of links in the shower notes for connecting with us on social media because we've got um we've got links for uh faster down on mon and also blue guy for all of us here we've got some bites and brian ocken and in Kennedy in Kennedy is that in Kennedy that codes so check on blue back but all lakes in the show notes and thank you everyone for showing up for the live show. I love having you guys here and in commenting and if you'd like if you listening later that we thank you also but if you'd like to listen, sometimes it's it's usually ten pacific time sometimes other times um um and you can go to pyto by side F M slice live to get that. And finally, if you are listening and you you you wondering about the any link that we cover in the show, um you can go to our our page, the the notes page on python side of them but you can also click on click on the link, get in the news letter and we'll just send you those links right in your email in box.

I have two more thoughts, quite right. And we even talked about this before. I think the news letter awesome people seem to be really enjoying IT connecting with IT the people who are subscribers there.

But I don't even want surely see this I want to encourage. But if you don't listen to the show, you maybe miss wonder something. You're still gonna those in your inbox and you just put through quick o look at these two things, things that they found as number one.

Number two, this is also all of the stuff are shown super detailed. And so people put our r speed, R S S speed for the podcast into their regular R S reader. Is rule similar as well. So is there's reason to add you R S S, this R S be to may be reader or whatever, be banner, whatever, using outside or just listening to the great hack.

I like that speaking in hacky.

you want talk .

about having, yeah, you hacked .

some website. I have some website hard, I act IT hard. And python bites on the docket to get the same hacking.

So for as long as there has been a tok python, for as long as there has been a python bites, theyve been running on permit, mid web raided by Christmas, super cool framework really, really love IT. But the truth is the sad truth is it's just not getting updates these days. So if you wanna do asic programing, you have to do asic programing.

Sometimes it's hard to avoid IT. It's not supported support types and do a lot of things. And even though it's great and simple, IT felt kind of like A A bit of a liability to be all of our code written on frameworks that don't really get updates. So I rewrote talk python first, talk python out of them.

Not the course not, but just talk about because it's medium, high level of complexity, more complex than way, less complex than the course section e commerce website, just to see what how would that go? Is this a good idea or a bad idea? Turns out it's a pretty awesome idea.

So I rote talk on this, the topic in court, and I wrote up a long post of my thoughts on IT. Why did I do this? What did I considered a lot of people like, why did you consider framework x? You're crazy not to consider.

I did consider that I wrote IT down. Why didn't picking? So if people are thinking about changing frameworks, here's a nice right of an example interview thinking about a sink flask at a court for now until those get merged.

If they ever get merged, truly cool. Like for example, our database there is beni, which is idiotic, plus MongoDB super awesome. M IT only supports a think code that's IT pym dd only supported synchronous code.

So I had to write this jacky translation layer that would Carry every request over to an acing thing, wait perse response, and then turn IT back into a single, like, weird that was there, right? I just not do this, you know. And so I went to solve that technical debt issue that's been dragged around for long time.

Show is court. So a few things. At first of all, what did I consider I considered vast A P.

I light star as an start out? Dev super cal framework, if you wanted, if you wanted something like fast API, but kind of batteries included, like jingo light stars. When lights art was really close, basic, I was a real contender. I jingo always got a sider geno, but decided not to go with that. Hugo actually considered like, what do you think, how much of our site you think we could rewrite in just a static .

site generated like go out of IT? yeah. I was actually thin about doing again go yeah by the way.

the site that were looking at here with the the blockers, this is a sub uga site within the court side in tok python, by the way. I think it's really great, but there's certain things like on talk pithum, there's a guesses and there's all the episodes and there's the analytic ics of who downloaded which so and then who sponsors those different episodes. And there's add dashboard.

There's like a bunch stuff that's not real obvious when you look at from the attach, it's actually more complicated or part that people don't see. And I decided not to do that. And of course, black, which is something.

So anyway, I think fast. I A P I is awesome but is really focused on aps, though you can make IT work for websites. I don't think gets primarily the thing for websites, right?

My goals here, by the way, was I want a super popular framework. I want one where if you say, hey, I I wrote my website in this, what what ramework did you choose? There's a really good chance some race me too, in prime just as much as I love IT didn't check that box these days. So the court .

in that category, except for the fact that is really maintained by the past people.

Now, yes, exactly. I almost didn't consider court at all, and I ended up going with IT. And that's because I talked to David lord about how it's been brought into the same as fast as they're working like they were both contributed to both.

There's attempts to sort of bring court into flat properly. So maybe one day they'll go over. And if I changed my mind, literally all have to do is final place lower case court with Laura place low cost flask, ur case flat court with ur case flash and its back to flask is a very, very small tian, you know.

I mean, so for that reason, I felt like was worth considering OK so fast. A P, I, awesome, obviously, but two A P, I focus something for lights. Star also not is that popular? Is more popular than humid.

But it's not, it's not in the, of course, that he is awesome. Mean, it's actually, I turned by doing this research. Go through the P S F jee's python developers survey that if you look at most popular framework flasks is to a decision point more popular than jane.

But if you look at web developers to use a web rework, jingo is more than twice as popular than flask. That's pretty interesting, right? No, yeah so lot of machine learning in model anyway, I go through why i'm not a huge fan, didn't want to adopt.

Go you can read that up if you care. I think you go side to be so neither like they can go down technically that the data center I can go down, but there's no run time reason than a static site goes down. And that's pretty glorious.

So I did the upgrading two steps. I first said, let's go and rewrite everything in court, but just keep the synchronize code there. Because one of the big chAllenges is to rewrite the entire stack to be asking, right? And so let just get IT running the way that is.

But on the court framework, A K less not permit. So that took about a little. Maybe I got a long day, ten hour to hear something.

You got that bad boy knocked out. And then that was two thousand. Two hundred and eighty lines change, three thousand lines.

A code deleted for that part. That is a good chunk. And then I read IT in A A sink after I got that all test IT and deployed that immediately. That's another sixteen hundred lines to code, seven hundred .

lines to code change. But yeah, awesome performance. So about about convert court. And then you went to a thing, how long? Yeah.

I say maybe eight hours, a slightly six, six hours, eight hours, let's say six hours less, less than a hard day like a regular day. Not a i'm done for the day. But yeah, I were talking in five times is faster performed.

That is pretty good. Yeah, it's really.

really nice. And I was able to get ready of that. A lot of that like half of that speeds from this OK. You got a request send IT over to some think background thread that can a single run IT wait for the response.

Okay, i've got the response that h grab the response back and then send IT back over to the think version to return. Like all of that coordination added a lot. IT was not a lot of CPU pounding overhead, but just delays here and there.

You know, on to me anyway, that's IT. And finally, if you have a whole bunch different pages, you want to do not broken the way that I tested who stuff IT wasn't broken was I just went to the site map, which has a thousand pages in IT. And I just wrote a python program to just request every single year l in the site map and make sure you did four or four or five hundred or anything like that you will pass push .

the production let's so the jury have a list of all the all the .

links or did you yeah because you generally want a site map for seo and google and being in all those things because that's what they used to discover. Like how much of our site can we index and what might we if you're not darkly linking to IT, but you want to make IT known basically, right? So over here .

on the site map.

we've got like, you know, check. So so here's here's the one catch. One person ran to an issue and me and I missed that one.

And it's when you submit forms, right, the page that has shown when something is processed submitted. I got one or two areas there, one little admin thing that only affected me, but somebody. Sign up for the million less.

The mAiling list has a page that special if you sign up successful. So thanks. And here's a few other things. Somehow I forgot to check the result of that. And there was some kind of bug in there that that was easy to fix.

but the hard to discover the links, not in the yeah, yeah.

they might even be there. But you've got to do an H. B.

Post with data to discover them. Get cause, get to show the form. But I want to process the form that was what I was. I forgot to await something in the resulting post handle, basically.

is what I was, an interactive user base so they can let you know exactly.

Century sent me a lot of messages that said, you know why there's there's a crash? yeah. no. OK yeah anyway, right.

So hopefully because it's I think it's just on IT and is interesting, but I think more so, the reason I want you to cover this is I think it's relevant for other people are like h you know we are on know Cherry pie and maybe we should we shall not be anymore. Maybe we should pick another one of the top three out of this like Michael did. I don't i'm sure to helps some people on this journey.

Yeah, go. Yes, thanks. Well, I want to talk about pip. I A little um pip, I A now someone in .

a test station about IT.

I don't even know if that worked me uh, but but pip, I now supports digital at staat at this station. Yeah okay, what does that mean? Well, not sure what that really means, but it's a supply chain thing.

So A P, P, I package maintainers can now publish sign digital attestations when publishing in order to further increase trust in the supply chain security of their projects. Sounds cool. Uh, didn't ally there's a new A P I to um to new A P I is available for consumers and installers to verify public was published attestations. Oh my god, this sounds like a lot of work. Fortunately it's not.

Um so um if you are a package, uh this this we're going to link to the the python package index blog and this is written by a destination um uh talking about this it's uh there's some some discussion about why we why they didn't do um uh sign identity key pair things um but uh the justice if you are if you are already using github actions and trusted publishing and and you're using the github action pipi publish uh the hook thing for get actions um it'll just work for you. You just need to make sure that there's a the the version is I think it's well, there's another article that I looked at. I think it's eleven uh let's pick over there so this other article uh is another article.

Pipi introduces digital at station to strengthen pipi packaging security. Ah this is written by cerezo ding um and a the justice IT here is oh yeah version one point eleven point zero is the one that you need to use now what if you want to use something else if you want, if you don't use, if you don't like to have actions you use in something else, whether um there is plans for other uh other trusted publisher environments uh or plan and then if you don't even want to do that, if you want to do that manually, it's not recommended. But you can uh you can do this manually so um you not locked in to get have actions, just I think that was a reasonable choice for them to take implement first.

Um you got to have one of a mess. We first show that what they did um they said there's another article um by sargeant also very good IT also walks through what the what the the viewing the U I for the new A P I for a viewing what the file looks like cool thing about this is okay this seems sort of technical and okay like that you know security on supply changes and all that yeah ah yeah but really cares what we all care really but also one of the things that I I realize is um there's links on pipi for projects to say where the source code is, but we just you just put that there's not guaranteed to be linking. Now this is where the attestation makes IT so that hype I can verify that the that the object really is from the source code from so there is you not lying IT.

There's nobody in middle lying about IT. And publishing a package really isn't from that source code from something else. And that's what we want. We want our open source projects to be available, easy to installed, but also that we can find the source code really are readily available. So that's what that's all about. There's also A A cool uh are we pepps seven forty yet um that just shows you different some of the top packages see the the three hundred and sixty most downloaded packages um and whether or not there you know supported yet and this is pretty news is not that many supported are already, but we is support, for instance, you good job.

good job on the show. I seen that my dependences.

I don't know what that is that comes along.

Yeah something library mark down library. I don't I making this up three hundred and sixty because it's a wheel. There's like A A visualization that is a wheel unto the little slice is show you which which ones are there.

But yeah, A D A couple comments on glad .

cripp graph pto's phy package. Is there do a test of the test? Is that is sure.

And Christian says trusted publishing is great. Never been easier to publish on pip. I if you're using, get up. That is indeed. And brian, you said when I talked about uv build, uv published last time, time for you said that you're not even doing that. You should like.

get up, do IT yeah yeah. How I had that happen. Well well we go through .

this the package trust .

publishing, there's a um there there's like a dark on how to do that. A trusted publisher. You have to have an API token, you like link tokens between github, your get hub project and pip. I am so they know about each other. And then then can I just had a get of action .

pipi published step?

So there's lots of ways to do IT though, because I found personally that my um uh my favorite way is to to do the publishing as part of the tag. So um all do IT another version that's just like I publish to I don't publish everything that I pushed A P P I but um but are pushed to get up but when I push push 太 then a build is done and the publish habit so IT .

pushes off a tag so push yeah yeah that's a good .

question though。 I think we might want to revisit that and ticket ticket that whole process because yeah .

i'm looking for a topic for a velox. You feel a little bit rusty. I mean, what you guys are, you feel rusty with your blog.

I feel rusty. Feel super. I mean, a lot rust. I however, I want to highlight project that is very early in its life, but I think maybe deserves some love attention anyway from lilly foot jingo rusty templates.

So all these framework have some variation of template ted programme. So you've got your H T M L. Then you will have some kind of expression like loop over all of my blog person, like put out the title and the contents in the little rapper deal or whatever, right? They will have them.

There are variations. They are not as as you might imagine. And i'm actually come back to this whole completing, you know, at the end of the show as well. However, this one reimplement the jingo tempting one got geno, got gender mago q million public others. There's the whole pep seven fifty, maybe that bringing tempting into the language itself, all the stuff, right.

So this one reimplement that janus, with the goal of one compatibility on output, not naturally input or the the way you programme IT, but output at least, and then a reporting that is at least as good as jingo. And obviously, why would you do this if you aren't looking for improve performance over python implementation? These things can be slow.

They really like one of the things that can make your website literally suffer to start up if it's under heavy avi load is to is to restart IT. And IT has to repair all the temples. Ts, I go to the extent that I an APP that we will see that that I can run against the website and IT IT will request a representative subset of all the urals to make sure that the template is loaded and parsed, because it's a difference of hundred of million seconds verses tens of little seconds, right?

Could be up to one second to load the page the very first time, that is one of these complicated things. And you you want your pages fast. So when google other things, oh, that page is fast, will put a little higher in search.

Anyway, this could be cavy out for the world. IT is net ready for full release and therefore is not on pipi yet. You can check IT out if you want to live dangerously or contribute OK.

let you push IT. That was servers .

far exactly. I was ship and stuff that was zero points. Two on vacation. Come on.

come on. And now it's fine. People can do what they want.

But of course, I guess that depends. Do you feel like it's even anywhere close to potentially use able? Or is IT just you still work on IT or IT even so yeah.

you don't want a bunch .

of bug saying this doesn't work. I know and I said not to use IT.

Yeah but also people that think it's a call idea and if you want to help out and help out.

absolutely um are we I don't .

want to get to dry but I want to talk about another pep so ppp up to pep talk um so break can and and now so I this is the first time i'd heard of this um this post comment is an november thirteen th uh that pep six three nine is now supported by pip I uh this is a pep that lets you specify the license beer code using S P D X expressions have who can't get excited about S P D X expressions and is easily in it's and easily include all your licences with your code um okay, I have no idea what S B D X is.

But let's jump in a little bit. Why am I excited about this? Is because the last way to be able do specify your license was you did a little license string thing to say MIT whatever, but then you had A A like maybe a link to license that text file. But that wasn't like wasn't clear understanding what you should do but you really had to in order to get the license to show up on pipi, you had to have a trove classifier and am not really a find a trove classifiers think where so we don't have to do trave class fires uh anymore so uh bad links to um eh um um ease step six three nine is now live so that's just the same thing but only to the anyway uh so let's look at this um the cool thing about this I think is I like I said, you don't have to use the uh the trial classify anymore um i'm not jump down to like really what does that look like?

So do we have is reasons why and all that stuff but really IT was confusing before and that is your now so all you have to do is do something like you have license um a license field and you put in my so that's the that's pretty easy um and then but there's like and so if you have you can do logic in here. You can if you've got multiple licenses in there and was projects really a large project might have more than one license because there might be you you may have ventured in part of the system that is um a part of another library that is licensed under different license. What do you do do there? Well, that's one of the great things about this is that there's that logic in there.

But you can also do the license files key. And the license files key is great because you can just there's more than one, you can more than one and you specify where they all go. And it's just a uh it's just A A list of strings with um um with what are those wild cards and stuff so that you can a regular sort of regular expressions so that you can you can find different files um through there and you can even have like I like this version. It's a uh main licence attacks uh at the top and then the licenses directory so you can have A A licenses for or something .

wow it's like creating a list a set of set of argument from a list, say star art and IT exploded out into position arguments. It's like for a tombstone.

Am I know I know. Well, it's it's S P D X. So um uh this this is a pretty exciting to me. I have bread. Like, well, this is still it's not like finalized. I guess it's previsional pipi supported, but they say that it's going to be they need um it's an implementation of the pep with in two build backwards. You know the two bill .

back there would be like hatching or poetry or something like that, that definitely tally would set up tools or something .

like that and implementation of the pep in pipi, which is done. So i'm pretty sure. yes.

And the first link that you click on the discuss the whatever yeah yeah. See that. Second thing, carey is suma wrote the P. D, M. Back and supporting this since such in such version and hatching sense another version, I believe the conditions have been met.

Okay, so think this is gonna be changed from provisional to .

something else for you. So .

whatever .

comes after hi, I just want to make a little to um Philip and crew in Caroline as well, just the file that you create, this is licensed under score file, no extension. Think of an extension please so we can have a defauts so you can double click and open IT rather have to to figure out an editor go into a dragon into a right without an extension, you can set a default dator to edit the license file in mac or windows A I like.

say, license to a text or .

something yeah M, D or yahoo or tamil or I would say yamal or tomo prime makes him of sense. If IT has that structures, then the editors you have, you open up pye could apply to IT based on the the format. Where's right now? It's like, well, whatever, just text. Well.

so this like this, this changes that i'm showing. They are they're like gamel or tomor something like that because they are part of the project.

I oh, are they well, that someone talked about the license key file or the yeah right and there's a license understand le license dash files. Oh, it's just the key in the that's not actually a five, okay, that's the key. And so I think .

that there is an and be picked up by yeah .

um but I I usually I usually just haven't be .

wrong but I like the idea of doing a that text file yeah and something that apply that .

makes the tool apply to IT if it's reasonable that would already not to do that .

do like like a word dog is.

Come sell and not .

like a dark ex do do you like you know from like nineteen ninety .

five three dog.

let's go anyway. Um I think that those items.

kay.

well, um you have an x .

ever a couple of quick ones here or through forest like years really quickly. Python three fourteen thirty two was released last week just after we did our show last week. So in the most recent one we could talk about, I believe anyway, IT continues on with its up six forty nine third valuation annotations on python.

Configure C, A, P, I, and no longer having P, G, P signatures and improved error messages, among other things. So check IT out if you rested in that you to test against. Remember, there will be seven.

So that's pretty early in there, but you will be able to influence election if you so want. Blue sky, right? We have personalities. Python personalities are invading blue sky.

And I would say i'm really happy with the engagement and how much people are anticipating over there and all those kinds of things that seems really, really great, right? no. yeah.

So we have links for all of our accounts on bly sky over there. But the thing of the highlight is I created a starter pack. And I think these these starter packs are actually one of the magic growth packs, a blue sky IT and also a good way for people.

So here's the the common social problem, social um network problem is you join in its crickets and then you follow stuff that you don't care about because it's like everybody know followers. So here's a bunch of horrible stuff. They wanna see how great people raining about this or that.

I none of this, I wanna just get back to my communities that I care about. So for each community you can create, people can create, called the packs, which is like up to two hundred and fifty people. You just click one button, say, we want to follow those people as a quick jump start.

So I created a python personality, one I do not think sixty people maybe more much about to show in a second. But it's know got created IT. Then it's got who you put like a doctor, Becky, Chris, hilla, savana, Simon will son, Peter wang and so on.

So here, near somewhere, brian break kinnon, who were discovered in his article in his pep and so on seat, there you are in. So I just want to encourage people, he go finding our packs, consider mine, give me a click and so on. And how do you do that? Well, well, good.

Pointed out that there is this blue sky directorate at com that has all the starter packs. And you can surge her like python starter packs or motorcycle that you can see. Like, here's one. I created different books, python core team by you go, I believe that is so on, right? So there are actually five hundred seventy two start packs, but I suspect a lot of overlap intersection.

Yeah and the things I but checking this out is is being able to like that. Some people are keeping me like keeping this up a little bit, which appreciate like IT no wasn't a river learner has one also that's trying to keep up and and I because i've been on this guy for a while. So I like when I look for python people early on and there's a ton of python people jump in .

on the bandaging right now just yesterday.

Yeah so so it's good to look like I was just looking through your list and there was very I was ten that I hadn't that I hadn't followed yet and people I want to follow.

So yeah, and I just added somebody two hours ago to IT. So been maintained a to the limit till IT is is a limit. And not to start make tough decisions if someone reject someone else, I don't really want to do that.

But right now, other six hundred people in mind, and this directory thing shows you how big the list is. Care about that? Alright, a another really quick thing. I must save this one to next time. See, a time will cover that one next.

next week. alright. Well, have a few extra. I didn't cover this because really ah I don't know i'm smart enough to cover with this, but I link to IT anyway there's an article from uh arman monicker um um titled player wisdom threats beat asking away and he's not really talking about python threads he's really talking about or or python asking in the way I think he is but also just in general like programing languages um uh thinking about three years thinking about you think can wait and and it's just an interesting reason or and uh good article talking about um how like we should really making concurrency really easy to the point we don't actually talk about concurrency IT just works and that seems lucious in some respects if you're are used to allow other language but they is example at the top just sort of like blooming away and thought process of thinking about um about the the scratch programing lane for kids and if you if you have like he has an example of like a cat among spirit having code that like just you know moves to times while or like while.

Wild mouse x is less than two hundred, update the x position by five and sleep for ten seconds and then do that or do that for a cat also you have a cat amounts chasing each other um and the question is really to those run at the same time or one after another and in scratch, you just is the each of these are their own thread, their own thing that's running and there's no a single way here just is there. And and i'm not saying that we should all go out and write our framework and scratch now. Um i'm saying it's it's an interesting idea is to to realize .

that I can be made easy. I both agree and disagree in ways here. So I I really like what arman's been doing on his blog lately. He's been writing some very potful post and has me shake in my head in agreement a lot. So well, then, however, I think some of the push back, I have not read this so easy on me, but i'd like to read some my reading list.

But I think part of the push back of he thinks having a bit of just not quite is I think there's foundations of asia that have not been built yet that should be built like, for example, uh, so you're this example here, create a function called move mouse, create a function called move cat. If this was asking and this was sea sharp and you called run you that you wrote that code and seashore t but the word I think was applied to the functions, basically IT would just run like IT is like there's nothing left to do and asking way IT handles that. But python doesn't have the concept of a background management thing that runs all the acing stuff and keeps you going right.

You've got ta go to the loop and say, hey, loop, here's another thing to run. Start this, please where's in a lot of other languages, you the act of calling and asking function coordinates behind the scenes and ways you have to think about that. Start run that you're given a task of AAAA object of a running task that already been handled in something you reconfigured.

Where's python you like? I know you think you an IT because IT has prompted, sees like a function, but now you got to go find a place to actually run and a lot that that that finding the place is always jenky. It's like, oh, I think I O dog get event loop exception, no event loop dont or create one some other time.

Create event loop exception. There's already event. Look, it's like why what is going on here I am. I always battling this or there is a loop, but it's I need to get to IT from another thread and it's thread local. I I how do I connect these two things through variables and how global like there's just all this stuff that makes IT tRicky, whether if there could be a little infrastructure behind the scenes that just I I don't know that might be as too late, which would be super unfortunate.

I think I think I can be built on top.

And maybe maybe I I think that that is part of the problem is the chAllenges like it's it's your jo B2Connect the pie ces of the plu m mor e tha n IT sho uld be.

That's what I think. I've also used them. So i've used in the dency bus plus but uh, a concurrently framework that had the default is easy like the the generic the there is a general thread pool um that it's easy to use, easy to add things to. It's just sort of happened and then there's um and then there's uh if you want like a separate thread pool that's just managed separately. great.

And put IT in connecting piace. So I think that's awesome, right? Rather than you always have to do the hard way.

Yeah yeah we need a at least uh, in for similar cases, there is an easy way that exists anyway. But yeah, I also kind of talking about my hat because I haven't run I haven't read a lot of basic python yet. Yeah.

I i'll give you a really, really, really quickly to wrap the shop. But in court, you've got there is an a sink event loop managed by the web framework or maybe it's even managed by the the APP server that then starts the framework. But there's a dedicated, I think I ent loop for processing IT doesn't exist until after all of your starting code is done.

And so if you have any accent code to call before you, actually you you're just like everything set up, all the things have been populated, run the sharp process in request. You basically almost can't do IT, if like, for example. So for the eight, for bini, you have to say initialize the database and and get all the connections and of going so if you write code to do that and then try to use IT in the in a web view in a way request, it'll crash, say, wrong event loop.

IT was initialized on this event but is running on the core event loop and you like. But how do I start IT? How do I ask a database question before the web request to started? You know, like I maybe I wanted do something different if the database initialized or not, right? I want I don't know. It's just like there's all this strugling and there are mechanisms to say OK like you can have some start up code room in a different time, but it's just is just hard yeah anyway, I hope I keep harder on this. I'm hoping someone will go like, okay, where at the court developer language summit could we simplify please OK.

And then um I got a few more doing quick. Um the the python test community is now on discord ah that the the launch happened in a couple days last last week. And it's going well. We've got like eighty nine people in there so far. Um if you'd like to be a part of IT and you're not already if you're part of the community you've got we've gotten any email if you want to be a part of the community and you didn't get the email um or you haven't about one of my stuff things before. You can head over two courses that python test that come and you don't even need one of the courses.

You can just grab the the discourse community one is there and it's on sale IT and everything else on the site is on a black friday sale twenty person of using turkey sale twenty twenty forth and that's just right on the site posting, not a secret. However, there is a secret on the the book. So python testing, the pie test is uh forty percent off right now.

And you you just need to use the black friday code, which is also the same. Take a sale. Twenty twenty. I just wanted be easy for people to remember. So a one of test easily through sales.

Yeah enjoy the turks.

Yeah and I haven't fun with the score. Have had to embrace the the dancing logos and stuff. And I I know you can turn them off, but i'm actually realizing that I kind of like them.

Now there's little Vicky. Yeah, a black friday sale. I don't have IT launched, yes, but that is my goal for the day. So i'll put in the showing us people can check IT out and not a one hundred percent .

the final final details.

But I think this is my problem. Hi, I do not accept that november is almost over, but hey, it's it's one one month less of the rain for us. We're closer to sun against.

Let's go. Yeah, are you ready for a joke? yeah. So this joke, you, I just everyone brand is not seen or heard that this joke.

Remember, we had the A I, the sad girls, A, I sing song, sing the M I T licence terms. Yeah, this is like this, but this is a heavy middle rock band singing. The verbose output of a core command view day, coral dash v verbose pps, google 点 com。

There's a old bunch of stuff that comes a bunch of tech things. So we going to have a heavy metal jm session of this. And I want to point out one of your volume is high.

Turn IT down too. If you really hate heavy metal, hard rock, just go and stop here. There's we're not cover anything else. I don't want you seriously kind of like some intense rock, but it's also pretty funny.

And I would also like to add on the the videos youtube the video i'm linking to, there's a comment that says, hi, i'm the creator of curl and I wholeheartedly endorse this amazing, this masterpiece with that sad if you if you have hard to rock, you're not going to love IT. So just go head and a skipped everyone. Here we go.

Last one point three out a has clear a one one point three and like one point three one three. Three in the.

Three out three.

Well, there you have a post. The actual real song is at three and half minutes. And I could, I couldn't do IT. I couldn't play all thing for you. So it's a taster.

Hit the full show.

I ve D O S. A jack.

hello.

Nice how everyone .

brian see.