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:05 I think you'll appreciate the design and the thought that went into this tool,
0:09 first, its command line interface focused.
0:13 So it provides a command line utility for creating project from Cookiecutters,
0:16 it's extremely easy to use and get started with,
0:19 and you won't have to think too hard about the default behavior of it.
0:22 But it is flexible for more complex use cases, via optional arguments.
0:27 It's API accessible. It's entirely function based and stateless,
0:31 and it's usable in pieces for developers of other template generation tools,
0:37 so if you understand Cookiecutter, you can build tools that create projects yourself
0:41 that somehow leverage Cookiecutter itself
0:44 so you don't have to do that sort of core file directory text management.
0:48 It's Jinja2 specific, so if you are familiar with Jinja2 already,
0:53 then you'll be able to work with it and the parts of Jinja2 that you use
0:58 are honestly quite simple so even if you don't know Jinja2
1:01 it's still pretty easy to get started with.
1:04 Cookiecutter is extensible, you can give it Jinja2 based extensions
1:09 as well as integrated with other Jinja2 based project template tools,
1:12 it's open source, you have the freedom for Cookiecutter users
1:16 to build and extend, there is no officially maintained Cookiecutter templates,
1:20 there is not like a packaging authority for Cookiecutetrs,
1:24 you just put them up there on the internet as some accessible thing
1:28 like a GitHub repository and Cookiecutter can directly access and use those.
1:32 And Cookiecutter itself is friendly to commercial projects,
1:35 it has licensing that allows for private Cookiecutters
1:38 and even private Cookiecutter based tools.
1:41 So feel free to use this in your commercial application.
1:44 Finally, it's fast and focused, it's meant to just do one thing,
1:47 take a template and transform it into a ready to run project.
1:51 And you can generate these projects from the command line
1:55 or from the API and that's it, and it's ultra fast,
1:58 so if you want to leverage this in some kind of
2:01 high performance or performance critical tooling,
2:04 you should be fine with Cookiecutter, it's not slow at all.
2:08 If you want to learn more about this,
2:10 just check out the core committer guide here at this url.