YouTube man. What's up, man? We are back with the CFM CFM action wrap them up. You guys know what I'm talking about I was not here for the week for I was away from my birthday. I turned 32 Thank all you guys for the birthday wishes man. If you want to thank me on birthday wishes You know how you get any birthday wishes my social media accounts now you guys can click below and check out all the social media accounts So if you want to go ahead and follow me there, please do Below both Twitter Instagram, whatever it may be hit that below man, but this is week three. I did lose the game the sim game So I am one in one this is against team war former Dallas Cowboys club series champion It's definitely somebody that I got to play good against it's not going to be like week one week one was a body And I'm glad they gave me the body and I took care of the body That's what you have to do when you're playing We're playing CFMs when they don't piece of meat in front of you. You got to eat and this will not be an easy game Seem more has always been one Play a little bit different than everybody. So we're definitely going to be a On our top game to come out with a W today This is week three man So we're definitely going to lock in and go ahead and get a win Hopefully when you get girly involved a little bit more than I did last week That's going to be my my goal for the most part Though man is in the league here is the New York Giants. He's gonna do goodness league. It's a race league. He's gonna pop up Look at a diet taking a loss the croft barely beating Jewop as we see in the lower Half down there.  Thank you guys for the birthday wishes, man You guys can check it out Kick that out of bounds man got get physical from the rep man. That's what it's about and Man it did work that my formation subs did change So that it was really dope that you can save your formation subs in franchise, man I'm I'm excited about that makes me super happy that I can do that because and I normally I'm always in our being Scrolling through people right now, but the fact I don't have to do that. It's really helpful I'm actually gonna put cover for my audibles. I never really do all the bulls because you don't have time But with this new With this new what they just told me I'm gonna do formation sips at the line formation shifts or subs at the line is really dope Happy about that. I'm mad. You guys didn't tell me.  Definitely.  Good dot. Good dot. Let's see be old them a 3 and 0 on this season Definitely accept that definitely I accept that right chat. I'll be feeling bad accepting penalties, but bro That was a clear accept Physical physical the line is scrimmage man. That's what it's about fourth and nine. What you're gonna do, baby. What you want to do? Yep That's how we started man, ecu-minded defensive end That's why we put a little bit of speed once he got loose. He got off the block sack First in 10 on this 14 yard line man. I gotta I gotta get seven here Gotta get seven here change the game 1,000 percent would change the game if I get seven I'll tell you what YouTube check whatever if this was fourth down in my lifetime We're sending people I Thought it was good defense, man Definitely a cover three look. I believe Someone all over this Let's get a couple just get a couple right there. That's what it's about.   He's giving me. I think these curl rise will be open. I'm gonna block my running back here I don't think he's sending pressure this play Cooks why you stop good defense. Damn it want to cooks on that post He kind of hit the back of the ends on the stop and once I saw that I didn't want to go pick I bit it just do it out of bounds Bad possession bad run play could have got more yards with girly his user blew it up got me It's tough when you get inside the 10 there And What's up, P. Nola? How are you guys man? You too, man, you not check all these games live man hit that twitch link below put notifications on so you can Check out these games live when they happen. Clef is in this league. Voma's in this league The Crawford's in this league.  That's a third and punt right there. Who got that one double Gotta get seven here man. Can't can't risk another seven really Can't risk another seven or another three men because now two stops right there He doesn't even have a first down should definitely be dominating That's dominant defense have to make a show on the scoreboard Let's get a return here Cooper cup white guy kick returner only one in the league There's a reason why he shouldn't be my kick return. It's just five to it. What is this? another cover three look I Guess there's a three four odd from earlier in the year. I guess I keep it basic your chat Why do you catch the ball like that man all because of the way he caught the ball man Catch it and run as butt naked chat Just an unfortunate turn of events Unfortunate turn of events, you know, we're quick snapping toss and we get desperate you get desperate Just the way he caught the ball. They let me in a detacle comes in and strips me like that. That's just that's unfortunate chat No cooks is important man. Let's go along. Hmm. That's tough man and get two big stops and give up there That's tough. Well, it would help if I've earned on the field every once in a long chat.  That was big First big run man. That's why you run the ball man every once in a while. You'll pop one off That's what we do like that. Yeah, I keep a ball in front of me right here.  Gotta gotta stop the run on this play right here. This is a huge play Waste of time. I'm good. I like that. This is a huge play to stop the run because this play If he doesn't get any yards running he has to pass if he gets like three or four yards He could run on third down. He will definitely is definitely just two more plays He definitely put the running back on a wheel right there. I gotta worry about that Just a tough tough spot. I mean right now Nice Donald. That's what I pay you to do. That's gonna force the field That's the he should just run really at this point nice right there Brandon, what's up man? Shoot Got fully expected good to run right here We're about to draw or that toss Aaron Donald made that play for me first in the three. Let's go man Yeah, we're ready for man 20 got to take advantage of the little bit of man 19 that's left Man disappointed in that fumble man that killed me. I gotta go here get a good driver right here That fumble change the game even six nothing I would have took six nothing Big tackle by TJ green there on that drive not giving up that touchdown. No holding the three That's what wins and loses games as much as you talk about ebooks and no one plays and run man little plays like that That I made underrated play trying to run up and I couldn't I didn't have an angle to make a tackle Just made sure he didn't get a touchdown hold them three there What time is Jeff draft lottery? Did it happen already? Sixers have a chance Hey, man, I appreciate you. This is that nickel normal look where the defense of incomes free happens Man, I can't believe I just let that beat me. God damn it Double flat in my side kind of had me boxed up a good defense Didn't blitz that time fully expect the blitz on this play Good catch cooks Interesting call wish he would have that one back. I'm assuming he would wish that So after that after not blitzing fully expect to blitz here.    Maybe I can't even get this to the two-minute warning I'm gonna definitely try it's gonna be close Definitely had the number advantage on this side Well, you saw that switched it over Madonna gets tackled by the first person or Girlie is tackled by the first person. Gotta love it chat Brandon cooks man. That's why we keep them, baby That's why we keep the cooks man Pelicans got number one pick That's why we kid. That's why you can't get rid of 95 speed big pick up there That's why I motioned him in right there to get that fade against that seam cover three Had a man dealt with a linebacker way too slow for Brandon cuz got the rack egg touchdown man so I'm up seven two minutes left. We got to make sure we can go ahead and get a stop here This is the drive of the game so far if he doesn't get That's right rap does not play on special teams. If you watch the first video, you know rap does not play Let's see if we can't get a cheap sack right here with six seconds left here.   Keep playing with rap Keep playing with rap rap hits hard, baby You gotta love players of his heart rap is the definition of physical.   It's been running door to ball to Gordon I just want to be able to flip my defense as much as I want really Big play right here man huge play 307.   Sometimes they just don't see use that to his advantage then it's fake snap the whole way I just forgot about it. That was bad. Now. What sucks about that is now He can actually run where that was a force. That was bad But then what that was an automatic pass down now. He can actually do one of these Faggot runs That's an easy pick. Thank you Get the block get the block or stumble stumbling school too. Let's go man to leave Big 58 seconds right here. Let's see if you can do something with it. Everett Not sending any pressure out of this look and He's got to get to the point where he's mad to where I'm having all day I'm having a lot of time in the pocket and he's got to send pressure pretty soon eventually, you know, I Would think so it's been like 10 plays in a row where he hasn't ever check ever Now I can't lie to you guys right now my past protection my guys are making their money Picking up every blitz he's sending at me and I'm just making money in the backfield right now That's how me actually sense six. I believe I felt like I had all day Gotta cover this kick right here. That's what rap is for where is rap There's TJ green 26 seconds don't want to give him a feel for right now They cook that 95 speed man. That's definitely something that's gonna pop for us Yeah, Barboza be up on YouTube tomorrow along with SoundCloud. Oh, yeah long take it to the career too Yeah, that's the type of stuff we need to secure the bag right there rookie long out of Michigan He likes them long That's the type of play I need going in the half go up 21 points get the ball to have huge play man bang long long Do you like them long? My nickel back is long Ah all homo Gotta cover another kick come on rap rap hasn't put his stamp on this game yet Man, that was great. That was great chat. That's exactly what we need chat. What's up, man? Y'all gave up on me, man. I Know, you know necessary, you know When the long guy does stuff like that you got to support the long guy TJ green kick return This is why you watch boys. This is why you draft him in the free agent pool Oh, I thought I had something there. He wanted to go to long So isn't every day was a free agent it's gonna be a long I got something long as my man We will say I got something long hanging for you. Cook's just having a field day today boys a Field just got hold on to that one for me though. Ethan. What's up, buddy? No, I don't think you can see Cuz I already get my points. I'm saying chat. I gotta get my Everett into the end zone That's all you gotta do. I'm saying Test so this game worked out. Well, even at that fumble thought it'd be a long game Get Brandon cooks involved my pet. I can't lie. My office line is playing like goons this game I've had all the time of the day when I block everybody just really feeling good about my offense right now Mostly because of where my office line is playing To stop running squirrelly squirrelly kid, that's how you stop the TJ man Yeah, right. I mean my office line is really playing lights out. I don't know what he's doing. Oh my god Come on to leave.  God.  Hold on to that physical Shit They're gonna be shocked with our speed Yeah, I used to honestly back when rocket catcher was cool I used to that be the first thing I do is offense 13 for 65 TJ the tackle boy Sometimes I send them backwards with the tackle Yeah, I would never get my players that not it's it. That's just super corny The pad height and everything you doing this. That's it's super corny long way the long way chat the long way Play with the long way. Don't play with the long way, baby Don't play with the long way. Oh, we got super. We got super crazy there. It would have worked. I ain't no side of the work Took a big risk there I should just play safe. No, I shouldn't have I like the risk I just got died it sometimes you take a crazy risk. That was the first time I did anything crazy like adjustment wise But you got that here we go TJ green show them why they watch. Oh In the camera got crazy on me. I Ran into that guy. God. That was bad user.  That's what happened So we're up 21 game is pretty much in hand, but it's a CFM. So we gotta go ahead and try to score some points Oh First time these run three three five normal fully expect us to be covered to Try to hit burning cooks man.  Oh Yes cooks. I was bad right there Cooks cooks is a glitch fumble for me first play ever since then. He's been a monster Man, I'm getting bagged down here. This ain't good. This ain't good. I was getting picked right there. I think Man, this is just a tough spot It's like against this like you really do got a blocky run, but even though you don't like you don't want to block You're running that you have to man.  I need that defense But a Clint where's Clint at get Clint on the horn How does that ever happen just a I must have crazy wind right now Where's wrap on the special teams TJ green?    I'm sorry It's just like dude like I've been stopping it all game like come on man.  You want me to just flip my defense and do it. It's just I Really think he'd spin out my computer. It's a one toss again.  Oh, it's really about just I gotta flip my defense and put another person over there It's not good at all. There's no pitching this game. That's good See if I'm a stuff. I was a better than much It's just I didn't I didn't do what I was doing all when they get cuz the game's over. I'm up by three scores Like why am I like over? Adjusting, you know what I mean chat journey 24 months man. My first sub ever. Oh my god. Look at woods. I Feel you probably I know you just prior running clock, but damn. It's just like Joe that I can't lie woods did catch like oh man I don't know. I guess I mean that's his offense when it's when he got the numbers the other way. I don't flip it Oh, I try to kill him. Come on. Hager rap. Where's rap?   I'm saying long if you can pick that off, man I will play all-star team up.   He's not running the ball. Nope.  Oh So very clocked No, I mean listen Covered three down here. It's tough.    That was almost right.     I just shaded them regular Come on. Right. That's your side, baby Good die.   I gave up one run just being mad But uh, Clef is in this league like I said the Crawford's in this league Voma's in this league It's definitely some good people journey. I'm right here, brother. Let's get it draft Could have played a lot better.  You know saying like look, I just climbed up YouTube This is like like when you know, he's not blitzing. It's gonna get both so off the edge Gonna get Ingram whoever else he got off the edge. I'm just gonna go ahead and drift up I know I have all day It's been covered three pretty much most of this snap especially in the red zone have been covered three because of that I know that this flat route will take away him There's no vert hook vert hooks or what stopped these curls covered three doesn't have vert hooks So if it's covered three, I know this curl will be open.  I know it's gonna be open All I had to do is buy myself time and then predict where his user is gonna go Now if you watch earlier in the game I had this post route a bunch of times But it would hit the back of the end zone and it would stop running So what I did on this play was I smart routed it or maybe I'm just so close so far away I'm no longer inside the five that this post where I was going to be an option and For me, I got to realize that once he's running this way like that I I'm gonna have this it took me way too long to recognize that and I do it late I should have thrown it into some anticipated hit it by the a hit it right here But I throw it late and the ball goes all the way over here This guy's able to get a diving hand on it and don't pick because of it Just a little bit late read and that's just that's just a little that's a bad really honestly It's just I got to be better on that play That's why it pissed me off because one it should have been a touchdown instead It was an interception.  It wasn't much But if I don't move up I get sacked instantly But that little bump on Bolsa and then because I moved up pretty much where the ball was snapped Like the ball snapped here and I'm gonna move all the way up there It just gives Bolsa when he fully disengages.  I think you have four sacks. I'm gonna go speed rusher I really don't think it matters. I just want um Finesse move awareness pursue. I'm cool with finesse movement. I like this boy Epucon, I don't know how to say his name really but he's really he's really a dog for me Honestly, so that was a big win To get that win. I think that's the only My train's complete. Hopefully I get a Somebody gets something here as close to their XP really But I don't really even know how to look at their experience stuff, but that's that was week three Really happy with the outcome I'm two and one with a sim loss Because J bird was ducking me. Nope. I was away and was not able to play it would have been three and oh J bird has zero chance because he's okay in regs. He's not good in salary cap Or in and what you call it in CFM. I might be to see if I'm better That's player ever I wish I'm working. I don't know where I can see these guys. Um, I You want to see what's funny is gonna be Todd Gurley season stats Jericho I've already over a thousand fourteen four picks. He had two picks in the sim game. That's that's crucially bad Rushing Todd Gurley, all those rushes were in the sim game Everett having a huge year for me. He really is Cooks obviously 400 yards already six touchdowns Tavon Smith over 200 yards right was over 204 touchdowns for Smith Everett having one touchdown. He's actually having rushing. He at least got two touchdowns for me Yeah, every got two touchdowns rushing three total touchdowns. Hopefully he makes the Pro Bowl, man Shout out to my man El Tigre El Tigre with the sub man. Get my subs back close to 300 y'all I'm at 268 right now. I mean, I think I did. I think I did get gold in a Golden training, I don't really remember But I'm feeling good disappointed that when I feel like I feel like golf go in the MVP this year But that was that was week three, I'm 211 feeling good long had a great game for me Big long long fellas between long and rap man. I'm changing the face of this Los Angeles Rams defense long and rap I'm gonna have a some long rap for people and wrap them long and give them the long man You're saying that's what I'm talking about hit that like button, man I'm 211 feeling good. Gotta make the playoffs. That's the goal great start


I got my second pontoon smoothed out pretty well and today I want to work on some pedals. And this morning I just came out here and did a little test of something. Also we have baby ducks. They're brand new. I'll show them when we can like pull them out and stuff. I think that's why the chickens are yelling so much. Anyway here's the thing. So I got this thing recently in one of my Craigslist tool lot buys. And it's a pipe bender. And I tested it on, get out of here wasp. I tested it on this aluminum aluminum pipe. And it did pretty good. Didn't collapse the thing. It was really hard to bend. Which you know is a good and a bad. It means it's hard to do but it's really strong still. So if I can take one of these pipes and bend it into pedal shape I think that'll be really good. And then I'll wrap it with fiberglass after. This one I think is one solid piece that might be long enough. Oh wait this one has threads on the end and a connector so I'll be able to take this little piece off and put as much on as I need if I run out. Put a longer pipe in the handle here. Give me a bit more leverage because it was really hard to bend it. I need to make a thing that looks like this. You can see that. Hopefully these will be rotated 90 degrees to these. Yesterday my friend and I were over at boat construction island and I was working on the boat and he was working on something else. And then we ended up spending like an hour just staring at the boat talking about it. And I think we got it all worked out. I'm using a super simple pedal wheel. Pedal wheel. The pedals. You know because like they're easy to make, easy to deal with. They're not complicated, easy to repair. There's not much I can go wrong with them. There's just a lot of benefits to them. And then the front cargo area I think I'm just going to put wood boards across that can be removed so that we only need the weight of the front floor if we're actually taking a bunch of cargo. And no one's going to sit on the pontoons. The pedal stuff's all going to go between the pontoons so I don't have to cut into the pontoons to make space for the pedals. Plus you know if you're sitting way out on the pontoons it's harder to get in the shade. So according to my imperial noodle units here, anyway I've got six foot tape measure here and that's the space between the pontoons. So I figure two feet can be for pedals. Then two feet can be for the pedal wheel. Then another two feet for the pedals. And I'll have to you know not go right up to the edge of six feet because I don't want to be scraping the pontoons. I need to remember that. So if I can get all my corners to be like this it's pretty good. It's pretty tight corner. I can come in like two inches from the end. It's like five centimeters. And that'll be enough space to not hit the pontoon. And still plenty of space. Here's the five foot mark that would be where the middle thing. That's tons of space. This could even come in more. Or I could just leave a bit of extra space here. Alright first thing I need to do, bend the first corner. That's just going to be the one that goes out to the bearing. And when I do it I need to mark it a lot so I know where this corner ends up being in relation to where I put the bender. Because I'm going to need things on this to line up like the four spots where the bearings will be. They'll have to be lined up pretty well. So I need the bend. I need to know exactly where the bender is going to put the pipe thing. I can bend this. A few degrees. I think I went slightly past 90 degrees. And that is pretty close to kinking but still within acceptable parameters. And it looks like it's 90 degrees to here and then this part of the pipe curves a little. So if I take my hammer and straighten this part out. Because this is where the pedal part is where you put your feet. I'm going to want to make a roller bearing on this so I want this to be straight. Now the part of the other end of the thing that came out really straight. So when I do the next curve it should leave this straight. So I guess I'll just have to doctor these a little bit. Look at the hammer and smack it. Okay that looks pretty excellent. Of course the alternative to this is to just get a bunch of PVC pipes and use 90 degree anglers and it wouldn't be nearly as strong. So I guess I've got one shot at this. I better save this in case I lose my line. From here to the outside edge of here is five imperial noodle units. Maybe that means it's time for breakfast. I had a steel pipe here. I'm wrapping it in fiberglass so it wouldn't matter. That's rusty steel. I don't have one anyway. I'm not waiting to get one. The benefit of using this was the strength which is not existent now with crack. So it would be relying on the fiberglass wrapped around it anyway. So all right moving on to option number B. Man my junk supplies are dwindling. But I think I have enough of this size PVC pipe to make the thing. I think I'm going to go classic candle melt the pipe technique and I can use these on the ends because they don't have to be tight corners. And it looks like I'm going to have to 90 degrees alize these things too. You know what? Forget those. Just start from scratch. Start with the long pipe because that will definitely have enough to do one side of the pedals. That is coming out pretty nice angles. This obviously isn't the strongest corner in the world but it doesn't matter at this point. I just need something to be the right shape because it's going to get covered in fiberglass. This is a really important one because the piece coming out here has to line up with that piece there because it's going to be a bearing there and a bearing here. Now I need to make another one and that pipe's obviously not long enough. There's a little baby duck in there.  She has six baby ducks so far. Good job, mom. My junk pile is kind of pitiful right now. I'm slacking off. I need to get more junk. I did find a pipe that kind of already has a job and it's not that important. I can take it. Actually the first pipe had a job too. It was the phone from the third floor to the first floor in the house here so people could talk into the pipe and hear it the different way. Not that important. I can replace it. I'm making one side of pedals pretty big and the other ones are much smaller. Or do you think that these ones are small enough that you'll be able to pedal on them? Good. What about you, Bellatrix? Yeah, good. Oh, beauty. Nice. And this pipe fits inside this pipe. So I'll be able to put them together. That's pretty much what I want there. Off to measure. Make sure it's the right distance. Obviously I can adjust in the middle. Oh, that's great. Now I need to get fiberglass on it and make sure these stay lined up. Yeah, this thing down the middle has to all be straight. Then I can worry about the paddle wheel in the middle. This one's huge. Back up, Bellatrix. That should be your name. Fluffy fuckball. But we don't even know what you are yet.


Hello everyone. We are here with Sylvain who is our next speaker. I saw he's pretty impressed by in the EuroPython website and I'm very interested with your talk I have to say. What are you calling from? I'm calling from west of France actually. And how's the weather there? Actually it's so-so and we are close to the ocean here so it changes every 10 minutes. I'll tell you if Sun is coming through the windows. Yeah, please check our game you're sharing and whenever you want you can start. Perfect, well thanks a lot for hosting this event. I want to wish you good morning, good afternoon, good evening for everyone. And well I'm Sylvain Marier. I work as an analytics and AI engineer at Schneider Electric in Grenoble, France where I'm not located right now by the way. And well in this talk I'll introduce you to a library that is named PyTestCases and I'll show you how to use it to hopefully make powerful tests and reproducible benchmarks. In this presentation I'll start with a very quick reminder of PyTest as I assume that the audience knows about this already. Then I'll introduce you to how PyTestCases works, the basics, mechanisms and then I'll switch to more advanced topics for the end of the talk. Okay so with PyTest first well it's as most of you know it's the test framework for Python extremely popular now and the reason why it's popular is really it's philosophy. It's meant for you to not write extra lines of code. You just focus on what is interesting so you can really reduce boilerplate and copy paste code in tests to almost zero. And how can you do that? Why does it work? It's based on three pillars. The first one is that a test is just a plain old Python function such as this test foo function here. Second you can parametrize tests by decorating this this function and telling in the decorator what is the name of the parameter and the range of values. And with just that line your test will be will generate here two tests actually and the value of the parameter will be injected as an argument in your test function. So extremely simple. And third and it's really the killer feature of PyTest. It's your tests can reuse shared tools, objects, features and that's the place where you actually handle all the complexity that sometimes you need you know setting up a database, tearing down etc. This is named fixtures and actually there are many of them built in the PyTest library. One example that is quite easy to get is the tempdir fixture. So you just declare that you use it by adding it to the signature of your test. And for you when your test will run it will create this particular fixture will create a temporary directory before your test runs in a setup phase then it will inject here the path to this temporary directory and when your test ends it will delete it. And when a fixture exists already you just have to call its name to get all of that. So this is really powerful. These three pillars plus many other features and also great ID integration for example in PyCharm makes it really really easy to create tests and it's actually fun. Maybe two other things to mention for PyTest. If you don't know them have a look at them they are cool. One is the fact that you can write constest.py files that can be placed anywhere to declare common fixtures or other things. And another thing that is really also another reason why PyTest is so popular is that there is a huge range of customization hooks that make it very easy for you to write plugins and this is why there is a huge list of plugins and this is why I'm presenting today yet another plugin. So let's switch to the core of this presentation PyTest cases. Well it's a plugin for PyTest that I started to write in 2018 and its main goal was really to make PyTest easier to use in a very particular context of tests for data science. I'll explain later why tests for data science or analytics libraries have some peculiarities. And a secondary goal that actually popped up on the way is actually to make PyTest easier to use in general. So the idea is that while developing PyTest cases I created mechanisms that were not there and that I now make available directly also so that you can use them without using the core of PyTest cases. It's a Mathieu project. This is the collection of badges that you can find on the welcome page and I have to mention the users. A small community but very active with a great lot of ideas and also I want to thank everyone who has been reporting issues because it helped the library become more mature. Okay so the use case that actually was at the origin of this library is to test analytics and AI libraries such as for example machine learning libraries for I don't know predictive maintenance. This is the kind of libraries that we do at NetElectric for forecasting energy consumption or production. So these libraries, machine learning algorithms, they usually work on tables. So if you are not familiar with the library, the reference library for tables in Python, it's there is one named NumPy for matrices and another one named Panda or Pandas, I don't know the name how to pronounce it, that is the tables basically. And these objects are complex Python objects because if they represent tables with potentially hundreds of rows and columns and you cannot usually set them up with a single line, you require a few lines to create the object and manipulate it. And these are the kind of inputs that we use for our tests and we can source most of these inputs from files or other kind of storage and so this is one way to create the test. For example, we get feedback from production software where some table was not working and we capture that in a file and we include it in the tests. But we also sometimes want to push the limits of the algorithm and in that case, it's better to simulate, to create a table programatically controlling everything, you know, the correlations in the columns, etc. So in that case, we rather need code. So that's at least two ways to source the test data. And there are many, of course, many others. Another need that I mentioned at the bottom is the need to benchmark. So you might tell me that this is not really testing. However, when writing benchmarking libraries or tooling in the past, I ended up finding out that I was recreating almost everything that was already in PyTest. So maybe there was something to do here because a benchmark is nothing more than, you know, running several versions or several algorithms on several datasets. So that resembles very, very much tests. Okay, so to go a little more detailed here, this complexity that I was mentioning is really, you can see it on this slide. It's basically that PyTest was meant to parameterize your tests with things that are quite small to write, such as this tuple here at the top. And for data frames, and I mean, data science in general, we end up with things that cannot be very small. You know, first, you have to create objects, but then you usually cannot do it in a single line so that you then you add other lines to say, oh, I want to drop this part of the table, blah, blah, blah. So you manipulate it with several lines. Second, once you have done all of that, how will the next person looking at your code know what you've done? So you need somehow to be able to document this parameter value, which is really not convenient in the decorator for PyTest mark parameterize. And besides, as I was mentioning earlier, this example that you see on screen is a script that simulates a table, but sometimes you want to read it from the database. And in that case, you would like to use a fixture setting up the database beforehand and draw your sample from this database or file system. And finally, the ID of the case of the parameter becomes very important because you end up having many data frames, more than 20 for a single test function, and you need to have a very quick way to check which one is not working. Okay, so I did not seem really right to use the PyTest mark parameterize decorator for that. So the idea behind PyTest case is really to transform this iterable of parameter values that you see in the decorator here in functions, not fixtures, just functions. You see that these functions, by default, you have to prefix them with case underscore. And the functions, the only contract they have is to return the parameter value to use. So since these functions are created separately from your tests, then the decorator for your tests is a bit different. It's shown at the bottom here. It becomes parameterized with cases. And you still have to remind what is the parameter name to inject, same as before. So here it's name. But now you have other arguments here in this decorator to declare where the collection of cases should be listed from and possibly how to filter them. We'll talk about that later. Another thing that you see on the screen is that now it's, we have a doc string for free because we create functions. So we can document our parameter values out of the box. Okay, so what about IDs and marks? So for those familiar with PyTests, IDs are usually generated automatically by PyTest, but sometimes you would want to control them, especially when your object is complex because it might not be represented in a way that you like. And you can pass these IDs as an either an iterable or a callable in the decorator. Another way to pass this ID is really to attach it to the value directly. It's not shown here, but it would be appearing here between this comma and marks. You can customize the ID. And you can also customize marks on a parameter value one by one. So here I declare the second parameter, the parameter world, to be marked as skipped. And this is done through the PyTest.param. So as you see, it's feasible. You can do it, but it's less elegant than the previous screen. So how is it done in PyTest cases? Well, the default ID is directly extracted from the function name after the prefix. So here it would be EuroPyton lowercase. But you can also customize it with a decorator named case, where you can use this argument named ID here with Earth. So that's the two ways that you can use to customize the IDs. And for marks, it's even easier if possible. You just use the way PyTest allows you to test functions. The same marks can be used on case functions. So PyTest.mark.skip, the decorator can be applied on this case world function, and it will be skipped. Now, let's talk a little bit about parameterization and fixtures. In PyTest, parameters, so here the EuroPyton 2021 parameter, you cannot recursively parameterize it. So you cannot say, I want EuroPyton 2021 and then EuroPyton 2022. If you want to do that, you have to expand this in the list of parameters. This is a one-level list. And also you cannot say that one of those requires a fixture. And I mean, it's for a reason. I mean, you would not even know how to use it. But you cannot even inject a fixture as directly as a parameter value. And this use case is more frequent. Those you can do with PyTest cases. So your case functions, such as the one on the left, you can apply. It's the same idea as before with the skip mark. Actually, you can mark a case to be parameterized. And it will just work the same way as a test function. So that's for, so here we generate two parameters, one that will contain the world, the string world zero, and the second will contain the string world one. And for the fixtures, it works as well. And it's also the same way that you inject fixtures in test functions. You declare in the signature of your case that there is a fixture here. And then you can use it. So in that dummy example, I require the fixture that I was telling you about at the beginning of this presentation, the tempdir fixture. And I say that this fixture, I want to extract the base name of the temporary directory. And I want to use that as a parameter. And last but not least, I don't know if you will use that often, but some users already reported that they use that. You can recurse. So you can actually parameterize a case with cases. It becomes a bit hard to read. Okay, so a few properties of cases. The functions are lazy, so that they will be called just before your test executes, just as fixtures actually. And the case functions that require fixtures will be transformed into fixtures. Otherwise, PyTest would not know how to handle them. And they will therefore be also set up just before your test runs. A second interesting property is caching. If one of these case function results is needed at several places in the PyTest framework, for example for other plugins, the case function will not be called several times. This is very important because you usually install other plugins and sometimes these plugins grab arg values from parameterized tests. So it's important to not spend again some time to look up the database or recreate an example that you already had in end. Okay, let me talk very quickly because time flies about collection of cases. By default, the initial idea was to say, okay, let's be very strict and separate two files, one for the tests and one for the cases so that we are very clear. So that's still used as the default. Otherwise, personally, I use it very less often than the next slide. Still, it's worth mentioning. So if your test file is named test foo, then you just have to create a file named test foo cases or cases foo, whatever is your preference. And if you do this, you do not have to declare anything in the parameterized with cases decorator. It will look up all the cases in this module. A more interesting and actually suggested by one user in the repository, I want to thank him a lot because it really opened the possibilities is that you can now also specify a module or a module name to grab the cases from and relative works. So here I use dots to say, just use this module. And you can use these cases that are written just before the test. Or you can use a class as a namespace to contain other cases. And in that case, as well, you can reference a class. And moreover, you can actually grab cases from several places, so modules, classes, or even functions directly. Here I reference a function, a case function directly. On top of this collection, I see that I have five minutes left, so I will really skim through this one. On top of this, there are many tools such as different prefix supports, tags for filtering, and callable filters with built-in library of filters.  So you can put all of your cases in a single file, but still have test functions grab the ones that are interested in. Finally, well, you can use parametrized cases to parametrized fixtures. This requires the fixture decorator provided by PyTestCases. And you can also, there is a built-in fixture that is in current cases, that you can use to know the function and the ID of the case that was injected in here. If you want to do some, you know, debugging breakpoints, putting a breakpoint is easy with that. Okay, now let me jump to advanced topics. So very shortly, PyTest cases could not be possible without major improvements in the PyTest core mechanisms, and these are made available independently of what I explained before. So I invite you to check the documentation. In particular, in particular, there is an enhanced parametrized decorator, an enhanced fixture decorator, and a concept of fixture union that I will talk about a bit later. PyTest cases was created with a few design choices, not to, you know, disturb or hack into PyTest too much. So I tried at the beginning to say, okay, I will just modify the functions from the user and inject things inside there or remove arguments in there so that I don't mess with PyTest too much. In the end, I ended up messing with PyTest later on. But for many features, I still just wrap the functions from the user. And this is done using a library that I wrote separately that is named MakeFun. That is, that you can see as an enhanced version of fun tools that allows you to dynamically modify a function, adding arguments, removing arguments, things like that. One, I will not have the time to explain these graphs. So one challenge that was solved, and that was a major challenge, is the concept of fixture union. In PyTest, everything is a cross product. Tests are parametrized, depend on fixtures, they depend themselves on other fixtures that are parametrized, and all of this can be represented as a graph. And basically, PyTest grabs everything and does a cross product of all the combinations, and that's your test node list. And this limits the capability that I wanted in PyTest cases to have some parameters to require some fixtures, but not all of the parameters. So I ended creating this mechanism of fixture union that is basically the ability to create a cross product plus another cross product plus another cross product. And if you want a detailed explanation, and with examples, there is one in the documentation page. Finally, to conclude the last minute on benchmarks, if such a table looks familiar, a table where, I don't know, it's research paper, for example, you've got data sets for each row, and then challengers, for example, algorithms with different variants. Here, this is a polynomial regression with two degrees, one degree two. And you want a results table like that with some kind of evaluation protocol providing error metrics. Well, this is actually feasible with PyTest cases. You just have to see this, the evaluation protocol as a test. So in the figure that you have on the slide, the evaluation protocol is the test that is at the middle. And in here, it will receive one algorithm, one challenger, that will be a case. For example, you can prefix it algo underscore. It will also also receive a data set that you can prefix data. Both will be cases, but with two different parameterization to grab both prefix independently. And then once injected in the test, you can do whatever you want, for example, fit the model and then create performance metric, et cetera. And then you grab it and dump it to a file. And that creates your table. If you want to do that more efficiently, you can use PyTest harvest, which is another plugin that I wrote for PyTest, that is just meant for that. Okay. Now, this is time for question. Thanks for watching. I think that it was a very interesting talk. We'll have some questions. I will put one or two here. And I think that there will be a big discussion in the breakout room after. So how is scoping done, session modular function, in relation to laziness and casting for cases? So cases are function scope only. So it's like a parameter. So, yeah. Therefore, we can rely on fixtures that have all the other kind of scopes because they are bigger, but cases are a function scope. Okay. And another one is about the case functions, namely, why not the decorator just like PyTest fixture? Sorry. Say it again. I did not get that about the case function. Why not to use decorator just like PyTest fixture? Decorator of a library. Yeah. Yeah. So I actually use part of decorator that I extracted in a library that is named make fun now.  And basically, those two capabilities, I would say I created independent libraries for both. So you can look at decor patch for decorator and make fun for dynamic function creation. Because most of the time, I just wanted to create a function, not to create a decorator. So I would say that I relied on the great work that was done in decorator and also in ATR because it's the same code, almost the same code was written in ATR as well. It's now in make fun. Okay. And I think that this is it. Thank you very much, Sylvain. I like it very much. I think that we can continue discussing the breakout room because there are many questions. Cool. Thanks very much for welcoming me. Bye. Bye.


Remember a hallmark card when you carry enough to send the very best Tonight from Hollywood the makers of hallmark greeting cards bring you Herbert Marshall in James Hilton's lost horizon on the hallmark playhouse Each week hallmark will bring you Hollywood's greatest stars in outstanding stories chosen by one of the world's best known authors They distinguish novelist mr. James Hilton Good evening ladies and gentlemen. This is James Hilton tonight on our hallmark playhouse We have the great honor of welcoming one of Hollywood's most distinguished actors mr. Herbert Marshall Thank You Jimmy the great honor for me to play in your lost horizons Not only a wonderful story, but it has rarely put a new word into the language Shangri-La I Wonder if before we start you mind telling us whether there is a real Shangri-La somewhere Well, you won't find it on any of the maps But in a sort of a way everyone can find his own Shangri-La in his own heart It may not be easy But the birth of a new year is a good time to make the resolution to find a little personal peace of mind in a troubled world And now Frank off haven't you a word or two to say? There's a new year coming a new year with a brand new set of important days for remembering people birthdays Anniversaries holidays for all these days for every memorable occasion on your calendar There's a hallmark card that says just what you want to say the way you want to say it And on the back of every card appears the hallmark that says you cared enough to send the very best Now James Hilton's lost horizon starring Herbert Marshall You are now deep in the mountains of Tibet the highest part of the earth's surface That's no cap peak above you is Karakau and below in the valley of the blue moon lies the Lama Surrey of Shangri-La Old across the mountains from India We've been flying from basketball to Peshawar on the Northwest frontier I was the British consulate in basketball and my vice consular young fellow named Mellonson was making the trip with me Besides us. There were two other passengers and the pilot our plane should have landed in Peshawar about 5 30 We never arrived at our destination Conway I say Conway are you still are you asleep? What's the matter Madison anything wrong? I'm not sure, but I think our pilots off his course nonsense Look down there nothing but mountains as far as you can see I don't recognize this part of the world at all I should say we're right man and son the man's lost his way. I said can we you say we were lost Squatter-wrapper sprinkler. There's nothing to be upset about. I'm sure still there's nothing like finding out Is that shall I speak to the pilot Conway? Thanks. I'll do it You'll there pilot open the panel. I advise that you ask no questions, please Certainly look here. We want to know where we are. I advise that you be seated I will not be seated Madison. I don't know whether you've noticed it But there's a revolver pointed directly at my chest Think of it a do as the gentleman suggests For hours after that we sat in the darkness each of us pretending to sleep Suddenly the plane lurched sharply. There was a loud rushing sound in my ears And I realized we were coming down but fast much too fast We stumbled from the plane badly shaken and all but the pilot uninjured The cold was intense a solid icy cold that you could touch with your fingertips. I Knew we must be somewhere in Tibet a vast barren region of windswept upland Do for him and as the early rays of the Sun caught the summit of the mountain The man died I say Conway yeah, I just been looking at that mountain my seeing things are those men coming toward us They were men a part of a dozen or more crawling like ants across the white face of the cliff As they drew near we saw they carried among them a hooded chair and In it a heavily robed figure an elderly Chinese gray haired clean shaven Come from the llamas heavy of Shangri-La My name is Chang You sir, would you be good enough to present me to your friends? Of course? This is miss Brinklow the one out of melons and my name is Conway Yes, your plane is beyond repair. I'm afraid so and anyway our pilot is dead. Yes You will come to Shangri-La It is a hazardous journey and the only place of habitation within a thousand miles. I Shall be happy to accompany you. That's very kind. Thank you And we'd like to hire some of your porters to help us on the journey back You want to return to civilization soon as possible. Are you so certain you are away from it? There was a pass of 20,000 feet which we managed with the aid of long ropes Then we had struggled breathlessly to the top. I saw above us shimmering in the rosy twilight The loveliest mountain on earth That snow-capped peak above you is Kerakal And below in the valley of the blue moon Lies the Lamasari of Shangri-La. I never exactly remembered how we arrived at the Lamasari The thin air had a dreamlike texture and I was conscious of a strange sensation half mystical half visual of having reached a glass someplace that was an end of finality Shangri-La I learned was a sort of monastery whose inhabitants rule the natives in the valley below Those in full arm of hood numbered about 50 and their prevalent belief was in moderation The virtue of avoiding excess of all kinds These things I learned the first night as I stood with Chang on the broad balcony overlooking the valley There is something more you would like to know, Mr. Conway, please. I want to know This morning when you found us were you setting out on a journey? No, then you came there deliberately to intercept us How did you know we were coming? You are very clever But I should counsel you not to worry your friends with these abstract discussions No, they want something more concrete. They want to know exactly how long you're going to keep us here There will be certain unavoidable delays how long the difficulties of the trip Securing the necessary porters how long please you may tell your friends a few months But you don't guarantee it is up to me For myself. I can't say I shall mind a big deal. It's a new one interesting experience in time to come You may find it even more interesting Good night in the days that follow the Shangri-La I gave myself over to a rich and growing enchantment In the petal colored buildings, which dotted the mountain I recognize priceless treasures of art paintings and sketches It's was its ceramics preserved for more than a thousand years In the spacious library. I discovered the great literature of the present and of centuries past One morning I stood beside a lotus pool in an open pavilion of the lamas area An archway behind me a young girl was seated at a harpsichord You are pleased more than pleased. Oh, my name is Hugh Conway. They call me Lord then Lord Sam And do you live below in the valley? No, I live here at the lamas area.  Yes I'm a bit confused. I thought only men could be llamas they will tell you when you have been here longer But in the Lama hood There are no distinctions between a man and a woman But you you're hardly more than a child Shall I play for you again? Good morning. Oh, thank you are pleased with lots and she plays beautifully She has studied for a great many years. How could she? How old is lots and I'm afraid I I cannot tell you One night the moonlight fell on Shangri-La Bathing the pavilion in a sea of blue. I'm sorry to disturb you at this hour, but I bring you important news Yes, Chiang. I congratulate you, sir Tonight you are to be received By the High Lama as I followed Chang through the lamas area. I knew I was on the threshold of some great discovery Patering in front of me he mounted a spiral staircase to the door which opened noise to sit for us Chang left silently As I became accustomed to the gloom I saw sitting before me a small and wrinkled man He was motionless a fading antique portrait in Chinese dress his face thin and drawn tight over the frame of his skull and His eyes I felt dizzy beneath the gaze of those ancient eyes You are mr. Conway. I am it is a pleasure to see you mr. Conway Please sit down. I am an old man and can do no one any harm. I feel it's a great honor to be received by you Thank you Chang tells me you have been asking many questions about our community and its affairs I am very much interested in them the history of Shangri-La begins rightly in the city of Peking in the year 1700 and 19 For it was then that four friars set out on a long and perilous journey They traveled southwest for many months by Lanzhou and no no core Facing many hardships Three died on the way and the fourth was not far from death when by accident He stumbled into the rocky defile that today Remains the only practical approach to our valley of the blue moon There to his joy and surprise He found a friendly population who bad him welcome and quickly he recovered his health His name was father Perot than half a century Father Perot labored with his hands like any other man Tilling his own garden and learning from the inhabitants as well as teaching them then in the year 1889 News descended to the valley that father Perot was dying at last He bad his friends farewell, but the end was not yet He lay for many weeks without speech or movement and then he began to recover He was then 108 the ancient llama paused What he had told me was not beyond belief, but as he went on I Was held speechless with wonder It was 14 years later. He told me that a wanderer found his way to father Perot's monastery an austrian named Henshel a Great friendship sprang up between the two and Henshel stayed on Was then that they had a wild fantastic dream Art treasures from Europe and Asia were purchased for the valley's gold and stored at Shangri-La The library was filled with the great works of the world and Later it was decided to admit travelers and strangers who had lost their way Yes, mr. Conway Strangers might come as freely as they wished but with one important proviso And what was that in 1910 Henshel died He was killed 1910 but you you said he came here in 183. Yes, and He was killed you said Traveler shot him there had been a quarrel about some porters Henshel had just told him of the important proviso that governs our reception of guests And perhaps you are wondering my dear Conway what that proviso may be. I Think I can already guess We ought to stay here All of our lives and can you guess anything else after this long and curious story of mine? It seems impossible And yet impossible as it may be I know that it's the truth. What is my son That you are still alive Father pearl in a moment James Hilton will return to bring you the second act of Lost Horizon starring Herbert Marshall Your 1949 hallmark datebook is waiting for you now. It's your friendly hallmark store's way of saying happy new year to you People who already have theirs say it's just about the most useful little book they ever saw There's a separate calendar page for every month of the coming year and space for jotting down things to remember each day There's also room for names and addresses of people you'll want to remember during each month and in the back Well, there's one of the most useful features of all a place for next year's Christmas card list with a way to check Each name to show card sent and cards received Yes, a hallmark datebook is so convenient You'll find yourself referring to it constantly using it for all sorts of reminders to yourself Reminders of social engagements appointments anniversaries Reminders to do those thoughtful little things that will mean so much to all your friends and loved ones through the coming year It's just the right size to slip into your purse or to keep handy beside your telephone And it's such a beautiful little book with its camellia decorated cover its pink and white pages Now to get your hallmark datebook simply visit the friendly store where you find hallmark greeting cards and ask for it It's yours without obligation Better get your hallmark datebook right away in time to start the new year right and Now James Hilton and the second act of Lost Horizon starring Herbert Marshall Conway learned one of the secrets of Shangri-La that night the secret of prolonged human life For the high llama who sat beside him had lived for nearly two and a half centuries Conway's coming was no accident. He said there had been no travelers to Shangri-La for 20 years Many llamas had died and the pilot had been sent out into the world to find new persons to take their places Then there is death at Shangri-La. Yes, my son.  I was the trolls to a Prince of Turkistan We were traveling to Kashgar to meet him when my carriers lost their way in the mountains. When did this happen? I was 18 18 then now you are the missionaries of Shangri-La found us. They brought us here. I Never saw the man. I was to marry Then in all these years you have never known the meaning of love Roots and is there no love at Shangri-La? She did not answer but I saw a faint flash rising in her ivory cheek And then I was aware that someone had entered the pavilion and was watching us was melonson One night at midnight. I was summoned to the presence of the high llama Tell me my son. Have you been happy at Shangri-La? Quite happy for the parole and what of your friends will they learn to be content also I'm afraid Melonson is going to be a problem.  Yes, we are all mortal even here in the valley of the blue moon But I must feel at rest before I die. That is why I sent for you tonight You do me a great honor. I have waited for you my son for a long time My son there is a great storm gathering in the world a black fury Which will not spend itself for many years It may rage till every flower of culture is trampled and all human things are leveled in vast chaos But I believe that you will live through the storm. I See a new world stirring in the ruins seeking its lost and legendary treasures And they will all be here my son Hidden behind the mountains in the valley of the blue moon and you will be here to give them to the hopeful world my son I place in your hands the heritage and destiny of Shangri-La The High Lama stopped speaking the glow in his eyes faded Presented came to me as in a dream The High Lama was dead I've been waiting for you. I said, what's the matter Conway? Are you ill? No, I just tired Well, pull yourself together man. The porters are waiting for us porters. It's all arranged They're going to take us back to persuad miss Brinklow and Barnard a stain. Who's been making all these plans? Loatsen she's with the porters now. She's waiting. No, I'm in love with it and she loves me She's coming with us. Loatsen must not go. It's impossible. Why why is it impossible? You must take my word for it Loatsen must never leave here Conway. We need your help. We can't manage the cliff without you I want to get away from this place and Loatsen too. She's young Doesn't she count? Loatsen is not young not young. You're raving. It's the truth Her beauty is a fragile thing that can live only where fragile things are loved Balance and listen to me I tried in to tell him the secret of Shangri-La He looked at me as though I were mad And I read the disbelief in his eyes. I began to doubt myself and then Loatsen came to me. You will help us, please. We need you Loatsen Do you wish to leave Shangri-La? Yes, you understand the risk If you leave this valley will fade away like an echo. Oh, you have been listening to the fables of these old men You mean? I love him If he is not with me, I would die Here. Oh as I paced the balcony I could not tell whether I had been mad and was now sane or had been sane for a time and was now mad again But always before we were the the wistful peeping eyes of the little Manchu girl That morning with the wind roaring through the jagged cliffs We made the descent from Shangri-La Weeks they traveled toward the east Malensen the girl and Conway and then the porters began to desert One by one they disappeared then there were just the three of them creeping like snails across the desert wilderness For a long while there were only two Malensen had died. At first Conway tried to believe it was the hardship of the journey which had changed Loatsen We must go on Loatsen That must be the last range left mountain you see Loatsen One more step Loatsen One more step One One more one No You must go on alone from here Eyes were shadows her skin drawn the color of ancient parchment Her cheekbones Loatsen Loatsen I am old I am so and we were taken to the hospital there Loatsen they told me later Loatsen died that same night The oldest woman they had ever seen The storm of which father Perot warned me still threatens the world Not yet has the Christian ethic been fulfilled when the meek shall inherit the earth But Shangri-La has a heritage to cherish and bequeath With such wisdom as men will need when their passions are spent Soon I hope I'll return Somewhere beyond Lhasa on the high root of the world I seem to picture a long plateau running north and Far away a mountain rising white against the sky. I hope to find it again for this I think is Karakal and beyond the Shangri-La And the valley of the blue moon Herbert Marshall to tell you about next week's show our first show for the new year Here's a wish for the new year from the makers of hallmark greeting cards may your calendar for 1949 Be filled with memorable days and may they all be happy ones to keep a record of them Remember to get your hallmark date book. It's waiting for you now It's yours without obligation from the friendly store where you find hallmark greeting cards Now here is James Hilton. You've heard the legend of Shangri-La with its abiding message of peace I hope most fondly that the new year will bring all of us some of that same peace some of that same freedom of mind and Spirit and above all some of that same inner happiness To you Herbert Marshall our most sincere thanks for being Conway and for the warm and sympathetic character you created for us Jimmy there's nothing in modern literature. I know of The leaves one such hope and beauty in the feeling of future promise as Does the poetry and philosophy you have woven into lost horizon? Thank you Jimmy for the pleasure I've had And I'd like to thank your sponsors the maker of hallmark cards for having shown the good taste to have chosen you as their weekly host But from what I've seen with their fine greeting cards good taste is a tradition with hallmark Thank you Bart for those nice words for your own superb performance and for just being with us this evening Ladies and gentlemen the old year's fast drawing to a close and the new year is just about ready to lift its head over the horizon of history All of us D Engelback our director producer Lynn Murray who composed and conducted the music George Wells our adapter for tonight And every one of us who is a member of the hallmark family hopes that for you the new year will bring rich blessings and The fulfillment of your dearest wishes Next week we'll present one of the motion pictures most popular actors Robert Young in a great story by Louis Brumfield McLeod's folly and the following week Helen Hull's clay shuttered doors starring Jane Wyman So until next year and that is to say next Thursday. This is James Hilton saying good night and a happy new year Look for hallmark cards that are so lonely in stores that have been carefully selected to give you expert and friendly service Remember hallmark cards when you carry enough to send the very best Herbert Marshall will soon be seen with Margaret O'Brien and Metro Golden Mayors the secret garden This is Frank Goss saying good night. This program came to you from the hallmark Playhouse. This is CBS the Columbia Broadcasting System


Hi, I'm Courtney and I'm 91 days alcohol-free today. Congratulations Courtney, it's an amazing achievement. Just tell us a little bit about how you feel now compared to 91 days ago. A lot better, a lot clearer headed. I feel like I can make decisions a lot easier, a lot quicker, a lot better. Yeah, I feel a lot better. What were you drinking beforehand? What was your drink of choice and how much were you drinking and when and how was that affecting you? Martinis were my drink of choice and I would say that I would have one or two a night, maybe three if it was a weekend, and I didn't have to be anywhere the next day but I had a pretty good Martini habit. And how was that compromising areas of your life that you identified? Well, it just was putting me in a place where I wasn't at my best to say the least in the mornings, but it was putting me in a place where I felt like the decisions that I was making weren't necessarily long-term focused. Decisions were more reactive than proactive. So it was a foggy brain type of deal. It was a lack of self-care, self-care, it was boredom, it was not doing things that served me as much as just doing things that passed the time and I thought calmed me. I thought it was a calming effect that I was having, but what it was really doing was creating a lot of stress and shame. And who in your life was being affected by that? I think indirectly my son was. Maybe directly, you could argue. He lives with me. Full-time now, which is a big determining factor in me making this decision to become alcohol-free, but people at work, customers, clients, I think everybody was indirectly affected. I mean, I wasn't drinking at work or I wasn't drunk at work, but I was definitely always under the influence of the hangover effect of having the alcohol in my system. Yeah, I think there probably a lack of empathy in some cases for people in certain situations. I could go on and on. There's a lot of circumstances I think where alcohol probably played a role when I wasn't drinking. What do you do professionally and whereabouts do you live? I live in Dallas, Fort Worth. I'm in sales. And so I interface daily with individuals. It's not business to business. It's individuals dealing with them directly on large purchases, not retail, not something these are big decisions they're making. So I felt an obligation also to them to be present.  And when you went alcohol-free for 91 days, how did your professional life change? How did your performance at work change as a result of you being consistently alcohol-free? In the beginning, it was more or less not much of a change that you could notice right off the bat. I think probably 15 to 30 days into the deal, I noticed immediately that I found a lot more time and I found a lot more clarity, a little bit more ability to reason or actually think about what was going on a day-to-day basis. I felt more rested. But after 30 days, into 60 and then beyond, especially in the last 30 days, well, first of all, the people around you notice. I mean people notice that there's a difference and they start asking you about what the difference is. I lost 20 pounds. I started responding to people professionally in a different way. I had more patience. I think I was a little bit less pushy with my finance assistant and people that were interacting with me daily. They noticed. So when they noticed, they asked what the difference is. What are you doing? You're losing weight? What is this thing that you're doing? They were surprised and I told them that it was really nothing other than just being alcohol-free. And that was kind of like a leap of faith for me to be. I mean, that was me being vulnerable for the first time in a long time.  Well, even if you're not, it's almost just as awkward to admit to people that you're being alcohol-free because it indicates that you had a problem. Anyways, I told people freely that I decided to become alcohol-free. I'm 60 days in. What's interesting is that the people that I work with, because they have after-hour get-togethers and things like that, and I was never shy about not drinking, they start asking and they're inquisitive and they offend a lot more people really want to be. That was the interesting thing. And so you joined Project 90, which is our 90 day and beyond quitting drinking program. It's designed not just to get you to 90 days alcohol-free, but to get you to at least 90 days alcohol-free so you can just embed the alcohol-free lifestyle. So what was your experience like within that program? When was it hard and when did it start to feel easier? Well, the hardest is obviously in the beginning. You see a lot of new faces, people you don't know. You're not really sure how it works. You're not really sure if you trust yourself to not drink. And once you start, I mean, it's, I would say within a matter of just a few days, the first two calls, you feel comfortable. But then once you realize, you know, I think that the coaching that we get in the program, you get to really focus on who you choose to be every day. And that's important. And I think very early on, you start to realize that drinking wasn't the problem. Necessarily, it was the feeling that you were looking for, you know, in drinking that was the problem, the feeling that you were trying to have that you thought alcohol was going to give you. And when you start talking with other people in the community about the same problems, the same day-to-day stresses, the same day-to-day, you know, beliefs that we have, false beliefs a lot of times, but who we are and what we're capable of, then you start to talk about being alcohol free becomes a lot less of a conversation or topic of conversation and how you can improve, you know, your life becomes more of the conversation. So once you start feeling that you're part of that group, it really changes.  I think you start to trust yourself a lot more 30 days in, but I'm not going to lie, the first 30 days, there's times when I found myself having to break patterns and the patterns were the hardest thing to break. They weren't necessarily habits that I needed to break, they were patterns. It was like I had a pattern. If I was on a business trip, I went to the bar, you know, if I went to the bar, I drank. But when I changed those patterns, when I just ordered soda water or lime, or if I just didn't go to the bar, or even if I did, I just ordered a soda water with lime, I broke the pattern and then therefore empowered myself to make those decisions again and again, which then became a new habit. Yeah. You were saying that there was a one time when you were in New Orleans and it was, you're getting close to being, well, you just begun being alcohol free, but there was lots of temptation around, just describe that experience. Yeah, it was a, it was a convention. It was actually a conference in Nashville and I went to their state, the Gaylord Opryland, and basically, you know, nice hotel, you check in, it's my first trip, it's my first social setting, three weeks into the, into the Project 90 program. And I just, like I said, I just felt drawn to go to the bar for no good reason. I was in the lobby and it just happened to be a Monday night. So we had a Monday night call and I pulled up the Zoom call, got on the call. And I mean, we had a group talk and I was able to share my feelings about how I felt about the situation I was in. And I wasn't the only one. There was another, there was another member in New Orleans at the same time. And we've had other people on trips and doing similar types of social situations. And I just found that the group allowed you to go to a place and talk to people and just tell people, Hey, man, I'm in the situation and I feel like I want to go to the bar and there's no, there's no good reason to do that. Other than it's just a pattern. And that's all it was. And once, once we talked through it, and once other people were able to kind of give me feedback, I mean, it was very easy to, to kind of calm down, go back to my room and, you know, get up the next day and be completely present for the conference that I was there to attend. Yeah, wonderful. And so now that you've gone through these 90 days and you're on day 91 as we're recording this, what are your plans around alcohol ongoing from here? Well, I have no plans of introducing it back into my life at all at this point. I think one of the, one of the key points that I learned in the program is that, you know, what you think about the most, you know, in the beginning, I was definitely thinking about drinking a lot, which is typical, but I haven't really thought about it. And I don't really see that there's a, I'm not going to say that there's never going to be a social occasion or there's never going to be a situation where having an alcoholic beverage is going to be not an option. But I know that it will never be, it'll never be a daily need. You know, it won't be something that I come home and decide or choose to drink for the sake of boredom or the sake of trying to solve a problem or anything like that. I really feel like it's just the beginning, honestly. I mean, 90 days is in the beginning, it seems like it's going to be a long time, but today on day 91, it seems like it went by like that. Finally, what would you say to someone who's watching or listening to this right now who's considering going alcohol free as a lifestyle? And maybe they're considering doing that via our 90 day and beyond program. What words of encouragement or support or advice would you give to that person? Just do it.  I mean, first of all, taking the step to even just reach out to James is probably a huge win in the first place. So if you've done that, at least you are reaching out and asking to find out more about how you can be helped. But I was very, very hesitant to join the program, and I'm so glad that I did. It's one of those things that when you sign up for something and you make the commitment, you stick to it. It's not something, it's not a social group to join when you feel like it. It's something that you make a commitment to join because it's going to improve your life. But when you do and you see what you get in exchange, the value, they definitely over deliver. So the group, the coach, James, and all the people that are in it that are participating with you, you just have no idea what the value of having a community of people that are all in the same boat as you are doing the same thing, how that helps support you in your journey to get to where you want to be. And then I think once you start to realize, once you start to realize how much better you feel and what more you can do once you get alcohol out of the way, there's just no doubt in my mind, just do it. Thank you, Courtney. Thank you so much for your kind words and congratulations again. I'm super happy and super pumped for you. And thank you for being such a positive influence in the group as well because you always supported other people. And like you said, it's not just a social group. You make a commitment and you are always on the calls and you are always supporting other people and you're always asking for coaching. And yeah, so I appreciate you participating full-out, mate. And good luck for the next 90 days and beyond. Thank you. Thank you so much. Thanks for listening to the Alcohol Free Lifestyle podcast. I want to load you up with some free stuff right now. So if you want to go to jameswanick.com slash guide, I will send you my quit alcohol guide, which has helped six-figure entrepreneurs and top professionals produce or quit drinking. You can also text the word quit guide to the number 44222 if you're in the US, of course. It doesn't really work anywhere outside of the US, but if you're in the US on your mobile phone and you'd like that guide, text the word quit guide to the number 44222 or you can go to jameswanick.com slash guide. If you'd like to schedule a free 15 minute call with one of my top coaches, just an exploratory call to see if or how we can help you, then you can go to jameswanick.com slash schedule or you can text the word project 90 to the number 44222 if you're listening in the US on a mobile phone. That's jameswanick.com slash schedule or you can text the word project 90. That's one word project 90 to the number 44222. Feel free to send me a direct message over on my Instagram account, which is at jameswanick.com. You can also watch video episodes of this podcast and a series of other educational videos on my YouTube channel, which is jameswanick.com. Or you can direct message me on Facebook at jameswanick.com official. And finally, a request. Would you please now write a short review of the podcast inside of the Apple podcast app on your phone or on iTunes on your desktop computer? Would you please give the show five stars and write a quick one or two sentence review? This will help the show get in front of even more listeners, potentially transforming someone's life. You can rate and review the show inside of your Apple podcast app on your phone or over on iTunes on your desktop. Thank you so much and I'll catch you next time.