Instalar Cookiecutter

2/14
Recursos

¿Qué es Cookiecutter?

Es un manejador de plantillas multiplataforma (Windows, Mac OS, Linux) que te permite hacer plantillas en lenguaje de programación o formato de marcado. Puede ser usado como herramienta de línea de comandos o como librería de Python.

Cookiecutter funciona con Jinja, un motor de plantillas extensible con el cual puedes crear plantillas como si estuvieras escribiendo código en Python.

¿Cómo funciona?

Hay 3 pasos para entender la manera en que funciona:

  • Detectará una sintaxis especial en los documentos y carpetas de tu proyecto.
  • Buscará variables y valores a reemplazar.
  • Finalmente, entregará un proyecto con la estructura definida en la plantilla.

Sintaxis de Jinja

Existen 3 tipos diferentes de bloques:

  • Bloques de expresión: se usan para incluir variables en la plantilla:
{{ cookiecutter.saluda }}
  • Bloques de declaración: se usan para el uso de condicionales, ciclos, etc.:
{% if coockiecutter.eres_asombroso %}
. . .
{% endif %}
  • Bloques de comentario: se usan para dejar comentarios o recomendaciones a los propios desarrolladores:
{# Esto es un comentario #}

Instalación de Cookiecutter

Importante: Todos los pasos son vía consola y con Anaconda instalado.

  1. Crea una carpeta un entrar en ella:
mkdir <nombre_carpeta>
cd <nombre_carpeta>
  1. Agrega el canal Conda-Forge a tu configuración global:
conda config --add channels conda-forge
  1. Crea un ambiente virtual que contenga a Coockiecutter:
conda create --name <nombre_ambiente> coockiecutter=1.7.3
  1. Activa el ambiente virtual:
conda activate <nombre_ambiente>
  1. Definir en dónde estará tu ambiente:
conda env export --from-history --file environment.yml

Para desactivar el ambiente virtual:

conda deactivate

Contribución creada por: Néstor Arellano.

Aportes 18

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Acabo de comprobar y se puede usar cookiecutter en la terminal de un Deepnote, esto tiene potencial

Instalar Cookiecutter

Es un manejador de plantillas multiplataformal, por lo que las plantillas se pueden utilizar en cualquier lenguaje de programación o formato de marcado.
Además puede ser utilizado como una herramienta de línea de comandos o como una librería de Python

¿Cómo funciona cookiecutter?

cookiecutter va a detectar una sintaxis especial en tus documentos, en tus sistemas de carpetas y archivos, ya sea de forma local (ya sea que este dentro de la computadora) o una carpeta que este en la nube (por ejemplo en un repositorio de github). Va a procesar esta estructura, va a ver ciertas variables, va a buscar ciertas variables, va a buscar valores para reemplazar, y finalmente te va a entregar un nuevo proyecto, con la estructura definida en la plantilla subsistituyendo todos esos valores.

Detras de escenas, cookiecutter, funciona con Jinja que es un motor de plantillas que es muy extensible y muy bonito por que te permite escribir plantillas, como si estuvieras escribiendo python. Por lo que si sabes python, escribir plantillas con Jinja se te va a hacer muy simiar, por que su sintaxis se basa en tres bloques principales.

{{cookiecutter.saluda}}
Hola, científico de datos
{% if cookiecutter.eres_asombroso %}
¡Genial, por su puesto que lo eres!
	{%endif%}
{#¡Has aprendido bastante!#}

Los bloques de expresión son aquellos donde se definen dos pares de {{}} y dentro vas a tener una variable que quiere que se incluya en tu plantilla.

Los bloques declarativos son aquellos en los que se pueden utilizar condicionales, foor loops o más. Estos se definen por {% % } y dentro se describe la acción que se quiere hacer, y para cerrar este bloque, siempre es necesario colocar un {%endif%} o un {%endfor%}

Finalmente tienes los bloques de tipo comentario, que son los bloques que tienes en tu plantilla pero cuando la corras ya no estarán en tu plantilla. Por lo que son muy útiles para dejar recomendaciones para el futuro.

Entendido y creo que nos ahorra mucho tiempo.

mkdir cookiecutter-persona
cd cookiecutter-personal
conda config --add channels conda-forg
#Crear ambiente
conda create --name cookiecutter-personal cookiecutter=1.7.3
#Ir al ambiente
conda activate cookiecutter-personal
#Exportar el ambiente
conda env export --from-history --file environment.yaml
#Ver el archivo 
cat environment.yaml
#Crear la plantilla con cookiecutter
cookiecutter https://github.com/platzi/curso-entorno-avanzado-ds --checkout cookiecutter-personal-platzi

Para los que no usan conda como y han tenido problemas para inicializar el proyecto de prueba, pueden probar agregando python3 -m:

python3 -m cookiecutter https://github.com/platzi/curso-entorno-avanzado-ds --checkout cookiecutter-personal-platzi

Hola, dejo la documentacion de cookiecutter y el comando para instalar en linux distros basadas en ubuntu 😃

https://cookiecutter.readthedocs.io/en/latest/installation.html

sudo apt-get install cookiecutter

Windows: las instruccion para esta clase son 2.

$ python -m pip install --user cookiecutter

$ python -m cookiecutter https://github.com/platzi/curso-entorno-avanzado-ds --checkout cookiecutter-personal-platzi

pal que tenga windows y siguió los cursos le hacen en la consola de anaconda y facilito :3

Genial!

Si ya haz trabajado con django notarás que es muy similar cuando escribes HTML. Esto es porque Cookiecutter y Django trabajan con Jinga.

😄

Este curso esta super 😃

Alguien más quedo así 😱 al finalizar la clase?

-Si no puedes descargar el paquete coockiecutter puede ser que tengas mal el nombre del canal conda-forge.

-El problema era que mi canal se llamaba conda-forg por eso la terminal no podía comunicarse con el repositorio. -Para ver si te pasa lo mismo usa: conda config --show channels

-Para solucionarlo tienes que crear un canal con el nombre correcto y eliminar el canal anterior.

-Para arreglarlo creé un nuevo canal llamado conda-forge y eliminé el que se llamaba conda-forg.
1)conda config --add channels conda-forge
2)conda config --remove channels conda-forg

Para los que están desde la consola:

pip freeze > environment.yml 

En esta parte para los que usan una terminal de ubuntu en Windows y no les carga la instalacion del paquete, deben desahabilitar el firewall temporalmente para que deje realizar el proceso.

#Crear ambiente
conda create --name cookiecutter-personal cookiecutter=1.7.3

Super interesante herramienta

Pasos de instalación

Increíble !! Algo que jamás me enseñaron en la uni hasta ahorita 😱 .