Using and Mastering Cookiecutter Transcripts
Chapter: Adding features to Cookiecutter
Lecture: Modifying Cookiecutter

Login or purchase this course to watch this video and the rest of the course contents.
0:03 Let's add a feature, really a bugfix in some sense, an enhancement to Cookiecutter. There's a number of reasons why you might want to develop
0:13 and change Cookiecutter, maybe you want to take Cookiecutter as it is and modify it to be your own custom version for some other project;
0:20 maybe you want to enhance it for everybody or maybe you just need to have a local working copy
0:26 as part of your due diligence for your company, who knows. But I'm going to assume in this case that we want to add
0:32 a public feature back to Cookiecutter. So, as I have been going through this course and working on templates lately
0:38 I have been keeping a list of things that annoy me, and when something annoys me I put it in the list somewhere and say
0:44 this is a thing I could add to this project, so we're going to do that for Cookiecutter, and let me introduce the thing that annoys me here.
0:51 So let's come over here and go to a working folder here ok, so we're in this test folder let's try this cookiecutter cookiecutter-template
1:06 see how it asks for my name, remember that name comes from the default YAML file okay cool, so let's have a look at that default YAML file.
1:15 So, over here and remember I notice on line five here, we have a blank newline, remember how annoying it was if that is not there
1:22 let me try the same thing, all I did was it's hard to see, I deleted that blank line right there okay. Let's run the same command again,
1:31 oh that YAML file again, unable to parse configuration no pattern matches github_username. So that I think is super frustrating for beginners,
1:44 how would you know that you have to have that newline there this error is completely indecipherable,
1:51 so what I want to do is put this back just to show you if this were back here run it again, it works; so that's cool, what I want to do is
2:00 I want to make it so it doesn't matter whether this newline is here or not
2:04 in Cookiecutter, I'm going to basically have Cookiecutter add that newline if it's missing
2:08 and because the parsing depends upon an external third party YAML parser, and maybe we can go back and fix that as well, but for now,
2:16 let's just make Cookiecutter forgiving okay. So, in this chapter, what we're going to do is we're going to go
2:22 through the process of getting Cookiecutter locally on my machine being able to develop it, add this feature
2:28 and going through the git flow pull request process to get it at least submitted back to the Cookiecutter project, and we'll see if they accept it.

Talk Python's Mastodon Michael Kennedy's Mastodon