Using and Mastering Cookiecutter Transcripts
Chapter: Conclusion
Lecture: Finish line

Login or purchase this course to watch this video and the rest of the course contents.
0:01 Congratulations, you've made it to the end of this course,
0:05 and not only did you make it through the course
0:08 you now have a new magic power- it's called cookiecutter.
0:11 So the question is what are you going to build now?
0:15 I think you should take this moment, pause this video
0:18 and write down three things you think could be made better with cookiecutter
0:22 and then make a plan to create at least one of those over the next month
0:27 if we all did that, think how many cool things we could create
0:30 with cookiecutter in just a really short time.
0:34 So congratulations, I hope you feel as you've gained
0:36 a lot of knowledge about cookiecutter
0:38 that you can now use this new tool to do amazing things
0:41 both with your own project, as well as other cookiecutter templates
0:44 that people have already created and published to the pantry full of cookies.
0:49 Let's do a quick lightning review. So we started out in this course
0:52 by discussing what is cookiecutter and when to use it
0:56 and you saw that cookiecutter is a project template creation framework
1:00 we can take these templates, we can run them
1:03 we can create any sort of project it doesn't have to be Python
1:06 even though the implementation is Python.
1:08 We saw that we can create Atari games C++ applications
1:11 JavaScript apps all sorts of stuff;
1:14 we talked about some of the advanced features, running cookiecutter
1:17 with no inputs, great for continuous integration and unit tests,
1:20 things like that; running it with the replay option so that it just reruns
1:25 whatever we configure it to run, again this is good
1:29 for when you're building your own temple
1:31 it's good when you're doing continuous integration
1:33 and you don't want to take the default
1:35 we also saw that it can be annoying to type in answer
1:37 questions like what's your name, what's your e mail
1:39 what's your gituhub account name and things like that continuously
1:41 so we can create a global default file that solves that once and for all.
1:45 We talked about creating templates, we'd start with the cookiecutter.json file
1:50 that has the prompts as well as things like extensions,
1:54 files that we should not transform, copy without render things like that
1:57 we talked about the folder structure naming our folder things like
2:01 {{cookiecutter.project_name}} something like this
2:05 we saw that we can create dependent properties
2:07 that the cookiecutter.json is not just a static thing
2:10 but it kind of comes to life as it evaluates top to bottom
2:13 so we can put Jinja expressions in here
2:15 and do a lot of cool things there for the most advanced features
2:18 we would use hooks, we have a pre generation hook
2:21 and a post generation hook
2:24 and we also have a choice variable
2:27 if you've got a small restricted set of things
2:29 like the template engine you want to use for a web framework
2:31 a choice variable would be great.
2:34 We saw that we can take this concept of creating templates in a program
2:38 and make it even better, recall we made our game maker application
2:43 and it can make hi-lo, it can make pong, and it can make hangman
2:46 and instead of just having the general prompts and inputs that cookiecutter gives
2:51 we actually wrote a program that would take in that information
2:54 verify it if it was wrong it asked the question again
2:57 and get everything ready to go and then it would create the game
3:01 using the underlying cookiecutter template programmatically
3:05 so we would call cookiecutter.main.cookiecutter one as a package
3:10 one as a sub package, the final part is the method we would call that
3:12 and of course we want to leverage the default values
3:15 so we could work with the config sub module and pull in the default values
3:19 for whoever joining this minimize a number of questions
3:22 or at least make it nicer for them and we created our little app
3:25 the game maker, and it presented itself
3:27 more nicely as sort of a project creation thing
3:30 I didn't have to know anything about projection for the most part
3:33 because it just delegated all that information
3:36 and that functionality to cookiecutter;
3:39 we went through a few case studies
3:41 we talked about Beeware, OpenStack and Pyramid
3:43 and how all three of these projects are making heavy use of cookiecutter
3:46 and how there's some really interesting stuff happening there;
3:49 we shared our template, in fact,
3:51 I can tell you that the time of this recording now my template
3:55 that I used as an example in this section
3:58 is now officially part of the pantry full of cookies
4:01 on the cookiecutter site, so that process
4:03 I took you through that work for me at least, that was great.
4:06 And finally we talked about modifying cookiecutter
4:09 there was a feature that I- or behavior let's say, not a feature, behavior
4:13 I didn't like and I've talked about it throughout the course
4:15 that the yaml file, the parsing of is too strict and having a new line at the end
4:20 is really frustrating we went through and we saw how we could fix that
4:23 in fact I did a little bit of back and forth with those guys
4:26 and now that is also accepted and should be officially part of cookiecutter
4:31 so that shouldn't be a problem anymore, you can use that technique
4:33 to modify cookiecutter for whatever your needs are.
4:36 Look at that, this is a ton of stuff that you've learned
4:39 and now you should be really empowered to do cool stuff with cookiecutter.
4:43 But, before you go don't forget to take the code with you
4:45 visit github.com/mikeyckennedy-cookiecutter-course,
4:49 and star this and fork this so that you have everything
4:53 that we've done, everything we've created throughout the course
4:57 with you forever.
4:59 I've done a small amount of reorganization
5:01 because I noticed as I was doing things live it got a little messy sometimes
5:05 I had multiple projects generated next to the temple at itself
5:08 and so it might not look identical but it should be very very similar
5:11 and self explanatory to what you saw us to together on the screen.
5:16 Thanks so much for taking this course I'll see you online! Bye.