Using and Mastering Cookiecutter Transcripts
Chapter: Welcome to the course
Lecture: The Cookiecutter philosophy
0:01 Before we start working with Cookiecutter, let's talk about its philosophy,
0:06 I think you'll appreciate the design and the thought that went into this tool, first, its command line interface focused.
0:14 So it provides a command line utility for creating project from Cookiecutters, it's extremely easy to use and get started with,
0:20 and you won't have to think too hard about the default behavior of it. But it is flexible for more complex use cases, via optional arguments.
0:28 It's API accessible. It's entirely function based and stateless, and it's usable in pieces for developers of other template generation tools,
0:38 so if you understand Cookiecutter, you can build tools that create projects yourself that somehow leverage Cookiecutter itself
0:45 so you don't have to do that sort of core file directory text management. It's Jinja2 specific, so if you are familiar with Jinja2 already,
0:54 then you'll be able to work with it and the parts of Jinja2 that you use are honestly quite simple so even if you don't know Jinja2
1:02 it's still pretty easy to get started with. Cookiecutter is extensible, you can give it Jinja2 based extensions
1:10 as well as integrated with other Jinja2 based project template tools, it's open source, you have the freedom for Cookiecutter users
1:17 to build and extend, there is no officially maintained Cookiecutter templates, there is not like a packaging authority for Cookiecutetrs,
1:25 you just put them up there on the internet as some accessible thing like a GitHub repository and Cookiecutter can directly access and use those.
1:33 And Cookiecutter itself is friendly to commercial projects, it has licensing that allows for private Cookiecutters
1:39 and even private Cookiecutter based tools. So feel free to use this in your commercial application.
1:45 Finally, it's fast and focused, it's meant to just do one thing, take a template and transform it into a ready to run project.
1:52 And you can generate these projects from the command line or from the API and that's it, and it's ultra fast,
1:59 so if you want to leverage this in some kind of high performance or performance critical tooling,
2:05 you should be fine with Cookiecutter, it's not slow at all. If you want to learn more about this,
2:11 just check out the core committer guide here at this url.