Creación de Plantillas Personalizadas con Cookie Cutter
Clase 3 de 14 • Curso 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.