Saul Pwanson

So probably the

biggest evolution is that when I first was doing it, it actually started out as a single, a single file script, I kind of put everything into a single VD to a pie. And the idea was that it was a drop in thing, you could kind of copy it over to a server over SSH, and then you start using it and you wouldn't need anything but the base Python license that is MIT. And then as I started adding more kind of modules are putting against like internal plugins to it, I listened to those as GPL. Three, I was trying to keep this like great clean separation, because the idea was that you could use them the speedy to eat, which was very similar to the thing I had a five for making all kinds of other apps. But then nobody really took me up on that. And it's kind of hard to use somebody single file emulate that. nessa so super tight little library. And so I kind of gave up on that. And and now heading more towards kind of more plugin platform architecture revisited. The app is the thing that hosts the individual plugins that you can add, and maybe there'll be a plug in for Maven wind up having a vegan application that you can use. But it'll be it's kind of turning on its head as opposed to incorporating VD to eat some particular version of your thing, you're actually using the data library.

And so then beyond that,

it's now just a bigger open source project. It's got a whole packaging release cycle. And I'm working with Anya, who has been very instrumental in some of the packaging and tech and documentation, stuff that we've been doing. And it's just kind of taken off and behind and gain more traction in that sense. And you asked about the libraries that I liked, and stuff, I'm actually one of the things I want to doing also to keep performance good is I think very few dependencies, I feel like layers is how things get messy. And so the fewer layers that you have, the better off, it'll be if you can wind up coating everything in between there. So the libraries that I use, obviously, curses is essential. But that's built into the Python standard library. Now Python standard library is really fantastic. And, and everything's included, which is super, super bonus. But then also the Pi Pi ecosystem in general is so broad that any format that I come across html5 or Excel or whatever, they have a library already for it. And it's a library, you can just use in Python and like you read a page of code and you've got the stuff in there. And then all the loaders really are just importing those libraries, and then condom and putting the rows of the return in there and having some columns around nice, pretty simple concept. One thing you mentioned. Other, you want to know other ways that keep this in a fast, I've been very focused on making sure that starts up very quickly. Like I think I feel like if it gets to be a half second of startup time, it just gets in the way it feels like a certain kind of friction. And so one thing that I do a lot of is lazy importing. So all these libraries, I have no idea how long they're going to take to load or sharp themselves. And I know that there are some pretty heavy ones, even in visited the physical use sometimes, but I don't use those unless I need to. And so when you open up an Excel Excel file, for instance, that's where it's an import the XLS library. And if you don't ever load an Excel file, didn't have to and have to spend the time doing that. So that's a other one of those tricks. And before we move on, I wanted to mention the Python date. util library is one of those, like, I don't take many dependencies, but that's one that I've been very happy to take. Because it parses any gate format that you can throw at it like if you can, if it can be parsed, I feel like it will parse it. And so it is it's amazing. It's the best in class detection and parsing parsing tool. And also, other feature that I have used a lot is Python decorators. I'm not sure. I mean, I think that's pretty standard thing. But I use them as just a way of tagging functions. For instance, I mentioned to a single thread decorator taking a pretty advanced concept sometimes and just making it just the essence of it so that I don't have to think or work hard to have those concepts work for me.