Effective PyCharm Transcripts
Chapter: Refactoring
Lecture: Sourcery plugin
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
We've seen that PyCharm has many many refactoring is and it's really good, the ones that it does great.
0:08
There's actually a couple of higher order ones that could be useful to us. There are some extensions and plugins for PyCharm.
0:16
That might might be something you want to consider. So for example, here's Sourcery 'sourcery.ai'
0:22
This is a plug in that has a free version and a paid version that you can add to PyCharm that will do more refactoring help in much the same
0:30
way that you would expect. Right. These little code intentions with 'alt+enter' it's like that but it has sourcery refactoring suggestions
0:36
as well. Let's take a look in our project. There's not too many errors and warnings going on. If you go through here, you don't see anything.
0:45
But let's go over to this dragon. There's something interesting here when we were in this section with PyCharm,
0:50
it did tell us that this was not needed, but it didn't have this yellow box here. Technically the reason this is not needed is Python says,
1:02
well you're gonna go this path and created or this path and created and then use it here. To me. I really like to have it declared for sure.
1:10
What if we change this to an if else all of a sudden this becomes a potential run time error about that variable not being defined.
1:17
So I like to do it this way, we had this warning, we can address that in a second but what we're going to see will actually take this away anyway,
1:25
We're riding this out in a long hand four line type of thing here. Sourcery says, you know what?
1:32
We could replace us with. Just an if expression instead of a statement, we could just replace it like this. 'fire_modifier = 5' If breathes fire.
1:42
Self published fire else one and now we don't need that. There's no conditional really. Fire modifiers always going to be defined.
1:50
There's a bunch of things like this that are pretty neat. For example, let's look at another one that we can contrive here.
1:58
Now let's suppose I was going to go over here and create something like a list of all the levels of the creatures. So we could say levels equals this.
2:07
Now again, this is contrived. So I'm not saying it really makes sense in the context of our game, but just to show off some examples,
2:13
we could say 'for_c in creatures' ' levels.append C.level'. All right, so that's all pretty good.
2:22
But notice now Sourcery not PyCharm is suggesting that we can do better. All right, let me make a comment here so we can see it permanently if
2:33
we go over here and says you know what? That could actually be a list comprehension, convert the loop into a list comprehension boom,
2:40
there we go. So levels levels are. Now just see that level four, seeing creatures. So these are the higher order things that sorcery does that.
2:48
PyCharm doesn't kind of, the more Pythonic type of things, let me show you one more conditional that I think is going to be pretty cool
2:57
So over here we have our statement like this, what if we wanted to say is strong, it's going to be base role if base role is not none, else,
3:16
not strong, something like that. Okay, actually we'll just do the test like if based role, so notice now we get this re factoring suggestion,
3:27
well then we got to print out now this says we can simplify the expression using or so here we had an if condition if it's five,
3:40
if this case else one, but check this out, we can just say is strong base roll or not strong, so we have not just converting,
3:48
you know like a conditional over to an expression but even these non obvious simplifications like it's either base role or is this other one?
3:57
You don't need this whole if expression so I personally like sorcery, I do use it some of the time but it's not a super strong,
4:06
you must go and use it endorsement, this is more awareness, like hey look there's these other tools and if you really
4:12
get into re factoring you can check them out, it will take you further.