Creación de Plantillas Personalizadas con Cookie Cutter

Resumen

Estructura inicial de la plantilla

Dentro de la carpeta principal crea la carpeta que contendrá todo lo que necesitarás en tu proyecto con el nombre:

{{ coockiecutter.project.slug }}

En la carpeta recién creada agrega los siguientes archivos:

README.md environment.yml coockiecutter.json

También crea las carpetas que necesitará tu proyecto:

/data /notebooks

Afuera de la carpeta, pero dentro de la carpeta principal, crea el siguiente archivo:

environment.yml

Hay dos archivos environment.yml, el de configuración de entorno (dentro de la carpeta que creaste) y el que configura las dependencias y paquetes (en la carpeta principal).

Información de README.md

Adentro del archivo README.md agrega las siguientes líneas que lo harán un archivo dinámico:

# {{ coockiecutter.project_title }} By: {{ coockiecutter.project_author_name }} {{ coockiecutter.project_description }}

Estas líneas, hechas en Jinja, permitirán a tu archivo acceder a las variables que contienen la información del título, autor y descripción del proyecto.

Información de environment.yml (entorno)

# conda env create --file environment.yml name: cookiecutter-personal-platzi channels: - anaconda - conda-forge - defaults dependencies: - cookiecutter

Información de environment.yml (configuración)

# conda env create --file environment.yml name: {{ cookiecutter.project_slug }} channels: - anaconda - conda-forge - defaults dependencies: {% if cookiecutter.project_packages == "All" -%} - fs - jupyter - jupyterlab - pathlib {% endif -%} - pip {% if cookiecutter.project_packages == "All" -%} - pyprojroot {% endif -%} - python={{ cookiecutter.python_version }} - pip: {% if cookiecutter.project_packages == "All" -%} - pyhere {% endif -%}

Agregando información a coockiecutter.json

Dentro de este archivo configurarás todos los valores de las variables que utilizas en los demás archivos:

{ "project_title": "Cookiecutter Personal", "project_slug": "{{ coockiecutter.project_title.lower().replace(" ", "_").replace("-", "_") }}", "project_description": "Tu primer proyecto con Cookiecutter.", "project_author_name": "Tu nombre", "project_packages": ["All, Minimal"], "python_version": "3.7" }

Ejecuta el proyecto

  • Inicializas el Coockiecutter con conda.
  • Configuras la instalación, como en la clase anterior.

Contribución creada por: Néstor Arellano.