Creación de Plantillas Personalizadas con Cookie Cutter

Clase 3 de 14Curso de Configuración Profesional de Entorno de Trabajo para Ciencia de Datos

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.