Transcript #254: Do Excel things, get notebook Python code with Mito
Return to episode page view on github00:00 Hey there. Thanks for listening. Before we jump into this episode, I just want to remind you that this episode is brought to you by us over at Talk Python Training, and Brian through his pi test book. So if you want to get hands on and learn something with Python, be sure to consider our courses over at Talk Python Training, visit them via Python bytes sarafem slash courses. And if you're looking to do testing and get better with PI tests, check out Brian's book at Python bytes.fm slash pi test. Enjoy the episode. Hello, and welcome to Python bytes where we deliver Python news and headlines directly to your earbuds. This is Episode 254. recorded on October 13 2021. I'm Michael Kennedy. And I'm Brian I can I'm mama Gaza. Yeah. Hey, Mohammed, welcome. It's great to have you here. Good to have you on the show.
00:46 Hi, micrograin. I'm really excited to be on the show. It's been one of my goals. Like I started listening to the podcast when I was in college back as an undergrad. Your Progress, there was one of the reasons I developed a love for Python. So
00:59 that's super amazing. Tell people a bit about yourself. Before we jump into that I currently
01:03 work at AWS, Amazon Web Services as a professional service consultants. So my job is to like help our customers in their cloud journey. So we basically do help them with our help we help them with different cloud services, such as if they want to do like cloud migration, or they want to like put some service on a West Coast. So that's where professional services comes into, like, implement and help them with their cloud journey.
01:27 You must see a lot of different implementations and configurations and teams types of software, you get exposed to a lot of things quickly, like
01:35 Yep, so it's pretty it's pretty fun job like you work with different vide different customers, like every customer has different problems so that you get to touch upon, like different problems. So as a consultant, so it's a really amazing job.
01:49 Yeah, that's awesome. That's one of the things I think, you know, for people who are early in their career to help them go fast and level up is get a lot of exposure to a lot of different things. Yep. And I totally agree with you. Awesome. Well, I think maybe Brian should kick us off with the first I don't anything, Brian.
02:06 So python 310. We talked about this last week with Python three turns out, it came out tober. Fourth, it looks like and I've been using it and a lot of people have been using it. But one of the things we do is we update our with a project, if you support a package, you want to make sure to go and change your your testing your ci testing to make sure that you're using Python 310 instead of Python three, Dev 310 Dev, that's what I was testing before. So as but there's an issue. So Python, or Anthony Shah, brought it up on Twitter, a bunch of other people did too. But I'm grabbing his his tweet, it says basically, you can use 310 on GitHub actions now. But you need to make sure that you quote the 310. So this is
02:54 so you don't test on three one. Yeah, exactly. That's insane, that the zero at the end matters.
03:01 So I'm gonna just grab my, one of my projects, I went and changed mine. And, and I just went ahead and put quotes on all of the versions on three, you don't have to do 37339 those are fine by themselves. But 310 if you if you go from if I had dash dev or dash dev YAML convert, like, thinks of it as a string, but as soon as I go to 310, it's 3.1. So yeah, you want to make sure to tick both those that's really it. And that's really what I wanted to cover is to make sure that people change their ci system to be testing with 310 but do it with quotes if you're using animal
03:40 doesn't YAML understand significant digits Come on.
03:45 It's an interesting find, though, like, like, yeah, moving a 3.1 but it should read as three point 10
03:52 Yeah, I mean, I could see how you get there. Yeah, but at the same time, if you're talking versions and not just floating points, obviously, the dots are not, you know, not not decimal separators they're separating for whole numbers, right? Which obviously then the zero matters. Interesting. That's a good find and good advice. I have a quick real time follow up for your brain. Remember, I had complained about not being able to deploy two 310 and production Yeah, well guess what? This is all 310 Whoo. Oh, sweet. Yeah, I managed to get it working in micro whiskey got updated so that it will now work on 310 install building a wheel locally on Linux. And there was another dependency I couldn't make work but then I realized oh my gosh, I'm not even using this anymore. So I just took it out. And then it works. So I put it on talk Python the podcast page for now and if it doesn't freak out or cause problems, and I'll roll out across like Talk Python Training and Python bites and stuff so this is the guinea pig or the canary out there just hanging around it but so far, it's perfect. Nice. Yeah. Couple livestream thoughts here. Sam Morley. Hey, Sam says oh my that is interesting about 310 and Henry Shriner. Hey, Henry, Henry and I are going to be talking to on top Python released and by the way, many yamo projects choose to accept floats and then just convert them to strings. not specific to yamo. You could disallow floats here, if you wrote that. If you wrote the action. Okay, interesting. I didn't realize you could do that. Very cool. Huh? Okay. Did you know that pythons popular? Yes. And it has found its way to be a little bit more popular than it has been recently. So you know, it continues to grow. Brian skins sent this over. Thank you, Brian. And the headline here is pretty neat. Beating C and Java, Python becomes the most the number one most popular programming language says to be to the to me index is interesting. To me, it feels like a little bit more of a lagging indicator. It's also a bit more of a enterprise focused indicator. So that's why Java and C have been popular for so long. But apparently Python has sort of made its way into that world as well. And they're quoting this article over here on Zd net, and this thing I'm liking too. And it says, For the first time in more than 20 years, we have a new leader of the pack, the long standing hegemony of Java and C is over. It's pretty good. Right?
06:14 It is. And I think it's one of the reasons the he said the business community is using it a lot more in and in large companies. That might also be why we're seeing we're seeing the the numbers in surveys of Windows users using Python. Oh, yeah. Staying really high. I think, yeah,
06:33 I think one of the big reasons is like the entry to language barrier entry is like, pretty easy, like anybody could learn the language or get into the language and the ecosystem and the libraries around the language. It just makes stuff so much easier to do. So that's one of the top, I was also reading on Stack Overflow. somebody shared on Reddit that Python has now most number of asked questions compared to Java now.
06:55 So Oh, interesting on probably on Stack Overflow.
06:58 This is somebody shared on Reddit as discussion.
07:02 Interesting. Yeah. So I wanted I want the most powerful languages. Yeah, this is real time. Look at that. Oh, yeah. It's not even close. It's not even close it is. I remember seeing that when this was back here, back in this area. 2017. They predicted this. And they predicted something like a little bit even less than reality. And people are like, no way. There's no way it's kind of just do that. And it's even more real. Wild. And so very, very cool. So yeah, super neat. I'm thinking this is just another sign that, you know, focusing on Python is good. Muhammad, I think you've touched on a lot of reasons why, you know, people get attracted to it, because it's easy, and it's simple, and it's clean, they just want to do a small thing. But then your small thing, as everyone knows, just gets a slightly more complicated, complicated. Yeah, and a lot of times the thing, you start with something simple, it can't do, it can't grow to become the thing it eventually needs to become. But Python allows you to build way more complex software, so you don't get injected into like, Well, I have to leave because, you know, I want to use threads, and I'm using VB six, and it doesn't have thread. So I guess I'll go learn C or like, there's not that kind of story that happens around Python nearly as often. So people just stick in it like accumulates, like a snowball going downhill.
08:16 Yeah. so Sam Morley brought up that he thinks that some of this might be around the data science community coming into Python.
08:24 So I totally agree with that. Yeah. Yep. Very good. Very good. Okay. So yeah, Mohammed, I guess we got your item up next is the first one, right?
08:33 Yeah. So the item that I chose was newspaper to UK, its name a newspaper where the original name is 3k. Participants Python three. Now. It's an amazing library I used to work. I was helping auditors to generate news reports of what they were doing was like going on to internet finding news reports manually. So I was just using my job was to like read a flask web application and using this library and Google RSS feeds to find the news articles, and then pass those links to this library to like, generate useful information such as the description, the title, the length of the article, and stuff like that. So like, it helped me a lot, and then it'll help us like it helped me a lot in terms of automating the process, which people were doing manually while I was working. So
09:19 this is fantastic. Yes. Newspaper 3k. It's like web scraping.
09:24 Yeah.
09:27 Yeah, but it has higher level semantics built into it. Like you got asked the title, we always get published, not not the same sort of E tag weird down on the server, but like, when did the article declare that it was written sort of thing, right? And who's the author? Yep, all sorts of cool stuff in there. And then the
09:44 best thing is like it also does a summary of the article. Like it's not to like 100%, right, but it's just like extract of some of the value which is pretty useful. Like if you like doing newspaper creation articles and stuff like that. For like auditors I was doing this week. They found Really useful?
10:01 Yeah, I'm totally gonna use this. Yeah. yeah, one of those RSS readers. So yeah,
10:06 yeah. Yeah. Super cool. So the API is basically you give it a URL and you say download and then parse. And you have article, that author's article, that published date article that text top image, movies, if it contains any embedded video, you can even do keyword analysis on it, keywords,
10:25 summary,
10:26 and all sorts of things that that might be useful to you.
10:30 So I can see that this is a cool input into other things, right? Like not just straight consuming information. But if you're trying to understand trends and stuff, right, you could go around and just hit all the main websites. And go, yeah, okay, show us the keywords and show us anything that's new, or that is, is new, and also appearing more frequently. Yeah, if I remember correctly with this, there's also things you can do, where you can follow, you can point it at a homepage, and it'll give you like, categories and all the articles in the categories like you could point it@cnn.com or something like that. Yeah,
11:06 yeah. Yeah, you can do all sorts of things with this. The, it just makes so much stuff music, somebody's using beautifulsoup, like, inducible scoop you like have to do and go scrape up yourself by like, this makes so much stuff easier. Yeah, it's just an amazing library. Good.
11:22 Awesome. A good one, for sure. I, Brian, you're up next, I think,
11:26 all right, well, I'm gonna cover something I'm like, super excited about it. But it's a little niche. Anyway, so editable install. So when you when you're working with a package, Python package and developing it, one of the things that I do a lot is, I have it open in my editor. But I also have like a window open, where I'm running pi tests and stuff. So I need to, I want the package to be installed. And it really helps if you're editable, it's editable so that when I make changes in the code, it's instantly appears in my, you know, my test window or whatever. And so pippins, pip supports this. It's a you save pip install dash E, and then give it a path to your local project. But apparently, you can do Git repos like this, too. I don't know how that will work. But
12:13 okay, that's interesting, because you can do Git for Pip. And so I guess instead of saying install it as a package installed as edible, but does it like clone it locally? What happens?
12:22 Well, it does. I mean, installing from Git does clone it first. But I don't know what the point would be because you're still you're not editing it on Git. Anyway, I use it for local directory. It's a cool feature. But it didn't. And I also liked flit but flit, but let users pipe project tomo and pip installable, dashi installed that she didn't work with, with prior project, Intel last this week, last week, really recently. So a workaround for Flint was you would have to install a p th file, or with a dash n, you have to do you have to install flip first, then you don't, and this is a if somebody, if somebody is helping you, but they're not. They're not used to flip this is a weird thing to tell them about. You can do PDH file or Simulink. But then they that came along somebody that said, Hey, pepp 660 said, Hey, we should do editable installs for project by project that total projects also, it requires that the back end supports this also. So there's changes needed to both pip and flit. However, now we haven't. So just recently, jumped back. pip 21.3, came out when was it? October 11. And very recently, flit 3.4 came out October 10. And now with these two things in place, you can now you have to, you have to regenerate your project file or change it to use 3.4 for flit, but, but editable installs work. And so I was playing with it. I'm like, this is so cool. I love doing this. But I was like, how do I get my dependencies in there? So one of the things that flat allows and pipe project a tunnel allows is optional dependencies. So the normal dependencies, your project dependencies automatically get installed when you do it. Installed dashi, but the optional ones don't. So you have to give it a bracket of you know, you have to say like installed the my thing with the optional like test or doc or something. Well, the way you do that with with local directories, you have to just make sure you put it in quotes. So
14:35 quote, dot bracket, test, close yakka close quote. Okay, so the obvious,
14:40 not totally obvious, but not bad, either. So, anyway, I'm excited about this.
14:46 Yeah, yeah, that's really cool. Good find. Let's see. out there. Follow up for you, Muhammad. Oh, quick. Sam says I still have nightmares of ps4 and feed parser Yeah,
14:56 yeah, man. It's really hard to it would be as for ps4 is
14:59 great. For what is four, but it's like assembly language is great. That doesn't mean I should write it all the time, right? No, I
15:05 agree. And of course I don't think ps4 does like scraping of dynamic pages for that you like have to use I regard the packaging of selenium
15:13 for that. Yeah, you do. Okay. So the next one I want to talk about here is, is pretty cool. And it's an unusual project. Because if you're going to go work on some Python data science, you usually want to go do that in notebooks. But you might just want to think about it as kind of like an Excel spreadsheet, you might want to walk up to it and go, Okay, well, let me just see a grid of this, I'll filter it this way. I'm gonna hide that column. I'm gonna, like remove, you know, only show data with some property and then look at it. That would be nice if you could visually do that. Right? So what we've got here this one comes to us from make sure to give attribution from Tomas Rolo. Thank you for sending that in. So is the thing called Mito and Miko is a spreadsheet that helps you complete your Python analysis, what you do is you create the Mito sheet, which is like an embedded Excel thing, like thing or Google Sheets thing into your notebook. You play around with that, and then the cell below it writes the code. But let me see if I can show you an example here. So there's this spreadsheet up at the top. And as you interact with it, you can see there's a cell down here that says, import pandas as PD, Netflix titles equals PD dot read CSV, and it gives it a file because you clicked a button said open CSV for your data source in that spreadsheet. And then they said I want to where they say they removed some of the columns like rating and type and so on, and then create a pivot table off of that, and it just writes all the Python code for you below. Yeah, I think right in the notebook,
16:44 I kind of really liked this library. Like it's gonna make a lot of stuff easy for like people who are just doing data analysis, because like, what they do most of the time is like they're browsing StackOverflow to like, right to find and find the right answer to like, solve their problem. So like, this is gonna save them a lot of time.
17:01 I totally agree. And if you go and play with it, you'll see a section that says microcode start, do not edit microcode No, do not edit a totally reasonable use case for this, which might not be what Miko themselves recommend, because they want to promote their tool and sort of be part of the story. But a reasonable thing would do to do would be to, like embed this, play around with it to get just the right thing, and then strip out the Mito bits, and just leave the fragments that it wrote in there.
17:28 Yeah, that would be amazing, though. Yeah. Yeah. I
17:31 mean, you don't have to tell anybody. He's a spreadsheet. Yeah.
17:35 No, that would be amazing. Yeah.
17:37 And it even does really cool comments on the section. So it puts it all into one cell, right, instead of a whole bunch of cells, which I think is reasonable. But it does like the comments that it writes are imported Netflix title, CSV, pivoted Netflix title, CSV into data frame to flatten the column headers, reset the column name and indexes. Like those are meaningful comments, right? This is a pretty nice, actually, what it generates is not horrible code that you would, you know, run away from the school in that neat,
18:07 so people are really familiar with spreadsheets can kind of ease into data analysis.
18:12 Yeah, exactly. And they can do like really like easy tasks. Like if you want to filter our data, instead of like going out and finding out how to use pandas, they filter out data, they can directly use Mito, for that, so it's going to like save them a lot of time on that.
18:26 I agree. I could see myself using this. No, no doubt. I think pandas is great, but I don't know it super well. And like, I kind of want to do this thing, but I don't really know how to like select to do that. Yeah,
18:36 yeah, that's the thing about pandas like pandas amazing, but there's like so much stuff in pandas that you're on top of your head. So you have to do like searching the documentation like Google Stack Overflow for that. And I can see this library being really useful, though, like for that specific reason, like you want to do quick analysis. You use mitre for that. And boom, you have the code right down, generate
18:59 it. Yeah, super cool. The other thing worth pointing out is you don't have to start your notebook This way, you can actually hand it in existing data frames, you could do your work down until you get some data frame generated from who knows where, and then hand that off to Mito, and then have it write the, you know, the next fragment of code that you're going to write. So I think that's neat. I could totally see myself using it. There's a cool tutorial you can go through, but I recommend you watch the data slicing with Mito to video that's right at the top of that, it's like, I don't know, a couple minutes. How long is it? It's six and a half minutes. It'll give you a really good sense of what's happening there. The other thing worth pointing out is when you see plans at the top, that means it costs money. But there's a individual one that's just totally free forever works with JupyterLab two and three. But if you want like team support, there's a paid thing. And given that they're creating this and giving out to the world that seems fair enough. It's something you could plug in and you don't depend massively upon it. Like I said, you could even like use it to generate your code and then take it back out if you want. Yeah, so pretty cool. Probably To Mito at the team, that's pretty nice. Brian, real time follow up here on the from Henry out in the audience editable and start installs aren't nice. But since we got editable installs for setup CFG only projects in 21.1. It's now just supported for arbitrary build backends in pip 21.3. Yeah, thanks for thanks for actually efa.
20:23 So z docs says edible installs.
20:30 We probably said editable, edible on Sunday indeed. All right. Let's see. So, Muhammad, you got yours? Yeah, that's right.
20:44 Yep. So I have this library called tropospheric. It's an amazing Bible in healthy January cloudformation templates, the writing Python. So I do this on my job a lot. Like I work with DevOps, people writing cloudformation templates. And sometimes it's hard to write class templates, because of the formatting part in yamo. yamo can get messy, like, you might mess up the format. And then you find volume in mind. And then you be like hunting down. Why did I add an extra space. So this library solves a specific, specific problem, like helping you write templates using Python language like this an amazing library. If you like writing a lot of cloudformation template, I would definitely recommend using this.
21:22 I see. So normally use an AWS cloudformation JSON file,
21:27 mostly JSON and some people like so it's like it's up to you like it's you can only write in JSON, or you write in the yamo. But let's say you're writing in JSON, and like the you mess up the format, like let's say you miss up a bracket a comma somewhere, then you might be like, like, if you don't have the right linter then you might be like, pounding down the file looking for like, waited I missed a comma to fix this. So like it when you like having life template, it gets harder to like I would say about them.
21:53 Yeah. Another thing that's nice is JSON is static, right? But yeah, I think code executes. So you could like loop over stuff and say, Yeah, 10 of these, so let's call it this one, you know, 123, you know, machine machine to machine three or whatever, right? Yeah,
22:06 I was gonna actually point point that out. But like, thank you for pointing that out. Like I was gonna say, like, you can actually leverage the leverage the power of like Python language, like a debate over stuff. Like, let's say you need 10 subnets. Instead of braiding. 10 subnets. in JSON, you could just add it and then produce like, 10 subnets. Yeah, exactly. That's awesome. Yeah, it just makes stuff so much easier. Yeah. You know,
22:28 you hear all the time with cloud stuff, infrastructure as code or Yeah, that kind of stuff. And it's just like another layer, right?
22:35 Yeah. No, I agree. I agree. Yeah, very cool.
22:39 Brian, you guys do anything with bad stuff in your world? All hardware all behind the scenes?
22:47 Well, I mean, we use them. We've got a lot of servers and stuff. And we've got a lot of services running, but they're all they're all internal. We don't use a lot of cloud services. Some things are easing up a little bit that we're using, because because there's a lot of things that are just so much easier when you go into the open cloud. But there's security issues also.
23:07 Yeah, for sure. Alright, awesome. Well, another good one for people doing AWS stuff. There's also the, the AWS Cloud SDK or something like that. Yeah, Cloud SDK is what's the relationship of these two things.
23:20 It's like pretty similar. But like, if you like, it also has support for TypeScript. Like it's it also sort of Python, Chai script, but like, it's more like a personal preference. So like, I prefer this library, because it's pretty much supported in Python, like it from the start, it was built for Python. So that's why I like I like this library more than AWS cloud CD case. But they both do the same job. Basically, the only the only missing part is like what caused when, whenever the call cDk generates a template, it also allows you to deploy directly using the CD case. But what troposphere does, it allows you to generate the template but it doesn't like allow you to like, deploy it directly on the cloud. So like, you basically have to take the template and put it onto cloudformation to deploy the resources.
24:05 Yeah, that seems reasonable. You know, we could store those in, get version control and stuff like that, like, here's what we did to change your cloud setup. And here it is in version control. Right? Yep. Nice. Well, I think that brings us to our extras, Brian. All right.
24:20 I guess so. Yeah. Yeah,
24:22 I think so. You got anything you want to share with folks?
24:24 I just the the Python 2022 site is there now. You can sign up yet, but there's a 2222 site.
24:32 I mean, some salt lake city. There. Yeah.
24:36 I'm so excited to go to Salt Lake City. I assume you're going
24:39 hopefully. Hopefully, I can.
24:42 Yeah, I definitely have plans to I can't wait to see everybody in person.
24:47 Again. Yeah, it's so interesting to think about where we are with conferences and stuff. So I was just at highbay which is really cool. And all of them pull up out on the screen. Here, like this, this is where the PI Bay conference was held, like literally in this in this outdoor food cart area where there's a bunch of cabanas. Each cabana had his own TV and his audio video feed. So you could be in groups of like six or seven outside. But there were hundreds of people there, right, which is really cool. And I think that that's kind of a template for, for going forward for a lot of things happening these days. I've actually invited grace, who was one of the people who will put this on on the show, so maybe we'll have her tell us more about this later. But I don't know how this works into an event as big as Python or as big as any of those things, right? Yeah, I mean, that's a you gotta have a really big outdoor space. Would you be awesome? Maybe like, like a theme park? Like I'm gonna watch this one from the roller coaster? Yeah, awesome. Yeah. So Jose out there says looking forward to 10 my first bike on Yeah, that's it's super fun. And Teddy, Teddy says, icon announcement? Yeah, that's great.
25:56 How about you any extra?
25:58 You know what? I didn't have any? Until I did. I actually wanted to just point out this tweet that I saw you put out here about?
26:05 Oh, I think I just saw the tweet in the morning. Yeah, about pi,
26:08 E and V. as having a challenge for Windows users. And if you make that the core part of your tutorial, then you're like starting out putting Windows users who represent what 45% of the developers or something on the backfoot on your tutorial. So yeah, what do you think?
26:29 I was just like a comment. I saw a tutorial and I was like, why is that? I mean, that's not the default way to install Python. So I've put this out there. And it kind of blew up a little bit.
26:39 So yeah, exactly. Yeah, it's got like 121 likes. So anyway, I think that that's an interesting thing to add mahamadou you got any extras as well, before we go to next thing.
26:50 So my extra is like how to learn. And so as I read this article A long time ago, but like it's an amazing article for especially people who are like, getting to the next world and like learning command line. So like, it talks about how you can use tools like using manpages. And like help flags some bit the tool so like it gives you like info and insights for how do you actually use the tool? And like exploring wikis and like StackOverflow questions. I think it was an amazing article for like, beginners want to like, we're just getting into like command line or Linux world. That's cool. That's my
27:21 I find I found the Linux command line, macOS a little bit less because there's often an alternative, but certainly the Linux where the sole access to it was through an SSH. I found it intimidating when I first
27:36 No, I actually I actually got into Linux right after my first semester of college, I was just trying to get one and when I did, well, I was like, wow, you can do so much in command line. And that rest is history. Like I've been using Linux for like I would say five years now. But now I'm recently switched to macOS because of my work and I'm having a hard time managing windows now.
27:55 I guess I've had trouble switching to PCs because I was in Solaris when I was in college.
28:01 Oh interesting. I remember walking by the Solaris going Oh, those are different. Interesting. Yeah, cool. Well, this will be super helpful especially to a lot of folks out there who don't work a lot. I mean, now I'm totally comfortable with Linux, but I remember the learning experience so I'm sure this will help others as well. Nice. Alright, well, I believe it is time for a joke. And speaking of real conferences, this is something that I we've done before at the PI cons we did this a PI con in Portland with the Portland Art Museum there it was really fun. And it's the classic programmer paintings. These right yeah, sir. So the idea is you take a legitimate historical maybe 400 year old piece of fine art and then you ignore the actual name and you put your own sort of techie interpretation upon it. So so here this is this one we've got this this balloon taken off into like a dark cloudy red sky and two wolves just like sort of for learn watching go The ground is kind of on fire, but it's also snowy, I don't really understand that. But that you know that this is some proper painting that who knows what it is right? But if you look at the title Oh wow, the title is alphabet cancels loon right loon was their project where they'd put balloons up over places without much internet and that would beam down. So here's like the final balloon balloon going off into the smoky sky and it's in z just slug backs Beck's basinski 1979 oil on Masonite beautiful alphabet camfil alone so we used to go around to the art museum there we would like at the conference or they would have like a dinner there or something we just go around and like try to one up each other on doing this to like real paintings. It was fun. But this whole classic programmer paintings calm, endless joy right there.
29:57 comes over there. check these guys out. Yeah, you
29:59 can spend a lot I'm going to it's been around for a while, so it's good stuff.
30:04 I'm chuckling at some right now I gotta stop looking at it. Yeah, exactly.
30:07 I strongly resisting the urge to just scroll through them. Yeah, we're gonna show. I'll do it later. Thanks, Michael. Yeah, Yeah, you bet, Brian. Thanks for being here. As always, Muhammad, thank you for joining us. It's been very helpful.
30:18 And it was pleasure to be here. Yeah. Thank you. Yeah. Bye everyone out there. Bye, everyone.
30:24 Thanks for listening to Python bytes. Follow the show on Twitter via at Python bytes. That's Python bytes as in BYT. s. Get the full show notes over at Python by sarafem. If you have a news item we should cover just visit Python by sarafem. And click Submit in the nav bar, we're always on the lookout for sharing something cool. If you want to join us for the live recording. Just visit the website and click live stream to get notified of when our next episode goes live. That's usually happening at noon Pacific on Wednesdays over at YouTube. On behalf of myself and Brian Aachen, this is Michael Kennedy. Thank you for listening and sharing this podcast with your friends and colleagues.