Python Bytes - #449 Suggestive Trove Classifiers

Episode Date: September 15, 2025

Topics covered in this episode: * Mozilla’s Lifeline is Safe After Judge’s Google Antitrust Ruling* * troml - suggests or fills in trove classifiers for your projects* * pqrs: Command line tool... for inspecting Parquet files* * Testing for Python 3.14* Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted 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. Michael #1: Mozilla’s Lifeline is Safe After Judge’s Google Antitrust Ruling A judge lets Google keep paying Mozilla to make Google the default search engine but only if those deals aren’t exclusive. More than 85% of Mozilla’s revenue comes from Google search payments. The ruling forbids Google from making exclusive contracts for Search, Chrome, Google Assistant, or Gemini, and forces data sharing and search syndication so rivals get a fighting chance. Brian #2: troml - suggests or fills in trove classifiers for your projects Adam Hill This is super cool and so welcome. Trove Classifiers are things like <code>Programming Language :: Python :: 3.14</code> that allow for some fun stuff to show up in PyPI, like the versions you support, etc. Note that just saying you require 3.9+ doesn’t tell the user that you’ve actually tested stuff on 3.14. I like to keep Trove Classifiers around for this reason. Also, License classifier is deprecated, and if you include it, it shows up in two places, in Meta, and in the Classifiers section. Probably good to only have one place. So I’m going to be removing it from classifiers for my projects. One problem, classifier text has to be an exact match to something in the classifier list, so we usually recommend copy/pasting from that list. But no longer! Just use troml! It just fills it in for you (if you run troml suggest --fix). How totally awesome is that! I tried it on pytest-check, and it was mostly right. It suggested me adding 3.15, which I haven’t tested yet, so I’m not ready to add that just yet. :) BTW, I talked with Brett Cannon about classifiers back in ‘23 if you want some more in depth info on trove classifiers. Michael #3: pqrs: Command line tool for inspecting Parquet files pqrs is a command line tool for inspecting Parquet files This is a replacement for the parquet-tools utility written in Rust Built using the Rust implementation of Parquet and Arrow pqrs roughly means "parquet-tools in rust" Why Parquet? Size A 200 MB CSV will usually shrink to somewhere between about 20-100 MB as Parquet depending on the data and compression. Loading a Parquet file is typically several times faster than parsing CSV, often 2x-10x faster for a full-file load and much faster when you only read some columns. Speed Full-file load into pandas: Parquet with pyarrow/fastparquet is usually 2x–10x faster than reading CSV with pandas because CSV parsing is CPU intensive (text tokenizing, dtype inference). Example: if read_csv is 10 seconds, read_parquet might be ~1–5 seconds depending on CPU and codec. Column subset: Parquet is much faster if you only need some columns — often 5x–50x faster because it reads only those column chunks. Predicate pushdown & row groups: When using dataset APIs (pyarrow.dataset) you can push filters to skip row groups, reducing I/O dramatically for selective queries. Memory usage: Parquet avoids temporary string buffers and repeated parsing, so peak memory and temporary allocations are often lower. Brian #4: Testing for Python 3.14 Python 3.14 is just around the corner, with a final release scheduled for October. What’s new in Python 3.14 Python 3.14 release schedule Adding 3.14 to your CI tests in GitHub Actions Add “3.14” and optionally “3.14t” for freethreaded Add the line allow-prereleases: true I got stuck on this, and asked folks on Mastdon and Bluesky A couple folks suggested the allow-prereleases: true step. Thank you! Ed Rogers also suggested Hugo’s article Free-threaded Python on GitHub Actions, which I had read and forgot about. Thanks Ed! And thanks Hugo! Extras Brian: dj-toml-settings : Load Django settings from a TOML file. - Another cool project from Adam Hill LidAngleSensor for Mac - from Sam Henri Gold, with examples of creaky door and theramin Listener Bryan Weber found a Python version via Changelog, pybooklid, from tcsenpai Grab PyBay Michael: Ready prek go! by Hugo van Kemenade Joke: Console Devs Can’t Find a Date

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds. This is episode 449, recorded September 15th, 2025, and I am Brian Ockin. And I'm Michael Kennedy. And of course, this episode, not of course, but this episode is sponsored by us. So please check out the stuff we offer you guys and everyone. Courses at Talk Python Training, PytestCourses at PythonTest.com. And there's also one at Talk Python Training too. And then Patreon supporters, we love you.
Starting point is 00:00:32 Thanks for supporting the show. If you'd like to have a suggestion for the show or I'd like to get a hold of us. We're on Blue Sky and Macedon. Links are in the show notes. And as normal, this is currently Monday at 7 a.m., but normally it's Monday at 10 a.m. If you'd like to watch the show live,
Starting point is 00:00:50 you can go to Pythonbytes.fm. slash live and catch it. And you can even interact with us while we're recording. Finally, I'd like to thank everybody that's joined up for the newsletter and go to Pythonbytes.com and join the newsletter and you get all the links that we talk about in the show plus extra information on how to digest that, even if you're not listening at the time. We'll send that right to your inbox. So lots of cool stuff to talk about today. Let's kick it off, Michael. Yeah, let's kick it off with a little Foss News, free and open source software.
Starting point is 00:01:24 And this is, I don't know, maybe the story is kind of the opposite of FOS. Giant trillion-dollar company interacts with Monopoly Court, but the consequences may fall down to open-source software. And Judge Meta from the Google antitrust monopoly case has ruled on the remedy for Google being a monopolist who abused their privilege in ad search, in ad space and search and so on. So there were many different possibilities floated, even by the prosecution, like, you know, you probably need to sell Chrome and you may need to divest from Android, things like that, which would have been wild. I know that Open AI and, gosh, was it cursor? Might have been cursor or anthropic. One of the AI companies was like, oh, yeah, we'll take it. We'll buy.
Starting point is 00:02:16 And I know perplexity through their hat in there. We'll buy Chrome. One of them offered to buy Chrome for like 10 times their valuation. They're like, we're going to have five investors. We don't care. But it turns out none of that is going to be. That happened in an alternate reality. I don't know.
Starting point is 00:02:30 Were you ever a fan to choose your adventure books, Brian? Yeah. They went to page 11 instead of page 42 on this one. And so there will be no selling of Chrome. There will be no divesting of Android. And the reason this is even on the show, although all these things are fun to imagine, is Mozilla and Firefox exist almost solely in their current form
Starting point is 00:02:52 because some of the bad behavior of Google, right? Google, one of the big problems was Google's paying Apple something like $26, 20-ish billion a year just to say, yeah, make Google the default in Safari search on iPhone, right? But the other one was, for reasons I don't still fully understand, although I think they might not be 100% goodwilled. They are also paying 85% of Mozilla's bill every year to exist. Wow. Like there are 85% of Mozilla's revenue.
Starting point is 00:03:25 So one of the remedies could be, you can't be paying all these companies to like make you the default search engine. Same reason. That's what Mozilla was getting is like default search engine on Mozilla equals Google. Here's $100 million a year or whatever it was. Okay. Go ahead. No, I was just looking at the notes. You wrote down that Google can keep paying Mozilla to make Google, but only if the deals are not exclusive?
Starting point is 00:03:52 I don't understand how. I believe what that means is they, let's say, you know, I'm a fan of like start page and Caggy. Yeah. I think they can't, like, say, we'll pay you $100 million and no one else can pay you anything to be like privileged or something along those lines. Oh, okay. Because like only one person can be the default, but.
Starting point is 00:04:13 Yeah, that's true. Maybe somebody could be like top on the list or something. Yeah, I think something like that. Yeah, I don't, I remember the whole ruling, right? the idea is that would be a totally reasonable remedy as part of this like selling chrome which maybe is a little less reasonable but still i'm here for it it was so interesting okay um but a lot of people would have lost a lot of revenue like mozilla right exactly like i don't care if apple lose revenue they can suck it up they they make more money than anyone and they're
Starting point is 00:04:41 going to get a bunch of my money when they ship new computers and ipads in a month or two so it's going to be fine i'll backfill that for them but mozilla 85% of the revenue new. As a company with hundreds of employees, you can't lose 85% of your income and not get shocked. It would just make Mozilla fold, I think. Or maybe just focus. I agree that it would probably make them fold in the short term. Maybe in the long term, it just makes them focus on providing products. So anyway, this is a bit of a long conversation around just this, but I think you know, I wrote the, hey, the unsolicited advice from Mozilla giving him like five business ideas that should be not just depend on Google.
Starting point is 00:05:22 Yeah. Not that they necessarily need to take them or that it was like a big deal. But there are certainly things that they could do and they should have started doing five years ago and maybe now is better than never. Because this is not Google promises to keep paying Mozilla's bill forever.
Starting point is 00:05:39 This is the law will not make Google stop paying them. This deal is up for renewal in 2026. So it still could get canceled. I mean, when I said, I'm not sure about the motives of Google, If Google is paying them just because, hey, we definitely want Google to be the top search thing in your browser, Google could decide, you know, the market share is getting down and down and down, and maybe it just doesn't make sense to pay that anymore. It's done.
Starting point is 00:06:05 Yeah, and that just seems icky also. It does seem like Google's just keeping Mozilla around so that they are not just to keep competition there. Just to not look like a monopolist, right? Yeah. Exactly. But now they've been punished as, a monopolist, the fines have been determined, there are no more consequences, right? So do they still have to pay? I mean, no one's going to say, well, look, they're not a monopolist because of Firefox. They are legally declared to be a monopolist. So that check, that guard by doing that is gone. Yeah. The market share of Mozilla is tweaking down enough that maybe it just, they are like, you know, it's not even worth like the vendor registration that we do. Like, it could be a huge problem. It could also be that Google wants to show some goodwill and do this,
Starting point is 00:06:49 but I don't know, it's still tenuous. This is not like, oh, they're fine. Interesting. Anyway, I think it's a super interesting thing to follow. We'll see where it goes. But yeah, they should probably hustle and start getting some things that are not being paid. And let's put a bow on it. But final thought is, I think you're right on point that it's, it's icky.
Starting point is 00:07:10 And it's icky because when Mozilla makes choices about how to, like, defend users, like, for example, you know, that fingerprinting, like not the ad blocking, but that creepy stuff where you ask, well, what fonts are installed? And this JavaScript runtime has this speed behavior. So that means it's actually this person. It's down to like two people in the world and only one person visitor's site. So we can track them like not just as good as a cookie. Like those kinds of things that would be lovely to have.
Starting point is 00:07:37 Yeah. I actually don't know if Firefox has that or not, but I don't think so. I think Brave might. Anyway, there's exact opposite incentives like for Firefox. One is the users would be better off if they were actually a. private browser that did that kind of stuff to Google would be more upset with them and less likely to pay them their salary yeah that's that's just puts them in the hey we could be for the users or we could be for our job I'm not a fan what a morning we're going to go from uh we're
Starting point is 00:08:04 going to go from um lawsuits to uh to to trove classifiers that's this will wake everybody are you telling me that pie test check has been declared a monopoly uh pie test plugin no I just wanted to pick one so i wanted to pick a project on uh so i've got we've got pie test check uh the one of the projects i work on um that is um i'm just to have it up the pi pi pi pi page up because i wanted to show what uh some of the extra stuff because it's relevant to trove classifiers so there's a some meta information in the pi project dot toml um or maybe there was like a set up cfg or something like anyway don't use that use pie project toml anyway um things like the license On the left-hand side of Pi-PI, you can see things like the license, who the maintainers are,
Starting point is 00:08:56 the author require, what Python version it requires, and if it provides any extra installers, I didn't know it did that. That's pretty cool. I knew that my package did. I didn't know that Pi-Pi said which extras you can install. I didn't know that either. That's interesting, yeah. Below that, there's extra things.
Starting point is 00:09:14 Like I've got on here, I've got that the development status is stable, so you can go ahead and use it. It's part of the Pytest. It's a PITEST plugin, so I have the PITES framework. Intended audience is developers. I don't know if that's important or not, but sure. And which Python versions? It's Python 3-9, 10, so I'll test it all the way up. 315.
Starting point is 00:09:34 I was going to take that out. But anyway, I haven't tested. Leave it just, it's only like three or four more weeks and then it'll start to make sense. Just leave it. Yeah, I haven't tested 315 yet. But, okay. So, and then what topic, it's utility? All this extra stuff.
Starting point is 00:09:48 Why do we care about that? Well, those things are listed in PiPi.org slash classifiers, and there's a big list of these that you can put in there, even which CUDA version you're using. Interesting. A lot of them are legacy and don't make sense. But they have to be exact matches in your classifier list. Why am I bringing this up?
Starting point is 00:10:11 Because I'm bringing it up because I'm blanking right now. Adam Hill wrote a project. called, recently called Tromel, T-R-O-M-L, and Tromel provides a list of potential classifiers that could be added to a Python package. And actually, I think that's the original thing. It was to provide a potential list of classifiers. Now, if you're okay with it, you can say, go ahead and update it. It'll update your Pyproject Domil file with the right classifiers. And this is what they look like in code. There's just, there's a classifier list, and it's a string with, it has to be exact, exact spelling, exact capitalization with the spaces and everything.
Starting point is 00:10:53 So you don't really want to do this by hand. I usually copied and pasted it, but now you don't have to. You can just run trommel against your project, and you just give it the director of your project, and it will find your project comel file. And there's a couple arguments you can say suggest, and it just suggests what you should put in. But if you add fix, it'll just change it. And if you want to just check stuff, you can say trauma will check.
Starting point is 00:11:21 That's really nice. And that might be a good one for CICD or something, a pre-commit to check. So really cool that I don't have to think about that too much anymore. I can just run trommel on my project and it worked. The final thought on this is if you're like, why do we even care about classifiers? This is ridiculous. We have a testing code episode from 2023 that I'm linking to where I talk about to Brett Cannon because I frankly, I just wanted to stop using them on my project.
Starting point is 00:11:56 So I got Brett on the phone and said, hey, Brett, why do we need to care about these anymore? And he gave me a nice discussion. It's a half an hour discussion. Link to that. Okay. Yeah, very nice. Anyway, classifiers. Love it.
Starting point is 00:12:10 Yeah, and those things do look tricky. You almost feel like they should be, they should be an enumeration in some library like PIP or something. You say PIP colon, Django, PIP colon Django, Fyndot, too. You know what I mean? Well, yeah. One of the things I want to bring up, Toml, right? You can't really, you can't run code in there. One of the things I wanted to point out that I was surprised when I first wrote this is I was putting licenses in my, in my Pi Project Tomol classifiers.
Starting point is 00:12:41 and because that used to be the only way you could get them in PIPI to show up. But you don't have to do that anymore. You don't have to list the licenses. So a little bit of news. Okay, very nice. All right, what's you got for us next? What is next? Well, let's see.
Starting point is 00:12:57 P.C. Curse. QRS. I'm sure it's spoken out. It has no vowels. So if you're in data science, you and let's say, intersect you think, if you're in data science and you deal with large files, like large CSVs, right?
Starting point is 00:13:12 Yeah. Like, let's say you've got a 500 megabyte, rather than 500 gigabyte, I don't know, huge CSV file for your project. And you start out your day by going to your notebook and you say pandas, read CSV, or something equivalent of that, right? You're just directly working with the CSV.
Starting point is 00:13:31 I guess even if this was like a web app, it still makes sense. But I think the real common usage scenario is someone is going around to working with their data files, right? Why do you keep it as CSV? There are better formats. Parquet, for example, which this applies to. This PQRS is a command line tool for inspecting parquet files. These are compressed, optimized binary versions of basically CSV files, right? I guess they're slightly different in the sense that like columns have types. Like there can be an integer column. A little
Starting point is 00:14:01 more like Excel, but Excel is hard to work with, right? Excel files are hard to work with. So CSV. Well, why might you keep it as CSV? Well, you want to be able to actually look at the file. and see what the heck it is. These are like compressed binary things you can't look at. Unless you install this, and then you can just kind of browse around through the files. So you can go to your parquet file and say, show me the top entries by doing parquet.com or head or merging them
Starting point is 00:14:26 or do all sort of row count, sample some items out of it. So if you were avoiding and working with these parquet files or something else, I think parquet is kind of one of the top ones out of the pie arrow project, out of the arrow project, this is really cool. gives you back a little bit of that let me just poke around this this binary file as if it were a CSV text file so how about some some reasons reasons to use it so I think there's two reasons I think size and speed both the ways you're relevant
Starting point is 00:14:56 if you work with large data files right so in the show notes I've got some things written down like a typical 200 megabyte CSV file might be as small as 20 or 50 megabytes as a parquet file okay that's that's like a file 5x, smaller size. When you're talking a bunch of huge data files, right? Smaller size, good. I mean, I guess if they're changing a lot, you know, a Git diff or whatever. But I mean, putting 500 gigs into a Git, it's going to hate it a lot.
Starting point is 00:15:22 That I've never put a large file in the Git, but it does complain about it. At least get up complaints about it. And then the other thing is speed, right? So if you fully load like a big, obviously it depends on what the content is and so on. But on standard use cases, it also might. might be two to ten times faster to read the parquet file, and it's small, smaller. So really nice, right? Okay.
Starting point is 00:15:49 Less memory usage, the way that it's read. Like, there's a lot of advantages to having this. And Michael Booth out in the audience, no, sorry, Bart Williams points out that parquet files also preserve D-types, which is great for dates, date times, and U.S. zip codes, indeed. Meaning, like, it knows it's a string and doesn't parse 01772. who has a 1-772 as a number, right? Which is a big, big problem. And then Michael Booth points out,
Starting point is 00:16:18 hey, you could use DuckDB for exploring ProK files. Yeah, I think this is more like, I'm just cruising through the system and I would do a cat or just a tail of file just to see what the heck it is, you know? Yeah, that's pretty cool. Anyway, PQRS, check it out if you work with CSV and other data.
Starting point is 00:16:35 Cute name too. It is. Do you know what time it is? It's almost time for a new version of Python. Checking out the Python 314 or the Pi Python version, it's coming up. So looking at the dates, I was looking at the PEP 745,
Starting point is 00:16:54 which shows the dates. It looks like the release candidate is expected. The third release candidate is expected on the 16th, just tomorrow. Wow. And then the final is expected to October 7th. but you know at least probably sometime in October so um why am i bringing this up i'm bringing this up for one thing for a couple of things i was going to talk about what's new in python so there's
Starting point is 00:17:20 i'm going to link to it anyway there's a there's a what's new page with all the things we've talked about some of these already um i'm not going there's there's uh free thread it is is officially supported but it's been in there for already uh template strings are neat uh anyway cool list of new thinks but what do I really want to talk about today is I want to talk about that I really wanted a pie test check which we were already talking about and the rest of my projects I thought you know what I'm not completely testing them yet I am testing him I was to add them to talks recently so I would test everything locally but I wasn't testing 3.14 in CI and I thought now's the time to turn that on but I had
Starting point is 00:18:02 trouble. I like forgot the magic incantation of like what do I do? Do I just add 3.14 to the to my GitHub actions list or the Python matrix tried that didn't work. So I asked people on master blue sky and I'm always grateful for everybody that answers things rather quickly. Got a bunch of cool answers. A few people suggested that I forgot the what was the answer. I forgot. I I forgot the use pre-releases. And in particular, Ed Rogers said, hey, there's a great article from Hugo about how about running 3.14 in CI.
Starting point is 00:18:48 So I'm going to link to that. It's called free threaded Python on GitHub actions. So that doesn't say how to run 3.14. It's about free threading. But hidden in here is the secret. The secret is down here. And there's a bunch of great examples. of YAML files and workflow files.
Starting point is 00:19:06 But the magic keyword is right down at the in here that says allow pre-release is true. That's it. You really, that's all you got to do. So you got to say allow pre-release is true. And of course, while you're there, it's good to check to make sure that you have a current set-up Python version. And I believe this is already out of date. I believe that we've got maybe the, I don't know, check them.
Starting point is 00:19:30 I think we're up to V5 and V6, but it's good to check on your actions, the checkout action and Python action. But at least you have to be up to five, I think, for this to work. Anyway, pre-release is true. And then while you're there, you can check it out and say, hey, I am going to test against 3.14, but maybe I should test against the free-threaded version also.
Starting point is 00:19:52 And all you have to do is add a 3.14T to make that work. All right. Yeah, that's very cool. And yeah, thanks to everybody that helped me out on that one. Indeed. Yeah, that's super cool. I'm pretty soon you can drop the pre-release thing in a month. Well, but you don't really have to.
Starting point is 00:20:09 It can just be in there to test stuff. Yeah. Exactly. It's not going to hurt anything. And you'll need it for 3.1.15 right around the corner. Exactly. So you're almost ready to test your drove classifier. I mean, who doesn't want to do like some deadlocks on GitHub actions?
Starting point is 00:20:24 Come on. Put the T in there. I don't think we're in danger. of deadlocks. I think we're in danger of a lot of race conditions and data corruption, because deadlocks assume that people are already writing locks, using threadlocks, just using them wrong. I think no one's using them. Yeah. So I don't know. So I turned on testing on free threaded for Pytest, but I don't know if it makes a difference because it's a Pytist plugin. And I don't think that it's probably fairly stateless, yeah. Well, I don't think Pytest utilizes the free
Starting point is 00:20:55 threading yet. It'd be kind of cool if it did so we could like test. test multiple things at once, but I think it's a single test. Yeah, that's true, because it's still subject to the Gill unless it runs it in multi-processing, which is... Yeah, I mean, you can run them in parallel, but traditionally people use X-Dist, by test X-Dist, which splits them off into separate processes.
Starting point is 00:21:14 All right. Now are we ready for extras? Yeah, we're at extras down. All right. For something completely different, let's talk about an article by Hugo Van Kemenade. Yeah. So you spoke about preck last time, which is an alternate faster UV-enabled pre-commit, right?
Starting point is 00:21:37 We talked about pre-commit in different ways intersecting with UV. And that was one of them and said, hey, by the way, I also wrote, by the way, it comes from the episode, I'm getting the bios flavor. It's got to be one of the better titles. So good. Anyway, the article is Ready, Prec, Go, talking about how he's using. pre-commit type of thing so super cool people can check that out and this was not on my my follow-up earlier and my extra earlier but now i realize i should throw this on here so remember i said that that was wide a bit slower to run my little URL crunching utility yeah in python and
Starting point is 00:22:15 instead of i can't remember what we were talking about you you're talking about something oh the startup cost of preck actually it was so i'm like yeah even my little super silly utility is kind of slow like it takes almost a second to just start and do its little thing. Well, well, Michael learns a lesson. The lesson is that was something that came out of the Talk Python codebase, which has like packages installed that have a whole bunch of stuff in there. And I think somehow loading up that sub package of that whole code base was loading like almost all of the Talk Python stuff as it just parsed, doing all the imports to find its way to what it needed to like put a few pieces together. Yeah. And I may have broken that out and it may run way, way, way, way faster
Starting point is 00:23:00 now. So lesson. Keep it. If you put it in its own little virtual environment and you make it do its own, if it's like a one or two line utility or one or two file utility, maybe, maybe that makes a big difference. So yeah, I thought that was actually really interesting that it makes a big difference. Like 10 times difference, startup speed. Wow. Yeah. Yeah. Yeah. So there, I've learned a lesson. Also, just before I call it on my extras, I was listening to some sort of security podcasts. And apparently there was a super broad, although not super bad, supply chain attack at NPM, where some package, some maintainer of a package got fished by, hey, you've got to make sure your 2FA is up to date in NPM. And they did, but that was actually logging into a site that
Starting point is 00:23:46 was completely not that, which gave the hackers access to their MPM repository, their package. And they were placed a one, they called it a one function, one liner dependency that a 500 other packages depend upon that resulted in some like 2 billion downloads a month or a week. I don't know. It was like a lot of downloads. And they put in crypto currency stealers where the one line used to be. Just thinking about like, do you necessarily need a one line dependency that has other dependency? Like could you just maybe just vendor that in? So just I definitely think not depending on.
Starting point is 00:24:22 many things has many good advantages to you and this age of AI if you can ask AI to say write me a single function that does this thing and it solves your use case like maybe you don't need any dependencies and side benefit is like you code might start a little bit faster but also people can't fish someone downstream and do bad stuff too so anyway very interesting starts much faster cool all right over to you uh I kind of I've got a lot of extras so I'll try to get through um so uh adam hill uh we talked about tromel um or yeah trauma so adam hell also has another toml utility um and it's dj toml settings i haven't played with this yet but essentially it's um you can save your jango settings in toml files either either pipe project dot toml or you can make a jango
Starting point is 00:25:10 toml file anyway he's got got a new package called uh dj toml settings that you can store jango stuff in total. So that's that's that. A couple of people notified us about this and I noticed it also. Somebody named Sam Henry Gold. Did you see this? He wrote a little utility that allows you to detect, it allows you to detect the angle of your Python, or not your Python, your MacBook, the lid and then react to it. So he's got a couple things that are fun. He's got a creaky door sound that you can play on your MacBook
Starting point is 00:25:53 while you're opening and closing the lid. And then a, what did he call this? The theramine. It's a different kind of instrument. I saw this, thought it was fun. And then we got, somebody told us, it's called a little lid angle sensor. And then Brian Weber.
Starting point is 00:26:14 Yeah. Yeah. So Brian Weber notified us that there's a version of this for Python already. This just came out like a week ago or so called Pi Booklid. So just directly from Python, you can control your book lid. You don't have to get anything else. All right. So who's going to be the first person that takes this to the Apple store and tells them they need to oil their MacBook lid at the genius bar? I mean, listen to the thing. and then if you put it too far like a crunch if it like goes oh my god you broke it yeah pretty funny don't do that okay uh what do we got not pie test check again i've already done that um no these are my oh i was debugging my uh my stuff so uh the last thing i wanted to bring up was pie bay so pie bay is just around the corner also uh pie bay is coming in october october october 18th of 2025 just so um middle of October. If you are planning, if you're already in San Francisco or the Bay Area or plan on being there in the October or would like to go and don't want to buy your own ticket. So I encourage people to go buy your own ticket. This is a really cool. There's a lot of great
Starting point is 00:27:31 people there talking. We've got Gito, Pamela Fox, Christopher, Lisa, Jim. There's tons of great speaker profiles. I kind of wish I could go. I'm not going to be able to get there. Burnett. is going to talk about Python packaging, a lot of great speakers. Anyway, so check out Pibe, and I've got a secret for everybody. So if you would like to go, but for some reason would just like to get a free ticket, just let us know. So how do you let us know? I think that it would be cool to do a drawing from our email list.
Starting point is 00:28:08 So go up to, go to PythonBist.fm, sign up for our email newsletter, and we're going to draw how many tickets do we got they they gave us some tickets to give away i've got one two three four we've got four vouchers so four people we'll uh randomly pick before before next week um we'll randomly pick four people and we'll uh email you and say hey um do you do you want a ticket and we'll give out some tickets yeah also it looks like uh it's a voucher for one individual ticket and a free conference t-shirt so you get the t-shirt also so that's cool so wouldn't we get to to do that drawing i'll probably do it i'll do it next sunday so sign up this week sign up before um
Starting point is 00:28:48 sunday and actually by the end of saturday and then we'll draw i'll draw it next week sweet yeah that's a fun conference so um and it's a whole new set of people too since the last time i went of running it so anyway um yeah uh how about something funny i've got something good for you all right imagine brian you are junior in high school or something now i guess the job It's got to be a little bit older. College age, but decided not to go to college. You're on your first time meeting your potential or newish girlfriend's father.
Starting point is 00:29:23 They're a little upset that he decided to go into this computer thing. I don't know if it's going to work out. And they wish that he had gone to college. So you meet the father, and the father says, my daughter told me that you're a console developer. So PlayStation, Xbox, and just didn't know what? The young guy where nobody says, I console.logster.
Starting point is 00:29:43 You have exactly 10 seconds to get out of my house. Yeah. Console developer. Love it. That's what I got for you. Of course, it comes from programming humor, which is doing a good job with the memes. Yeah, I think we need to like redo that one with some CLA stuff. Yeah, like a print debugger.
Starting point is 00:30:10 Very good. So I heard you're a console all. A console developer, amazing. Console.org. I like that he is, sir. Iconsul.org, sir. Yeah. Do you pronounce perins in spoken English?
Starting point is 00:30:30 Open perennetically, I guess. I don't know. Yeah. Open close. Yeah, I don't know. All right. Well, awesome. Oh, wait, real time follow up, by the way.
Starting point is 00:30:41 Brian Mover says, thanks for mention. his section. So very good. And thanks, Brian. And thanks to everybody. We had quite a show of people showing up at 7 a.m. Interesting. We got some from Sydney, Michael Booth. Hey, thanks for being live in a friendlier time slot than usual. So, you know, maybe we should do an early one once in a while anyway. Just for that. Yeah, absolutely. Mix it up a little. I mean, how about this? How about we just get a random number generate. It generates a number between zero and 24. Every day, every week, we just hit that and whatever hour that is, that's when we record. I hate that.
Starting point is 00:31:15 It's 3.m. It's 3M. You hate it? I don't like that idea. I honestly hate it, too. But I'm glad some people got to attend. All right. Well, thanks everybody for listening, and we will talk to you next week.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.