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 33

Preguntas 16

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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

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

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

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

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.

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

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

Si estas en en linux puedes usar

sudo apt install python3-cookiecutter -y

O utilizando el gestor de paquetes de python

sudo apt install python3-pip
python3 -m pip install cookiecutter

Para los que est谩n desde la consola:

pip freeze > environment.yml 

-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

vengo de la escuela de ingles de platzi y no puedo evitar mencionar que siento la pronunciacion que usa el profesor para referirse a COOKIE CUTTER no es la mas correcta es yo la escucho como qiurer cuando deberia ser Qrer
les anexo un video donde hablan de esta herramienta en ingles para que corroboren,escuchen y comparen espero que mi comentario no se tome a mal todos estamos aqui para aprender y mejorar
https://www.youtube.com/watch?v=5VjuG5lliYU

Para los que usan cmder o gitbush pueden instalarlo de la siguiente manera:
python -m pip install --user cookiecutter

Genial!

En windows 10 teniendo instalado Anaconda en el prompt, para ejecute lo siguiente:
conda info
conda config --show-sources
conda list --show-channel-urls
conda config --remove-key channels
conda create --name cookiecutter-personal cookiecutter=1.7.3
conda activate cookiecutter-personal
conda env export --from-history --file environment.yaml
cat environment.yaml

me sale este error, ayudaa!

CondaHTTPError: HTTP 000 CONNECTION FAILED

usando virtualenv

virtual env es la version ligera para crear ambientes en python, en lo personal prefiero usar venv a conda ya que las carpetas con el contenido del ambiente virtual las puedes tener en la misma carpeta del proyecto. Aunque en ocaciones cuando quiero hacer pruebas rapidas donde ya tenga todo el suit de librerias de DS utilizo el ambiente BASE de CONDA.
aqui dejo el codigo de la clase en venv:

python3 -m pip install --upgrade pip
pip install virtualenv 

virtualenv venv 
source 鈥渧env/Scripts/activate鈥
pip install "cookiecutter==1.7.3"
echo cookiecutter==1.7.3 > requirements.txt

si esta linea tiene una falla : source 鈥渧env/Scripts/activate鈥
intenten:

  • "venv/Scripts/activate"
    o si estan en linux:
  • source /venv/bin/activate

Alguien m谩s quedo as铆 馃槺 al finalizar la clase?

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 馃槂

Interesante, al finalizar entend铆 mejor. Solo me deja inquieto que funciona para versiones de Python anteriores a la actual.

Para los que se preguntan como se instalo conda:
Aqui el link del video

Comandos de la clase:

Instalaci贸n de Cookiecutter
Importante: Todos los pasos son v铆a consola y con Anaconda instalado.

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

conda deactivate

En Ubuntu, trabajando en la ra铆z. Crear un mkdir cookiecutter-personal. Listar y acceder con cd.
**
conda config --add channels conda-forge** El conda forge es en donde va a estar guardada y el conda config 鈥揳dd lo a帽ade a la configuraci贸n local de todo el pc

conda create --name cookiecutter-personal cookiecutter=1.7.3

PARA ACTIVAR EL COMANDO ESCRIBIR
**conda activate cookiecutter-personal
conda deactivate **
PARA CREAR UN AMBIENTE
conda env export 鈥揻rom-history 鈥揻ile enviroment.yml
PARA CREAR EL ARBOL DE ARCHIVOS Y LA SECCI脫N DEL GITHUB DE LA CLASE
cookiecutter https://github.com/platzi/curso-entorno-avanzado-ds --checkout cookiecutter-personal-platzi

PARA ENTRAR AL ARCHIVO
code cookiecutter_testing

Tenia problemas para instalarlo tal cual aparecia en el video, por lo que primero cree el ambiente virtual y despues instale cookiecutter dentro el, los comandos que utilize fueron

conda create --name plazti_ds 
conda activate plazti_ds 
conda install -c conda-forge cookiecutter

Se instala una versi贸n m谩s reciente de cookiecutter

al final apareci贸 este error y no gener贸 los archivos " File 鈥<fstring>鈥, line 1
(project_slug=)
^
SyntaxError: invalid syntax
ERROR: Stopping generation because pre_gen_project hook script didn鈥檛 exit successfully
Hook script failed (exit status: 1)"

wowwww que genial!

Herramientas como esta realmente te hacen ser un profesional de la ciencia de datos m谩s completo 馃槑馃殌

una pronunciaci贸n m谩s cercana ser铆a cukicoter o cukicorer la u en este caso suena cercana a una o y la doble t entre t y r

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 馃槺 .