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.
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:
¡Gracias, me ayudaron mucho tus sencillas indicaciones! 👍
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
Para los que están desde la consola:
pip freeze > environment.yml
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:
si esta linea tiene una falla : source “venv/Scripts/activate”
intenten:
"venv/Scripts/activate"
o si estan en linux:
source /venv/bin/activate
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
Parce me salvaste, tenia un error todo maluco, en los comentarios el profe decia que era error de escritura y lo que hacia era volver a escrivir una y otra vez conda-forge, pero ahora ya me dio con tu codigo, muchas gracias.
Gracias me funcionó.
Una aclaración por favor, ¿Si quiero iniciar un nuevo proyecto debo crear un nuevo ambiente de trabajo y con este instalar nuevamente cookiecutter?
Holaa, una vez instalado solo requerirás usar este comando:
cookiecutter https://github.com/platzi/curso-entorno-avanzado-ds --checkout cookiecutter-personal-platzi
Acá te dejo una variación:
cookiecutter -c v1 https://github.com/drivendata/cookiecutter-data-science
-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
¿A cuál terminal se refiere, o cuál uso si estoy en Windows?.
La exposición es buena pero obvian pasos que ayudarían mucho;
obvian comentar que se muestra el proceso en Linux
obvian indicar que la "instalación de Conda" al parecer se realizó antes de la grabación de la Clase, lo que muestran es como configurar Conda para nuestro uso.
El entusiasmo del encargado del curso le resto claridad
Quise replicar en deepnote pero obtuve un error. Alguien sabe que puedo hacer? dice que es un error de sintaxis pero la verdad que no encuentro el error.
hola Alejandro,
ese error ocurre porque la sintaxis utilizada en el projecto del profe no es soportada por versiones inferiores a la 3.7 (creo)
por lo que te recomiendo actualizar python o instalar una version mas alta a la que tienes
conda update python
esto lo puedes hacer con este comando
¿Por qué instalas el paquete dentro de la carpeta temp?
Es una carpeta que el mismo creo dentro del directorio de Documentos.
…
Supongo que borrara todo esto de su computador al acabar de grabar la clase. Con ese nombre sabra que esa carpeta la puede borrar tranquilo
…
Es solo por organization personal
Este curso esta super :)
Para los que usan cmder o gitbush pueden instalarlo de la siguiente manera:
python -m pip install --user cookiecutter
Genial!
hola buenas tardes, el desafio esta mal realizado o no carga bien