├── .bash_profile ├── .github └── workflows │ └── build.yml ├── .gitignore ├── .ruby-version ├── LICENSE ├── LINUX.es.md ├── LINUX.md ├── LINUX_keep_current.es.md ├── LINUX_keep_current.md ├── README.es.md ├── README.md ├── VM.es.md ├── VM.md ├── WINDOWS.es.md ├── WINDOWS.md ├── WINDOWS_keep_current.es.md ├── WINDOWS_keep_current.md ├── _partials ├── chrome.md ├── conda_uninstall.md ├── dbeaver.md ├── direnv.md ├── docker.md ├── dotfiles.md ├── dotfiles_installer.md ├── dotfiles_merge_upstream.md ├── dotfiles_new_laptop.md ├── dotfiles_new_student.md ├── dotfiles_same_laptop.md ├── es │ ├── chrome.md │ ├── conda_uninstall.md │ ├── dbeaver.md │ ├── direnv.md │ ├── docker.md │ ├── dotfiles.md │ ├── dotfiles_installer.md │ ├── dotfiles_merge_upstream.md │ ├── dotfiles_new_laptop.md │ ├── dotfiles_new_student.md │ ├── dotfiles_same_laptop.md │ ├── gcp_cli_setup.md │ ├── gcp_setup.md │ ├── gcp_setup_end.md │ ├── gcp_setup_linux.md │ ├── gcp_setup_mid.md │ ├── gcp_setup_wsl.md │ ├── homebrew.md │ ├── intro.md │ ├── kata.md │ ├── keep_current.md │ ├── kitt.md │ ├── nbextensions.md │ ├── osx_python.md │ ├── osx_silicon.md │ ├── pip.md │ ├── python_checkup.md │ ├── ubuntu_docker.md │ ├── ubuntu_gcloud.md │ ├── ubuntu_python.md │ ├── virtualenv.md │ ├── vscode_extensions.md │ ├── win_docker.md │ ├── win_jupyter.md │ └── win_vs_redistributable.md ├── gcp_cli_setup.md ├── gcp_setup.md ├── gcp_setup_end.md ├── gcp_setup_linux.md ├── gcp_setup_mid.md ├── gcp_setup_wsl.md ├── homebrew.md ├── intro.md ├── kata.md ├── keep_current.md ├── kitt.md ├── nbextensions.md ├── osx_python.md ├── osx_silicon.md ├── pip.md ├── python_checkup.md ├── ubuntu_docker.md ├── ubuntu_gcloud.md ├── ubuntu_python.md ├── virtualenv.md ├── vscode_extensions.md ├── win_docker.md ├── win_jupyter.md └── win_vs_redistributable.md ├── _sublime_text.md ├── build.rb ├── checks ├── pip_check.py ├── pip_check.sh └── python_checker.sh ├── confs.rb ├── git-prompt.sh ├── images ├── apple.png ├── docker.png ├── docker_hello.png ├── docker_info.png ├── gcp-billing.png ├── gcp-create-project.png ├── gcp_create_key.png ├── gcp_project.png ├── jupyter.png ├── jupyter_nbextensions.png ├── jupyter_new.png ├── jupyter_notebook.png ├── linux.png ├── macos_open_terminal.png ├── nbextensions.png ├── vm.png ├── windows.png ├── wsl-gcp-dir-2.png ├── wsl-gcp-dir.png ├── wsl-gcp-key.png └── wsl_jupyter_notebook.png ├── macOS.es.md ├── macOS.md ├── macOS_keep_current.es.md ├── macOS_keep_current.md ├── pyproject.toml ├── specs ├── jupyter │ └── custom.css └── releases │ ├── README.md │ ├── apple_intel.txt │ ├── apple_silicon.txt │ ├── certification.txt │ ├── glovebox.txt │ ├── linux.txt │ ├── past │ ├── 2022_Q1 │ │ ├── README.md │ │ ├── apple_intel.txt │ │ ├── apple_silicon.txt │ │ ├── glovebox.txt │ │ ├── linux.txt │ │ ├── pyproject_install_dates.txt │ │ └── python_version.txt │ ├── 2022_Q2 │ │ ├── README.md │ │ ├── apple_intel.txt │ │ ├── apple_silicon.txt │ │ ├── glovebox.txt │ │ ├── linux.txt │ │ ├── pyproject_install_dates.txt │ │ └── python_version.txt │ └── 2022_Q4 │ │ ├── README.md │ │ ├── apple_intel.txt │ │ ├── apple_silicon.txt │ │ ├── glovebox.txt │ │ ├── linux.txt │ │ ├── pyproject_install_dates.txt │ │ └── python_version.txt │ ├── pyproject_install_dates.txt │ └── python_version.txt └── unused-images.sh /.bash_profile: -------------------------------------------------------------------------------- 1 | alias tree='cmd //c tree //a' 2 | 3 | # Set up ssh-agent 4 | SSH_ENV="$HOME/.ssh/environment" 5 | 6 | function start_agent { 7 | echo "Initializing new SSH agent..." 8 | touch $SSH_ENV 9 | chmod 600 "${SSH_ENV}" 10 | /usr/bin/ssh-agent | sed 's/^echo/#echo/' >> "${SSH_ENV}" 11 | . "${SSH_ENV}" > /dev/null 12 | /usr/bin/ssh-add 13 | } 14 | 15 | # Source SSH settings, if applicable 16 | if [ -f "${SSH_ENV}" ]; then 17 | . "${SSH_ENV}" > /dev/null 18 | kill -0 $SSH_AGENT_PID 2>/dev/null || { 19 | start_agent 20 | } 21 | else 22 | start_agent 23 | fi 24 | 25 | # Activate `lewagon` virtualenv by default: 26 | source ~/.venvs/lewagon/Scripts/activate 27 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build setup guides 2 | on: 3 | push: 4 | jobs: 5 | build: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v2 9 | - name: Build 10 | run: | 11 | git config user.name github-actions 12 | git config user.email github-actions@github.com 13 | ruby build.rb 14 | if ! git diff --exit-code 15 | then 16 | git add . 17 | git commit -m "setup guides generated" 18 | git push 19 | fi 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .ipynb_ckeckpoints 3 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.1.2 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | © 2023 La Loco SAS, head of Le Wagon Group - All rights reserved 2 | -------------------------------------------------------------------------------- /README.es.md: -------------------------------------------------------------------------------- 1 | ## Configuración del Bootcamp de Data Science 2 | 3 | Por favor escoge tu sistema operativo: 4 | 5 | 6 | 7 | 12 | 17 | 22 | 23 |
8 | 9 | macOS 10 | 11 | 13 | 14 | Windows 15 | 16 | 18 | 19 | Linux 20 | 21 |
24 | 25 | ## Mantén tu configuración al día después del bootcamp 26 | 27 | Por favor escoge tu sistema operativo: 28 | 29 | 30 | 31 | 36 | 41 | 46 | 47 |
32 | 33 | macOS 34 | 35 | 37 | 38 | Windows 39 | 40 | 42 | 43 | Linux 44 | 45 |
48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## ¿En Español? 2 | 3 | Haz clic en este link para acceder a la versión en español del setup. 4 | 5 | ## In English 6 | 7 | ### Data Science Bootcamp Setup 8 | 9 | Please choose your operating system (OS): 10 | 11 | 12 | 13 | 18 | 23 | 28 | 33 | 34 |
14 | 15 | macOS 16 | 17 | 19 | 20 | Windows 21 | 22 | 24 | 25 | Linux 26 | 27 | 29 | 30 | Virtual Machine 31 | 32 |
35 | 36 | ### Keep your setup current after the bootcamp 37 | 38 | Please choose your operating system (OS): 39 | 40 | 41 | 42 | 47 | 52 | 57 | 58 |
43 | 44 | macOS 45 | 46 | 48 | 49 | Windows 50 | 51 | 53 | 54 | Linux 55 | 56 |
59 | -------------------------------------------------------------------------------- /_partials/chrome.md: -------------------------------------------------------------------------------- 1 | ## Chrome - your browser 2 | 3 | Install the Google Chrome browser if you haven't got it already and set it as a __default browser__. 4 | 5 | Follow the steps for your system from this link :point_right: [Install Google Chrome](https://support.google.com/chrome/answer/95346?co=GENIE.Platform%3DDesktop&hl=en-GB) 6 | 7 | __Why Chrome?__ 8 | 9 | We recommend to use it as your default browser as it's most compatible with testing or running your code, as well as working with Google Cloud Platform. Another alternative is Firefox, however we don't recommend using other tools like Opera, Internet Explorer or Safari. 10 | -------------------------------------------------------------------------------- /_partials/conda_uninstall.md: -------------------------------------------------------------------------------- 1 | ## Installing Python (with [`pyenv`](https://github.com/pyenv/pyenv)) 2 | 3 | ### Uninstall `conda` 4 | 5 | As we are using `pyenv` to install and manage our Python version, we need to uninstall [`conda`](https://docs.conda.io/projects/conda/en/latest/), another package manager you may have on your machine if you previously installed [Anaconda](https://www.anaconda.com/). Thus, we are preventing any possible Python version issue later. 6 | 7 | Check if you have `conda` installed on your machine: 8 | 9 | ```bash 10 | conda list 11 | ``` 12 | $MAC_START 13 | If you have `zsh: command not found: conda`, you can **skip** the uninstall of `conda` and jump to the **Install pre-requisites** section. 14 | $MAC_END 15 | $LINUX_START 16 | If you have `zsh: command not found: conda`, you can **skip** the uninstall of `conda` and jump to the **Install `pyenv`** section. 17 | $LINUX_END 18 | $WINDOWS_START 19 | If you have `zsh: command not found: conda`, you can **skip** the uninstall of `conda` and jump to the **Install `pyenv`** section. 20 | $WINDOWS_END 21 | 22 |
23 | conda uninstall instructions 24 | 25 | - Install the Anaconda-Clean package from your terminal and run the cleaning 26 | ```bash 27 | conda install anaconda-clean 28 | anaconda-clean --yes 29 | ``` 30 | - Remove every Anaconda directories 31 | ```bash 32 | rm -rf ~/anaconda2 33 | rm -rf ~/anaconda3 34 | rm -rf ~/.anaconda_backup 35 | $MAC_START 36 | rm -rf ~/opt 37 | $MAC_END 38 | ``` 39 | - Remove Anaconda path from your `.bash_profile` 40 | - Open the file with `code ~/.bash_profile` 41 | - If the file opens find the line matching the following pattern `export PATH="/path/to/anaconda3/bin:$PATH"` and delete the line 42 | $MAC_START 43 | - Save the file with `CMD` + `s` 44 | $MAC_END 45 | $LINUX_START 46 | - Save the file with `CTRL` + `s` 47 | $LINUX_END 48 | - Restart your terminal with `exec zsh` 49 | - Remove Anaconda initialization from your `.zshrc`: 50 | - Open the file with `code ~/.zshrc` 51 | - Remove the code lines starting from `>>> conda initialize >>>` to `<<< conda initialize <<<` 52 |
53 | -------------------------------------------------------------------------------- /_partials/dbeaver.md: -------------------------------------------------------------------------------- 1 | 2 | ## DBeaver 3 | 4 | Download and install [DBeaver](https://dbeaver.io/), a free and open source powerful tool to connect to any database, explore the schema and even **run SQL queries**. 5 | -------------------------------------------------------------------------------- /_partials/direnv.md: -------------------------------------------------------------------------------- 1 | ## direnv 2 | 3 | [direnv](https://direnv.net/) is a shell extension. It makes it easy to deal with per project environment variables. This will be useful in order to customize the behavior of your code. 4 | 5 | $MAC_START 6 | ``` bash 7 | brew install direnv 8 | echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc 9 | ``` 10 | $MAC_END 11 | $WINDOWS_START 12 | ``` bash 13 | sudo apt-get update; sudo apt-get install direnv 14 | echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc 15 | ``` 16 | $WINDOWS_END 17 | $LINUX_START 18 | ``` bash 19 | sudo apt-get update; sudo apt-get install direnv 20 | echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc 21 | ``` 22 | $LINUX_END 23 | -------------------------------------------------------------------------------- /_partials/docker.md: -------------------------------------------------------------------------------- 1 | ## Docker 🐋 2 | 3 | Docker is an open platform for developing, shipping, and running applications. 4 | 5 | _if you already have Docker installed on your machine please update with the latest version_ 6 | 7 | ### Install Docker 8 | 9 | Go to [Docker](https://docs.docker.com/get-docker/) website and choose your operating system: 10 | 11 | ![](images/docker.png) 12 | 13 | Then follow the setup instructions, you are going to install a desktop application. 14 | 15 | Once done and launched, check Docker is up and running: 16 | 17 | ```bash 18 | docker info 19 | ``` 20 | 21 | You should get: 22 | 23 | ![](images/docker_info.png) 24 | -------------------------------------------------------------------------------- /_partials/dotfiles.md: -------------------------------------------------------------------------------- 1 | ## Dotfiles 2 | 3 | Hackers love to refine and polish their shell and tools. We'll start with a great default configuration provided by [Le Wagon](http://github.com/lewagon/dotfiles), stored on GitHub. 4 | 5 | ### Check your GitHub CLI configuration 6 | 7 | First, let's do a quick check. Open your terminal and run the following command: 8 | 9 | ```bash 10 | export GITHUB_USERNAME=`gh api user | jq -r '.login'` 11 | echo $GITHUB_USERNAME 12 | ``` 13 | 14 | You should see your GitHub username printed. If it's not the case, **stop here** and ask for help. 15 | There seems to be a problem with the previous step (`gh auth`). 16 | 17 | ### Fork and/or clone dotfiles 18 | 19 | There are three options, choose **one**: 20 | -------------------------------------------------------------------------------- /_partials/dotfiles_installer.md: -------------------------------------------------------------------------------- 1 | ### Run the dotfiles installer 2 | 3 | It's time to run the `dotfiles` installer: 4 | 5 | ```bash 6 | cd ~/code/$GITHUB_USERNAME/dotfiles && zsh install.sh 7 | ``` 8 | 9 | Check the emails registered with your GitHub Account. You'll need to pick one at the next step: 10 | 11 | ```bash 12 | gh api user/emails | jq -r '.[].email' 13 | ``` 14 | 15 | Run the git installer: 16 | 17 | ```bash 18 | cd ~/code/$GITHUB_USERNAME/dotfiles && zsh git_setup.sh 19 | ``` 20 | 21 | :point_up: This will **prompt** you for your name (`FirstName LastName`) and your email. 22 | :warning: You **need** to put one of the emails listed above thanks to the previous `gh api ...` command. If you don't do that, Kitt won't be able to track your progress. 💡 Select the `@users.noreply.github.com` address if you don't want your email to appear in public repositories you may contribute to. 23 | 24 | Please now **quit** all your opened terminal windows. 25 | 26 | -------------------------------------------------------------------------------- /_partials/dotfiles_merge_upstream.md: -------------------------------------------------------------------------------- 1 | Open your terminal and go to your `dotfiles` project: 2 | 3 | ```bash 4 | cd ~/code/$GITHUB_USERNAME/dotfiles 5 | ``` 6 | 7 | Time to merge the changes from `lewagon/dotfiles` into yours: 8 | 1. Commit your current version of your dotfiles: 9 | ```bash 10 | git add . 11 | git status # Check what will be committed 12 | git commit -m "Version prior to new setup" 13 | ``` 14 | 15 | 1. Let's bring in the changes from upstream: `git merge upstream/master` 16 | 17 | 1. Check that you're not in `MERGING` state. If you are, resolve any conflicts. 18 | 19 | 1. Do a `git diff HEAD~1 HEAD` to check what changed. 20 | 21 | 1. If nothing seems out of the ordinary, continue 22 | 23 |
24 | Too many conflicts? 25 | 26 | 27 | Let's just take over the current version from `lewagon/dotfiles`. 28 | 29 | First abort the merge: `git merge --abort`. 30 | 31 | Run ` .` 32 | 33 | In , open the `zshrc` file. Replace its content with the [newest version](https://raw.githubusercontent.com/lewagon/dotfiles/master/zshrc). Save to disk. 34 | 35 | Still in , open the `zprofile` file. Replace its content with the [newest version](https://raw.githubusercontent.com/lewagon/dotfiles/master/zprofile). Save to disk. 36 | 37 | Back in the terminal, run a `git diff` and check if this didn't remove any personal configuration setting that you wanted to keep. 38 | 39 |
40 | 41 | Time to commit your changes and push them. 42 | 43 | ```bash 44 | git add . 45 | git commit -m "Update for Data Science bootcamp" 46 | git push origin master 47 | ``` 48 | 49 | 50 | -------------------------------------------------------------------------------- /_partials/dotfiles_new_laptop.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | I already attended a Le Wagon coding bootcamp (Web Development or Data Science & AI) but I have a new laptop 4 | 5 | 6 | This means that you already forked the GitHub repo `lewagon/dotfiles`, but at that time the configuration was maybe not ready for the current Data Science & AI bootcamp. Let's update it. **Ask a TA to join you for the nex steps.** 7 | 8 | First, clone your fork on this machine: 9 | 10 | ```bash 11 | mkdir -p ~/code/$GITHUB_USERNAME && cd $_ 12 | gh repo clone $GITHUB_USERNAME/dotfiles 13 | ``` 14 | -------------------------------------------------------------------------------- /_partials/dotfiles_new_student.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | I did not attend the Web Dev or Data Science & AI bootcamp at Le Wagon 4 | 5 | 6 | As your configuration is personal, you need your own repository storing it, so you'll need to fork it to your GitHub account. 7 | 8 | Forking means that it will create a new repo in your GitHub account, identical to the original one. You'll have a new repository on your GitHub account, `your_github_username/dotfiles`. We need to fork because each of you will need to put specific information (e.g. your name) in those 9 | files. 10 | 11 | Lets' run this command to fork the repo, and clone it on your laptop: 12 | 13 | ```bash 14 | mkdir -p ~/code/$GITHUB_USERNAME && cd $_ 15 | gh repo fork lewagon/dotfiles --clone 16 | ``` 17 | 18 |
19 | -------------------------------------------------------------------------------- /_partials/dotfiles_same_laptop.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | I already did the setup of a Le Wagon coding bootcamp (WebDev or Data Science & AI) on the same laptop before 4 | 5 | 6 | This means that you already forked and cloned the GitHub repo `lewagon/dotfiles`, but at that time the configuration was maybe not ready for the current Data Science & AI bootcamp. Let's update it. **Ask a TA to join you for the nex steps.** 7 | -------------------------------------------------------------------------------- /_partials/es/chrome.md: -------------------------------------------------------------------------------- 1 | ## Chrome - tu navegador 2 | 3 | Instala el navegador Google Chrome si no lo tienes todavía y configúralo como tu __navegador predeterminado__. 4 | 5 | Sigue los pasos en el siguiente enlace :point_right: [Instalación de Google Chrome](https://support.google.com/chrome/answer/95346?co=GENIE.Platform%3DDesktop&hl=en-GB) 6 | 7 | __¿Por qué Chrome?__ 8 | 9 | Lo recomendamos como navegador predeterminado porque es el más compatible con los tests y la ejecución de código. Además trabaja con Google Cloud Platform. Otra opción es Firefox. No recomendamos usar otros navegadores como Opera, Internet Explorer o Safari. 10 | -------------------------------------------------------------------------------- /_partials/es/conda_uninstall.md: -------------------------------------------------------------------------------- 1 | ## Instalando Python (con [`pyenv`](https://github.com/pyenv/pyenv)) 2 | 3 | ### Desinstalar `conda` 4 | 5 | Como estamos utilizando `pyenv` para instalar y gestionar la versión de Python, necesitamos desinstalar [`conda`](https://docs.conda.io/projects/conda/en/latest/), otro gestor de paquetes que podrías tener en tu computadora si previamente instalaste [Anaconda](https://www.anaconda.com/). De esta forma, evitaremos problemas con Python más adelante. 6 | 7 | Chequea si tienes `conda` instalado en tu computadora: 8 | 9 | ```bash 10 | conda list 11 | ``` 12 | $MAC_START 13 | Si aparece `zsh: command not found: conda`, puedes **saltear** la desinstalación de `conda` e ir directo a la sección de **Instalar pre-requisitos**. 14 | $MAC_END 15 | $LINUX_START 16 | Si aparece `zsh: command not found: conda`, puedes **saltear** la desinstalación de `conda` e ir directo a la sección de **Instalar pre-requisitos**. 17 | $LINUX_END 18 | $WINDOWS_START 19 | Si aparece `zsh: command not found: conda`, puedes **saltear** la desinstalación de `conda` e ir directo a la sección de **Instalar pre-requisitos**. 20 | $WINDOWS_END 21 | 22 |
23 | Instrucciones de desinstalación conda 24 | 25 | - Instala el paquete Anaconda-Clean desde tu terminal y comienza la limpieza 26 | ```bash 27 | conda install anaconda-clean 28 | anaconda-clean --yes 29 | ``` 30 | - Remueve todos los directorios de Anaconda 31 | ```bash 32 | rm -rf ~/anaconda2 33 | rm -rf ~/anaconda3 34 | rm -rf ~/.anaconda_backup 35 | $MAC_START 36 | rm -rf ~/opt 37 | $MAC_END 38 | ``` 39 | - Elimina el directorio Anaconda de tu `.bash_profile` 40 | - Abre el archivo con `code ~/.bash_profile` 41 | - Si el archivo abre, busca la línea que coincida con el siguiente patrón `export PATH="/path/to/anaconda3/bin:$PATH"` y eliminala 42 | $MAC_START 43 | - Guarda el archivo con `CMD` + `s` 44 | $MAC_END 45 | $LINUX_START 46 | - Guarda el archivo con `CTRL` + `s` 47 | $LINUX_END 48 | - Reinicia la terminal con `exec zsh` 49 | - Remueve la inicializaciópn de Anaconda de tu `.zshrc`: 50 | - Abre el archivo con `code ~/.zshrc` 51 | - Remueve las líneas de código desde `>>> conda initialize >>>` hasta `<<< conda initialize <<<` 52 |
53 | -------------------------------------------------------------------------------- /_partials/es/dbeaver.md: -------------------------------------------------------------------------------- 1 | 2 | ## DBeaver 3 | 4 | DDescarga e instala [DBeaver](https://dbeaver.io/), una herramienta poderosa, gratuita y de código abierto para conectar con cualquier base de datos, explorar su esquema e incluso **hacer consultas SQL**. 5 | -------------------------------------------------------------------------------- /_partials/es/direnv.md: -------------------------------------------------------------------------------- 1 | ## direnv 2 | 3 | [direnv](https://direnv.net/) es una extensión del shell. Facilita trabajar con variables de entorno por proyecto, lo cual será útil para customizar el comportamiento de tu código. 4 | 5 | $MAC_START 6 | ``` bash 7 | brew install direnv 8 | echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc 9 | ``` 10 | $MAC_END 11 | $WINDOWS_START 12 | ``` bash 13 | sudo apt-get update; sudo apt-get install direnv 14 | echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc 15 | ``` 16 | $WINDOWS_END 17 | $LINUX_START 18 | ``` bash 19 | sudo apt-get update; sudo apt-get install direnv 20 | echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc 21 | ``` 22 | $LINUX_END 23 | -------------------------------------------------------------------------------- /_partials/es/docker.md: -------------------------------------------------------------------------------- 1 | ## Docker 🐋 2 | 3 | Docker es una plataforma abierta para el desarrollo, entrega y ejecución de aplicaciones. 4 | 5 | _Si ya tienes Docker instalado en tu máquina, por favor actualízalo con la versión más reciente_ 6 | 7 | ### Instalación de Docker 8 | 9 | Ve a la página web de [Docker](https://docs.docker.com/get-docker/) y selecciona tu sistema operativo: 10 | 11 | ![](images/docker.png) 12 | 13 | Luego sigue las instrucciones de configuración. Vas a instalar una aplicación de escritorio. 14 | 15 | Cuando termines con eso, inicia Docker y verifica que funcione correctamente: 16 | 17 | ```bash 18 | docker info 19 | ``` 20 | 21 | Deberías obtener lo siguiente: 22 | 23 | ![](images/docker_info.png) 24 | -------------------------------------------------------------------------------- /_partials/es/dotfiles.md: -------------------------------------------------------------------------------- 1 | ## Dotfiles 2 | 3 | Los hackers aman mejorar sus shells y sus herramientas. Comenzaremos con una configuración por defecto genial proporcionada por [Le Wagon](http://github.com/lewagon/dotfiles) y almacenada en GitHub. 4 | 5 | ### Verifica tu configuración de GitHub CLI 6 | 7 | Primero, hagamos una verificación rápida. Abre tu terminal y ejecuta el comando siguiente: 8 | 9 | ```bash 10 | export GITHUB_USERNAME=`gh api user | jq -r '.login'` 11 | echo $GITHUB_USERNAME 12 | ``` 13 | 14 | Deberías ver tu usuario GitHub. Si no es así, **no hagas más nada** y pide ayuda. 15 | Parece que hay un problema con el paso anterior (`gh auth`). 16 | 17 | 18 | ### Fork y/o clone los archivos de configuración 19 | 20 | Hay tres opciones, escoge **una**: 21 | -------------------------------------------------------------------------------- /_partials/es/dotfiles_installer.md: -------------------------------------------------------------------------------- 1 | ### Ejecuta el instalador de dotfiles 2 | 3 | Ejecuta el instalador de `dotfiles`. 4 | 5 | ```bash 6 | cd ~/code/$GITHUB_USERNAME/dotfiles && zsh install.sh 7 | ``` 8 | 9 | Verifica los emails registrados en tu cuenta GitHub. Deberás seleccionar uno de ellos en el próximo paso: 10 | 11 | ```bash 12 | gh api user/emails | jq -r '.[].email' 13 | ``` 14 | 15 | Ejecuta el instalador de git: 16 | 17 | ```bash 18 | cd ~/code/$GITHUB_USERNAME/dotfiles && zsh git_setup.sh 19 | ``` 20 | 21 | :point_up: Esto te **guiará** con tu nombre (`FirstName LastName`) y con tu email. 22 | :warning: Cuidado, **debes** poner uno de los emails de la lista de arriba que te suministra el comando `gh api ...` usado anteriormente. Si haces eso, Kitt no podrá hacerle seguimiento a tu progreso. Cualquier correo que elijas se mostrará **públicamente** en internet. 💡 Selecciona la dirección `@users.noreply.github.com` si no quieres que tu correo electrónico aparezca en los repositorios públicos a los que puedas contribuir. 23 | 24 | Ahora **cierra** todas las ventanas de tu terminal que tengas abiertas por favor. 25 | -------------------------------------------------------------------------------- /_partials/es/dotfiles_merge_upstream.md: -------------------------------------------------------------------------------- 1 | Abre tu terminal y ve a tu proyecto `dotfiles`: 2 | 3 | ```bash 4 | cd ~/code/$GITHUB_USERNAME$/dotfiles 5 | ``` 6 | 7 | Es hora de fusionar los cambios de lewagon/dotfiles en los tuyos: 8 | 9 | 1. Commit la versión actual de tus dotfiles: 10 | ```bash 11 | git add . 12 | git status # Check what will be committed 13 | git commit -m "Version prior to new setup" 14 | ``` 15 | 16 | 1. Trae los cambios del repositorio upstream: `git merge upstream/master` 17 | 18 | 1. Verifica que no estés en estado MERGING. Si lo estás, resuelve los conflictos. 19 | 20 | 1. Haz un `git diff HEAD~1 HEAD` para revisar qué cambió. 21 | 22 | 1. Si todo parece estar en orden, continúa. 23 | 24 |
25 | ¿Demasiados conflictos? 26 | 27 | 28 | Vamos a tomar la versión actual de `lewagon/dotfiles`. 29 | 30 | Primero aborta la merge: `git merge --abort`. 31 | 32 | Ejecuta ` .` 33 | 34 | En , abre el archivo zshrc. Reemplaza su contenido con la [versión más reciente](https://raw.githubusercontent.com/lewagon/dotfiles/master/zshrc). Luego guárdalo en el disco. 35 | 36 | Aún en , abre el archivo `zprofile`. Reemplaza su contenido con la [versión más reciente](https://raw.githubusercontent.com/lewagon/dotfiles/master/zprofile). Luego guárdalo en el disco. 37 | 38 | Regresa a la terminal y ejecuta un `git diff` y verifica que esto no haya eliminado ninguna configuración personal que quisieras conservar. 39 | 40 |
41 | 42 | Es hora de guardar tus cambios y subirlos. 43 | 44 | ```bash 45 | git add . 46 | git commit -m "Update for Data Science bootcamp" 47 | git push origin master 48 | ``` 49 | 50 |
51 | -------------------------------------------------------------------------------- /_partials/es/dotfiles_new_laptop.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | Ya hice el bootcamp de Web Development o Data Science & AI de Le Wagon pero tengo una nueva laptop 4 | 5 | 6 | Esto significa que ya has hecho el fork del repositorio GitHub lewagon/dotfiles pero tal vez la configuración para el nuevo bootcamp de Data Science & AI no estaba lista en ese momento.Actualicémoslo. **Pide a un TA que te acompañe en los siguientes pasos.** 7 | 8 | Es hora de clonarlo el repositorio en tu laptop: 9 | 10 | ```bash 11 | mkdir -p ~/code/$GITHUB_USERNAME && cd $_ 12 | gh repo clone lewagon/dotfiles 13 | ``` 14 | -------------------------------------------------------------------------------- /_partials/es/dotfiles_new_student.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | No he hecho el bootcamp de Web Development o Data Science & AI de Le Wagon 4 | 5 | 6 | Tu configuración es personal, así que necesitas tu propio repositorio para almacenarla. Primero tienes que hacer el fork del repositorio en tu cuenta GitHub. 7 | 8 | Hacer un fork significa que crearás un nuevo repositorio en tu cuenta GitHub idéntico al original. Tendrás un nuevo repositorio en tu cuenta GitHub, `your_github_username/dotfiles`. El fork es necesario porque cada uno de ustedes necesitará poner información específica (e.g. tu nombre) en esos archivos. 9 | 10 | Ejecutemos este comando para hacer un **fork** del repositorio `lewagon/dotfiles` y clonarlo: 11 | 12 | 13 | ```bash 14 | mkdir -p ~/code/$GITHUB_USERNAME && cd $_ 15 | gh repo fork lewagon/dotfiles --clone 16 | ``` 17 | 18 |
19 | -------------------------------------------------------------------------------- /_partials/es/dotfiles_same_laptop.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | Ya hice el bootcamp de Web Development o Data Science & AI de Le Wagon en la misma laptop 4 | 5 | 6 | Esto significa que ya has hecho el fork del repositorio GitHub lewagon/dotfiles pero tal vez la configuración para el nuevo bootcamp de Data Science & AI no estaba lista en ese momento. Actualicémoslo. **Pide a un TA que te acompañe en los siguientes pasos.** 7 | -------------------------------------------------------------------------------- /_partials/es/gcp_cli_setup.md: -------------------------------------------------------------------------------- 1 | 2 | ## CLI de `gcloud` 3 | 4 | Antes de configurar nuestra cuenta Google Cloud Platform vamos a configurar el CLI de `gcloud` (una interfaz de línea de comando para Google Cloud Platform). Ejecuta el siguiente código y sigue las indicaciones de la terminal para actualizar tu $PATH y habilitar la finalización del comando del shell para el archivo `.zshrc`: 5 | 6 | ```bash 7 | brew install --cask google-cloud-sdk 8 | ``` 9 | 10 | Luego podrás ejecutar lo siguiente: 11 | 12 | ```bash 13 | $(brew --prefix)/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/install.sh 14 | ``` 15 | -------------------------------------------------------------------------------- /_partials/es/gcp_setup.md: -------------------------------------------------------------------------------- 1 | ## Configuración de Google Cloud Platform 2 | 3 | [GCP](https://cloud.google.com/) es una solución en la nube que usarás para colocar tus productos basados en Machine Learning en producción. 4 | 5 | 🚨 Si estás en el grupo de estudiantes del **Bootcamp de Medio Tiempo**, ¡IGNORA ESTA SECCIÓN POR AHORA! **GCP** ofrece $300 en créditos durante 3 meses, así que no es buena idea activar tu cuenta GCP demasiado pronto 🙅‍♂️ 6 | 7 | ### Preparación del Proyecto 8 | 9 | - Ve a [Google Cloud](https://console.cloud.google.com/) y crea una cuenta si aún no tienes una 10 | - En la consola de Cloud, en la lista de proyectos, selecciona o crea un proyecto Cloud 11 | 12 | ![](images/gcp-create-project.png) 13 | 14 | - Asígnale un nombre como `Wagon Bootcamp` por ejemplo 15 | - Verás que se creará un `ID` automáticamente para el proyecto e. g. `wagon-bootcamp-123456` 16 | 17 | ![](images/gcp_project.png) 18 | 19 | ### Idioma de la cuenta 20 | 21 | Abre las preferencias en tu cuenta GCP para facilitar el seguimiento de las instrucciones durante el bootcamp: 22 | 23 | https://myaccount.google.com/language 24 | 25 | Si el *idioma de preferencia* no es: 26 | - **English** 27 | - **United States** 28 | 29 | Cámbialo a inglés: 30 | - Haz clic en el logo edición (es una lapicera) 31 | - Selecciona **English** 32 | - Selecciona **United States** 33 | - Haz clic en **Select** 34 | 35 | ### Cuenta de facturación 36 | 37 | Ahora conecta tu cuenta con tu tarjeta de crédito. Este paso es obligatorio para poder usar los servicios que suministra GCP. No te preocupes, podrás utilizar la mayoría de los servicios de GCP por medio de créditos gratuitos durante el bootcamp. 38 | 39 | ![](images/gcp-billing.png) 40 | 41 | - Haz clic en **Billing** 42 | - Haz clic en **MANAGE BILLING ACCOUNTS** 43 | - Haz clic en **ADD BILLING ACCOUNT** 44 | - Asígnale un nombre a tu cuenta de facturación, e. g. `My Billing Account` 45 | - Haz clic en "I have read..." y acepta los términos de uso 46 | - Haz clic en **CONTINUE** 47 | - Selecciona tu tipo de cuenta: `Individual` 48 | - Agrega tu nombre y dirección 49 | 50 | Verás que tienes créditos gratuitos con un valor de "$300 a utilizar en los próximos 90 días". 51 | 52 | - Haz clic en los detalles de la tarjeta 53 | - Agrega la información de tu tarjeta de crédito 54 | - Haz clic en **START MY FREE TRIAL**. Esto significa comenzar mi período de prueba. 55 | 56 | Cuando termines, verifica que la cuenta de facturación esté conectada con tu proyecto GCP. 57 | 58 | - Selecciona tu proyecto 59 | - Ve a **Billing** 60 | - Selecciona **LINK A BILLING ACCOUNT** 61 | - Selecciona `My Billing Account` 62 | - Haz clic en **SET ACCOUNT** 63 | 64 | Ahora deberías ver lo siguiente: 65 | 66 | ``` 67 | Free trial status: $300 credit and 91 days remaining - with a full account, you'll get unlimited access to all of Google Cloud Platform. 68 | ``` 69 | 70 | Esto significa Estado de período de prueba: crédito de $300 y 91 días para usarlo - con la full account, tendrás acceso ilimitado a todo lo que ofrece Google Cloud Platform. 71 | 72 |
73 | 👉 Si no tienes una tarjeta de crédito 👈 74 | 75 | 76 | Si no tienes una tarjeta de crédito, puedes abrir una cuenta en **Revolut**. 77 | Revolut es una aplicación que funciona como un banco y que te permitirá crear una tarjeta de crédito virtual conectada a la dirección de facturación de tu smartphone. 78 | 79 | Ignora este paso si ya tienes una tarjeta de crédito. Simplemente úsala para hacer la configuración. 80 | 81 | Descarga la app Revolut o ve a [revolut](https://www.revolut.com/a-radically-better-account) y sigue los pasos para descargar la app (introduce tu número de teléfono móvil y haz clic en Get Started). 82 | 83 | - Abre la app Revolut 84 | - Agrega tu número de teléfono móvil 85 | - Agrega el código de verificación que recibiste por SMS 86 | - La app te preguntará por tu país, dirección, primer y segundo nombre, fecha de nacimiento y el email 87 | - La app también te pedirá tu profesión y una selfie 88 | - La app te pedirá una foto de tu documento nacional de identidad o pasaporte 89 | 90 | Cuando termines, selecciona el plan estándar (gratuito). No tienes que agregar la tarjeta a Apple pay, pedir que te envíen una tarjeta a tu domicilio ni tampoco agregar dinero a la cuenta. 91 | 92 | Ahora tienes una tarjeta virtual que podrás usar para hacer la configuración de GCP. 93 | 94 | En la vista principal de la app Revolut 95 | - Haz clic en Ready to use 96 | - Haz clic en the card 97 | - Haz clic en Show card details 98 | - Toma nota de la información de la tarjeta de crédito virtual y úsala para completar la configuración de GCP 99 | 100 |
101 | 102 |
103 | 👉 Si recibes un email de Google diciendo "Urgent: your billing account XXXXXX-XXXXXX-XXXXXX has been suspended" 👈 104 | 105 | 106 | Esto puede pasar justo después de haber creado la cuenta en Revolut. 107 | 108 | - Haz clic en PROCEED TO VERIFICATION 109 | - Te pedirán que envíes una foto de tu tarjeta de crédito (solo los últimos 4 dígitos, nada más) 110 | - Si ya has usado **Revolut**, puedes enviar una captura de pantalla de tu tarjeta de crédito virtual (no olvides quitar la fecha de vencimiento de la captura) 111 | - Explica que estás haciendo el bootcamp de Le Wagon, que no tienes una tarjeta de crédito y que acabas de crear una cuenta en Revolut para poder configurar GCP para el bootcamp con una tarjeta de crédito virtual 112 | 113 | Es posible que te validen la cuenta pero también es posible que te pidan más información en los próximos 30 minutos. 114 | 115 | Cuando la cuenta sea validada recibirás un email diciendo lo siguiente: "Your Google Cloud Platform billing account XXXXXX-XXXXXX-XXXXXX has been fully reinstated and is ready to use.". Esto significa que tu cuenta Google Cloud Platform ha sido restablecida 116 | 117 |
118 | 119 | ### Habilitación de servicios de GCP 120 | 121 | - Asegúrate de que la facturación está habilitada para tu proyecto Google Cloud 122 | 123 | ℹ️ Tienes un **crédito de $300** para usar con recursos de Google Cloud. Esto será más que suficiente para el bootcamp. 124 | 125 | - [Habilita las APIs BigQuery y Compute Engine](https://console.cloud.google.com/flows/enableapi?apiid=bigquery,compute) (Esto puede tomar varios minutos) 126 | 127 | ### Configuración de Cloud sdk 128 | 129 | - Autentica el CLI de `gcloud` con la cuenta que usaste para GCP 130 | ```bash 131 | gcloud auth login 132 | ``` 133 | - Inicia sesión en tu cuenta Google en la nueva pestaña que se abrió en tu navegador 134 | - Lista la cuenta que tienes activa y verifica que el email que usaste para GCP está ahí 135 | ```bash 136 | gcloud auth list 137 | ``` 138 | - Define tu proyecto actual (reemplaza `PROJECT_ID` con el `ID` de tu proyecto e.g. `wagon-bootcamp-123456`) 139 | ```bash 140 | gcloud config set project PROJECT_ID 141 | ``` 142 | - Lista la cuenta que tienes activa y tu proyecto actual y verifica que tu proyecto está ahí 143 | ```bash 144 | gcloud config list 145 | ``` 146 | 147 | ### Crea una llave 🔑 de cuenta de servicio 148 | 149 | Como ya creaste una cuenta `GCP account` y un `project` (identificado por su `PROJECT_ID`), vamos a configurar las acciones (llamadas API calls) que quieres que tu código ejecute. 150 | 151 |
152 | 🤔 ¿Por qué necesitamos una clave de cuenta de servicio? 153 | 154 | 155 | Creaste una `cuenta GCP` conectada a una tarjeta de crédito. Te facturarán de acuerdo al uso que les des a los recursos de **Google Cloud Platform**. El cargo se hará si utilizas algo después de que el período de prueba gratuito se haya terminado o si te excedes del límite de consumo que te permite dicho período. 156 | 157 | En tu `cuenta GCP` has creado un solo `proyecto GCP` identificado por su `PROJECT_ID`. Los `proyectos GCP` te permiten organizar y monitorear la manera en que consumes los recursos **GCP** de forma más precisa. En este bootcamp solo crearemos un solo proyecto. 158 | 159 | Ahora necesitamos una manera de saber qué recursos nuestro código podrá consumir dentro de un `GCP project`. Nuestro código consume recursos GCP por medio de llamadas API. 160 | 161 | Ya que las llamadas API no son gratuitas, es importante definir cuidadosamente cómo nuestro código las utilizará. Sin embargo, durante el bootcamp no habrá restricciones. Le permitiremos a nuestro código que utilice todas las API **GCP** sin restricciones. 162 | 163 | Así como pueden haber varios proyectos asociados a una cuenta GCP, un proyecto puede estar compuesto de muchos servicios (cualquier paquete de código, sin importar su formato, que necesite utilizar llamadas a la API de GCP para cumplir con su propósito). 164 | 165 | GCP exige que los servicios de los proyectos que usen llamadas API se registren en la plataforma y que se configuren sus credenciales por medio del acceso concedido a una `service account`. 166 | 167 | Por ahora solo tendremos que usar un solo servicio y crearemos la `service account` correspondiente. 168 |
169 | 170 | Ya que la [service account](https://cloud.google.com/iam/docs/service-accounts) es lo que identifica tu aplicación (y por ende tu cuenta de facturación GCP y, en última instancia, tu tarjeta de crédito), lo mejor es ser cuidadoso en los próximos pasos. 171 | 172 | ⚠️ **No compartas la 🔑 del archivo json de tu cuenta de servicio** ⚠️ No la guardes en tu escritorio ni en tu código base de git (incluso si tu repositorio git es privado). Que no se te olvide en un lugar como la máquina de café y, por supuesto, no la envíes en un tweet. 173 | 174 | - Ve a la [página de las cuentas de servicio](https://console.cloud.google.com/apis/credentials/serviceaccountkey) 175 | - Selecciona tu proyecto en la lista de proyectos recientes si te piden que 176 | - Crees una cuenta de servicio: 177 | - Haz clic en **CREATE SERVICE ACCOUNT** que significa crear une cuenta de servicio: 178 | - Define un `Service account name` para esa cuenta. Esto significa Nombre de cuenta de servicio 179 | - Haz clic en **CREATE AND CONTINUE** que significa crear y continuar 180 | - Haz clic en **Select a role** que significa selecciona un rol. Escoge `Quick access/Basic` luego **Owner**. Esto otorga acceso total a todos los recursos 181 | - Haz clic en **CONTINUE** 182 | - Haz clic en **DONE** 183 | - Descarga la 🔑 del archivo json de la cuenta de servicio: 184 | - Haz clic en la cuenta de servicio recién creada 185 | - Haz clic en **KEYS** 186 | - Haz clic en **ADD KEY** y luego en **Create new key** 187 | - Selecciona **JSON** y haz clic en **CREATE** 188 | 189 | ![](images/gcp_create_key.png) 190 | 191 | El navegador acaba de guardar la 🔑 del archivo json de la cuenta de servicio en tu carpeta de descargas (el nombre se le asigna según el nombre de la cuenta de servicio. Es algo como `le-wagon-data-123456789abc.json`) 192 | -------------------------------------------------------------------------------- /_partials/es/gcp_setup_end.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | ℹ️ ¿Cómo encontrar la ruta absoluta de un archivo? 4 | Puedes arrastrar el archivo a tu terminal. 5 |
6 | 7 | **Reinicia** tu terminal y ejecuta lo siguiente: 8 | 9 | ``` bash 10 | echo $GOOGLE_APPLICATION_CREDENTIALS 11 | ``` 12 | 13 | Deberías obtener la siguiente información: 14 | 15 | ```bash 16 | /some/absolute/path/to/your/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json 17 | ``` 18 | 19 | Ahora verifica si la ruta al archivo json de tu cuenta de servicio es el correcto: 20 | 21 | ``` bash 22 | cat $(echo $GOOGLE_APPLICATION_CREDENTIALS) 23 | ``` 24 | 25 | 👉 Este comando debería mostrar el contenido del archivo json de tu cuenta de servicio. Si no es el caso, pídele ayuda a un TA 🙏 26 | 27 | Tu código y utilidades ahora pueden acceder a los recursos de tu cuenta GCP. 28 | 29 | Continuemos con los últimos pasos de la configuración... 30 | 31 | - Lista las cuentas de servicio asociadas a tu cuenta activa y a tu proyecto actual 32 | ```bash 33 | gcloud iam service-accounts list 34 | ``` 35 | - Recupera el email de la cuenta de servicio e. g. `SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com` 36 | - Lista los roles de la cuenta de servicio desde la cli (reemplaza el PROJECT_ID y el SERVICE_ACCOUNT_EMAIL) 37 | ```bash 38 | gcloud projects get-iam-policy PROJECT_ID \ 39 | --flatten="bindings[].members" \ 40 | --format='table(bindings.role)' \ 41 | --filter="bindings.members:SERVICE_ACCOUNT_EMAIL" 42 | ``` 43 | - Ahora deberías ver que tu cuenta de servicio tiene el rol de `roles/owner` 44 | 45 |
46 | Resolución de problemas 47 | 48 | - `AccessDeniedException: 403 The project to be billed is associated with an absent billing account.`. Esto significa que el proyecto a facturar está asociado a una cuenta de facturación que no está habilitada 49 | - Asegúrate de habilitar la facturación para tu proyecto https://cloud.google.com/billing/docs/how-to/modify-project 50 |
51 | 52 | 🏁 Listo. ¡Has terminado la configuración de GCP! 53 | -------------------------------------------------------------------------------- /_partials/es/gcp_setup_linux.md: -------------------------------------------------------------------------------- 1 | - Guarda el archivo json de la cuenta de servicio en un lugar que recuerdes. Por ejemplo: 2 | 3 | ``` bash 4 | /home/LINUX_USERNAME/code/GITHUB_NICKNAME/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json 5 | ``` 6 | 7 | - Guarda la **ruta absoluta** al archivo `JSON` como una variable de entorno: 8 | 9 | ``` bash 10 | echo 'export GOOGLE_APPLICATION_CREDENTIALS=/path/to/the/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json' >> ~/.aliases 11 | ``` 12 | -------------------------------------------------------------------------------- /_partials/es/gcp_setup_mid.md: -------------------------------------------------------------------------------- 1 | - Guarda el archivo json de la cuenta de servicio en un lugar que recuerdes. Por ejemplo: 2 | 3 | ``` bash 4 | /Users/MACOS_USERNAME/code/GITHUB_NICKNAME/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json 5 | ``` 6 | 7 | - Guarda la **ruta absoluta** al archivo `JSON` como una variable de entorno: 8 | 9 | ``` bash 10 | echo 'export GOOGLE_APPLICATION_CREDENTIALS=/path/to/the/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json' >> ~/.zshrc 11 | ``` 12 | **Nota:** cada vez que ejecutes este comando, agregará esta línea a tu archivo zshrc sin importar si la línea ya existe en el archivo. Si cometiste un error y necesitas arreglarlo, es preferible que abras el archivo y edites la línea! 13 | 14 | Puedes hacerlo ejecutando 15 | 16 | ```bash 17 | code ~/.zshrc 18 | ``` 19 | 20 | en la Terminal! 😄 21 | -------------------------------------------------------------------------------- /_partials/es/gcp_setup_wsl.md: -------------------------------------------------------------------------------- 1 | Ahora vamos a mover el archivo json de la cuenta de servicio desde tu disco en Windows al disco en Ubuntu. Esto le permitirá a las herramientas de desarrollo en Ubuntu acceder a los recursos de tu cuenta GCP. 2 | 3 | Primero crea un directorio para almacenar el archivo. 4 | 5 | 👉 Abre una terminal en Ubuntu y ejecuta los siguiente comandos 6 | 7 | 🚨 reemplaza el `GITHUB_NICKNAME` por tu nickname de **GitHub** 8 | 9 | ``` bash 10 | cd ~/code/GITHUB_NICKNAME 11 | ls -la 12 | ``` 13 | 14 | Si el comando no muestra el directorio `dotfiles`, pídele ayuda a un TA 🙏 15 | 16 | Si no es el caso, puedes proceder con la configuración: 17 | 18 | ``` bash 19 | mkdir gcp 20 | ``` 21 | 22 | ![](images/wsl-gcp-dir.png) 23 | 24 | Ahora moveremos el archivo json de la cuenta de servicio al directorio `gcp` que acabamos de crear. 25 | 26 | Abre un **Buscador de Archivos** de Windows (Win + E) y localiza el directorio `gcp` en el sistema de archivo de Ubuntu. 27 | 28 | Puedes optar por las siguientes alternativas: 29 | - Usar el enlace de **Acceso rápido** que creamos hace un rato 30 | - O escribir la localización del directorio `gcp` manualmente en la barra de direcciones del sistema de archivos de Ubuntu: 31 | 32 | ``` 33 | \\wsl$\Ubuntu\home\UBUNTU_USERNAME\code\GITHUB_NICKNAME 34 | ``` 35 | 36 | 37 | 🚨 Si optas por la segunda opción: 38 | - reemplaza el `UBUNTU_USERNAME` por el usuario que escogiste durante la configuración de **Ubuntu** 39 | - reemplaza el `GITHUB_NICKNAME` por tu nickname de **GitHub** 40 | 41 | ![](images/wsl-gcp-key.png) 42 | 43 | Cuando hayas localizado el directorio `gcp` en el **Buscador de Archivos** de Windows, ponle el archivo json de la cuenta de servicio que descargaste. 44 | 45 | Ahora deberías poder ver el archivo desde el sistema de archivos de Ubuntu. 46 | 47 | 👉 Abre una terminal en Ubuntu y verifica que el archivo json de la cuenta de servicio ha sido movido 48 | 49 | ``` bash 50 | cd gcp 51 | ls -la 52 | ``` 53 | 54 | ![](images/wsl-gcp-dir-2.png) 55 | 56 | Si no ves el archivo json de la cuenta de servicio en el directorio `gcp`, pídele ayuda a un TA 🙏 57 | 58 | Ahora almacenaremos la ruta al archivo json de la cuenta de servicio en una variable de entorno. 59 | 60 | 🚨 Haz las siguientes sustituciones en este comando: 61 | - El `UBUNTU_USERNAME` por el usuario que escogiste durante la configuración de **Ubuntu** 62 | - El `GITHUB_NICKNAME` por tu nickname de **GitHub** 63 | - El `SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json` por el nombre del archivo json de tu cuenta de servicio. 64 | 65 | ``` bash 66 | echo 'export GOOGLE_APPLICATION_CREDENTIALS=/home/UBUNTU_USERNAME/code/GITHUB_NICKNAME/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json' >> ~/.aliases 67 | ``` 68 | -------------------------------------------------------------------------------- /_partials/es/homebrew.md: -------------------------------------------------------------------------------- 1 | ## Homebrew 2 | ### 1. Instálalo: 3 | Si usas Mac tienes que instalar [Homebrew](http://brew.sh/) el cual es un sistema de gestión de paquetes. 4 | Será necesario cuando tengamos que instalar algún programa. 5 | Para instalarlo, abre tu Terminal y ejecuta lo siguiente: 6 | 7 | ```bash 8 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 9 | ``` 10 | 11 | Te pedirá tu confirmación (presiona `Enter`) y tu **contraseña de usuario macOS** (la que usas para [iniciar sesión](https://support.apple.com/en-gb/HT202860) cuando reinicias tu Macbook). 12 | :warning: Cuando escribas tu contraseña en la Terminal, **no** la verás (sólo verás algo como `*****`). ¡Esto es **normal**! Simplemente escribe tu contraseña y confirma presionando `Enter`. 13 | 14 |
15 | 🛠 Si aparece un Error: Not a valid ref: refs/remotes/origin/master 16 | 17 | 18 | El error completo es el siguiente: 19 | 20 | ``` bash 21 | Error: Not a valid ref: refs/remotes/origin/master : 22 | fatal: ambiguous argument 'refs/remotes/origin/master': unknown revision or path not in the working tree. 23 | ``` 24 | 25 | Ejecuta los siguientes comandos para resolverlo: 26 | 27 | ``` bash 28 | rm -fr $(brew --repo homebrew/core) # because you can't `brew untap homebrew/core` 29 | brew tap homebrew/core 30 | ``` 31 | 32 |
33 | 34 | Si ya tienes Homebrew, el sistema te lo dirá. No hay problema, así que puedes continuar. 35 | 36 | ### 2. Asegúrate de tener la versión más reciente: 37 | 38 | ```bash 39 | brew update 40 | ``` 41 | 42 |
43 | 🛠 Si aparece un error /usr/local must be writable 44 | 45 | Simplemente ejecuta lo siguiente: 46 | 47 | ``` bash 48 | sudo chown -R $USER:admin /usr/local 49 | brew update 50 | ``` 51 | 52 |
53 | 54 | ### 3. Luego instala algunos programas útiles: 55 | 56 | Ejecuta lo siguiente en la terminal (puedes copiar / pegar todas las líneas juntas una sola vez). 57 | 58 | ```bash 59 | brew upgrade git || brew install git 60 | brew upgrade gh || brew install gh 61 | brew upgrade wget || brew install wget 62 | brew upgrade imagemagick || brew install imagemagick 63 | brew upgrade jq || brew install jq 64 | brew upgrade openssl || brew install openssl 65 | brew upgrade tree || brew install tree 66 | brew upgrade ncdu || brew install ncdu 67 | brew upgrade xz || brew install xz 68 | brew upgrade readline || brew install readline 69 | ``` 70 | -------------------------------------------------------------------------------- /_partials/es/intro.md: -------------------------------------------------------------------------------- 1 | # Instrucciones para la configuración 2 | 3 | Aquí abajo encontrarás las instrucciones para configurar tu computadora para [el curso de Data Science de Le Wagon](https://www.lewagon.com/data-science-course/full-time) 4 | 5 | Por favor **léelas cuidadosamente y ejecuta todos los comandos en el siguiente orden**. Si tienes algún problema, no dudes en pedirle ayuda a una profesor :raising_hand: 6 | 7 | ¡Comencemos! :rocket: 8 | -------------------------------------------------------------------------------- /_partials/es/kata.md: -------------------------------------------------------------------------------- 1 | ## Kata (Extra) 2 | 3 | Si has terminado la configuración, te pedimos que preguntes si alguien necesita ayuda con la suya (macOS, Linux o Windows). Las primeras clases son a las 2pm. Hablaremos de la configuración que acabas de hacer y de Kitt. 4 | 5 | Si no tienes mucha experiencia con `git` y GitHub, por favor [ve nuevamente el video de este workshop](https://www.youtube.com/watch?v=Z9fIBT2NBGY) (puedes verlo a `1.25` de velocidad). 6 | 7 | Si aún te queda tiempo, puedes esperar trabajar en este [Kata de Tic-Tac-Toe](https://www.codewars.com/kata/5b817c2a0ce070ace8002be0/python) mientras esperas la primera clase. 8 | -------------------------------------------------------------------------------- /_partials/es/kitt.md: -------------------------------------------------------------------------------- 1 | ## Kitt 2 | 3 | Deberías haber recibido un correo electrónico de Le Wagon invitándote a registrarte en [Kitt](https://kitt.lewagon.com) (nuestra plataforma de aprendizaje). 4 | 5 | Entonces deberías recibir una invitación adicional de Slack, invitándote a la comunidad de los alumni de Le Wagon en slack (donde podrás chatear con tus compañeros y todos los demás alumni). Haz clic en **Join** y completa la información que te piden. 6 | 7 | Si no lo has recibido, por favor contacta a tu equipo de enseñanza. 8 | -------------------------------------------------------------------------------- /_partials/es/nbextensions.md: -------------------------------------------------------------------------------- 1 | ## Mejora Jupyter Notebook 2 | 3 | Mejora la visualización del [elemento `details` para revelación de información](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details) en tus notebooks. 4 | 5 | Ejecuta las siguientes líneas para crear una hoja de estilos `custom.css` en tu directorio de configuración de Jupyter: 6 | 7 | ```bash 8 | LOCATION=$(jupyter --config-dir)/custom 9 | SOURCE=https://raw.githubusercontent.com/lewagon/data-setup/refs/heads/master/specs/jupyter/custom.css 10 | mkdir -p $LOCATION 11 | curl $SOURCE > $LOCATION/custom.css 12 | ``` 13 | -------------------------------------------------------------------------------- /_partials/es/osx_python.md: -------------------------------------------------------------------------------- 1 | ### Instalar pre-requisitos 2 | 3 | Antes de instalar Python, por favor verifica la versión de tu extensión `xz` con: 4 | 5 | ```bash 6 | brew info xz 7 | ``` 8 | 9 | Debe ser superior a `5.2.0`. **Si no es el caso**, debes ejecutar lo siguiente: 10 | 11 | ```bash 12 | sudo rm -rf /usr/local/opt/xz 13 | brew upgrade 14 | brew install xz 15 | ``` 16 | 17 | Luego ejecuta: 18 | 19 | ```bash 20 | brew install readline 21 | ``` 22 | 23 | ### Instala `pyenv` 24 | 25 | macOS viene con una versión vieja de Python que no queremos usar. Tal vez ya hayas instalado Anaconda u otro programa para utilizar Python y paquetes de Ciencia de Datos. Si es así, no pasa nada ya que haremos una configuración profesional de Python que te permitirá cambiar de versión cuando quieras al escribir `python` en la terminal. 26 | 27 | Primero instala `pyenv` con el siguiente comando en la Terminal: 28 | 29 | ```bash 30 | brew install pyenv 31 | exec zsh 32 | ``` 33 | 34 | ### Instala Python 35 | 36 | Instala la [última versión estable de Python](https://www.python.org/doc/versions/) aceptada en el currículum de Le Wagon: 37 | 38 | ```bash 39 | pyenv install 40 | ``` 41 | 42 | Este comando puede tomar un tiempo en ejecutarse. Esto es completamente normal. ¡No dudes en ayudar a los estudiantes que estén sentados cerca de ti! 43 | 44 |
45 | 🛠 Resolución de problemas 46 | 47 | Si aparece un error durante la instalación de Python con `pyenv` y relacionada con `zlib`: 48 | 49 | ```txt 50 | zipimport.ZipImportError: can't decompress data; zlib not available 51 | ``` 52 | 53 | Instala `zlib` con lo siguiente: 54 | 55 | ```bash 56 | brew install zlib 57 | export LDFLAGS="-L/usr/local/opt/zlib/lib" 58 | export CPPFLAGS="-I/usr/local/opt/zlib/include" 59 | ``` 60 | 61 | Luego trata de instalar Python nuevamente: 62 | 63 | ```bash 64 | pyenv install 65 | ``` 66 | 67 | Es posible que aparezca otro error relacionado con `bzip2`. Esto lo puedes ignorar y continuar al paso siguiente. 68 | 69 |
70 |
71 | 72 | OK. Cuando este comando termine de ejecutarse, le diremos al sistema que use esta versión de Python **por defecto**. Esto se hace con: 73 | 74 | ```bash 75 | pyenv global 76 | exec zsh 77 | ``` 78 | 79 | Para verificar si esto ha funcionado, ejecuta `python --version`. Si ves ``, ¡todo está bien! Si no, pídele ayuda a un TA para resolver el problema por medio `pyenv versions` y `type -a python` (`python` debería estar usando la versión `.pyenv/shims` de primero). 80 | -------------------------------------------------------------------------------- /_partials/es/osx_silicon.md: -------------------------------------------------------------------------------- 1 | ## Chips Apple Silicon 2 | 3 | Si compraste tu computadora después de finales del 2020, es probable que tenga un nuevo chip Apple Silicon en lugar de un procesador Intel: descubrámoslo. 4 | 5 | Abre una nueva ventana de la tarminal desde Aplicaciones > Utilidades o búscala con [Spotlight](https://support.apple.com/es-es/HT204014): 6 | 7 | ![Abrir Terminal en macOS](images/macos_open_terminal.png) 8 | 9 | Copia y pega el siguiente comando en la terminal y presiona `Enter` para ejecutarlo. 10 | 11 | ``` bash 12 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/lewagon/setup/master/utils/macos_list_processor_type.sh)" 13 | ``` 14 | 15 | ☝️ El resultado del comando debería indicar si tu computadora usa un chip Apple Silicon. 16 | 17 | Si tu computadora usa **Apple Silicon**, expande el siguiente párrafo y ejecútalo. En caso contrario, ignóralo. 18 | 19 |
20 | 👉  Setup para Apple Silicon 👈 21 | 22 | Quieres asegurarte que no estás usando Rosetta, que es una forma de usar tu Terminal como si tuvieras una computadora con Intel. 23 | 24 | Abre la app Finder (o búscala con [Spotlight](https://support.apple.com/es-es/HT204014)). 25 | 26 | Ve a Aplicaciones > Utilidades. 27 | 28 | Ubica la app Terminal (selecciónala). 29 | 30 | Presiona `Cmd` + `I` en la app Terminal, luego verifica que la caja "Abrir usando Rosetta" esté **desmarcada**. 31 | En caso de que no veas esta caja, simplemente continúa. 32 |
33 | 34 | 🚨 Ten esto en mente. Deberás recordarlo más adelante en este setup si tu computadora usa un chip Apple Silicon o Intel. 35 | -------------------------------------------------------------------------------- /_partials/es/pip.md: -------------------------------------------------------------------------------- 1 | ### Paquetes de Python 2 | 3 | Ahora que tenemos el ambiente virtual de `lewagon` adecuado, es hora de instalarle algunos paquetes. 4 | 5 | Primero, actualiza `pip`, la herramienta para instalar Paquetes Python desde [pypi.org](https://pypi.org). Ejecuta lo siguiente en la última terminal donde esté activado el virtualenv de `lewagon`: 6 | 7 | ```bash 8 | pip install --upgrade pip 9 | ``` 10 | 11 | Ahora instala algunos paquetes para las primeras semanas del programa: 12 | 13 | $MAC_START 14 | Si tu computadora usa **Apple Silicon**, expande el párrafo de abajo y léelo. Si no es el caso, ignóralo. 15 | 16 |
17 | 👉  Configuración para Apple Silicon 👈 18 | 19 | ``` bash 20 | pip install -r https://raw.githubusercontent.com/lewagon/data-setup/master/specs/releases/apple_silicon.txt 21 | ``` 22 |
23 | 24 | Si tu computadora usa **Apple Intel**, expande el párrafo de abajo y léelo. Si no es el caso, ignóralo. 25 | 26 |
27 | 👉  Configuración para Apple Intel 👈 28 | 29 | ``` bash 30 | pip install -r https://raw.githubusercontent.com/lewagon/data-setup/master/specs/releases/apple_intel.txt 31 | ``` 32 |
33 | $MAC_END 34 | $WINDOWS_START 35 | ``` bash 36 | pip install -r https://raw.githubusercontent.com/lewagon/data-setup/master/specs/releases/linux.txt 37 | ``` 38 | $WINDOWS_END 39 | $LINUX_START 40 | ``` bash 41 | pip install -r https://raw.githubusercontent.com/lewagon/data-setup/master/specs/releases/linux.txt 42 | ``` 43 | $LINUX_END 44 | -------------------------------------------------------------------------------- /_partials/es/python_checkup.md: -------------------------------------------------------------------------------- 1 | ## Chequeo de la configuración de Python 2 | 3 | ### Chequeo de Python y packages 4 | 5 | Reinicia tu terminal: 6 | 7 | ```bash 8 | cd ~/code && exec zsh 9 | ``` 10 | 11 | Verifica tu versión de Python con los siguientes comandos: 12 | ```bash 13 | zsh -c "$(curl -fsSL )" 14 | ``` 15 | 16 | Ejecuta el comando siguiente para verificar que hayas instalado los paquetes requeridos correctamente: 17 | ```bash 18 | zsh -c "$(curl -fsSL )" 19 | ``` 20 | 21 | Ahora ejecuta el siguiente comando para verificar que puedas cargar estos paquetes: 22 | ```bash 23 | python -c "$(curl -fsSL )" 24 | ``` 25 | 26 | ### Chequeo de Jupyter 27 | 28 | Ahora verifica que puedas iniciar un servidor de notebook en tu máquina: 29 | 30 | ```bash 31 | jupyter notebook 32 | ``` 33 | 34 | Tu navegador web debería abrir en una ventana `jupyter`: 35 | 36 | ![jupyter.png](images/jupyter.png) 37 | 38 | Haz clic en `New` y, en el menú desplegable, selecciona Python 3 (ipykernel): 39 | 40 | ![jupyter_new.png](images/jupyter_new.png) 41 | 42 | Debería abrirse una pestaña en un nuevo notebook: 43 | 44 | ![jupyter_notebook.png](images/jupyter_notebook.png) 45 | 46 | Asegúrate de que estés usando la versión correcta de python en el notebook. Abre una celda y ejecuta lo siguiente: 47 | ``` python 48 | import sys; sys.version 49 | ``` 50 | 51 | Debería mostrar `` seguido de algunos detalles adicionales. Si no es así, consulta con un TA. 52 | 53 | Puedes cerrar tu navegador web y luego cerrar el servidor jupyter con `CTRL` + `C`. 54 | 55 | ¡Listo! Ya tienes un virtual env de python completo con todos los paquetes tercerizados que necesitarás en el bootcamp. 56 | -------------------------------------------------------------------------------- /_partials/es/ubuntu_docker.md: -------------------------------------------------------------------------------- 1 | ## Docker 🐋 2 | 3 | Docker es una plataforma abierta para desarrollo, entrega y operación de aplicaciones. 4 | 5 | _Si ya tienes Docker instalado en tu máquina, por favor actualízalo con la versión más reciente_ 6 | 7 | ### Instalación de Docker 8 | 9 | Ve a la [documentación de instalación de Docker](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository). 10 | 11 | Luego sigue las instrucciones del tutorial para instalar Docker **usando el repositorio**. Hay 2 pasos: 12 | 13 | 1. Set up Docker's apt repository. > Esto significa configurar el repositorio 14 | 2. Install the Docker packages. > Esto significa instalar el motor de Docker 15 | 16 | Ahora, asegurémonos de que podemos ejecutar `docker` sin `sudo`. 17 | 18 | Ejecute los siguientes comandos uno por uno: 19 | 20 | ```bash 21 | sudo groupadd docker 22 | sudo usermod -aG docker $USER 23 | newgrp docker 24 | sudo rm -rf ~/.docker/ 25 | ``` 26 | 27 | Cuando termines, podrás ejecutar lo siguiente: 28 | 29 | ```bash 30 | docker run hello-world 31 | ``` 32 | 33 | Debería aparecer el siguiente mensaje: 34 | 35 | ![](images/docker_hello.png) 36 | -------------------------------------------------------------------------------- /_partials/es/ubuntu_gcloud.md: -------------------------------------------------------------------------------- 1 | ## CLI de Google Cloud 2 | 3 | Instala la CLI de `gcloud` para comunicar con [Google Cloud Platform](https://cloud.google.com/) a través de la terminal: 4 | ```bash 5 | echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list 6 | sudo apt-get install apt-transport-https ca-certificates gnupg 7 | curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - 8 | sudo apt-get update && sudo apt-get install google-cloud-sdk 9 | sudo apt-get install google-cloud-sdk-app-engine-python 10 | ``` 11 | 👉 [Documentación para la instalación](https://cloud.google.com/sdk/docs/install#deb) 12 | -------------------------------------------------------------------------------- /_partials/es/ubuntu_python.md: -------------------------------------------------------------------------------- 1 | ### Instala `pyenv` 2 | 3 | Ubuntu viene con una versión vieja de Python que no queremos usar. Tal vez ya hayas instalado Anaconda u otro programa para utilizar Python y paquetes de Ciencia de Datos. Si es así, no pasa nada ya que haremos una configuración profesional de Python que te permitirá cambiar de versión cuando quieras al escribir `python` en la terminal. 4 | 5 | Primero instala `pyenv` con el siguiente comando en la Terminal: 6 | 7 | ```bash 8 | git clone https://github.com/pyenv/pyenv.git ~/.pyenv 9 | exec zsh 10 | ``` 11 | 12 | Instala algunas [dependencias](https://github.com/pyenv/pyenv/wiki/common-build-problems#prerequisites) necesarias para crear Python desde `pyenv`: 13 | 14 | ```bash 15 | sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \ 16 | libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ 17 | libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev \ 18 | python3-dev 19 | ``` 20 | 21 | ### Instala Python 22 | 23 | Instala la [última versión estable de Python](https://www.python.org/doc/versions/) que sea aceptada en el currículum de Le Wagon: 24 | 25 | ```bash 26 | pyenv install 27 | ``` 28 | 29 | Este comando puede tomar un tiempo en ejecutarse. Esto es completamente normal. ¡No dudes en ayudar a los estudiantes que estén sentados cerca de ti! 30 | 31 | OK. Cuando este comando termine de ejecutarse, le diremos al sistema que use esta versión de Python **por defecto**. Esto se hace con: 32 | 33 | ```bash 34 | pyenv global 35 | exec zsh 36 | ``` 37 | 38 | Para verificar que esto haya funcionado, ejecuta `python --version`. Si ves ``, ¡todo está bien! Si no, pídele ayuda a un TA para resolver el problema por medio de `versiones de pyenv` y `type -a python` (`python` debería estar usando la versión `.pyenv/shims` de primero). 39 | -------------------------------------------------------------------------------- /_partials/es/virtualenv.md: -------------------------------------------------------------------------------- 1 | ## Entorno Virtual de Python 2 | 3 | Antes de instalar paquetes de Python, aislaremos la configuración del Bootcamp en un entorno virtual **dedicado**. Usaremos un plugin `pyenv` llamado [`pyenv-virtualenv`](https://github.com/pyenv/pyenv-virtualenv). 4 | 5 | ### Instala un virtualenv 6 | 7 | Primero instala este plugin: 8 | 9 | ```bash 10 | git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv 11 | exec zsh 12 | ``` 13 | 14 | Crea el entorno virtual que usaremos durante todo el bootcamp: 15 | 16 | ```bash 17 | pyenv virtualenv lewagon 18 | ``` 19 | 20 | Define el entorno virtual con lo siguiente: 21 | 22 | ```bash 23 | pyenv global lewagon 24 | ``` 25 | 26 | ¡Genial! Ahora cada vez que queramos instalar un paquete Python, lo haremos en ese entorno. 27 | -------------------------------------------------------------------------------- /_partials/es/vscode_extensions.md: -------------------------------------------------------------------------------- 1 | ## Extensiones de VS Code 2 | 3 | ### Instalación 4 | 5 | Instala algunas extensiones útiles para VS Code. 6 | 7 | ```bash 8 | code --install-extension ms-vscode.sublime-keybindings 9 | code --install-extension emmanuelbeziat.vscode-great-icons 10 | code --install-extension MS-vsliveshare.vsliveshare 11 | code --install-extension ms-python.python 12 | code --install-extension KevinRose.vsc-python-indent 13 | code --install-extension ms-python.vscode-pylance 14 | code --install-extension ms-toolsai.jupyter 15 | ``` 16 | 17 | Aquí está la lista de las extensiones que estás instalando: 18 | - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) 19 | - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) 20 | - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) 21 | - [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) 22 | - [Python Indent](https://marketplace.visualstudio.com/items?itemName=KevinRose.vsc-python-indent) 23 | - [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) 24 | - [Jupyter](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter) 25 | -------------------------------------------------------------------------------- /_partials/es/win_docker.md: -------------------------------------------------------------------------------- 1 | ## Docker 🐋 2 | 3 | Docker es una plataforma abierta para desarrollo, entrega y operación de aplicaciones. 4 | 5 | _Si ya tienes Docker instalado en tu máquina, por favor actualízalo con la versión más reciente_ 6 | 7 | ### Instalación de Docker 8 | 9 | Ve a [Install Docker Desktop on Windows](https://docs.docker.com/docker-for-windows/wsl/). 10 | 11 | Descarga e instala el Docker Desktop. 12 | 13 | Si tienes un procesador Intel o AMD, elige la primera opción que termina con "x86_64". 14 | 15 |
16 | ¿No estás seguro de qué procesador tienes? 17 | 18 | Lo más probable es que necesites la versión `x86_64`, es decir, si tienes un procesador Intel o AMD. 19 | 20 | Si no sabes qué procesador tiene tu máquina, ejecuta `arch` en tu terminal de Ubuntu. Verifica su salida: 21 | - `x86_64`: elige la primera opción "x86_64" 22 | - `aarch64`: elige la segunda opción "Arm" 23 | 24 |
25 | 26 | 27 | Cuando termines, inicia Docker. 28 | 29 | Deberías poder usarlo en una terminal Ubuntu: 30 | 31 | ```bash 32 | docker run hello-world 33 | ``` 34 | 35 | Debería aparecer el siguiente mensaje: 36 | 37 | ![](images/docker_hello.png) 38 | 39 |
40 | Permission denied? (WSL / Ubuntu) 41 | 42 | Ejecute los siguientes comandos uno por uno: 43 | 44 | ```bash 45 | sudo groupadd docker 46 | sudo usermod -aG docker $USER 47 | newgrp docker 48 | ``` 49 | 50 | Intente `docker info` nuevamente. 51 | 52 | ¿Ve este error? 53 | 54 | ``` 55 | WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied`? 56 | ``` 57 | 58 | Ejecute el siguiente comando: 59 | 60 | ```bash 61 | sudo rm -rf ~/.docker/ 62 | ``` 63 | 64 | Intente `docker info` nuevamente. 65 | 66 |
67 | -------------------------------------------------------------------------------- /_partials/es/win_jupyter.md: -------------------------------------------------------------------------------- 1 | ### Configuración de Jupyter Notebook para abrirlo en tu navegador 2 | 3 | Genera el archivo de configuración para **Jupyter Notebook**... 4 | 5 | ``` bash 6 | jupyter notebook --generate-config 7 | ``` 8 | 9 | ⚠️ Por favor copia la ruta que arrojó el comando anterior. 10 | 11 | Ahora edita el archivo de configuración de Jupyter generado: 12 | 13 | ``` bash 14 | sed -i.backup 's/# c.ServerApp.use_redirect_file = True/c.ServerApp.use_redirect_file = False/' ~/.jupyter/jupyter_notebook_config.py 15 | ``` 16 | 17 | Intenta usar Jupyter: 18 | 19 | ``` bash 20 | jupyter notebook 21 | ``` 22 | 23 | Este comando debió haber abierto una página Jupyter en tu navegador: 24 | 25 | ![](images/wsl_jupyter_notebook.png) 26 | 27 | Si no es el caso, por favor llama a un TA. 28 | 29 | Para cerrar el servidor jupyter en la terminal, presiona `CTRL` + `C`, enter y. Luego presiona Enter. 30 | -------------------------------------------------------------------------------- /_partials/es/win_vs_redistributable.md: -------------------------------------------------------------------------------- 1 | ## Visual C++ Redistributable 2 | 3 | Algunos paquetes Python requieren de un compilador para funcionar correctamente, así que vamos a instalar uno: 4 | 5 | [For x64 systems](https://aka.ms/vs/16/release/vc_redist.x64.exe) 6 | -------------------------------------------------------------------------------- /_partials/gcp_cli_setup.md: -------------------------------------------------------------------------------- 1 | 2 | ## `gcloud` CLI 3 | 4 | Before Setting up our Google Cloud Platform account let's configure the `gcloud` CLI (A command line interface for Google Cloud Platform). Run the below and follow the terminal prompts to update your $PATH and enable shell command completion for the `.zshrc` file: 5 | 6 | ```bash 7 | brew install --cask google-cloud-sdk 8 | ``` 9 | 10 | Then you can: 11 | 12 | ```bash 13 | $(brew --prefix)/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/install.sh 14 | ``` 15 | -------------------------------------------------------------------------------- /_partials/gcp_setup_end.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | ℹ️ How to find the absolute path of a file? 4 | You can drag and drop the file in your terminal. 5 |
6 | 7 | **Restart** your terminal and run: 8 | 9 | ``` bash 10 | echo $GOOGLE_APPLICATION_CREDENTIALS 11 | ``` 12 | 13 | The ouptut should be the following: 14 | 15 | ```bash 16 | /some/absolute/path/to/your/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json 17 | ``` 18 | 19 | Now let's verify that the path to your service account json file is correct: 20 | 21 | ``` bash 22 | cat $(echo $GOOGLE_APPLICATION_CREDENTIALS) 23 | ``` 24 | 25 | 👉 This command should display the content of your service account json file. If it does not, ask for a TA 🙏 26 | 27 | Your code and utilities are now able to access the resources of your GCP account. 28 | 29 | Let's proceed with the final steps of configuration... 30 | 31 | - List the service accounts associated to your active account and current project 32 | ```bash 33 | gcloud iam service-accounts list 34 | ``` 35 | - Retrieve the service account email address, e.g. `SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com` 36 | - List the roles of the service account from the cli (replace PROJECT_ID and SERVICE_ACCOUNT_EMAIL) 37 | ```bash 38 | gcloud projects get-iam-policy PROJECT_ID \ 39 | --flatten="bindings[].members" \ 40 | --format='table(bindings.role)' \ 41 | --filter="bindings.members:SERVICE_ACCOUNT_EMAIL" 42 | ``` 43 | - You should see that your service account has a role of `roles/owner` 44 | 45 |
46 | Troubleshooting 47 | 48 | - `AccessDeniedException: 403 The project to be billed is associated with an absent billing account.` 49 | - Make sure that billing is enabled for your Google Cloud Platform project https://cloud.google.com/billing/docs/how-to/modify-project 50 |
51 | 52 | 🏁 You are done with the GCP setup! 53 | -------------------------------------------------------------------------------- /_partials/gcp_setup_linux.md: -------------------------------------------------------------------------------- 1 | - Store the service account json file somewhere you'll remember, for example: 2 | 3 | ``` bash 4 | /home/LINUX_USERNAME/code/GITHUB_NICKNAME/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json 5 | ``` 6 | 7 | - Store the **absolute path** to the `JSON` file as an environment variable: 8 | 9 | ``` bash 10 | echo 'export GOOGLE_APPLICATION_CREDENTIALS=/path/to/the/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json' >> ~/.zshrc 11 | ``` 12 | **Note:** every time you run this command, it will add this line to your zshrc file regardless of whether you already have it. If you made a mistake and need to fix it, preferably open the file and edit the line! 13 | 14 | You can do so by running 15 | 16 | ```bash 17 | code ~/.zshrc 18 | ``` 19 | 20 | in the Terminal! 😄 21 | -------------------------------------------------------------------------------- /_partials/gcp_setup_mid.md: -------------------------------------------------------------------------------- 1 | - Store the service account json file somewhere you'll remember, for example: 2 | 3 | ``` bash 4 | /Users/MACOS_USERNAME/code/GITHUB_NICKNAME/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json 5 | ``` 6 | 7 | - Store the **absolute path** to the `JSON` file as an environment variable: 8 | 9 | ``` bash 10 | echo 'export GOOGLE_APPLICATION_CREDENTIALS=/path/to/the/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json' >> ~/.zshrc 11 | ``` 12 | **Note:** every time you run this command, it will add this line to your zshrc file regardless of whether you already have it. If you made a mistake and need to fix it, preferably open the file and edit the line! 13 | 14 | You can do so by running 15 | 16 | ```bash 17 | code ~/.zshrc 18 | ``` 19 | 20 | in the Terminal! 😄 21 | -------------------------------------------------------------------------------- /_partials/gcp_setup_wsl.md: -------------------------------------------------------------------------------- 1 | We will now move the service account json file from your Windows disk to the Ubuntu disk. This will allow the development tools in Ubuntu to access to the resources of your GCP account. 2 | 3 | First, let's create a directory in which we will store the file. 4 | 5 | 👉 Open an Ubuntu terminal and run the following commands 6 | 7 | 🚨 replace `GITHUB_NICKNAME` by your **GitHub** nickname 8 | 9 | ``` bash 10 | cd ~/code/GITHUB_NICKNAME 11 | ls -la 12 | ``` 13 | 14 | If the command does not show the `dotfiles` directory, ask for a TA 🙏 15 | 16 | Otherwise, you can proceed with the setup: 17 | 18 | ``` bash 19 | mkdir gcp 20 | ``` 21 | 22 | ![](images/wsl-gcp-dir.png) 23 | 24 | We will now move the service account json file to the `gcp` directory we just created. 25 | 26 | Open a Windows **File Explorer** (Win + E) and locate the `gcp` directory in the Ubuntu file system. 27 | 28 | You can either: 29 | - Use the **Quick access** link that we created earlier 30 | - manually type the location of the `gcp` directory in the Ubuntu file system in the address bar: 31 | 32 | ``` 33 | \\wsl$\Ubuntu\home\UBUNTU_USERNAME\code\GITHUB_NICKNAME 34 | ``` 35 | 36 | 37 | 🚨 if you opt for the second option: 38 | - replace `UBUNTU_USERNAME` by the username that you choose during the **Ubuntu** setup 39 | - replace `GITHUB_NICKNAME` by your **GitHub** nickname 40 | 41 | ![](images/wsl-gcp-key.png) 42 | 43 | Once you have located the `gcp` directory in the Windows **File Explorer**, move the service account json file that you downloaded inside of it. 44 | 45 | The file should now be visible from Ubuntu file system. 46 | 47 | 👉 Open an Ubuntu terminal and verify that the service account json file has been moved 48 | 49 | ``` bash 50 | cd gcp 51 | ls -la 52 | ``` 53 | 54 | ![](images/wsl-gcp-dir-2.png) 55 | 56 | If you do not see the service account json file listed in the `gcp` directory, ask for a TA 🙏 57 | 58 | We will now store the path to your service account json file in an environment variable. 59 | 60 | 🚨 in the following command, replace: 61 | - `UBUNTU_USERNAME` by the username that you choose during the **Ubuntu** setup 62 | - `GITHUB_NICKNAME` by your **GitHub** nickname 63 | - `SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json` by the name of your service account json file 64 | 65 | ``` bash 66 | echo 'export GOOGLE_APPLICATION_CREDENTIALS=/home/UBUNTU_USERNAME/code/GITHUB_NICKNAME/gcp/SERVICE_ACCOUNT_JSON_FILE_CONTAINING_YOUR_SECRET_KEY.json' >> ~/.zshrc 67 | ``` 68 | **Note:** every time you run this command, it will add this line to your zshrc file regardless of whether you already have it. If you made a mistake and need to fix it, preferably open the file and edit the line! 69 | 70 | You can do so by running 71 | 72 | ```bash 73 | code ~/.zshrc 74 | ``` 75 | 76 | in the Terminal! 😄 77 | -------------------------------------------------------------------------------- /_partials/homebrew.md: -------------------------------------------------------------------------------- 1 | ## Homebrew 2 | ### 1. Install: 3 | On Mac, you need to install [Homebrew](http://brew.sh/) which is a Package Manager. 4 | It will be used as soon as we need to install some software. 5 | To do so, open your Terminal and run: 6 | 7 | ```bash 8 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 9 | ``` 10 | 11 | This will ask for your confirmation (hit `Enter`) and your **macOS user account password** (the one you use to [log in](https://support.apple.com/en-gb/HT202860) when you reboot your Macbook). 12 | :warning: When typing a password in the Terminal, you will **not** get a visual feedback (something like `*****`), this is **normal**!! Type the password and confirm by typing `Enter`. 13 | 14 |
15 | 🛠 If you get a Error: Not a valid ref: refs/remotes/origin/master error 16 | 17 | 18 | The full error would be: 19 | 20 | ``` bash 21 | Error: Not a valid ref: refs/remotes/origin/master : 22 | fatal: ambiguous argument 'refs/remotes/origin/master': unknown revision or path not in the working tree. 23 | ``` 24 | 25 | Run the following commands to solve it: 26 | 27 | ``` bash 28 | rm -fr $(brew --repo homebrew/core) # because you can't `brew untap homebrew/core` 29 | brew tap homebrew/core 30 | ``` 31 | 32 |
33 | 34 | If you already have Homebrew, it will tell you so, that's fine, go on. 35 | 36 | ### 2. Make sure you are on the latest version: 37 | 38 | ```bash 39 | brew update 40 | ``` 41 | 42 |
43 | 🛠 If you get a /usr/local must be writable error 44 | 45 | Just run this: 46 | 47 | ``` bash 48 | sudo chown -R $USER:admin /usr/local 49 | brew update 50 | ``` 51 | 52 |
53 | 54 | ### 3. Then install some useful software: 55 | 56 | Proceed running the following in the terminal (you can copy / paste all the lines at once). 57 | 58 | ```bash 59 | brew upgrade git || brew install git 60 | brew upgrade gh || brew install gh 61 | brew upgrade wget || brew install wget 62 | brew upgrade imagemagick || brew install imagemagick 63 | brew upgrade jq || brew install jq 64 | brew upgrade openssl || brew install openssl 65 | brew upgrade tree || brew install tree 66 | brew upgrade ncdu || brew install ncdu 67 | brew upgrade xz || brew install xz 68 | brew upgrade readline || brew install readline 69 | ``` 70 | -------------------------------------------------------------------------------- /_partials/intro.md: -------------------------------------------------------------------------------- 1 | # Setup instructions 2 | 3 | You will find below the instructions to set up you computer for [Le Wagon Data Science course](https://www.lewagon.com/data-science-course/full-time) 4 | 5 | Please **read them carefully and execute all commands in the following order**. If you get stuck, don't hesitate to ask a teacher for help :raising_hand: 6 | 7 | Let's start :rocket: 8 | -------------------------------------------------------------------------------- /_partials/kata.md: -------------------------------------------------------------------------------- 1 | ## (Bonus) Kata 2 | 3 | If you are done with your setup, please ask around if some classmates need some help with theirs (macOS, Linux, Windows). We will have our first lectures at 2pm and will talk about the Setup you just did + onboard you on Kitt. 4 | 5 | If you don't have a lot of experience with `git` and GitHub, please [(re-)watch this workshop](https://www.youtube.com/watch?v=Z9fIBT2NBGY) (`1.25` playback speed is fine). 6 | 7 | If you do, then you can wait for the first lecture working on this [Tic-Tac-Toe Kata](https://www.codewars.com/kata/5b817c2a0ce070ace8002be0/python) 8 | -------------------------------------------------------------------------------- /_partials/kitt.md: -------------------------------------------------------------------------------- 1 | ## Kitt 2 | 3 | You should have received an email from Le Wagon inviting you to sign up on [Kitt](https://kitt.lewagon.com) (our learning platform). 4 | 5 | Then you should receive an additional invitation from Slack, inviting you to the Le Wagon Alumni slack community (where you'll chat with your buddies and all the previous alumni). Click on **Join** and complete the information. 6 | 7 | If you haven't, please contact your teaching team. 8 | -------------------------------------------------------------------------------- /_partials/nbextensions.md: -------------------------------------------------------------------------------- 1 | ## Jupyter Notebook tweaking 2 | 3 | Let's improve the display of the [`details` disclosure elements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details) in your notebooks. 4 | 5 | Run the following lines to create a `custom.css` stylesheet in your Jupyter config directory: 6 | 7 | ```bash 8 | LOCATION=$(jupyter --config-dir)/custom 9 | SOURCE=https://raw.githubusercontent.com/lewagon/data-setup/refs/heads/master/specs/jupyter/custom.css 10 | mkdir -p $LOCATION 11 | curl $SOURCE > $LOCATION/custom.css 12 | ``` 13 | -------------------------------------------------------------------------------- /_partials/osx_python.md: -------------------------------------------------------------------------------- 1 | ### Install pre-requisites 2 | 3 | Before installing Python, please check your `xz` version with: 4 | 5 | ```bash 6 | brew info xz 7 | ``` 8 | 9 | It should be more than `5.2.0`, **if not** you should run: 10 | 11 | ```bash 12 | sudo rm -rf /usr/local/opt/xz 13 | brew upgrade 14 | brew install xz 15 | ``` 16 | 17 | Then run: 18 | 19 | ```bash 20 | brew install readline 21 | ``` 22 | 23 | ### Install `pyenv` 24 | 25 | macOS comes with an outdated version of Python that we don't want to use. You might already have installed Anaconda or something else to tinker with Python and Data Science packages. All of this does not really matter as we are going to do a professional setup of Python where you'll be able to switch which version you want to use whenever you type `python` in the terminal. 26 | 27 | First let's install `pyenv` with the following Terminal command: 28 | 29 | ```bash 30 | brew install pyenv 31 | exec zsh 32 | ``` 33 | 34 | ### Install Python 35 | 36 | Let's install the [latest stable version of Python](https://www.python.org/doc/versions/) supported by Le Wagon's curriculum: 37 | 38 | ```bash 39 | pyenv install 40 | ``` 41 | 42 | This command might take a while, this is perfectly normal. Don't hesitate to help other students seated next to you! 43 | 44 |
45 | 🛠 Troubleshooting `pyenv` not found 46 | 47 | If you encounter an error `Command 'pyenv' not found`: execute the following line: 48 | 49 | ```bash 50 | source ~/.zprofile 51 | ``` 52 | 53 | Then try to install Python again: 54 | 55 | ```bash 56 | pyenv install 57 | ``` 58 | 59 | If `pyenv` is still not found, contact a teacher. 60 | 61 |
62 | 63 | 64 |
65 | 🛠 Troubleshooting `zlib` 66 | 67 | If you encounter an error installing Python with `pyenv` about `zlib`: 68 | 69 | ```txt 70 | zipimport.ZipImportError: can't decompress data; zlib not available 71 | ``` 72 | 73 | Install `zlib` with: 74 | 75 | ```bash 76 | brew install zlib 77 | export LDFLAGS="-L/usr/local/opt/zlib/lib" 78 | export CPPFLAGS="-I/usr/local/opt/zlib/include" 79 | ``` 80 | 81 | Then try to install Python again: 82 | 83 | ```bash 84 | pyenv install 85 | ``` 86 | 87 | It could raise another error about `bzip2`, you can ignore it and continue to the next step. 88 | 89 |
90 |
91 | 92 | OK once this command is complete, we are going to tell the system to use this version of Python **by default**. This is done with: 93 | 94 | ```bash 95 | pyenv global 96 | exec zsh 97 | ``` 98 | 99 | To check if this worked, run `python --version`. If you see ``, perfect! If not, ask a TA that will help you debug the problem thanks to `pyenv versions` and `type -a python` (`python` should be using the `.pyenv/shims` version first). 100 | -------------------------------------------------------------------------------- /_partials/osx_silicon.md: -------------------------------------------------------------------------------- 1 | ## Apple Silicon Chips 2 | 3 | If you bought your computer after late 2020, chances are it has a new Apple silicon chip instead of an Intel processor: let's find out. 4 | 5 | Open a new terminal window from Applications > Utilities or search for it with [Spotlight](https://support.apple.com/en-gb/HT204014): 6 | 7 | ![Open Terminal on macOS](images/macos_open_terminal.png) 8 | 9 | Copy-paste the following command in the terminal and hit `Enter` to execute. 10 | 11 | ``` bash 12 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/lewagon/setup/master/utils/macos_list_processor_type.sh)" 13 | ``` 14 | 15 | ☝️ The result of the command should indicate whether your computer uses Apple Silicon. 16 | 17 | If your computer uses **Apple Silicon**, expand the paragraph below and go through it. Otherwise ignore it. 18 | 19 |
20 | 👉  Setup for Apple Silicon 👈 21 | 22 | You want to make sure that you are **not using** Rosetta, which is a way to use your Terminal as if you had an Intel computer. 23 | 24 | Open the Finder app (or search for it with [Spotlight](https://support.apple.com/en-gb/HT204014)). 25 | 26 | Go to Applications > Utilities. 27 | 28 | Locate the Terminal app (select it). 29 | 30 | Press `Cmd` + `I` on the Terminal app, then verify that the box "Open using Rosetta" is **unchecked**. 31 | In case you don't see this box, just continue. 32 |
33 | 34 | 🚨 Keep this in mind. You will need to remember later on in the setup whether your computer uses an Apple Silicon chip or is an Apple Intel version 35 | -------------------------------------------------------------------------------- /_partials/pip.md: -------------------------------------------------------------------------------- 1 | ### Python packages 2 | 3 | Now that we have a pristine `lewagon` virtual environment, it's time to install some packages in it. 4 | 5 | First, let's upgrade `pip`, the tool to install Python Packages from [pypi.org](https://pypi.org). In the latest terminal where the virtualenv `lewagon` is activated, run: 6 | 7 | ```bash 8 | pip install --upgrade pip 9 | ``` 10 | 11 | Then let's install some packages for the first weeks of the program: 12 | 13 | $MAC_START 14 | If your computer uses **Apple Silicon**, expand the paragraph below and go through it. Otherwise ignore it. 15 | 16 |
17 | 👉  Setup for Apple Silicon 👈 18 | 19 | ``` bash 20 | pip install -r https://raw.githubusercontent.com/lewagon/data-setup/master/specs/releases/apple_silicon.txt 21 | ``` 22 |
23 | 24 | If your computer uses **Apple Intel**, expand the paragraph below and go through it. Otherwise ignore it. 25 | 26 |
27 | 👉  Setup for Apple Intel 👈 28 | 29 | ``` bash 30 | pip install -r https://raw.githubusercontent.com/lewagon/data-setup/master/specs/releases/apple_intel.txt 31 | ``` 32 |
33 | $MAC_END 34 | $WINDOWS_START 35 | ``` bash 36 | pip install -r https://raw.githubusercontent.com/lewagon/data-setup/master/specs/releases/linux.txt 37 | ``` 38 | $WINDOWS_END 39 | $LINUX_START 40 | ``` bash 41 | pip install -r https://raw.githubusercontent.com/lewagon/data-setup/master/specs/releases/linux.txt 42 | ``` 43 | $LINUX_END 44 | -------------------------------------------------------------------------------- /_partials/python_checkup.md: -------------------------------------------------------------------------------- 1 | ## Python setup check 2 | 3 | ### Python and packages check 4 | 5 | Let's reset your terminal: 6 | 7 | ```bash 8 | cd ~/code && exec zsh 9 | ``` 10 | 11 | Check your Python version with the following commands: 12 | ```bash 13 | zsh -c "$(curl -fsSL )" 14 | ``` 15 | 16 | Run the following command to check if you successfully installed the required packages: 17 | ```bash 18 | zsh -c "$(curl -fsSL )" 19 | ``` 20 | 21 | Now run the following command to check if you can load these packages: 22 | ```bash 23 | python -c "$(curl -fsSL )" 24 | ``` 25 | 26 | ### Jupyter check 27 | 28 | Make sure you can run Jupyter: 29 | 30 | ```bash 31 | jupyter notebook 32 | ``` 33 | 34 | Your web browser should open on a `jupyter` window: 35 | 36 | ![jupyter.png](images/jupyter.png) 37 | 38 | Click on `New` and in the dropdown menu select `Python 3 (ipykernel)`: 39 | 40 | ![jupyter_new.png](images/jupyter_new.png) 41 | 42 | A tab should open on a new notebook: 43 | 44 | ![jupyter_notebook.png](images/jupyter_notebook.png) 45 | 46 | Make sure that you are running the correct python version in the notebook. Open a cell and run: 47 | ``` python 48 | import sys; sys.version 49 | ``` 50 | 51 | It should output `` followed by some more details. If not, check with a TA. 52 | 53 | You can close your web browser then terminate the jupyter server with `CTRL` + `C`. 54 | 55 | Here you have it! A complete python virtual env with all the third-party packages you'll need for the whole bootcamp. 56 | -------------------------------------------------------------------------------- /_partials/ubuntu_docker.md: -------------------------------------------------------------------------------- 1 | ## Docker 🐋 2 | 3 | Docker is an open platform for developing, shipping, and running applications. 4 | 5 | _if you already have Docker installed on your machine please update with the latest version_ 6 | 7 | ### Install Docker 8 | 9 | Go to [Docker install documentation](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository). 10 | 11 | Then follow the tutorial instructions to install Docker **using the repository**. There are 2 steps: 12 | 13 | 1. Set up Docker's apt repository. 14 | 2. Install the Docker packages. 15 | 16 | Now, let's make sure we can run `docker` without `sudo`. 17 | 18 | Run the following commands one by one: 19 | 20 | ```bash 21 | sudo groupadd docker 22 | sudo usermod -aG docker $USER 23 | newgrp docker 24 | sudo rm -rf ~/.docker/ 25 | ``` 26 | 27 | When finished, run the following command: 28 | 29 | ```bash 30 | docker run hello-world 31 | ``` 32 | 33 | The following message should print: 34 | 35 | ![](images/docker_hello.png) 36 | -------------------------------------------------------------------------------- /_partials/ubuntu_gcloud.md: -------------------------------------------------------------------------------- 1 | ## Google Cloud CLI 2 | 3 | Install the `gcloud` CLI to communicate with [Google Cloud Platform](https://cloud.google.com/) through your terminal: 4 | ```bash 5 | echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list 6 | sudo apt-get install apt-transport-https ca-certificates gnupg 7 | curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - 8 | sudo apt-get update && sudo apt-get install google-cloud-sdk 9 | sudo apt-get install google-cloud-sdk-app-engine-python 10 | ``` 11 | 👉 [Install documentation](https://cloud.google.com/sdk/docs/install#deb) 12 | -------------------------------------------------------------------------------- /_partials/ubuntu_python.md: -------------------------------------------------------------------------------- 1 | ### Install `pyenv` 2 | 3 | Ubuntu comes with an outdated version of Python that we don't want to use. You might already have installed Anaconda or something else to tinker with Python and Data Science packages. All of this does not really matter as we are going to do a professional setup of Python where you'll be able to switch which version you want to use whenever you type `python` in the terminal. 4 | 5 | First let's install `pyenv` with the following Terminal command: 6 | 7 | ```bash 8 | git clone https://github.com/pyenv/pyenv.git ~/.pyenv 9 | exec zsh 10 | ``` 11 | 12 | Let's install some [dependencies](https://github.com/pyenv/pyenv/wiki/common-build-problems#prerequisites) needed to build Python from `pyenv`: 13 | 14 | ```bash 15 | sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \ 16 | libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ 17 | libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev \ 18 | python3-dev 19 | ``` 20 | 21 | ### Install Python 22 | 23 | Let's install the [latest stable version of Python](https://www.python.org/doc/versions/) supported by Le Wagon's curriculum: 24 | 25 | ```bash 26 | pyenv install 27 | ``` 28 | 29 | This command might take a while, this is perfectly normal. Don't hesitate to help other students seated next to you! 30 | 31 |
32 | 🛠 Troubleshooting `pyenv` not found 33 | 34 | If you encounter an error `Command 'pyenv' not found`: execute the following line: 35 | 36 | ```bash 37 | source ~/.zprofile 38 | ``` 39 | 40 | Then try to install Python again: 41 | 42 | ```bash 43 | pyenv install 44 | ``` 45 | 46 | If `pyenv` is still not found, contact a teacher. 47 | 48 |
49 |
50 | 51 | 52 | OK once this command is complete, we are going to tell the system to use this version of Python **by default**. This is done with: 53 | 54 | ```bash 55 | pyenv global 56 | exec zsh 57 | ``` 58 | 59 | To check if this worked, run `python --version`. If you see ``, perfect! If not, ask a TA that will help you debug the problem thanks to `pyenv versions` and `type -a python` (`python` should be using the `.pyenv/shims` version first). 60 | -------------------------------------------------------------------------------- /_partials/virtualenv.md: -------------------------------------------------------------------------------- 1 | ## Python Virtual Environment 2 | 3 | Before we start installing relevant Python packages, we will isolate the setup for the Bootcamp into a **dedicated** virtual environment. We will use a `pyenv` plugin called [`pyenv-virtualenv`](https://github.com/pyenv/pyenv-virtualenv). 4 | 5 | ### Setup a virtualenv 6 | 7 | First let's install this plugin: 8 | 9 | ```bash 10 | git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv 11 | exec zsh 12 | ``` 13 | 14 | Let's create the virtual environment we are going to use during the whole bootcamp: 15 | 16 | ```bash 17 | pyenv virtualenv lewagon 18 | ``` 19 | 20 | Let's now set the virtual environment with: 21 | 22 | ```bash 23 | pyenv global lewagon 24 | ``` 25 | 26 | Great! Anytime we'll install Python package, we'll do it in that environment. 27 | -------------------------------------------------------------------------------- /_partials/vscode_extensions.md: -------------------------------------------------------------------------------- 1 | ## VS Code Extensions 2 | 3 | ### Installation 4 | 5 | Let's install some useful extensions to VS Code. 6 | 7 | ```bash 8 | code --install-extension ms-vscode.sublime-keybindings 9 | code --install-extension emmanuelbeziat.vscode-great-icons 10 | code --install-extension MS-vsliveshare.vsliveshare 11 | code --install-extension ms-python.python 12 | code --install-extension KevinRose.vsc-python-indent 13 | code --install-extension ms-python.vscode-pylance 14 | code --install-extension ms-toolsai.jupyter 15 | ``` 16 | 17 | Here is a list of the extensions you are installing: 18 | - [Sublime Text Keymap and Settings Importer](https://marketplace.visualstudio.com/items?itemName=ms-vscode.sublime-keybindings) 19 | - [VSCode Great Icons](https://marketplace.visualstudio.com/items?itemName=emmanuelbeziat.vscode-great-icons) 20 | - [Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) 21 | - [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) 22 | - [Python Indent](https://marketplace.visualstudio.com/items?itemName=KevinRose.vsc-python-indent) 23 | - [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) 24 | - [Jupyter](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter) 25 | -------------------------------------------------------------------------------- /_partials/win_docker.md: -------------------------------------------------------------------------------- 1 | ## Docker 🐋 2 | 3 | Docker is an open platform for developing, shipping, and running applications. 4 | 5 | _if you already have Docker installed on your machine please update with the latest version_ 6 | 7 | ### Install Docker 8 | 9 | Go to [Install Docker Desktop on Windows](https://docs.docker.com/docker-for-windows/wsl/). 10 | 11 | Download and install Docker Desktop. 12 | 13 | If you have an Intel or AMD processor, choose the first option ending with "x86_64". 14 | 15 |
16 | Not sure which processor you have? 17 | 18 | Most probably you'll need the `x86_64`version, that is if you have an Intel or AMD processor. 19 | 20 | If you don't know which processor your machine has, run `arch` in your Ubuntu terminal. Check its output: 21 | - `x86_64`: choose the first option "x86_64" 22 | - `aarch64`: choose the second option "Arm" 23 | 24 |
25 | 26 | 27 | Once done, start Docker. 28 | 29 | You should be able to run in a Ubuntu terminal: 30 | 31 | ```bash 32 | docker run hello-world 33 | ``` 34 | 35 | The following message should print: 36 | 37 | ![](images/docker_hello.png) 38 | 39 |
40 | Permission denied? 41 | 42 | Run the following commands one by one: 43 | 44 | ```bash 45 | sudo groupadd docker 46 | sudo usermod -aG docker $USER 47 | newgrp docker 48 | ``` 49 | 50 | Try `docker run hello-world` again. 51 | 52 | Seeing this error? 53 | ``` 54 | WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied`? 55 | ``` 56 | 57 | Run the following command: 58 | 59 | ```bash 60 | sudo rm -rf ~/.docker/ 61 | ``` 62 | 63 | Try `docker run hello-world` again. 64 | 65 |
66 | -------------------------------------------------------------------------------- /_partials/win_jupyter.md: -------------------------------------------------------------------------------- 1 | 2 | ### Configuring Jupyter Notebook to open in your browser 3 | 4 | Let's generate the configuration file for **Jupyter Notebook**... 5 | 6 | ``` bash 7 | jupyter notebook --generate-config 8 | ``` 9 | 10 | We will now edit the generated Jupyter configuration file: 11 | 12 | ``` bash 13 | sed -i.backup 's/# c.ServerApp.use_redirect_file = True/c.ServerApp.use_redirect_file = False/' ~/.jupyter/jupyter_notebook_config.py 14 | ``` 15 | 16 | Let's try to run Jupyter: 17 | 18 | ``` bash 19 | jupyter notebook 20 | ``` 21 | 22 | This command should have opened a Jupyter page in your browser: 23 | 24 | ![](images/wsl_jupyter_notebook.png) 25 | 26 | If it is not the case, please call a TA. 27 | 28 | To stop the Jupyter server in the terminal, press `Ctrl` + `C`, enter y, then press Enter. 29 | -------------------------------------------------------------------------------- /_partials/win_vs_redistributable.md: -------------------------------------------------------------------------------- 1 | ## Visual C++ Redistributable 2 | 3 | Some Python packages require a compiler to function properly. Let's install one: 4 | 5 | [For x64 systems](https://aka.ms/vs/16/release/vc_redist.x64.exe) 6 | -------------------------------------------------------------------------------- /_sublime_text.md: -------------------------------------------------------------------------------- 1 | 2 | ## find in files exclusion pattern 3 | 4 | ``` bash 5 | -macos*.md,-ubuntu*.md,-windows*.md,-keep_current.md,-*_keep_current.md,-_partials/cn/*.md,-_partials/es/*.md,-_partials/fr/*.md 6 | ``` 7 | -------------------------------------------------------------------------------- /build.rb: -------------------------------------------------------------------------------- 1 | require 'open-uri' 2 | #!/usr/bin/env ruby -wU 3 | CONSTANTS = { 4 | 'PYTHON_VERSION' => '3.12.9', 5 | 'PYTHON_CHECKER_URL' => 'https://raw.githubusercontent.com/lewagon/data-setup/master/checks/python_checker.sh', 6 | 'PIP_CHECKER_URL' => 'https://raw.githubusercontent.com/lewagon/data-setup/master/checks/pip_check.sh', 7 | 'PIP_LOADER_URL' => 'https://raw.githubusercontent.com/lewagon/data-setup/master/checks/pip_check.py', 8 | 'CODE_EDITOR' => 'VS Code', 9 | 'CODE_EDITOR_CMD' => 'code' 10 | } 11 | 12 | # NOTE(ssaunier): This script needs https://github.com/lewagon/setup to be cloned as well 13 | MAC_OS = %w[ 14 | intro 15 | setup/github 16 | osx_silicon 17 | setup/macos_command_line_tools 18 | homebrew 19 | chrome 20 | setup/macos_vscode 21 | vscode_extensions 22 | setup/oh_my_zsh 23 | direnv 24 | setup/gh_cli 25 | dotfiles 26 | dotfiles_new_student 27 | dotfiles_new_laptop 28 | dotfiles_merge_upstream 29 | dotfiles_same_laptop 30 | dotfiles_merge_upstream 31 | dotfiles_installer 32 | conda_uninstall 33 | osx_python 34 | virtualenv 35 | pip 36 | nbextensions 37 | python_checkup 38 | dbeaver 39 | docker 40 | gcp_cli_setup 41 | gcp_setup 42 | gcp_setup_mid 43 | gcp_setup_end 44 | kitt 45 | setup/macos_slack 46 | setup/slack_settings 47 | setup/macos_settings 48 | kata 49 | ].freeze 50 | 51 | MAC_OS_KC = %w[ 52 | keep_current 53 | python_checkup 54 | ].freeze 55 | 56 | WINDOWS = %w[ 57 | intro 58 | setup/github 59 | setup/windows_version 60 | setup/windows_virtualization 61 | setup/windows_wsl 62 | setup/windows_ubuntu 63 | chrome 64 | setup/windows_vscode 65 | setup/windows_terminal 66 | vscode_extensions 67 | setup/cli_tools 68 | setup/oh_my_zsh 69 | setup/windows_browser 70 | direnv 71 | setup/gh_cli 72 | ubuntu_gcloud 73 | dotfiles 74 | dotfiles_new_student 75 | dotfiles_new_laptop 76 | dotfiles_merge_upstream 77 | dotfiles_same_laptop 78 | dotfiles_merge_upstream 79 | dotfiles_installer 80 | setup/ssh_agent 81 | conda_uninstall 82 | ubuntu_python 83 | virtualenv 84 | pip 85 | nbextensions 86 | win_jupyter 87 | python_checkup 88 | dbeaver 89 | setup/windows_settings 90 | win_vs_redistributable 91 | win_docker 92 | gcp_setup 93 | gcp_setup_wsl 94 | gcp_setup_end 95 | kitt 96 | setup/windows_slack 97 | setup/slack_settings 98 | kata 99 | ].freeze 100 | 101 | WINDOWS_KC = %w[ 102 | keep_current 103 | python_checkup 104 | ].freeze 105 | 106 | LINUX = %w[ 107 | intro 108 | setup/github 109 | setup/ubuntu_vscode 110 | vscode_extensions 111 | setup/cli_tools 112 | chrome 113 | setup/oh_my_zsh 114 | direnv 115 | setup/gh_cli 116 | ubuntu_gcloud 117 | dotfiles 118 | dotfiles_new_student 119 | dotfiles_new_laptop 120 | dotfiles_merge_upstream 121 | dotfiles_same_laptop 122 | dotfiles_merge_upstream 123 | dotfiles_installer 124 | setup/ssh_agent 125 | conda_uninstall 126 | ubuntu_python 127 | virtualenv 128 | pip 129 | nbextensions 130 | python_checkup 131 | dbeaver 132 | ubuntu_docker 133 | gcp_setup 134 | gcp_setup_linux 135 | gcp_setup_end 136 | kitt 137 | setup/ubuntu_slack 138 | setup/slack_settings 139 | kata 140 | ] 141 | 142 | LINUX_KC = %w[ 143 | keep_current 144 | python_checkup 145 | ] 146 | 147 | VM = %w[ 148 | intro 149 | chrome 150 | setup/github 151 | de_setup/ssh_key 152 | de_setup/gcp_setup 153 | de_setup/virtual_machine 154 | de_setup/win_vscode 155 | de_setup/vscode_remote_ssh 156 | vscode_extensions 157 | setup/cli_tools 158 | setup/oh_my_zsh 159 | direnv 160 | setup/gh_cli 161 | de_setup/ubuntu_gcloud 162 | de_setup/gcp_setup_linux 163 | dotfiles 164 | dotfiles_new_student 165 | dotfiles_new_laptop 166 | dotfiles_merge_upstream 167 | dotfiles_same_laptop 168 | dotfiles_merge_upstream 169 | dotfiles_installer 170 | de_setup/zsh_default_terminal 171 | setup/ssh_agent 172 | ubuntu_python 173 | virtualenv 174 | pip 175 | nbextensions 176 | python_checkup 177 | dbeaver 178 | ubuntu_docker 179 | kitt 180 | setup/windows_slack 181 | setup/slack_settings 182 | kata 183 | ] 184 | 185 | LOCALES = ["", "es"] # english + spanish locales 186 | 187 | FILENAMES = { 188 | "WINDOWS" => ["WINDOWS", WINDOWS], 189 | "macOS" => ["macOS", MAC_OS], 190 | "LINUX" => ["LINUX", LINUX], 191 | "WINDOWS_keep_current" => ["WINDOWS", WINDOWS_KC], 192 | "macOS_keep_current" => ["macOS", MAC_OS_KC], 193 | "LINUX_keep_current" => ["LINUX", LINUX_KC], 194 | "VM" => ["VM", VM] 195 | } 196 | 197 | DELIMITERS = { 198 | "WINDOWS" => ["\\$WINDOWS_START\n", "\\$WINDOWS_END\n"], 199 | "macOS" => ["\\$MAC_START\n", "\\$MAC_END\n"], 200 | "LINUX" => ["\\$LINUX_START\n", "\\$LINUX_END\n"], 201 | "VM" => ["\\$LINUX_START\n", "\\$LINUX_END\n"] 202 | } 203 | 204 | def load_partial(partial, locale) 205 | match_setup = partial.match(/setup\/(?[0-9a-z_]+)/) 206 | match_de_setup = partial.match(/de_setup\/(?[0-9a-z_]+)/) 207 | if match_de_setup 208 | partial = match_de_setup[:partial] 209 | elsif match_setup 210 | partial = match_setup[:partial] 211 | end 212 | partial = File.join(locale, partial) unless locale.empty? 213 | file = File.join("_partials", "#{partial}.md") 214 | if match_de_setup 215 | content = URI.open(File.join("https://raw.githubusercontent.com/lewagon/data-engineering-setup/main", file)) 216 | .read 217 | # replace data-setup repo relative path by data-engineering-setup repo URL 218 | image_paths = content.scan(/\!\[.*\]\((.*)\)/).flatten 219 | image_paths.each { |ip| content.gsub!(ip, "https://github.com/lewagon/data-engineering-setup/blob/main/#{ip}")} 220 | # alternative image format 221 | image_paths = content.scan(/src="(images\/.*)"/).flatten 222 | image_paths.each { |ip| content.gsub!(ip, "https://github.com/lewagon/data-engineering-setup/blob/main/#{ip}")} 223 | elsif match_setup 224 | content = URI.open(File.join("https://raw.githubusercontent.com/lewagon/setup/master", file)) 225 | .read 226 | # replace data-setup repo relative path by setup repo URL 227 | image_paths = content.scan(/\!\[.*\]\((.*)\)/).flatten 228 | image_paths.each { |ip| content.gsub!(ip, "https://github.com/lewagon/setup/blob/master/#{ip}")} 229 | else 230 | content = File.read(file, encoding: "utf-8") 231 | end 232 | return content 233 | end 234 | 235 | # load partials 236 | loaded = FILENAMES.map { |filename, (os_name, partials)| partials }.flatten.uniq 237 | loaded = loaded.map { |partial| LOCALES.map { |locale| [partial, locale]} }.flatten(1) 238 | loaded = loaded.map { |partial, locale| ["#{partial}.#{locale}", load_partial(partial, locale)] }.to_h 239 | 240 | # write files 241 | LOCALES.each do |locale| 242 | FILENAMES.each do |filename, (os_name, partials)| 243 | filename += ".#{locale}" unless locale.empty? 244 | filename += ".md" 245 | File.open(filename, "w:utf-8") do |f| 246 | partials.each do |partial| 247 | content = loaded["#{partial}.#{locale}"].clone 248 | # remove the OS dependant blocks 249 | removed_blocks = DELIMITERS.keys - [os_name] 250 | removed_blocks = removed_blocks - ["LINUX"] if os_name == "VM" 251 | removed_blocks = removed_blocks - ["VM"] if os_name == "LINUX" 252 | removed_blocks.each do |block| 253 | delimiter_start, delimiter_end = DELIMITERS[block] 254 | pattern = "#{delimiter_start}(.|\n)*?(?", value) 263 | end 264 | f << content 265 | f << "\n\n" 266 | end 267 | end 268 | end 269 | end 270 | -------------------------------------------------------------------------------- /checks/pip_check.py: -------------------------------------------------------------------------------- 1 | print('Loading pandas...') 2 | import pandas as pd 3 | df = pd.DataFrame({'pandas':['OK']}) 4 | df.shape 5 | print('✅ pandas OK') 6 | print('Loading Scikit-learn...') 7 | from sklearn.decomposition import PCA 8 | pca = PCA() 9 | print('✅ Scikit-learn OK') 10 | print('Loading TensorFlow...') 11 | from tensorflow.keras import Sequential, layers 12 | model = Sequential() 13 | model.add(layers.Input(shape=(4,))) 14 | model.add(layers.Dense(10, activation='relu')) 15 | model.add(layers.Dense(1, activation='linear')) 16 | model.summary() 17 | print('✅ TensorFlow OK') 18 | -------------------------------------------------------------------------------- /checks/pip_check.sh: -------------------------------------------------------------------------------- 1 | REQUIRED=('pytest' 'pylint' 'ipdb' 'PyYAML' 'nbresult' 'lxml' 'requests' 'beautifulsoup4' 'jupyterlab' 'pandas' 'matplotlib' 'seaborn' 'plotly' 'scikit-learn' 'tensorflow' 'nbconvert' 'xgboost' 'statsmodels') 2 | PACKAGES=$(pip freeze) 3 | PACKS=() 4 | while read -r line; do 5 | PACKS+=("$line") 6 | done <<< "$PACKAGES" 7 | missing=() 8 | arch_name="$(uname -m)" 9 | if [[ $OSTYPE == 'darwin'* ]] 10 | then 11 | if [ "${arch_name}" = "x86_64" ]; then 12 | if [ "$(sysctl -in sysctl.proc_translated)" = "1" ]; then 13 | arch_name='m1' 14 | fi 15 | elif [ "${arch_name}" = "arm64" ]; then 16 | arch_name='m1' 17 | fi 18 | fi 19 | for r in ${REQUIRED[@]}; do 20 | echo $r 21 | present=0 22 | for p in ${PACKS[@]}; do 23 | if (($present == 0)); then 24 | q=${p//==[0-9|\.]*/} 25 | if [ $r = ${q} ]; then 26 | present=1 27 | fi 28 | fi 29 | done 30 | if (($present == 0)) 31 | then 32 | missing+=($r) 33 | fi 34 | done 35 | if (( ${#missing[@]} )); then 36 | sentence='❌ Some packages are missing: ' 37 | sentence+=$missing 38 | echo $sentence 39 | echo '👉 Ask a TA for help to check your python setup.' 40 | echo ' Note to TAs: First thing to do: redo the Python packages step of the instructions.' 41 | exit 1 42 | else 43 | echo '✅ Everything is fine, continue the setup instructions.' 44 | fi 45 | -------------------------------------------------------------------------------- /checks/python_checker.sh: -------------------------------------------------------------------------------- 1 | my_python_version=$(python -V) 2 | if [[ $my_python_version = *$0* ]];then 3 | echo "✅ Your Python version OK." 4 | else 5 | echo "❌ Your Python version is $my_python_version but it should be $0." 6 | exit 1 7 | fi 8 | -------------------------------------------------------------------------------- /confs.rb: -------------------------------------------------------------------------------- 1 | 2 | require 'yaml' 3 | 4 | # read package conf 5 | specs_path = File.join('specs', 'base', 'packages.yml') 6 | 7 | package_confs = YAML.load_file(specs_path) 8 | 9 | python_version = package_confs["python"] 10 | glovebox = package_confs["glovebox"] 11 | setup = package_confs["setup"] 12 | platform = package_confs["platform"] 13 | modules = package_confs["modules"] 14 | 15 | full_mods = modules.values.flatten 16 | 17 | confs = { 18 | glovebox: glovebox, 19 | apple_intel: glovebox + setup + full_mods + platform["apple_intel"], 20 | apple_silicon: glovebox + setup + full_mods + platform["apple_silicon"], 21 | linux: glovebox + setup + full_mods + platform["linux"], 22 | } 23 | 24 | # write python version 25 | python_path = File.join('specs', 'releases', 'python_version.txt') 26 | 27 | File.open(python_path, 'w') { |file| file.write("#{python_version}\n") } 28 | 29 | # write generated conf files 30 | confs.each do |conf, packages| 31 | 32 | # build conf requirement path 33 | conf_raw_path = File.join('specs', 'constraintless', "#{conf}.txt") 34 | conf_path = File.join('specs', 'generated', "#{conf}.txt") 35 | 36 | File.open(conf_raw_path, 'w') do |file_raw| 37 | File.open(conf_path, 'w') do |file| 38 | 39 | # write packages 40 | packages.each do |package| 41 | 42 | next if package.nil? 43 | 44 | raw_package = package.gsub(/<.*/, '').gsub(/<=.*/, '') 45 | .gsub(/>.*/, '').gsub(/>=.*/, '').gsub(/==.*/, '') 46 | 47 | file.write("#{package}\n") 48 | file_raw.write("#{raw_package}\n") 49 | 50 | end 51 | 52 | end 53 | end 54 | 55 | end 56 | -------------------------------------------------------------------------------- /git-prompt.sh: -------------------------------------------------------------------------------- 1 | PS1='\[\033]0;$TITLEPREFIX:$PWD\007\]' # set window title 2 | # PS1="$PS1"'\n' # new line 3 | # PS1="$PS1"'\[\033[32m\]' # change to green 4 | # PS1="$PS1"'\u@\h ' # user@host 5 | # PS1="$PS1"'\[\033[35m\]' # change to purple 6 | # PS1="$PS1"'$MSYSTEM ' # show MSYSTEM 7 | PS1="$PS1"'\[\033[33m\]' # change to brownish yellow 8 | PS1="$PS1"'\w' # current working directory 9 | if test -z "$WINELOADERNOEXEC" 10 | then 11 | GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)" 12 | COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}" 13 | COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}" 14 | COMPLETION_PATH="$COMPLETION_PATH/share/git/completion" 15 | if test -f "$COMPLETION_PATH/git-prompt.sh" 16 | then 17 | . "$COMPLETION_PATH/git-completion.bash" 18 | . "$COMPLETION_PATH/git-prompt.sh" 19 | PS1="$PS1"'\[\033[36m\]' # change color to cyan 20 | PS1="$PS1"'`__git_ps1`' # bash function 21 | fi 22 | fi 23 | PS1="$PS1"'\[\033[0m\]' # change color 24 | # PS1="$PS1"'\n' # new line 25 | PS1="$PS1"' $ ' # prompt: always $ 26 | -------------------------------------------------------------------------------- /images/apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/apple.png -------------------------------------------------------------------------------- /images/docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/docker.png -------------------------------------------------------------------------------- /images/docker_hello.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/docker_hello.png -------------------------------------------------------------------------------- /images/docker_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/docker_info.png -------------------------------------------------------------------------------- /images/gcp-billing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/gcp-billing.png -------------------------------------------------------------------------------- /images/gcp-create-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/gcp-create-project.png -------------------------------------------------------------------------------- /images/gcp_create_key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/gcp_create_key.png -------------------------------------------------------------------------------- /images/gcp_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/gcp_project.png -------------------------------------------------------------------------------- /images/jupyter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/jupyter.png -------------------------------------------------------------------------------- /images/jupyter_nbextensions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/jupyter_nbextensions.png -------------------------------------------------------------------------------- /images/jupyter_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/jupyter_new.png -------------------------------------------------------------------------------- /images/jupyter_notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/jupyter_notebook.png -------------------------------------------------------------------------------- /images/linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/linux.png -------------------------------------------------------------------------------- /images/macos_open_terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/macos_open_terminal.png -------------------------------------------------------------------------------- /images/nbextensions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/nbextensions.png -------------------------------------------------------------------------------- /images/vm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/vm.png -------------------------------------------------------------------------------- /images/windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/windows.png -------------------------------------------------------------------------------- /images/wsl-gcp-dir-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/wsl-gcp-dir-2.png -------------------------------------------------------------------------------- /images/wsl-gcp-dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/wsl-gcp-dir.png -------------------------------------------------------------------------------- /images/wsl-gcp-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/wsl-gcp-key.png -------------------------------------------------------------------------------- /images/wsl_jupyter_notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lewagon/data-setup/4391546174ee4452742840d3e74c71ac2472693d/images/wsl_jupyter_notebook.png -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | name = "data-setup" 2 | version = "0.2.0" 3 | -------------------------------------------------------------------------------- /specs/jupyter/custom.css: -------------------------------------------------------------------------------- 1 | /* Custom CSS for Jupyter Notebook 2 | 3 | Should go into ~/.jupyter/custom/custom.css 4 | 5 | Only impacts the Jupyter Notebook interface, not VS Code for example 6 | */ 7 | 8 | 9 | /* Prettify disclosure elements used for hints and solutions 10 | - Use same color as cell editor background 11 | - Add padding and margin to make it look like a card 12 | - Make the summary element bold 13 | - Add a marker to the summary element 14 | */ 15 | 16 | details { 17 | padding: 5px 10px 5px; 18 | margin-bottom: 1em; 19 | } 20 | 21 | details[open]{ 22 | } 23 | 24 | body[data-jp-theme-light=true] details { 25 | background-color: var(--jp-cell-editor-background); 26 | } 27 | 28 | body[data-jp-theme-light=false] details { 29 | background-color: var(--jp-cell-editor-background); 30 | } 31 | 32 | summary { 33 | cursor: pointer; 34 | display: list-item; 35 | font-weight: bold; 36 | background-color: var(--jp-cell-editor-background); 37 | } 38 | 39 | summary::marker { 40 | font-size: 1em; 41 | } 42 | 43 | details > p { 44 | margin-top: 5px !important; 45 | margin-bottom: 0 !important; 46 | } 47 | 48 | /* Reference for future use 49 | */ 50 | 51 | body[data-jp-theme-light=true] .jp-InputArea-editor { 52 | /* To change code and markdown input cells in light mode */ 53 | } 54 | 55 | body[data-jp-theme-light=false] .jp-InputArea-editor { 56 | /* To change code and markdown input cells in dark mode */ 57 | } 58 | -------------------------------------------------------------------------------- /specs/releases/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## files 3 | 4 | files generated from https://github.com/lewagon/utils/blob/master/data-setup/process/base/requirements.txt 5 | 6 | apple_intel 7 | apple_silicon from this release this refers to a native silicon setup (without using rosetta i386) 8 | glovebox 9 | linux 10 | python_version 11 | -------------------------------------------------------------------------------- /specs/releases/apple_intel.txt: -------------------------------------------------------------------------------- 1 | absl-py==2.1.0 2 | annotated-types==0.7.0 3 | anyio==4.8.0 4 | appnope==0.1.4 5 | argon2-cffi-bindings==21.2.0 6 | argon2-cffi==23.1.0 7 | arrow==1.3.0 8 | astroid==3.3.8 9 | asttokens==3.0.0 10 | astunparse==1.6.3 11 | async-lru==2.0.4 12 | attrs==25.1.0 13 | babel==2.17.0 14 | beautifulsoup4==4.13.3 15 | black==25.1.0 16 | bleach==6.2.0 17 | certifi==2025.1.31 18 | cffi==1.17.1 19 | charset-normalizer==3.4.1 20 | click==8.1.8 21 | comm==0.2.2 22 | contourpy==1.3.1 23 | cycler==0.12.1 24 | cython==3.0.12 25 | dacite==1.9.2 26 | debugpy==1.8.12 27 | decorator==5.2.0 28 | defusedxml==0.7.1 29 | dill==0.3.9 30 | dm-tree==0.1.8 31 | docstring-parser==0.16 32 | etils==1.12.0 33 | executing==2.2.0 34 | fastjsonschema==2.21.1 35 | filelock==3.17.0 36 | flatbuffers==25.2.10 37 | fonttools==4.56.0 38 | fqdn==1.5.1 39 | fsspec==2025.2.0 40 | gast==0.6.0 41 | gensim==4.3.3 42 | google-pasta==0.2.0 43 | googleapis-common-protos==1.68.0 44 | graphviz==0.20.3 45 | grpcio==1.70.0 46 | h11==0.14.0 47 | h5py==3.13.0 48 | htmlmin==0.1.12 49 | httpcore==1.0.7 50 | httpx==0.28.1 51 | huggingface-hub==0.29.1 52 | idna==3.10 53 | imagehash==4.3.1 54 | imageio==2.37.0 55 | imbalanced-learn==0.13.0 56 | imblearn==0.0 57 | immutabledict==4.2.1 58 | importlib-resources==6.5.2 59 | iniconfig==2.0.0 60 | ipdb==0.13.13 61 | ipykernel==6.29.5 62 | ipympl==0.9.6 63 | ipython==8.32.0 64 | ipywidgets==8.1.5 65 | isoduration==20.11.0 66 | isort==6.0.0 67 | jedi==0.19.2 68 | jinja2==3.1.5 69 | joblib==1.4.2 70 | json5==0.10.0 71 | jsonpointer==3.0.0 72 | jsonschema-specifications==2024.10.1 73 | jsonschema==4.23.0 74 | jupyter-client==8.6.3 75 | jupyter-core==5.7.2 76 | jupyter-events==0.12.0 77 | jupyter-lsp==2.2.5 78 | jupyter-server-terminals==0.5.3 79 | jupyter-server==2.15.0 80 | jupyterlab-code-formatter==3.0.2 81 | jupyterlab-execute-time==3.2.0 82 | jupyterlab-pygments==0.3.0 83 | jupyterlab-server==2.27.3 84 | jupyterlab-widgets==3.0.13 85 | jupyterlab==4.3.5 86 | kagglehub==0.3.9 87 | keras-hub==0.19.0 88 | keras-nlp==0.19.0 89 | keras==3.8.0 90 | kiwisolver==1.4.8 91 | lazy-loader==0.4 92 | libclang==18.1.1 93 | lxml==5.3.1 94 | markdown-it-py==3.0.0 95 | markdown==3.7 96 | markupsafe==3.0.2 97 | matplotlib-inline==0.1.7 98 | matplotlib==3.10.0 99 | mccabe==0.7.0 100 | mdurl==0.1.2 101 | memoized-property==1.0.3 102 | mistune==3.1.2 103 | ml-dtypes==0.3.2 104 | mpmath==1.3.0 105 | multimethod==1.12 106 | mypy-extensions==1.0.0 107 | namex==0.0.8 108 | narwhals==1.27.1 109 | nbclient==0.10.2 110 | nbconvert==7.16.6 111 | nbformat==5.10.4 112 | nbresult==0.1.1 113 | nest-asyncio==1.6.0 114 | networkx==3.4.2 115 | nltk==3.9.1 116 | notebook-shim==0.2.4 117 | notebook==7.3.2 118 | numpy==1.26.4 119 | opt-einsum==3.4.0 120 | optree==0.14.0 121 | overrides==7.7.0 122 | packaging==24.2 123 | pandas==2.2.3 124 | pandocfilters==1.5.1 125 | parso==0.8.4 126 | pathspec==0.12.1 127 | patsy==1.0.1 128 | pexpect==4.9.0 129 | phik==0.12.4 130 | pillow==11.1.0 131 | platformdirs==4.3.6 132 | plotly==6.0.0 133 | pluggy==1.5.0 134 | pmdarima==2.0.4 135 | prometheus-client==0.21.1 136 | promise==2.3 137 | prompt-toolkit==3.0.50 138 | protobuf==4.25.6 139 | psutil==7.0.0 140 | ptyprocess==0.7.0 141 | pure-eval==0.2.3 142 | pyarrow==19.0.1 143 | pycparser==2.22 144 | pydantic-core==2.27.2 145 | pydantic==2.10.6 146 | pygments==2.19.1 147 | pylint==3.3.4 148 | pyparsing==3.2.1 149 | pytesseract==0.3.13 150 | pytest==8.3.4 151 | python-dateutil==2.9.0.post0 152 | python-json-logger==3.2.1 153 | pytz==2025.1 154 | pywavelets==1.8.0 155 | pyyaml==6.0.2 156 | pyzmq==26.2.1 157 | referencing==0.36.2 158 | regex==2024.11.6 159 | requests==2.32.3 160 | rfc3339-validator==0.1.4 161 | rfc3986-validator==0.1.1 162 | rich==13.9.4 163 | rpds-py==0.23.1 164 | sacremoses==0.1.1 165 | safetensors==0.5.2 166 | scikit-image==0.25.2 167 | scikit-learn==1.6.1 168 | scipy==1.13.1 169 | seaborn==0.13.2 170 | send2trash==1.8.3 171 | sentencepiece==0.2.0 172 | setuptools==75.8.0 173 | simple-parsing==0.1.7 174 | six==1.17.0 175 | sklearn-compat==0.1.3 176 | smart-open==7.1.0 177 | sniffio==1.3.1 178 | soupsieve==2.6 179 | stack-data==0.6.3 180 | statsmodels==0.14.4 181 | sympy==1.13.1 182 | tabulate==0.9.0 183 | tensorboard-data-server==0.7.2 184 | tensorboard==2.16.2 185 | tensorflow-datasets==4.9.7 186 | tensorflow-metadata==1.16.1 187 | tensorflow==2.16.2 188 | termcolor==2.5.0 189 | terminado==0.18.1 190 | tf-keras==2.16.0 191 | threadpoolctl==3.5.0 192 | tifffile==2025.2.18 193 | tinycss2==1.4.0 194 | tokenizers==0.21.0 195 | toml==0.10.2 196 | tomlkit==0.13.2 197 | torch==2.2.0 198 | tornado==6.4.2 199 | tqdm==4.67.1 200 | traitlets==5.14.3 201 | transformers==4.49.0 202 | typeguard==4.4.2 203 | types-python-dateutil==2.9.0.20241206 204 | typing-extensions==4.12.2 205 | tzdata==2025.1 206 | unidecode==1.3.8 207 | uri-template==1.3.0 208 | urllib3==2.3.0 209 | visions==0.7.6 210 | wcwidth==0.2.13 211 | webcolors==24.11.1 212 | webencodings==0.5.1 213 | websocket-client==1.8.0 214 | werkzeug==3.1.3 215 | wheel==0.45.1 216 | widgetsnbextension==4.0.13 217 | wordcloud==1.9.4 218 | wrapt==1.17.2 219 | xgboost==2.1.4 220 | ydata-profiling==4.12.2 221 | zipp==3.21.0 222 | -------------------------------------------------------------------------------- /specs/releases/apple_silicon.txt: -------------------------------------------------------------------------------- 1 | absl-py==2.1.0 2 | annotated-types==0.7.0 3 | anyio==4.8.0 4 | appnope==0.1.4 5 | argon2-cffi-bindings==21.2.0 6 | argon2-cffi==23.1.0 7 | arrow==1.3.0 8 | astroid==3.3.8 9 | asttokens==3.0.0 10 | astunparse==1.6.3 11 | async-lru==2.0.4 12 | attrs==25.1.0 13 | babel==2.17.0 14 | beautifulsoup4==4.13.3 15 | black==25.1.0 16 | bleach==6.2.0 17 | certifi==2025.1.31 18 | cffi==1.17.1 19 | charset-normalizer==3.4.1 20 | click==8.1.8 21 | comm==0.2.2 22 | contourpy==1.3.1 23 | cycler==0.12.1 24 | cython==3.0.12 25 | dacite==1.9.2 26 | debugpy==1.8.12 27 | decorator==5.2.0 28 | defusedxml==0.7.1 29 | dill==0.3.9 30 | dm-tree==0.1.8 31 | docstring-parser==0.16 32 | etils==1.12.0 33 | executing==2.2.0 34 | fastjsonschema==2.21.1 35 | filelock==3.17.0 36 | flatbuffers==25.2.10 37 | fonttools==4.56.0 38 | fqdn==1.5.1 39 | fsspec==2025.2.0 40 | gast==0.6.0 41 | gensim==4.3.3 42 | google-pasta==0.2.0 43 | googleapis-common-protos==1.68.0 44 | graphviz==0.20.3 45 | grpcio==1.70.0 46 | h11==0.14.0 47 | h5py==3.13.0 48 | htmlmin==0.1.12 49 | httpcore==1.0.7 50 | httpx==0.28.1 51 | huggingface-hub==0.29.1 52 | idna==3.10 53 | imagehash==4.3.1 54 | imageio==2.37.0 55 | imbalanced-learn==0.13.0 56 | imblearn==0.0 57 | immutabledict==4.2.1 58 | importlib-resources==6.5.2 59 | iniconfig==2.0.0 60 | ipdb==0.13.13 61 | ipykernel==6.29.5 62 | ipympl==0.9.6 63 | ipython==8.32.0 64 | ipywidgets==8.1.5 65 | isoduration==20.11.0 66 | isort==6.0.0 67 | jedi==0.19.2 68 | jinja2==3.1.5 69 | joblib==1.4.2 70 | json5==0.10.0 71 | jsonpointer==3.0.0 72 | jsonschema-specifications==2024.10.1 73 | jsonschema==4.23.0 74 | jupyter-client==8.6.3 75 | jupyter-core==5.7.2 76 | jupyter-events==0.12.0 77 | jupyter-lsp==2.2.5 78 | jupyter-server-terminals==0.5.3 79 | jupyter-server==2.15.0 80 | jupyterlab-code-formatter==3.0.2 81 | jupyterlab-execute-time==3.2.0 82 | jupyterlab-pygments==0.3.0 83 | jupyterlab-server==2.27.3 84 | jupyterlab-widgets==3.0.13 85 | jupyterlab==4.3.5 86 | kagglehub==0.3.9 87 | keras-hub==0.19.0 88 | keras-nlp==0.19.0 89 | keras==3.8.0 90 | kiwisolver==1.4.8 91 | lazy-loader==0.4 92 | libclang==18.1.1 93 | lxml==5.3.1 94 | markdown-it-py==3.0.0 95 | markdown==3.7 96 | markupsafe==3.0.2 97 | matplotlib-inline==0.1.7 98 | matplotlib==3.10.0 99 | mccabe==0.7.0 100 | mdurl==0.1.2 101 | memoized-property==1.0.3 102 | mistune==3.1.2 103 | ml-dtypes==0.3.2 104 | mpmath==1.3.0 105 | multimethod==1.12 106 | mypy-extensions==1.0.0 107 | namex==0.0.8 108 | narwhals==1.27.1 109 | nbclient==0.10.2 110 | nbconvert==7.16.6 111 | nbformat==5.10.4 112 | nbresult==0.1.1 113 | nest-asyncio==1.6.0 114 | networkx==3.4.2 115 | nltk==3.9.1 116 | notebook-shim==0.2.4 117 | notebook==7.3.2 118 | numpy==1.26.4 119 | opt-einsum==3.4.0 120 | optree==0.14.0 121 | overrides==7.7.0 122 | packaging==24.2 123 | pandas==2.2.3 124 | pandocfilters==1.5.1 125 | parso==0.8.4 126 | pathspec==0.12.1 127 | patsy==1.0.1 128 | pexpect==4.9.0 129 | phik==0.12.4 130 | pillow==11.1.0 131 | platformdirs==4.3.6 132 | plotly==6.0.0 133 | pluggy==1.5.0 134 | pmdarima==2.0.4 135 | prometheus-client==0.21.1 136 | promise==2.3 137 | prompt-toolkit==3.0.50 138 | protobuf==4.25.6 139 | psutil==7.0.0 140 | ptyprocess==0.7.0 141 | pure-eval==0.2.3 142 | pyarrow==19.0.1 143 | pycparser==2.22 144 | pydantic-core==2.27.2 145 | pydantic==2.10.6 146 | pygments==2.19.1 147 | pylint==3.3.4 148 | pyparsing==3.2.1 149 | pytesseract==0.3.13 150 | pytest==8.3.4 151 | python-dateutil==2.9.0.post0 152 | python-json-logger==3.2.1 153 | pytz==2025.1 154 | pywavelets==1.8.0 155 | pyyaml==6.0.2 156 | pyzmq==26.2.1 157 | referencing==0.36.2 158 | regex==2024.11.6 159 | requests==2.32.3 160 | rfc3339-validator==0.1.4 161 | rfc3986-validator==0.1.1 162 | rich==13.9.4 163 | rpds-py==0.23.1 164 | sacremoses==0.1.1 165 | safetensors==0.5.2 166 | scikit-image==0.25.2 167 | scikit-learn==1.6.1 168 | scipy==1.13.1 169 | seaborn==0.13.2 170 | send2trash==1.8.3 171 | sentencepiece==0.2.0 172 | setuptools==75.8.0 173 | simple-parsing==0.1.7 174 | six==1.17.0 175 | sklearn-compat==0.1.3 176 | smart-open==7.1.0 177 | sniffio==1.3.1 178 | soupsieve==2.6 179 | stack-data==0.6.3 180 | statsmodels==0.14.4 181 | sympy==1.13.1 182 | tabulate==0.9.0 183 | tensorboard-data-server==0.7.2 184 | tensorboard==2.16.2 185 | tensorflow-datasets==4.9.7 186 | tensorflow-metadata==1.16.1 187 | tensorflow==2.16.2 188 | termcolor==2.5.0 189 | terminado==0.18.1 190 | tf-keras==2.16.0 191 | threadpoolctl==3.5.0 192 | tifffile==2025.2.18 193 | tinycss2==1.4.0 194 | tokenizers==0.21.0 195 | toml==0.10.2 196 | tomlkit==0.13.2 197 | torch==2.6.0 198 | tornado==6.4.2 199 | tqdm==4.67.1 200 | traitlets==5.14.3 201 | transformers==4.49.0 202 | typeguard==4.4.2 203 | types-python-dateutil==2.9.0.20241206 204 | typing-extensions==4.12.2 205 | tzdata==2025.1 206 | unidecode==1.3.8 207 | uri-template==1.3.0 208 | urllib3==2.3.0 209 | visions==0.7.6 210 | wcwidth==0.2.13 211 | webcolors==24.11.1 212 | webencodings==0.5.1 213 | websocket-client==1.8.0 214 | werkzeug==3.1.3 215 | wheel==0.45.1 216 | widgetsnbextension==4.0.13 217 | wordcloud==1.9.4 218 | wrapt==1.17.2 219 | xgboost==2.1.4 220 | ydata-profiling==4.12.2 221 | zipp==3.21.0 222 | -------------------------------------------------------------------------------- /specs/releases/certification.txt: -------------------------------------------------------------------------------- 1 | absl-py==1.3.0 2 | altair==4.2.0 3 | anyio==3.6.2 4 | argon2-cffi==21.3.0 5 | argon2-cffi-bindings==21.2.0 6 | astroid==2.11.7 7 | asttokens==2.0.8 8 | astunparse==1.6.3 9 | attrs==22.1.0 10 | autopep8==1.6.0 11 | Babel==2.10.3 12 | backcall==0.2.0 13 | beautifulsoup4==4.11.1 14 | bleach==5.0.1 15 | blinker==1.5 16 | branca==0.5.0 17 | cachetools==5.2.0 18 | certifi==2022.9.24 19 | cffi==1.15.1 20 | charset-normalizer==2.1.1 21 | click==8.1.3 22 | cloudpickle==2.2.0 23 | colorama==0.4.5 24 | commonmark==0.9.1 25 | cycler==0.11.0 26 | Cython==0.29.32 27 | dask==2022.7.1 28 | db-dtypes==1.0.4 29 | deap==1.3.3 30 | debugpy==1.6.3 31 | decorator==5.1.1 32 | defusedxml==0.7.1 33 | dill==0.3.6 34 | entrypoints==0.4 35 | etils==0.8.0 36 | executing==1.1.1 37 | fastjsonschema==2.16.2 38 | flake8==4.0.1 39 | flatbuffers==22.9.24 40 | folium==0.12.1.post1 41 | fonttools==4.38.0 42 | fsspec==2022.10.0 43 | gast==0.4.0 44 | gensim==4.2.0 45 | gitdb==4.0.9 46 | GitPython==3.1.29 47 | google-api-core==2.10.2 48 | google-auth==2.13.0 49 | google-auth-oauthlib==0.4.6 50 | google-cloud-bigquery==2.34.4 51 | google-cloud-bigquery-storage==2.16.2 52 | google-cloud-core==2.3.2 53 | google-cloud-storage==2.4.0 54 | google-crc32c==1.5.0 55 | google-pasta==0.2.0 56 | google-resumable-media==2.4.0 57 | google-trans-new==1.1.9 58 | googleapis-common-protos==1.56.4 59 | grpcio==1.50.0 60 | grpcio-status==1.48.2 61 | h11==0.12.0 62 | h5py==3.7.0 63 | htmlmin==0.1.12 64 | httpcore==0.15.0 65 | httpx==0.23.0 66 | idna==3.4 67 | ImageHash==4.3.1 68 | imageio==2.22.2 69 | imbalanced-learn==0.9.1 70 | imblearn==0.0 71 | importlib-metadata==5.0.0 72 | importlib-resources==5.10.0 73 | iniconfig==1.1.1 74 | ipdb==0.13.9 75 | ipykernel==6.15.3 76 | ipympl==0.9.2 77 | ipython==8.5.0 78 | ipython-genutils==0.2.0 79 | ipywidgets==7.7.2 80 | isort==5.10.1 81 | jedi==0.18.1 82 | Jinja2==3.1.2 83 | joblib==1.1.1 84 | json5==0.9.10 85 | jsonschema==4.16.0 86 | jupyter-contrib-core==0.4.0 87 | jupyter-contrib-nbextensions==0.5.1 88 | jupyter-highlight-selected-word==0.2.0 89 | jupyter-latex-envs==1.4.6 90 | jupyter-nbextensions-configurator==0.5.0 91 | jupyter-resource-usage==0.6.3 92 | jupyter-server==1.21.0 93 | jupyter_client==7.4.3 94 | jupyter_core==4.11.2 95 | jupyterlab==3.4.8 96 | jupyterlab-pygments==0.2.2 97 | jupyterlab-widgets==1.1.1 98 | jupyterlab_server==2.16.1 99 | kaggle==1.5.12 100 | keras==2.10.0 101 | Keras-Preprocessing==1.1.2 102 | kiwisolver==1.4.4 103 | lazy-object-proxy==1.7.1 104 | libclang==14.0.6 105 | locket==1.0.0 106 | lxml==4.9.1 107 | Markdown==3.4.1 108 | MarkupSafe==2.1.1 109 | matplotlib==3.5.3 110 | matplotlib-inline==0.1.6 111 | mccabe==0.6.1 112 | memoized-property==1.0.3 113 | missingno==0.5.1 114 | mistune==0.8.4 115 | multimethod==1.8 116 | nbclassic==0.4.7 117 | nbclient==0.7.0 118 | nbconvert==6.5.4 119 | nbformat==5.7.0 120 | nbresult==0.1.0 121 | nest-asyncio==1.5.6 122 | networkx==2.8.7 123 | nltk==3.7 124 | notebook==6.4.12 125 | notebook_shim==0.2.0 126 | numpy==1.23.4 127 | oauthlib==3.2.2 128 | opt-einsum==3.3.0 129 | packaging==21.3 130 | pandas==1.4.4 131 | pandas-gbq==0.17.9 132 | pandas-profiling==3.3.0 133 | pandocfilters==1.5.0 134 | parso==0.8.3 135 | partd==1.3.0 136 | patsy==0.5.3 137 | pexpect==4.8.0 138 | phik==0.12.2 139 | pickleshare==0.7.5 140 | Pillow==9.1.1 141 | platformdirs==2.5.2 142 | plotly==5.9.0 143 | pluggy==1.0.0 144 | pmdarima==2.0.1 145 | prometheus-client==0.15.0 146 | promise==2.3 147 | prompt-toolkit==3.0.31 148 | proto-plus==1.22.1 149 | protobuf==3.19.6 150 | psutil==5.9.3 151 | psycopg2-binary==2.9.4 152 | ptyprocess==0.7.0 153 | pure-eval==0.2.2 154 | py==1.11.0 155 | pyarrow==8.0.0 156 | pyasn1==0.4.8 157 | pyasn1-modules==0.2.8 158 | pycodestyle==2.8.0 159 | pycparser==2.21 160 | pydantic==1.9.2 161 | pydata-google-auth==1.4.0 162 | pydeck==0.8.0b4 163 | pyflakes==2.4.0 164 | Pygments==2.13.0 165 | pylint==2.14.5 166 | Pympler==1.0.1 167 | pyparsing==3.0.9 168 | pyrsistent==0.18.1 169 | pytest==7.1.3 170 | pytest-asyncio==0.19.0 171 | python-dateutil==2.8.2 172 | python-dotenv==0.20.0 173 | python-slugify==6.1.2 174 | pytz==2022.1 175 | pytz-deprecation-shim==0.1.0.post0 176 | PyWavelets==1.4.1 177 | PyYAML==5.4.1 178 | pyzmq==24.0.1 179 | regex==2022.9.13 180 | requests==2.28.1 181 | requests-oauthlib==1.3.1 182 | rfc3986==1.5.0 183 | rich==12.6.0 184 | rsa==4.9 185 | scikit-image==0.19.3 186 | scikit-learn==1.1.2 187 | scipy==1.8.1 188 | seaborn==0.11.2 189 | semver==2.13.0 190 | Send2Trash==1.8.0 191 | setuptools-scm==6.4.2 192 | six==1.16.0 193 | smart-open==6.2.0 194 | smmap==5.0.0 195 | sniffio==1.3.0 196 | soupsieve==2.3.2.post1 197 | stack-data==0.5.1 198 | statsmodels==0.13.2 199 | stopit==1.1.2 200 | streamlit==1.11.1 201 | tangled-up-in-unicode==0.2.0 202 | tenacity==8.1.0 203 | tensorboard==2.10.1 204 | tensorboard-data-server==0.6.1 205 | tensorboard-plugin-wit==1.8.1 206 | tensorflow==2.10.0 207 | tensorflow-datasets==4.6.0 208 | tensorflow-estimator==2.10.0 209 | tensorflow-io-gcs-filesystem==0.27.0 210 | tensorflow-metadata==1.10.0 211 | termcolor==2.0.1 212 | terminado==0.16.0 213 | text-unidecode==1.3 214 | threadpoolctl==3.1.0 215 | tifffile==2022.10.10 216 | tinycss2==1.2.1 217 | toml==0.10.2 218 | tomli==2.0.1 219 | tomlkit==0.11.5 220 | toolz==0.12.0 221 | tornado==6.2 222 | TPOT==0.11.7 223 | tqdm==4.64.1 224 | traitlets==5.5.0 225 | typing_extensions==4.4.0 226 | tzdata==2022.5 227 | tzlocal==4.2 228 | update-checker==0.18.0 229 | urllib3==1.26.12 230 | validators==0.20.0 231 | visions==0.7.5 232 | watchdog==2.1.9 233 | wcwidth==0.2.5 234 | webencodings==0.5.1 235 | websocket-client==1.4.1 236 | Werkzeug==2.2.2 237 | widgetsnbextension==3.6.1 238 | wrapt==1.14.1 239 | xgboost==1.6.2 240 | XlsxWriter==3.0.3 241 | yapf==0.32.0 242 | zipp==3.10.0 243 | -------------------------------------------------------------------------------- /specs/releases/glovebox.txt: -------------------------------------------------------------------------------- 1 | astroid==3.3.8 2 | asttokens==3.0.0 3 | beautifulsoup4==4.13.3 4 | black==25.1.0 5 | certifi==2025.1.31 6 | charset-normalizer==3.4.1 7 | click==8.1.8 8 | decorator==5.2.0 9 | dill==0.3.9 10 | executing==2.2.0 11 | idna==3.10 12 | iniconfig==2.0.0 13 | ipdb==0.13.13 14 | ipython==8.32.0 15 | isort==6.0.0 16 | jedi==0.19.2 17 | lxml==5.3.1 18 | matplotlib-inline==0.1.7 19 | mccabe==0.7.0 20 | memoized-property==1.0.3 21 | mypy-extensions==1.0.0 22 | nbresult==0.1.1 23 | numpy==1.26.4 24 | packaging==24.2 25 | pandas==2.2.3 26 | parso==0.8.4 27 | pathspec==0.12.1 28 | pexpect==4.9.0 29 | platformdirs==4.3.6 30 | pluggy==1.5.0 31 | prompt-toolkit==3.0.50 32 | ptyprocess==0.7.0 33 | pure-eval==0.2.3 34 | pygments==2.19.1 35 | pylint==3.3.4 36 | pytest==8.3.4 37 | python-dateutil==2.9.0.post0 38 | pytz==2025.1 39 | pyyaml==6.0.2 40 | requests==2.32.3 41 | six==1.17.0 42 | soupsieve==2.6 43 | stack-data==0.6.3 44 | tomlkit==0.13.2 45 | traitlets==5.14.3 46 | typing-extensions==4.12.2 47 | tzdata==2025.1 48 | urllib3==2.3.0 49 | wcwidth==0.2.13 50 | -------------------------------------------------------------------------------- /specs/releases/linux.txt: -------------------------------------------------------------------------------- 1 | absl-py==2.1.0 2 | annotated-types==0.7.0 3 | anyio==4.8.0 4 | argon2-cffi-bindings==21.2.0 5 | argon2-cffi==23.1.0 6 | array-record==0.6.0 7 | arrow==1.3.0 8 | astroid==3.3.8 9 | asttokens==3.0.0 10 | astunparse==1.6.3 11 | async-lru==2.0.4 12 | attrs==25.1.0 13 | babel==2.17.0 14 | beautifulsoup4==4.13.3 15 | black==25.1.0 16 | bleach==6.2.0 17 | certifi==2025.1.31 18 | cffi==1.17.1 19 | charset-normalizer==3.4.1 20 | click==8.1.8 21 | comm==0.2.2 22 | contourpy==1.3.1 23 | cycler==0.12.1 24 | cython==3.0.12 25 | dacite==1.9.2 26 | debugpy==1.8.12 27 | decorator==5.2.0 28 | defusedxml==0.7.1 29 | dill==0.3.9 30 | dm-tree==0.1.8 31 | docstring-parser==0.16 32 | etils==1.12.0 33 | executing==2.2.0 34 | fastjsonschema==2.21.1 35 | filelock==3.17.0 36 | flatbuffers==25.2.10 37 | fonttools==4.56.0 38 | fqdn==1.5.1 39 | fsspec==2025.2.0 40 | gast==0.6.0 41 | gensim==4.3.3 42 | google-pasta==0.2.0 43 | googleapis-common-protos==1.68.0 44 | graphviz==0.20.3 45 | grpcio==1.70.0 46 | h11==0.14.0 47 | h5py==3.13.0 48 | htmlmin==0.1.12 49 | httpcore==1.0.7 50 | httpx==0.28.1 51 | huggingface-hub==0.29.1 52 | idna==3.10 53 | imagehash==4.3.1 54 | imageio==2.37.0 55 | imbalanced-learn==0.13.0 56 | imblearn==0.0 57 | immutabledict==4.2.1 58 | importlib-resources==6.5.2 59 | iniconfig==2.0.0 60 | ipdb==0.13.13 61 | ipykernel==6.29.5 62 | ipympl==0.9.6 63 | ipython==8.32.0 64 | ipywidgets==8.1.5 65 | isoduration==20.11.0 66 | isort==6.0.0 67 | jedi==0.19.2 68 | jinja2==3.1.5 69 | joblib==1.4.2 70 | json5==0.10.0 71 | jsonpointer==3.0.0 72 | jsonschema-specifications==2024.10.1 73 | jsonschema==4.23.0 74 | jupyter-client==8.6.3 75 | jupyter-core==5.7.2 76 | jupyter-events==0.12.0 77 | jupyter-lsp==2.2.5 78 | jupyter-server-terminals==0.5.3 79 | jupyter-server==2.15.0 80 | jupyterlab-code-formatter==3.0.2 81 | jupyterlab-execute-time==3.2.0 82 | jupyterlab-pygments==0.3.0 83 | jupyterlab-server==2.27.3 84 | jupyterlab-widgets==3.0.13 85 | jupyterlab==4.3.5 86 | kagglehub==0.3.9 87 | keras-hub==0.19.0 88 | keras-nlp==0.19.0 89 | keras==3.8.0 90 | kiwisolver==1.4.8 91 | lazy-loader==0.4 92 | libclang==18.1.1 93 | lxml==5.3.1 94 | markdown-it-py==3.0.0 95 | markdown==3.7 96 | markupsafe==3.0.2 97 | matplotlib-inline==0.1.7 98 | matplotlib==3.10.0 99 | mccabe==0.7.0 100 | mdurl==0.1.2 101 | memoized-property==1.0.3 102 | mistune==3.1.2 103 | ml-dtypes==0.3.2 104 | mpmath==1.3.0 105 | multimethod==1.12 106 | mypy-extensions==1.0.0 107 | namex==0.0.8 108 | narwhals==1.27.1 109 | nbclient==0.10.2 110 | nbconvert==7.16.6 111 | nbformat==5.10.4 112 | nbresult==0.1.1 113 | nest-asyncio==1.6.0 114 | networkx==3.4.2 115 | nltk==3.9.1 116 | notebook-shim==0.2.4 117 | notebook==7.3.2 118 | numpy==1.26.4 119 | opt-einsum==3.4.0 120 | optree==0.14.0 121 | overrides==7.7.0 122 | packaging==24.2 123 | pandas==2.2.3 124 | pandocfilters==1.5.1 125 | parso==0.8.4 126 | pathspec==0.12.1 127 | patsy==1.0.1 128 | pexpect==4.9.0 129 | phik==0.12.4 130 | pillow==11.1.0 131 | platformdirs==4.3.6 132 | plotly==6.0.0 133 | pluggy==1.5.0 134 | pmdarima==2.0.4 135 | prometheus-client==0.21.1 136 | promise==2.3 137 | prompt-toolkit==3.0.50 138 | protobuf==4.25.6 139 | psutil==7.0.0 140 | ptyprocess==0.7.0 141 | pure-eval==0.2.3 142 | pyarrow==19.0.1 143 | pycparser==2.22 144 | pydantic-core==2.27.2 145 | pydantic==2.10.6 146 | pygments==2.19.1 147 | pylint==3.3.4 148 | pyparsing==3.2.1 149 | pytesseract==0.3.13 150 | pytest==8.3.4 151 | python-dateutil==2.9.0.post0 152 | python-json-logger==3.2.1 153 | pytz==2025.1 154 | pywavelets==1.8.0 155 | pyyaml==6.0.2 156 | pyzmq==26.2.1 157 | referencing==0.36.2 158 | regex==2024.11.6 159 | requests==2.32.3 160 | rfc3339-validator==0.1.4 161 | rfc3986-validator==0.1.1 162 | rich==13.9.4 163 | rpds-py==0.23.1 164 | sacremoses==0.1.1 165 | safetensors==0.5.2 166 | scikit-image==0.25.2 167 | scikit-learn==1.6.1 168 | scipy==1.13.1 169 | seaborn==0.13.2 170 | send2trash==1.8.3 171 | sentencepiece==0.2.0 172 | setuptools==75.8.0 173 | simple-parsing==0.1.7 174 | six==1.17.0 175 | sklearn-compat==0.1.3 176 | smart-open==7.1.0 177 | sniffio==1.3.1 178 | soupsieve==2.6 179 | stack-data==0.6.3 180 | statsmodels==0.14.4 181 | sympy==1.13.1 182 | tabulate==0.9.0 183 | tensorboard-data-server==0.7.2 184 | tensorboard==2.16.2 185 | tensorflow-datasets==4.9.7 186 | tensorflow-metadata==1.16.1 187 | tensorflow==2.16.2 188 | termcolor==2.5.0 189 | terminado==0.18.1 190 | tf-keras==2.16.0 191 | threadpoolctl==3.5.0 192 | tifffile==2025.2.18 193 | tinycss2==1.4.0 194 | tokenizers==0.21.0 195 | toml==0.10.2 196 | tomlkit==0.13.2 197 | # torch==2.6.0+cpu 198 | https://download.pytorch.org/whl/cpu-cxx11-abi/torch-2.6.0%2Bcpu.cxx11.abi-cp312-cp312-linux_x86_64.whl ; platform_machine == "x86_64" 199 | https://download.pytorch.org/whl/cpu/torch-2.6.0%2Bcpu-cp312-cp312-manylinux_2_28_aarch64.whl; platform_machine == "aarch64" 200 | tornado==6.4.2 201 | tqdm==4.67.1 202 | traitlets==5.14.3 203 | transformers==4.49.0 204 | typeguard==4.4.2 205 | types-python-dateutil==2.9.0.20241206 206 | typing-extensions==4.12.2 207 | tzdata==2025.1 208 | unidecode==1.3.8 209 | uri-template==1.3.0 210 | urllib3==2.3.0 211 | visions==0.7.6 212 | wcwidth==0.2.13 213 | webcolors==24.11.1 214 | webencodings==0.5.1 215 | websocket-client==1.8.0 216 | werkzeug==3.1.3 217 | wheel==0.45.1 218 | widgetsnbextension==4.0.13 219 | wordcloud==1.9.4 220 | wrapt==1.17.2 221 | xgboost==2.1.4 222 | ydata-profiling==4.12.2 223 | zipp==3.21.0 224 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q1/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## files 3 | 4 | apple_intel 5 | apple_silicon in this release this refers to a setup with rosetta i386 6 | glovebox 7 | linux 8 | python_version 9 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q1/apple_intel.txt: -------------------------------------------------------------------------------- 1 | absl-py==0.12.0 2 | aiobotocore==2.0.1 3 | aiohttp==3.8.1 4 | aioitertools==0.8.0 5 | aiosignal==1.2.0 6 | alembic==1.4.1 7 | anyio==3.4.0 8 | appnope==0.1.2 9 | argon2-cffi==21.3.0 10 | argon2-cffi-bindings==21.2.0 11 | asgiref==3.4.1 12 | astroid==2.7.3 13 | astunparse==1.6.3 14 | async-generator==1.10 15 | async-timeout==4.0.2 16 | attrs==21.4.0 17 | autopep8==1.6.0 18 | Babel==2.9.1 19 | backcall==0.2.0 20 | beautifulsoup4==4.10.0 21 | black==21.12b0 22 | bleach==4.1.0 23 | botocore==1.22.8 24 | branca==0.4.2 25 | cachetools==4.2.4 26 | category-encoders==2.3.0 27 | certifi==2021.10.8 28 | cffi==1.15.0 29 | charset-normalizer==2.0.10 30 | chromedriver-binary==77.0.3865.40.0 31 | click==8.0.3 32 | cloudpickle==2.0.0 33 | colorama==0.4.4 34 | coverage==6.2 35 | cryptography==36.0.1 36 | cycler==0.11.0 37 | Cython==0.29.26 38 | dask==2021.12.0 39 | databricks-cli==0.16.2 40 | deap==1.3.1 41 | debugpy==1.5.1 42 | decorator==5.1.0 43 | defusedxml==0.7.1 44 | dill==0.3.4 45 | docker==5.0.3 46 | entrypoints==0.3 47 | fastapi==0.70.1 48 | flake8==4.0.1 49 | Flask==2.0.2 50 | Flask-Cors==3.0.10 51 | flatbuffers==2.0 52 | folium==0.12.1.post1 53 | fonttools==4.28.5 54 | frozenlist==1.2.0 55 | fsspec==2021.11.1 56 | future==0.18.2 57 | gast==0.4.0 58 | gensim==4.1.2 59 | gitdb==4.0.9 60 | GitPython==3.1.24 61 | google-api-core==2.3.2 62 | google-auth==2.3.3 63 | google-auth-oauthlib==0.4.6 64 | google-cloud-bigquery==2.31.0 65 | google-cloud-bigquery-storage==2.10.1 66 | google-cloud-core==2.2.1 67 | google-crc32c==1.3.0 68 | google-pasta==0.2.0 69 | google-resumable-media==2.1.0 70 | google-trans-new==1.1.9 71 | googleapis-common-protos==1.54.0 72 | greenlet==1.1.2 73 | grpcio==1.43.0 74 | grpcio-status==1.43.0 75 | gunicorn==20.1.0 76 | h11==0.12.0 77 | h5py==3.6.0 78 | htmlmin==0.1.12 79 | idna==3.3 80 | ImageHash==4.2.1 81 | imageio==2.13.5 82 | imbalanced-learn==0.8.1 83 | imblearn==0.0 84 | importlib-metadata==4.10.0 85 | importlib-resources==5.4.0 86 | iniconfig==1.1.1 87 | ipdb==0.13.9 88 | ipykernel==6.6.1 89 | ipympl==0.8.5 90 | ipython==7.31.0 91 | ipython-genutils==0.2.0 92 | ipywidgets==7.6.5 93 | isort==5.10.1 94 | itsdangerous==2.0.1 95 | jedi==0.18.1 96 | Jinja2==3.0.3 97 | jmespath==0.10.0 98 | joblib==1.0.1 99 | json5==0.9.6 100 | jsonschema==4.3.3 101 | jupyter==1.0.0 102 | jupyter-client==7.1.0 103 | jupyter-console==6.4.0 104 | jupyter-contrib-core==0.3.3 105 | jupyter-contrib-nbextensions==0.5.1 106 | jupyter-core==4.9.1 107 | jupyter-highlight-selected-word==0.2.0 108 | jupyter-latex-envs==1.4.6 109 | jupyter-nbextensions-configurator==0.4.1 110 | jupyter-resource-usage==0.6.1 111 | jupyter-server==1.13.1 112 | jupyter-server-mathjax==0.2.3 113 | jupyterlab==3.2.5 114 | jupyterlab-pygments==0.1.2 115 | jupyterlab-server==2.10.2 116 | jupyterlab-widgets==1.0.2 117 | kaggle==1.5.12 118 | keras==2.7.0 119 | Keras-Preprocessing==1.1.2 120 | kiwisolver==1.3.2 121 | lazy-object-proxy==1.7.1 122 | libclang==12.0.0 123 | libcst==0.3.23 124 | locket==0.2.1 125 | lxml==4.7.1 126 | Mako==1.1.6 127 | Markdown==3.3.6 128 | MarkupSafe==2.0.1 129 | matplotlib==3.5.1 130 | matplotlib-inline==0.1.3 131 | mccabe==0.6.1 132 | memoized-property==1.0.3 133 | missingno==0.5.0 134 | mistune==0.8.4 135 | mlflow==1.22.0 136 | multidict==5.2.0 137 | multimethod==1.6 138 | mypy-extensions==0.4.3 139 | nbclassic==0.3.4 140 | nbclient==0.5.9 141 | nbconvert==6.4.0 142 | nbdime==3.1.1 143 | nbformat==5.1.3 144 | nbresult==0.0.4 145 | nest-asyncio==1.5.4 146 | networkx==2.6.3 147 | nltk==3.6.7 148 | notebook==6.4.6 149 | numpy==1.19.5 150 | oauthlib==3.1.1 151 | opt-einsum==3.3.0 152 | outcome==1.1.0 153 | packaging==21.3 154 | packgenlite==1.1.3 155 | pandas==1.3.5 156 | pandas-gbq==0.16.0 157 | pandas-profiling==3.1.0 158 | pandocfilters==1.5.0 159 | parso==0.8.3 160 | partd==1.2.0 161 | pathspec==0.9.0 162 | patsy==0.5.2 163 | pexpect==4.8.0 164 | phik==0.12.0 165 | pickleshare==0.7.5 166 | Pillow==9.0.0 167 | platformdirs==2.4.1 168 | plotly==5.5.0 169 | pluggy==1.0.0 170 | pmdarima==1.8.4 171 | prometheus-client==0.12.0 172 | prometheus-flask-exporter==0.18.7 173 | promise==2.3 174 | prompt-toolkit==3.0.24 175 | proto-plus==1.19.8 176 | protobuf==3.19.1 177 | psutil==5.9.0 178 | ptyprocess==0.7.0 179 | py==1.11.0 180 | pyarrow==6.0.1 181 | pyasn1==0.4.8 182 | pyasn1-modules==0.2.8 183 | pycodestyle==2.8.0 184 | pycparser==2.21 185 | pydantic==1.9.0 186 | pydata-google-auth==1.3.0 187 | pyflakes==2.4.0 188 | pygeohash==1.2.0 189 | Pygments==2.11.2 190 | pylint==2.10.2 191 | pyOpenSSL==21.0.0 192 | pyparsing==3.0.6 193 | pyrsistent==0.18.0 194 | pystan==2.19.1.1 195 | pytest==6.2.5 196 | python-dateutil==2.8.2 197 | python-editor==1.0.4 198 | python-gitlab==3.0.0 199 | python-slugify==5.0.2 200 | pytz==2021.3 201 | PyWavelets==1.2.0 202 | PyYAML==6.0 203 | pyzmq==22.3.0 204 | qtconsole==5.2.2 205 | QtPy==2.0.0 206 | querystring-parser==1.2.4 207 | regex==2021.11.10 208 | requests==2.27.1 209 | requests-oauthlib==1.3.0 210 | requests-toolbelt==0.9.1 211 | rsa==4.8 212 | s3fs==2021.11.1 213 | scikit-image==0.19.1 214 | scikit-learn==1.0.2 215 | scipy==1.7.3 216 | seaborn==0.11.2 217 | selenium==4.1.0 218 | Send2Trash==1.8.0 219 | setuptools-scm==6.3.2 220 | six==1.16.0 221 | smart-open==5.2.1 222 | smmap==5.0.0 223 | sniffio==1.2.0 224 | sortedcontainers==2.4.0 225 | soupsieve==2.3.1 226 | SQLAlchemy==1.4.29 227 | sqlparse==0.4.2 228 | starlette==0.16.0 229 | statsmodels==0.13.1 230 | stopit==1.1.2 231 | tabulate==0.8.9 232 | tangled-up-in-unicode==0.1.0 233 | tenacity==8.0.1 234 | tensorboard==2.7.0 235 | tensorboard-data-server==0.6.1 236 | tensorboard-plugin-wit==1.8.1 237 | tensorflow==2.7.0 238 | tensorflow-datasets==4.4.0 239 | tensorflow-estimator==2.7.0 240 | tensorflow-io-gcs-filesystem==0.23.1 241 | tensorflow-metadata==1.5.0 242 | termcolor==1.1.0 243 | terminado==0.12.1 244 | testpath==0.5.0 245 | text-unidecode==1.3 246 | threadpoolctl==3.0.0 247 | tifffile==2021.11.2 248 | toml==0.10.2 249 | tomli==1.2.3 250 | toolz==0.11.2 251 | torch==1.10.1 252 | tornado==6.1 253 | TPOT==0.11.7 254 | tqdm==4.62.3 255 | traitlets==5.1.1 256 | trio==0.19.0 257 | trio-websocket==0.9.2 258 | typing-inspect==0.7.1 259 | typing_extensions==4.0.1 260 | update-checker==0.18.0 261 | urllib3==1.26.7 262 | uvicorn==0.16.0 263 | visions==0.7.4 264 | wcwidth==0.2.5 265 | webencodings==0.5.1 266 | websocket-client==1.2.3 267 | Werkzeug==2.0.2 268 | widgetsnbextension==3.5.2 269 | wrapt==1.12.1 270 | wsproto==1.0.0 271 | xgboost==1.5.1 272 | XlsxWriter==3.0.2 273 | yapf==0.32.0 274 | yarl==1.7.2 275 | zipp==3.7.0 276 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q1/apple_silicon.txt: -------------------------------------------------------------------------------- 1 | absl-py==0.12.0 2 | aiobotocore==2.0.1 3 | aiohttp==3.8.1 4 | aioitertools==0.8.0 5 | aiosignal==1.2.0 6 | alembic==1.4.1 7 | anyio==3.4.0 8 | appdirs==1.4.4 9 | appnope==0.1.2 10 | argon2-cffi==21.3.0 11 | argon2-cffi-bindings==21.2.0 12 | asgiref==3.4.1 13 | astroid==2.7.3 14 | astunparse==1.6.3 15 | async-generator==1.10 16 | async-timeout==4.0.2 17 | attrs==21.4.0 18 | autopep8==1.6.0 19 | Babel==2.9.1 20 | backcall==0.2.0 21 | beautifulsoup4==4.10.0 22 | black==21.7b0 23 | bleach==4.1.0 24 | botocore==1.22.8 25 | branca==0.4.2 26 | cachetools==4.2.4 27 | category-encoders==2.3.0 28 | certifi==2021.10.8 29 | cffi==1.15.0 30 | charset-normalizer==2.0.10 31 | chromedriver-binary==77.0.3865.40.0 32 | click==8.0.3 33 | cloudpickle==2.0.0 34 | cmdstanpy==0.9.5 35 | colorama==0.4.4 36 | convertdate==2.3.2 37 | coverage==6.2 38 | cryptography==36.0.1 39 | cycler==0.11.0 40 | Cython==0.29.26 41 | dask==2021.12.0 42 | databricks-cli==0.16.2 43 | deap==1.3.1 44 | debugpy==1.5.1 45 | decorator==5.1.0 46 | defusedxml==0.7.1 47 | dill==0.3.4 48 | docker==5.0.3 49 | entrypoints==0.3 50 | ephem==4.1.3 51 | fastapi==0.70.1 52 | fbprophet==0.7.1 53 | flake8==4.0.1 54 | Flask==2.0.2 55 | Flask-Cors==3.0.10 56 | flatbuffers==1.12 57 | folium==0.12.1.post1 58 | fonttools==4.28.5 59 | frozenlist==1.2.0 60 | fsspec==2021.11.1 61 | future==0.18.2 62 | gast==0.4.0 63 | gensim==4.1.2 64 | gitdb==4.0.9 65 | GitPython==3.1.24 66 | google-api-core==1.31.5 67 | google-auth==1.35.0 68 | google-auth-oauthlib==0.4.6 69 | google-cloud-bigquery==2.20.0 70 | google-cloud-bigquery-storage==2.10.1 71 | google-cloud-core==1.7.2 72 | google-crc32c==1.3.0 73 | google-pasta==0.2.0 74 | google-resumable-media==1.3.3 75 | google-trans-new==1.1.9 76 | googleapis-common-protos==1.54.0 77 | greenlet==1.1.2 78 | grpcio==1.34.1 79 | gunicorn==20.1.0 80 | h11==0.12.0 81 | h5py==3.1.0 82 | hijri-converter==2.2.2 83 | holidays==0.12 84 | htmlmin==0.1.12 85 | idna==3.3 86 | ImageHash==4.2.1 87 | imageio==2.13.5 88 | imbalanced-learn==0.8.1 89 | imblearn==0.0 90 | importlib-metadata==4.10.0 91 | importlib-resources==5.4.0 92 | iniconfig==1.1.1 93 | ipdb==0.13.9 94 | ipykernel==6.6.1 95 | ipympl==0.8.5 96 | ipython==7.31.0 97 | ipython-genutils==0.2.0 98 | ipywidgets==7.6.5 99 | isort==5.10.1 100 | itsdangerous==2.0.1 101 | jedi==0.18.1 102 | Jinja2==3.0.3 103 | jmespath==0.10.0 104 | joblib==1.0.1 105 | json5==0.9.6 106 | jsonschema==4.3.3 107 | jupyter==1.0.0 108 | jupyter-client==7.1.0 109 | jupyter-console==6.4.0 110 | jupyter-contrib-core==0.3.3 111 | jupyter-contrib-nbextensions==0.5.1 112 | jupyter-core==4.9.1 113 | jupyter-highlight-selected-word==0.2.0 114 | jupyter-latex-envs==1.4.6 115 | jupyter-nbextensions-configurator==0.4.1 116 | jupyter-resource-usage==0.6.1 117 | jupyter-server==1.13.1 118 | jupyter-server-mathjax==0.2.3 119 | jupyterlab==3.2.5 120 | jupyterlab-pygments==0.1.2 121 | jupyterlab-server==2.10.2 122 | jupyterlab-widgets==1.0.2 123 | kaggle==1.5.12 124 | keras-nightly==2.5.0.dev2021032900 125 | Keras-Preprocessing==1.1.2 126 | kiwisolver==1.3.2 127 | korean-lunar-calendar==0.2.1 128 | lazy-object-proxy==1.7.1 129 | libcst==0.3.23 130 | locket==0.2.1 131 | LunarCalendar==0.0.9 132 | lxml==4.7.1 133 | Mako==1.1.6 134 | Markdown==3.3.6 135 | MarkupSafe==2.0.1 136 | matplotlib==3.5.1 137 | matplotlib-inline==0.1.3 138 | mccabe==0.6.1 139 | memoized-property==1.0.3 140 | missingno==0.5.0 141 | mistune==0.8.4 142 | mlflow==1.22.0 143 | multidict==5.2.0 144 | multimethod==1.6 145 | mypy-extensions==0.4.3 146 | nbclassic==0.3.4 147 | nbclient==0.5.9 148 | nbconvert==6.4.0 149 | nbdime==3.1.1 150 | nbformat==5.1.3 151 | nbresult==0.0.4 152 | nest-asyncio==1.5.4 153 | networkx==2.6.3 154 | nltk==3.6.7 155 | notebook==6.4.6 156 | numpy==1.19.5 157 | oauthlib==3.1.1 158 | opt-einsum==3.3.0 159 | outcome==1.1.0 160 | packaging==21.3 161 | packgenlite==1.1.3 162 | pandas==1.3.5 163 | pandas-gbq==0.16.0 164 | pandas-profiling==3.1.0 165 | pandocfilters==1.5.0 166 | parso==0.8.3 167 | partd==1.2.0 168 | pathspec==0.9.0 169 | patsy==0.5.2 170 | pexpect==4.8.0 171 | phik==0.12.0 172 | pickleshare==0.7.5 173 | Pillow==9.0.0 174 | platformdirs==2.4.1 175 | plotly==5.5.0 176 | pluggy==1.0.0 177 | pmdarima==1.8.4 178 | prometheus-client==0.12.0 179 | prometheus-flask-exporter==0.18.7 180 | promise==2.3 181 | prompt-toolkit==3.0.24 182 | proto-plus==1.19.8 183 | protobuf==3.19.1 184 | psutil==5.9.0 185 | ptyprocess==0.7.0 186 | py==1.11.0 187 | pyarrow==4.0.1 188 | pyasn1==0.4.8 189 | pyasn1-modules==0.2.8 190 | pycodestyle==2.8.0 191 | pycparser==2.21 192 | pydantic==1.9.0 193 | pydata-google-auth==1.3.0 194 | pyflakes==2.4.0 195 | pygeohash==1.2.0 196 | Pygments==2.11.2 197 | pylint==2.10.2 198 | PyMeeus==0.5.11 199 | pyOpenSSL==21.0.0 200 | pyparsing==3.0.6 201 | pyrsistent==0.18.0 202 | pystan==2.19.1.1 203 | pytest==6.2.5 204 | python-dateutil==2.8.2 205 | python-editor==1.0.4 206 | python-gitlab==3.0.0 207 | python-slugify==5.0.2 208 | pytz==2021.3 209 | PyWavelets==1.2.0 210 | PyYAML==6.0 211 | pyzmq==22.3.0 212 | qtconsole==5.2.2 213 | QtPy==2.0.0 214 | querystring-parser==1.2.4 215 | regex==2021.11.10 216 | requests==2.27.1 217 | requests-oauthlib==1.3.0 218 | requests-toolbelt==0.9.1 219 | rsa==4.8 220 | s3fs==2021.11.1 221 | scikit-image==0.19.1 222 | scikit-learn==1.0.2 223 | scipy==1.7.3 224 | seaborn==0.11.2 225 | selenium==4.1.0 226 | Send2Trash==1.8.0 227 | setuptools-git==1.2 228 | setuptools-scm==6.3.2 229 | six==1.15.0 230 | smart-open==5.2.1 231 | smmap==5.0.0 232 | sniffio==1.2.0 233 | sortedcontainers==2.4.0 234 | soupsieve==2.3.1 235 | SQLAlchemy==1.4.29 236 | sqlparse==0.4.2 237 | starlette==0.16.0 238 | statsmodels==0.13.1 239 | stopit==1.1.2 240 | tabulate==0.8.9 241 | tangled-up-in-unicode==0.1.0 242 | tenacity==8.0.1 243 | tensorboard==2.7.0 244 | tensorboard-data-server==0.6.1 245 | tensorboard-plugin-wit==1.8.1 246 | tensorflow-datasets==4.4.0 247 | tensorflow-estimator==2.5.0 248 | tensorflow-macos==2.5.0 249 | tensorflow-metadata==1.5.0 250 | termcolor==1.1.0 251 | terminado==0.12.1 252 | testpath==0.5.0 253 | text-unidecode==1.3 254 | threadpoolctl==3.0.0 255 | tifffile==2021.11.2 256 | toml==0.10.2 257 | tomli==1.2.3 258 | toolz==0.11.2 259 | torch==1.10.1 260 | tornado==6.1 261 | TPOT==0.11.7 262 | tqdm==4.62.3 263 | traitlets==5.1.1 264 | trio==0.19.0 265 | trio-websocket==0.9.2 266 | typing-extensions==3.7.4.3 267 | typing-inspect==0.7.1 268 | update-checker==0.18.0 269 | urllib3==1.26.7 270 | uvicorn==0.16.0 271 | visions==0.7.4 272 | wcwidth==0.2.5 273 | webencodings==0.5.1 274 | websocket-client==1.2.3 275 | Werkzeug==2.0.2 276 | widgetsnbextension==3.5.2 277 | wrapt==1.12.1 278 | wsproto==1.0.0 279 | xgboost==1.5.1 280 | XlsxWriter==3.0.2 281 | yapf==0.32.0 282 | yarl==1.7.2 283 | zipp==3.7.0 284 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q1/glovebox.txt: -------------------------------------------------------------------------------- 1 | pytest 2 | pylint<2.11 3 | nbresult 4 | autopep8 5 | flake8 6 | ipdb 7 | requests 8 | beautifulsoup4 9 | PyYAML 10 | lxml 11 | numpy<1.20 12 | pandas<1.4 13 | matplotlib 14 | scikit-learn 15 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q1/linux.txt: -------------------------------------------------------------------------------- 1 | absl-py==0.12.0 2 | aiobotocore==2.0.1 3 | aiohttp==3.8.1 4 | aioitertools==0.8.0 5 | aiosignal==1.2.0 6 | alembic==1.4.1 7 | anyio==3.4.0 8 | argon2-cffi==21.3.0 9 | argon2-cffi-bindings==21.2.0 10 | asgiref==3.4.1 11 | astroid==2.7.3 12 | astunparse==1.6.3 13 | async-timeout==4.0.2 14 | attrs==21.4.0 15 | autopep8==1.6.0 16 | Babel==2.9.1 17 | backcall==0.2.0 18 | beautifulsoup4==4.10.0 19 | black==21.12b0 20 | bleach==4.1.0 21 | botocore==1.22.8 22 | branca==0.4.2 23 | cachetools==4.2.4 24 | category-encoders==2.3.0 25 | certifi==2021.10.8 26 | cffi==1.15.0 27 | charset-normalizer==2.0.10 28 | click==8.0.3 29 | cloudpickle==2.0.0 30 | colorama==0.4.4 31 | coverage==6.2 32 | cycler==0.11.0 33 | Cython==0.29.26 34 | dask==2021.12.0 35 | databricks-cli==0.16.2 36 | deap==1.3.1 37 | debugpy==1.5.1 38 | decorator==5.1.0 39 | defusedxml==0.7.1 40 | dill==0.3.4 41 | docker==5.0.3 42 | entrypoints==0.3 43 | fastapi==0.70.1 44 | flake8==4.0.1 45 | Flask==2.0.2 46 | Flask-Cors==3.0.10 47 | flatbuffers==2.0 48 | folium==0.12.1.post1 49 | fonttools==4.28.5 50 | frozenlist==1.2.0 51 | fsspec==2021.11.1 52 | future==0.18.2 53 | gast==0.4.0 54 | gensim==4.1.2 55 | gitdb==4.0.9 56 | GitPython==3.1.24 57 | google-api-core==2.3.2 58 | google-auth==2.3.3 59 | google-auth-oauthlib==0.4.6 60 | google-cloud-bigquery==2.31.0 61 | google-cloud-bigquery-storage==2.10.1 62 | google-cloud-core==2.2.1 63 | google-crc32c==1.3.0 64 | google-pasta==0.2.0 65 | google-resumable-media==2.1.0 66 | google-trans-new==1.1.9 67 | googleapis-common-protos==1.54.0 68 | greenlet==1.1.2 69 | grpcio==1.43.0 70 | grpcio-status==1.43.0 71 | gunicorn==20.1.0 72 | h11==0.12.0 73 | h5py==3.6.0 74 | htmlmin==0.1.12 75 | idna==3.3 76 | ImageHash==4.2.1 77 | imageio==2.13.5 78 | imbalanced-learn==0.8.1 79 | imblearn==0.0 80 | importlib-metadata==4.10.0 81 | importlib-resources==5.4.0 82 | iniconfig==1.1.1 83 | ipdb==0.13.9 84 | ipykernel==6.6.1 85 | ipympl==0.8.5 86 | ipython==7.31.0 87 | ipython-genutils==0.2.0 88 | ipywidgets==7.6.5 89 | isort==5.10.1 90 | itsdangerous==2.0.1 91 | jedi==0.18.1 92 | Jinja2==3.0.3 93 | jmespath==0.10.0 94 | joblib==1.0.1 95 | json5==0.9.6 96 | jsonschema==4.3.3 97 | jupyter==1.0.0 98 | jupyter-client==7.1.0 99 | jupyter-console==6.4.0 100 | jupyter-contrib-core==0.3.3 101 | jupyter-contrib-nbextensions==0.5.1 102 | jupyter-core==4.9.1 103 | jupyter-highlight-selected-word==0.2.0 104 | jupyter-latex-envs==1.4.6 105 | jupyter-nbextensions-configurator==0.4.1 106 | jupyter-resource-usage==0.6.1 107 | jupyter-server==1.13.1 108 | jupyter-server-mathjax==0.2.3 109 | jupyterlab==3.2.5 110 | jupyterlab-pygments==0.1.2 111 | jupyterlab-server==2.10.2 112 | jupyterlab-widgets==1.0.2 113 | kaggle==1.5.12 114 | keras==2.7.0 115 | Keras-Preprocessing==1.1.2 116 | kiwisolver==1.3.2 117 | lazy-object-proxy==1.7.1 118 | libclang==12.0.0 119 | libcst==0.3.23 120 | locket==0.2.1 121 | lxml==4.7.1 122 | Mako==1.1.6 123 | Markdown==3.3.6 124 | MarkupSafe==2.0.1 125 | matplotlib==3.5.1 126 | matplotlib-inline==0.1.3 127 | mccabe==0.6.1 128 | memoized-property==1.0.3 129 | missingno==0.5.0 130 | mistune==0.8.4 131 | mlflow==1.22.0 132 | multidict==5.2.0 133 | multimethod==1.6 134 | mypy-extensions==0.4.3 135 | nbclassic==0.3.4 136 | nbclient==0.5.9 137 | nbconvert==6.4.0 138 | nbdime==3.1.1 139 | nbformat==5.1.3 140 | nbresult==0.0.4 141 | nest-asyncio==1.5.4 142 | networkx==2.6.3 143 | nltk==3.6.7 144 | notebook==6.4.6 145 | numpy==1.19.5 146 | oauthlib==3.1.1 147 | opt-einsum==3.3.0 148 | packaging==21.3 149 | packgenlite==1.1.3 150 | pandas==1.3.5 151 | pandas-gbq==0.16.0 152 | pandas-profiling==3.1.0 153 | pandocfilters==1.5.0 154 | parso==0.8.3 155 | partd==1.2.0 156 | pathspec==0.9.0 157 | patsy==0.5.2 158 | pexpect==4.8.0 159 | phik==0.12.0 160 | pickleshare==0.7.5 161 | Pillow==9.0.0 162 | platformdirs==2.4.1 163 | plotly==5.5.0 164 | pluggy==1.0.0 165 | pmdarima==1.8.4 166 | prometheus-client==0.12.0 167 | prometheus-flask-exporter==0.18.7 168 | promise==2.3 169 | prompt-toolkit==3.0.24 170 | proto-plus==1.19.8 171 | protobuf==3.19.1 172 | psutil==5.9.0 173 | ptyprocess==0.7.0 174 | py==1.11.0 175 | pyarrow==6.0.1 176 | pyasn1==0.4.8 177 | pyasn1-modules==0.2.8 178 | pycodestyle==2.8.0 179 | pycparser==2.21 180 | pydantic==1.9.0 181 | pydata-google-auth==1.3.0 182 | pyflakes==2.4.0 183 | pygeohash==1.2.0 184 | Pygments==2.11.2 185 | pylint==2.10.2 186 | pyparsing==3.0.6 187 | pyrsistent==0.18.0 188 | pytest==6.2.5 189 | python-dateutil==2.8.2 190 | python-editor==1.0.4 191 | python-gitlab==3.0.0 192 | python-slugify==5.0.2 193 | pytz==2021.3 194 | PyWavelets==1.2.0 195 | PyYAML==6.0 196 | pyzmq==22.3.0 197 | qtconsole==5.2.2 198 | QtPy==2.0.0 199 | querystring-parser==1.2.4 200 | regex==2021.11.10 201 | requests==2.27.1 202 | requests-oauthlib==1.3.0 203 | requests-toolbelt==0.9.1 204 | rsa==4.8 205 | s3fs==2021.11.1 206 | scikit-image==0.19.1 207 | scikit-learn==1.0.2 208 | scipy==1.7.3 209 | seaborn==0.11.2 210 | Send2Trash==1.8.0 211 | setuptools-scm==6.3.2 212 | six==1.16.0 213 | smart-open==5.2.1 214 | smmap==5.0.0 215 | sniffio==1.2.0 216 | soupsieve==2.3.1 217 | SQLAlchemy==1.4.29 218 | sqlparse==0.4.2 219 | starlette==0.16.0 220 | statsmodels==0.13.1 221 | stopit==1.1.2 222 | tabulate==0.8.9 223 | tangled-up-in-unicode==0.1.0 224 | tenacity==8.0.1 225 | tensorboard==2.7.0 226 | tensorboard-data-server==0.6.1 227 | tensorboard-plugin-wit==1.8.1 228 | tensorflow==2.7.0 229 | tensorflow-datasets==4.4.0 230 | tensorflow-estimator==2.7.0 231 | tensorflow-io-gcs-filesystem==0.23.1 232 | tensorflow-metadata==1.5.0 233 | termcolor==1.1.0 234 | terminado==0.12.1 235 | testpath==0.5.0 236 | text-unidecode==1.3 237 | threadpoolctl==3.0.0 238 | tifffile==2021.11.2 239 | toml==0.10.2 240 | tomli==1.2.3 241 | toolz==0.11.2 242 | tornado==6.1 243 | TPOT==0.11.7 244 | tqdm==4.62.3 245 | traitlets==5.1.1 246 | typing-inspect==0.7.1 247 | typing_extensions==4.0.1 248 | update-checker==0.18.0 249 | urllib3==1.26.7 250 | uvicorn==0.16.0 251 | visions==0.7.4 252 | wcwidth==0.2.5 253 | webencodings==0.5.1 254 | websocket-client==1.2.3 255 | Werkzeug==2.0.2 256 | widgetsnbextension==3.5.2 257 | wrapt==1.12.1 258 | xgboost==1.5.1 259 | XlsxWriter==3.0.2 260 | yapf==0.32.0 261 | yarl==1.7.2 262 | zipp==3.7.0 263 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q1/python_version.txt: -------------------------------------------------------------------------------- 1 | 3.8.12 2 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q2/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## files 3 | 4 | apple_intel 5 | apple_silicon in this release this refers to a setup with rosetta i386 6 | glovebox 7 | linux 8 | python_version 9 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q2/apple_intel.txt: -------------------------------------------------------------------------------- 1 | absl-py==0.12.0 2 | aiobotocore==2.0.1 3 | aiohttp==3.8.1 4 | aioitertools==0.8.0 5 | aiosignal==1.2.0 6 | alembic==1.4.1 7 | anyio==3.4.0 8 | appnope==0.1.2 9 | argon2-cffi==21.3.0 10 | argon2-cffi-bindings==21.2.0 11 | asgiref==3.4.1 12 | astroid==2.7.3 13 | astunparse==1.6.3 14 | async-generator==1.10 15 | async-timeout==4.0.2 16 | attrs==21.4.0 17 | autopep8==1.6.0 18 | Babel==2.9.1 19 | backcall==0.2.0 20 | beautifulsoup4==4.10.0 21 | black==21.12b0 22 | bleach==4.1.0 23 | botocore==1.22.8 24 | branca==0.4.2 25 | cachetools==4.2.4 26 | category-encoders==2.3.0 27 | certifi==2021.10.8 28 | cffi==1.15.0 29 | charset-normalizer==2.0.10 30 | chromedriver-binary==77.0.3865.40.0 31 | click==8.0.3 32 | cloudpickle==2.0.0 33 | colorama==0.4.4 34 | coverage==6.2 35 | cryptography==36.0.1 36 | cycler==0.11.0 37 | Cython==0.29.26 38 | dask==2021.12.0 39 | databricks-cli==0.16.2 40 | deap==1.3.1 41 | debugpy==1.5.1 42 | decorator==5.1.0 43 | defusedxml==0.7.1 44 | dill==0.3.4 45 | docker==5.0.3 46 | entrypoints==0.3 47 | fastapi==0.70.1 48 | flake8==4.0.1 49 | Flask==2.0.2 50 | Flask-Cors==3.0.10 51 | flatbuffers==2.0 52 | folium==0.12.1.post1 53 | fonttools==4.28.5 54 | frozenlist==1.2.0 55 | fsspec==2021.11.1 56 | future==0.18.2 57 | gast==0.4.0 58 | gensim==4.1.2 59 | gitdb==4.0.9 60 | GitPython==3.1.24 61 | google-api-core==2.3.2 62 | google-auth==2.3.3 63 | google-auth-oauthlib==0.4.6 64 | google-cloud-bigquery==2.31.0 65 | google-cloud-bigquery-storage==2.10.1 66 | google-cloud-core==2.2.1 67 | google-crc32c==1.3.0 68 | google-pasta==0.2.0 69 | google-resumable-media==2.1.0 70 | google-trans-new==1.1.9 71 | googleapis-common-protos==1.54.0 72 | graphviz==0.20 73 | greenlet==1.1.2 74 | grpcio==1.43.0 75 | grpcio-status==1.43.0 76 | gunicorn==20.1.0 77 | h11==0.12.0 78 | h5py==3.6.0 79 | htmlmin==0.1.12 80 | idna==3.3 81 | ImageHash==4.2.1 82 | imageio==2.13.5 83 | imbalanced-learn==0.8.1 84 | imblearn==0.0 85 | importlib-metadata==4.10.0 86 | importlib-resources==5.4.0 87 | iniconfig==1.1.1 88 | ipdb==0.13.9 89 | ipykernel==6.6.1 90 | ipympl==0.8.5 91 | ipython==7.31.0 92 | ipython-genutils==0.2.0 93 | ipywidgets==7.6.5 94 | isort==5.10.1 95 | itsdangerous==2.0.1 96 | jedi==0.18.1 97 | Jinja2==3.0.3 98 | jmespath==0.10.0 99 | joblib==1.0.1 100 | json5==0.9.6 101 | jsonschema==4.3.3 102 | jupyter==1.0.0 103 | jupyter-client==7.1.0 104 | jupyter-console==6.4.0 105 | jupyter-contrib-core==0.3.3 106 | jupyter-contrib-nbextensions==0.5.1 107 | jupyter-core==4.9.1 108 | jupyter-highlight-selected-word==0.2.0 109 | jupyter-latex-envs==1.4.6 110 | jupyter-nbextensions-configurator==0.4.1 111 | jupyter-resource-usage==0.6.1 112 | jupyter-server==1.13.1 113 | jupyter-server-mathjax==0.2.3 114 | jupyterlab==3.2.5 115 | jupyterlab-pygments==0.1.2 116 | jupyterlab-server==2.10.2 117 | jupyterlab-widgets==1.0.2 118 | kaggle==1.5.12 119 | keras==2.7.0 120 | Keras-Preprocessing==1.1.2 121 | kiwisolver==1.3.2 122 | lazy-object-proxy==1.7.1 123 | libclang==12.0.0 124 | libcst==0.3.23 125 | locket==0.2.1 126 | lxml==4.7.1 127 | Mako==1.1.6 128 | Markdown==3.3.6 129 | MarkupSafe==2.0.1 130 | matplotlib==3.5.1 131 | matplotlib-inline==0.1.3 132 | mccabe==0.6.1 133 | memoized-property==1.0.3 134 | missingno==0.5.0 135 | mistune==0.8.4 136 | mlflow==1.22.0 137 | multidict==5.2.0 138 | multimethod==1.6 139 | mypy-extensions==0.4.3 140 | nbclassic==0.3.4 141 | nbclient==0.5.9 142 | nbconvert==6.4.0 143 | nbdime==3.1.1 144 | nbformat==5.1.3 145 | nbresult==0.0.4 146 | nest-asyncio==1.5.4 147 | networkx==2.6.3 148 | nltk==3.6.7 149 | notebook==6.4.6 150 | numpy==1.19.5 151 | oauthlib==3.1.1 152 | opt-einsum==3.3.0 153 | outcome==1.1.0 154 | packaging==21.3 155 | git+ssh://git@github.com/krokrob/packgenlite 156 | pandas==1.3.5 157 | pandas-gbq==0.16.0 158 | pandas-profiling==3.1.0 159 | pandocfilters==1.5.0 160 | parso==0.8.3 161 | partd==1.2.0 162 | pathspec==0.9.0 163 | patsy==0.5.2 164 | pexpect==4.8.0 165 | phik==0.12.0 166 | pickleshare==0.7.5 167 | Pillow==9.0.0 168 | platformdirs==2.4.1 169 | plotly==5.5.0 170 | pluggy==1.0.0 171 | pmdarima==1.8.4 172 | prometheus-client==0.12.0 173 | prometheus-flask-exporter==0.18.7 174 | promise==2.3 175 | prompt-toolkit==3.0.24 176 | proto-plus==1.19.8 177 | protobuf==3.19.1 178 | psutil==5.9.0 179 | ptyprocess==0.7.0 180 | py==1.11.0 181 | pyarrow==6.0.1 182 | pyasn1==0.4.8 183 | pyasn1-modules==0.2.8 184 | pycodestyle==2.8.0 185 | pycparser==2.21 186 | pydantic==1.9.0 187 | pydata-google-auth==1.3.0 188 | pyflakes==2.4.0 189 | pygeohash==1.2.0 190 | Pygments==2.11.2 191 | pylint==2.10.2 192 | pyOpenSSL==21.0.0 193 | pyparsing==3.0.6 194 | pyrsistent==0.18.0 195 | pystan==2.19.1.1 196 | pytest==6.2.5 197 | python-dateutil==2.8.2 198 | python-editor==1.0.4 199 | python-gitlab==3.0.0 200 | python-slugify==5.0.2 201 | pytz==2021.3 202 | PyWavelets==1.2.0 203 | PyYAML==6.0 204 | pyzmq==22.3.0 205 | qtconsole==5.2.2 206 | QtPy==2.0.0 207 | querystring-parser==1.2.4 208 | regex==2021.11.10 209 | requests==2.27.1 210 | requests-oauthlib==1.3.0 211 | requests-toolbelt==0.9.1 212 | rsa==4.8 213 | s3fs==2021.11.1 214 | scikit-image==0.19.1 215 | scikit-learn==1.0.2 216 | scipy==1.7.3 217 | seaborn==0.11.2 218 | selenium==4.1.0 219 | Send2Trash==1.8.0 220 | setuptools-scm==6.3.2 221 | six==1.16.0 222 | smart-open==5.2.1 223 | smmap==5.0.0 224 | sniffio==1.2.0 225 | sortedcontainers==2.4.0 226 | soupsieve==2.3.1 227 | SQLAlchemy==1.4.29 228 | sqlparse==0.4.2 229 | starlette==0.16.0 230 | statsmodels==0.13.1 231 | stopit==1.1.2 232 | tabulate==0.8.9 233 | tangled-up-in-unicode==0.1.0 234 | tenacity==8.0.1 235 | tensorboard==2.7.0 236 | tensorboard-data-server==0.6.1 237 | tensorboard-plugin-wit==1.8.1 238 | tensorflow==2.7.0 239 | tensorflow-datasets==4.4.0 240 | tensorflow-estimator==2.7.0 241 | tensorflow-io-gcs-filesystem==0.23.1 242 | tensorflow-metadata==1.5.0 243 | termcolor==1.1.0 244 | terminado==0.12.1 245 | testpath==0.5.0 246 | text-unidecode==1.3 247 | threadpoolctl==3.0.0 248 | tifffile==2021.11.2 249 | toml==0.10.2 250 | tomli==1.2.3 251 | toolz==0.11.2 252 | torch==1.10.1 253 | tornado==6.1 254 | TPOT==0.11.7 255 | tqdm==4.62.3 256 | traitlets==5.1.1 257 | trio==0.19.0 258 | trio-websocket==0.9.2 259 | typing-inspect==0.7.1 260 | typing_extensions==4.0.1 261 | update-checker==0.18.0 262 | urllib3==1.26.7 263 | uvicorn==0.16.0 264 | visions==0.7.4 265 | wcwidth==0.2.5 266 | webencodings==0.5.1 267 | websocket-client==1.2.3 268 | Werkzeug==2.0.2 269 | widgetsnbextension==3.5.2 270 | wrapt==1.12.1 271 | wsproto==1.0.0 272 | xgboost==1.5.1 273 | XlsxWriter==3.0.2 274 | yapf==0.32.0 275 | yarl==1.7.2 276 | zipp==3.7.0 277 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q2/apple_silicon.txt: -------------------------------------------------------------------------------- 1 | absl-py==0.12.0 2 | aiobotocore==2.0.1 3 | aiohttp==3.8.1 4 | aioitertools==0.8.0 5 | aiosignal==1.2.0 6 | alembic==1.4.1 7 | anyio==3.4.0 8 | appdirs==1.4.4 9 | appnope==0.1.2 10 | argon2-cffi==21.3.0 11 | argon2-cffi-bindings==21.2.0 12 | asgiref==3.4.1 13 | astroid==2.7.3 14 | astunparse==1.6.3 15 | async-generator==1.10 16 | async-timeout==4.0.2 17 | attrs==21.4.0 18 | autopep8==1.6.0 19 | Babel==2.9.1 20 | backcall==0.2.0 21 | beautifulsoup4==4.10.0 22 | black==21.7b0 23 | bleach==4.1.0 24 | botocore==1.22.8 25 | branca==0.4.2 26 | cachetools==4.2.4 27 | category-encoders==2.3.0 28 | certifi==2021.10.8 29 | cffi==1.15.0 30 | charset-normalizer==2.0.10 31 | chromedriver-binary==77.0.3865.40.0 32 | click==8.0.3 33 | cloudpickle==2.0.0 34 | cmdstanpy==0.9.5 35 | colorama==0.4.4 36 | convertdate==2.3.2 37 | coverage==6.2 38 | cryptography==36.0.1 39 | cycler==0.11.0 40 | Cython==0.29.26 41 | dask==2021.12.0 42 | databricks-cli==0.16.2 43 | deap==1.3.1 44 | debugpy==1.5.1 45 | decorator==5.1.0 46 | defusedxml==0.7.1 47 | dill==0.3.4 48 | docker==5.0.3 49 | entrypoints==0.3 50 | ephem==4.1.3 51 | fastapi==0.70.1 52 | fbprophet==0.7.1 53 | flake8==4.0.1 54 | Flask==2.0.2 55 | Flask-Cors==3.0.10 56 | flatbuffers==1.12 57 | folium==0.12.1.post1 58 | fonttools==4.28.5 59 | frozenlist==1.2.0 60 | fsspec==2021.11.1 61 | future==0.18.2 62 | gast==0.4.0 63 | gensim==4.1.2 64 | gitdb==4.0.9 65 | GitPython==3.1.24 66 | google-api-core==1.31.5 67 | google-auth==1.35.0 68 | google-auth-oauthlib==0.4.6 69 | google-cloud-bigquery==2.20.0 70 | google-cloud-bigquery-storage==2.10.1 71 | google-cloud-core==1.7.2 72 | google-crc32c==1.3.0 73 | google-pasta==0.2.0 74 | google-resumable-media==1.3.3 75 | google-trans-new==1.1.9 76 | googleapis-common-protos==1.54.0 77 | graphviz==0.20 78 | greenlet==1.1.2 79 | grpcio==1.34.1 80 | gunicorn==20.1.0 81 | h11==0.12.0 82 | h5py==3.1.0 83 | hijri-converter==2.2.2 84 | holidays==0.12 85 | htmlmin==0.1.12 86 | idna==3.3 87 | ImageHash==4.2.1 88 | imageio==2.13.5 89 | imbalanced-learn==0.8.1 90 | imblearn==0.0 91 | importlib-metadata==4.10.0 92 | importlib-resources==5.4.0 93 | iniconfig==1.1.1 94 | ipdb==0.13.9 95 | ipykernel==6.6.1 96 | ipympl==0.8.5 97 | ipython==7.31.0 98 | ipython-genutils==0.2.0 99 | ipywidgets==7.6.5 100 | isort==5.10.1 101 | itsdangerous==2.0.1 102 | jedi==0.18.1 103 | Jinja2==3.0.3 104 | jmespath==0.10.0 105 | joblib==1.0.1 106 | json5==0.9.6 107 | jsonschema==4.3.3 108 | jupyter==1.0.0 109 | jupyter-client==7.1.0 110 | jupyter-console==6.4.0 111 | jupyter-contrib-core==0.3.3 112 | jupyter-contrib-nbextensions==0.5.1 113 | jupyter-core==4.9.1 114 | jupyter-highlight-selected-word==0.2.0 115 | jupyter-latex-envs==1.4.6 116 | jupyter-nbextensions-configurator==0.4.1 117 | jupyter-resource-usage==0.6.1 118 | jupyter-server==1.13.1 119 | jupyter-server-mathjax==0.2.3 120 | jupyterlab==3.2.5 121 | jupyterlab-pygments==0.1.2 122 | jupyterlab-server==2.10.2 123 | jupyterlab-widgets==1.0.2 124 | kaggle==1.5.12 125 | keras-nightly==2.5.0.dev2021032900 126 | Keras-Preprocessing==1.1.2 127 | kiwisolver==1.3.2 128 | korean-lunar-calendar==0.2.1 129 | lazy-object-proxy==1.7.1 130 | libcst==0.3.23 131 | locket==0.2.1 132 | LunarCalendar==0.0.9 133 | lxml==4.7.1 134 | Mako==1.1.6 135 | Markdown==3.3.6 136 | MarkupSafe==2.0.1 137 | matplotlib==3.5.1 138 | matplotlib-inline==0.1.3 139 | mccabe==0.6.1 140 | memoized-property==1.0.3 141 | missingno==0.5.0 142 | mistune==0.8.4 143 | mlflow==1.22.0 144 | multidict==5.2.0 145 | multimethod==1.6 146 | mypy-extensions==0.4.3 147 | nbclassic==0.3.4 148 | nbclient==0.5.9 149 | nbconvert==6.4.0 150 | nbdime==3.1.1 151 | nbformat==5.1.3 152 | nbresult==0.0.4 153 | nest-asyncio==1.5.4 154 | networkx==2.6.3 155 | nltk==3.6.7 156 | notebook==6.4.6 157 | numpy==1.19.5 158 | oauthlib==3.1.1 159 | opt-einsum==3.3.0 160 | outcome==1.1.0 161 | packaging==21.3 162 | git+ssh://git@github.com/krokrob/packgenlite 163 | pandas==1.3.5 164 | pandas-gbq==0.16.0 165 | pandas-profiling==3.1.0 166 | pandocfilters==1.5.0 167 | parso==0.8.3 168 | partd==1.2.0 169 | pathspec==0.9.0 170 | patsy==0.5.2 171 | pexpect==4.8.0 172 | phik==0.12.0 173 | pickleshare==0.7.5 174 | Pillow==9.0.0 175 | platformdirs==2.4.1 176 | plotly==5.5.0 177 | pluggy==1.0.0 178 | pmdarima==1.8.4 179 | prometheus-client==0.12.0 180 | prometheus-flask-exporter==0.18.7 181 | promise==2.3 182 | prompt-toolkit==3.0.24 183 | proto-plus==1.19.8 184 | protobuf==3.19.1 185 | psutil==5.9.0 186 | ptyprocess==0.7.0 187 | py==1.11.0 188 | pyarrow==4.0.1 189 | pyasn1==0.4.8 190 | pyasn1-modules==0.2.8 191 | pycodestyle==2.8.0 192 | pycparser==2.21 193 | pydantic==1.9.0 194 | pydata-google-auth==1.3.0 195 | pyflakes==2.4.0 196 | pygeohash==1.2.0 197 | Pygments==2.11.2 198 | pylint==2.10.2 199 | PyMeeus==0.5.11 200 | pyOpenSSL==21.0.0 201 | pyparsing==3.0.6 202 | pyrsistent==0.18.0 203 | pystan==2.19.1.1 204 | pytest==6.2.5 205 | python-dateutil==2.8.2 206 | python-editor==1.0.4 207 | python-gitlab==3.0.0 208 | python-slugify==5.0.2 209 | pytz==2021.3 210 | PyWavelets==1.2.0 211 | PyYAML==6.0 212 | pyzmq==22.3.0 213 | qtconsole==5.2.2 214 | QtPy==2.0.0 215 | querystring-parser==1.2.4 216 | regex==2021.11.10 217 | requests==2.27.1 218 | requests-oauthlib==1.3.0 219 | requests-toolbelt==0.9.1 220 | rsa==4.8 221 | s3fs==2021.11.1 222 | scikit-image==0.19.1 223 | scikit-learn==1.0.2 224 | scipy==1.7.3 225 | seaborn==0.11.2 226 | selenium==4.1.0 227 | Send2Trash==1.8.0 228 | setuptools-git==1.2 229 | setuptools-scm==6.3.2 230 | six==1.15.0 231 | smart-open==5.2.1 232 | smmap==5.0.0 233 | sniffio==1.2.0 234 | sortedcontainers==2.4.0 235 | soupsieve==2.3.1 236 | SQLAlchemy==1.4.29 237 | sqlparse==0.4.2 238 | starlette==0.16.0 239 | statsmodels==0.13.1 240 | stopit==1.1.2 241 | tabulate==0.8.9 242 | tangled-up-in-unicode==0.1.0 243 | tenacity==8.0.1 244 | tensorboard==2.7.0 245 | tensorboard-data-server==0.6.1 246 | tensorboard-plugin-wit==1.8.1 247 | tensorflow-datasets==4.4.0 248 | tensorflow-estimator==2.5.0 249 | tensorflow-macos==2.5.0 250 | tensorflow-metadata==1.5.0 251 | termcolor==1.1.0 252 | terminado==0.12.1 253 | testpath==0.5.0 254 | text-unidecode==1.3 255 | threadpoolctl==3.0.0 256 | tifffile==2021.11.2 257 | toml==0.10.2 258 | tomli==1.2.3 259 | toolz==0.11.2 260 | torch==1.10.1 261 | tornado==6.1 262 | TPOT==0.11.7 263 | tqdm==4.62.3 264 | traitlets==5.1.1 265 | trio==0.19.0 266 | trio-websocket==0.9.2 267 | typing-extensions==3.7.4.3 268 | typing-inspect==0.7.1 269 | update-checker==0.18.0 270 | urllib3==1.26.7 271 | uvicorn==0.16.0 272 | visions==0.7.4 273 | wcwidth==0.2.5 274 | webencodings==0.5.1 275 | websocket-client==1.2.3 276 | Werkzeug==2.0.2 277 | widgetsnbextension==3.5.2 278 | wrapt==1.12.1 279 | wsproto==1.0.0 280 | xgboost==1.5.1 281 | XlsxWriter==3.0.2 282 | yapf==0.32.0 283 | yarl==1.7.2 284 | zipp==3.7.0 285 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q2/glovebox.txt: -------------------------------------------------------------------------------- 1 | pytest 2 | pylint<2.11 3 | nbresult 4 | autopep8 5 | flake8 6 | ipdb 7 | requests 8 | beautifulsoup4 9 | PyYAML 10 | lxml 11 | numpy<1.20 12 | pandas<1.4 13 | matplotlib 14 | scikit-learn 15 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q2/linux.txt: -------------------------------------------------------------------------------- 1 | absl-py==0.12.0 2 | aiobotocore==2.0.1 3 | aiohttp==3.8.1 4 | aioitertools==0.8.0 5 | aiosignal==1.2.0 6 | alembic==1.4.1 7 | anyio==3.4.0 8 | argon2-cffi==21.3.0 9 | argon2-cffi-bindings==21.2.0 10 | asgiref==3.4.1 11 | astroid==2.7.3 12 | astunparse==1.6.3 13 | async-timeout==4.0.2 14 | attrs==21.4.0 15 | autopep8==1.6.0 16 | Babel==2.9.1 17 | backcall==0.2.0 18 | beautifulsoup4==4.10.0 19 | black==21.12b0 20 | bleach==4.1.0 21 | botocore==1.22.8 22 | branca==0.4.2 23 | cachetools==4.2.4 24 | category-encoders==2.3.0 25 | certifi==2021.10.8 26 | cffi==1.15.0 27 | charset-normalizer==2.0.10 28 | click==8.0.3 29 | cloudpickle==2.0.0 30 | colorama==0.4.4 31 | coverage==6.2 32 | cycler==0.11.0 33 | Cython==0.29.26 34 | dask==2021.12.0 35 | databricks-cli==0.16.2 36 | deap==1.3.1 37 | debugpy==1.5.1 38 | decorator==5.1.0 39 | defusedxml==0.7.1 40 | dill==0.3.4 41 | docker==5.0.3 42 | entrypoints==0.3 43 | fastapi==0.70.1 44 | flake8==4.0.1 45 | Flask==2.0.2 46 | Flask-Cors==3.0.10 47 | flatbuffers==2.0 48 | folium==0.12.1.post1 49 | fonttools==4.28.5 50 | frozenlist==1.2.0 51 | fsspec==2021.11.1 52 | future==0.18.2 53 | gast==0.4.0 54 | gensim==4.1.2 55 | gitdb==4.0.9 56 | GitPython==3.1.24 57 | google-api-core==2.3.2 58 | google-auth==2.3.3 59 | google-auth-oauthlib==0.4.6 60 | google-cloud-bigquery==2.31.0 61 | google-cloud-bigquery-storage==2.10.1 62 | google-cloud-core==2.2.1 63 | google-crc32c==1.3.0 64 | google-pasta==0.2.0 65 | google-resumable-media==2.1.0 66 | google-trans-new==1.1.9 67 | googleapis-common-protos==1.54.0 68 | graphviz==0.20 69 | greenlet==1.1.2 70 | grpcio==1.43.0 71 | grpcio-status==1.43.0 72 | gunicorn==20.1.0 73 | h11==0.12.0 74 | h5py==3.6.0 75 | htmlmin==0.1.12 76 | idna==3.3 77 | ImageHash==4.2.1 78 | imageio==2.13.5 79 | imbalanced-learn==0.8.1 80 | imblearn==0.0 81 | importlib-metadata==4.10.0 82 | importlib-resources==5.4.0 83 | iniconfig==1.1.1 84 | ipdb==0.13.9 85 | ipykernel==6.6.1 86 | ipympl==0.8.5 87 | ipython==7.31.0 88 | ipython-genutils==0.2.0 89 | ipywidgets==7.6.5 90 | isort==5.10.1 91 | itsdangerous==2.0.1 92 | jedi==0.18.1 93 | Jinja2==3.0.3 94 | jmespath==0.10.0 95 | joblib==1.0.1 96 | json5==0.9.6 97 | jsonschema==4.3.3 98 | jupyter==1.0.0 99 | jupyter-client==7.1.0 100 | jupyter-console==6.4.0 101 | jupyter-contrib-core==0.3.3 102 | jupyter-contrib-nbextensions==0.5.1 103 | jupyter-core==4.9.1 104 | jupyter-highlight-selected-word==0.2.0 105 | jupyter-latex-envs==1.4.6 106 | jupyter-nbextensions-configurator==0.4.1 107 | jupyter-resource-usage==0.6.1 108 | jupyter-server==1.13.1 109 | jupyter-server-mathjax==0.2.3 110 | jupyterlab==3.2.5 111 | jupyterlab-pygments==0.1.2 112 | jupyterlab-server==2.10.2 113 | jupyterlab-widgets==1.0.2 114 | kaggle==1.5.12 115 | keras==2.7.0 116 | Keras-Preprocessing==1.1.2 117 | kiwisolver==1.3.2 118 | lazy-object-proxy==1.7.1 119 | libclang==12.0.0 120 | libcst==0.3.23 121 | locket==0.2.1 122 | lxml==4.7.1 123 | Mako==1.1.6 124 | Markdown==3.3.6 125 | MarkupSafe==2.0.1 126 | matplotlib==3.5.1 127 | matplotlib-inline==0.1.3 128 | mccabe==0.6.1 129 | memoized-property==1.0.3 130 | missingno==0.5.0 131 | mistune==0.8.4 132 | mlflow==1.22.0 133 | multidict==5.2.0 134 | multimethod==1.6 135 | mypy-extensions==0.4.3 136 | nbclassic==0.3.4 137 | nbclient==0.5.9 138 | nbconvert==6.4.0 139 | nbdime==3.1.1 140 | nbformat==5.1.3 141 | nbresult==0.0.4 142 | nest-asyncio==1.5.4 143 | networkx==2.6.3 144 | nltk==3.6.7 145 | notebook==6.4.6 146 | numpy==1.19.5 147 | oauthlib==3.1.1 148 | opt-einsum==3.3.0 149 | packaging==21.3 150 | git+ssh://git@github.com/krokrob/packgenlite 151 | pandas==1.3.5 152 | pandas-gbq==0.16.0 153 | pandas-profiling==3.1.0 154 | pandocfilters==1.5.0 155 | parso==0.8.3 156 | partd==1.2.0 157 | pathspec==0.9.0 158 | patsy==0.5.2 159 | pexpect==4.8.0 160 | phik==0.12.0 161 | pickleshare==0.7.5 162 | Pillow==9.0.0 163 | platformdirs==2.4.1 164 | plotly==5.5.0 165 | pluggy==1.0.0 166 | pmdarima==1.8.4 167 | prometheus-client==0.12.0 168 | prometheus-flask-exporter==0.18.7 169 | promise==2.3 170 | prompt-toolkit==3.0.24 171 | proto-plus==1.19.8 172 | protobuf==3.19.1 173 | psutil==5.9.0 174 | ptyprocess==0.7.0 175 | py==1.11.0 176 | pyarrow==6.0.1 177 | pyasn1==0.4.8 178 | pyasn1-modules==0.2.8 179 | pycodestyle==2.8.0 180 | pycparser==2.21 181 | pydantic==1.9.0 182 | pydata-google-auth==1.3.0 183 | pyflakes==2.4.0 184 | pygeohash==1.2.0 185 | Pygments==2.11.2 186 | pylint==2.10.2 187 | pyparsing==3.0.6 188 | pyrsistent==0.18.0 189 | pytest==6.2.5 190 | python-dateutil==2.8.2 191 | python-editor==1.0.4 192 | python-gitlab==3.0.0 193 | python-slugify==5.0.2 194 | pytz==2021.3 195 | PyWavelets==1.2.0 196 | PyYAML==6.0 197 | pyzmq==22.3.0 198 | qtconsole==5.2.2 199 | QtPy==2.0.0 200 | querystring-parser==1.2.4 201 | regex==2021.11.10 202 | requests==2.27.1 203 | requests-oauthlib==1.3.0 204 | requests-toolbelt==0.9.1 205 | rsa==4.8 206 | s3fs==2021.11.1 207 | scikit-image==0.19.1 208 | scikit-learn==1.0.2 209 | scipy==1.7.3 210 | seaborn==0.11.2 211 | Send2Trash==1.8.0 212 | setuptools-scm==6.3.2 213 | six==1.16.0 214 | smart-open==5.2.1 215 | smmap==5.0.0 216 | sniffio==1.2.0 217 | soupsieve==2.3.1 218 | SQLAlchemy==1.4.29 219 | sqlparse==0.4.2 220 | starlette==0.16.0 221 | statsmodels==0.13.1 222 | stopit==1.1.2 223 | tabulate==0.8.9 224 | tangled-up-in-unicode==0.1.0 225 | tenacity==8.0.1 226 | tensorboard==2.7.0 227 | tensorboard-data-server==0.6.1 228 | tensorboard-plugin-wit==1.8.1 229 | tensorflow==2.7.0 230 | tensorflow-datasets==4.4.0 231 | tensorflow-estimator==2.7.0 232 | tensorflow-io-gcs-filesystem==0.23.1 233 | tensorflow-metadata==1.5.0 234 | termcolor==1.1.0 235 | terminado==0.12.1 236 | testpath==0.5.0 237 | text-unidecode==1.3 238 | threadpoolctl==3.0.0 239 | tifffile==2021.11.2 240 | toml==0.10.2 241 | tomli==1.2.3 242 | toolz==0.11.2 243 | tornado==6.1 244 | TPOT==0.11.7 245 | tqdm==4.62.3 246 | traitlets==5.1.1 247 | typing-inspect==0.7.1 248 | typing_extensions==4.0.1 249 | update-checker==0.18.0 250 | urllib3==1.26.7 251 | uvicorn==0.16.0 252 | visions==0.7.4 253 | wcwidth==0.2.5 254 | webencodings==0.5.1 255 | websocket-client==1.2.3 256 | Werkzeug==2.0.2 257 | widgetsnbextension==3.5.2 258 | wrapt==1.12.1 259 | xgboost==1.5.1 260 | XlsxWriter==3.0.2 261 | yapf==0.32.0 262 | yarl==1.7.2 263 | zipp==3.7.0 264 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q2/python_version.txt: -------------------------------------------------------------------------------- 1 | 3.8.12 2 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q4/README.md: -------------------------------------------------------------------------------- 1 | 2 | ## files 3 | 4 | files generated from https://github.com/lewagon/utils/blob/master/data-setup/process/base/requirements.txt 5 | 6 | apple_intel 7 | apple_silicon from this release this refers to a native silicon setup (without using rosetta i386) 8 | glovebox 9 | linux 10 | python_version 11 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q4/apple_intel.txt: -------------------------------------------------------------------------------- 1 | absl-py==1.3.0 2 | altair==4.2.0 3 | anyio==3.6.2 4 | appnope==0.1.3 5 | argon2-cffi==21.3.0 6 | argon2-cffi-bindings==21.2.0 7 | astroid==2.11.7 8 | asttokens==2.0.8 9 | astunparse==1.6.3 10 | attrs==22.1.0 11 | autopep8==1.6.0 12 | Babel==2.10.3 13 | backcall==0.2.0 14 | beautifulsoup4==4.11.1 15 | bleach==5.0.1 16 | blinker==1.5 17 | branca==0.5.0 18 | cachetools==5.2.0 19 | certifi==2022.9.24 20 | cffi==1.15.1 21 | charset-normalizer==2.1.1 22 | click==8.1.3 23 | cloudpickle==2.2.0 24 | colorama==0.4.5 25 | commonmark==0.9.1 26 | cycler==0.11.0 27 | Cython==0.29.32 28 | dask==2022.7.1 29 | db-dtypes==1.0.4 30 | deap==1.3.3 31 | debugpy==1.6.3 32 | decorator==5.1.1 33 | defusedxml==0.7.1 34 | dill==0.3.6 35 | entrypoints==0.4 36 | etils==0.8.0 37 | executing==1.1.1 38 | fastjsonschema==2.16.2 39 | flake8==4.0.1 40 | flatbuffers==22.9.24 41 | folium==0.12.1.post1 42 | fonttools==4.38.0 43 | fsspec==2022.10.0 44 | gast==0.4.0 45 | gensim==4.2.0 46 | gitdb==4.0.9 47 | GitPython==3.1.29 48 | google-api-core==2.10.2 49 | google-auth==2.13.0 50 | google-auth-oauthlib==0.4.6 51 | google-cloud-bigquery==2.34.4 52 | google-cloud-bigquery-storage==2.16.2 53 | google-cloud-core==2.3.2 54 | google-cloud-storage==2.4.0 55 | google-crc32c==1.5.0 56 | google-pasta==0.2.0 57 | google-resumable-media==2.4.0 58 | google-trans-new==1.1.9 59 | googleapis-common-protos==1.56.4 60 | grpcio==1.50.0 61 | grpcio-status==1.48.2 62 | h11==0.12.0 63 | h5py==3.7.0 64 | htmlmin==0.1.12 65 | httpcore==0.15.0 66 | httpx==0.23.0 67 | idna==3.4 68 | ImageHash==4.3.1 69 | imageio==2.22.2 70 | imbalanced-learn==0.9.1 71 | imblearn==0.0 72 | importlib-metadata==5.0.0 73 | importlib-resources==5.10.0 74 | iniconfig==1.1.1 75 | ipdb==0.13.9 76 | ipykernel==6.15.3 77 | ipympl==0.9.2 78 | ipython==8.5.0 79 | ipython-genutils==0.2.0 80 | ipywidgets==7.7.2 81 | isort==5.10.1 82 | jedi==0.18.1 83 | Jinja2==3.1.2 84 | joblib==1.1.1 85 | json5==0.9.10 86 | jsonschema==4.16.0 87 | jupyter-contrib-core==0.4.0 88 | jupyter-contrib-nbextensions==0.5.1 89 | jupyter-highlight-selected-word==0.2.0 90 | jupyter-latex-envs==1.4.6 91 | jupyter-nbextensions-configurator==0.5.0 92 | jupyter-resource-usage==0.6.3 93 | jupyter-server==1.21.0 94 | jupyter_client==7.4.3 95 | jupyter_core==4.11.2 96 | jupyterlab==3.4.8 97 | jupyterlab-pygments==0.2.2 98 | jupyterlab-widgets==1.1.1 99 | jupyterlab_server==2.16.1 100 | kaggle==1.5.12 101 | keras==2.10.0 102 | Keras-Preprocessing==1.1.2 103 | kiwisolver==1.4.4 104 | lazy-object-proxy==1.7.1 105 | libclang==14.0.6 106 | locket==1.0.0 107 | lxml==4.9.1 108 | Markdown==3.4.1 109 | MarkupSafe==2.1.1 110 | matplotlib==3.5.3 111 | matplotlib-inline==0.1.6 112 | mccabe==0.6.1 113 | memoized-property==1.0.3 114 | missingno==0.5.1 115 | mistune==0.8.4 116 | multimethod==1.8 117 | nbclassic==0.4.7 118 | nbclient==0.7.0 119 | nbconvert==6.5.4 120 | nbformat==5.7.0 121 | nbresult==0.0.8 122 | nest-asyncio==1.5.6 123 | networkx==2.8.7 124 | nltk==3.7 125 | notebook==6.4.12 126 | notebook_shim==0.2.0 127 | numpy==1.23.4 128 | oauthlib==3.2.2 129 | opt-einsum==3.3.0 130 | packaging==21.3 131 | pandas==1.4.4 132 | pandas-gbq==0.17.9 133 | pandas-profiling==3.3.0 134 | pandocfilters==1.5.0 135 | parso==0.8.3 136 | partd==1.3.0 137 | patsy==0.5.3 138 | pexpect==4.8.0 139 | phik==0.12.2 140 | pickleshare==0.7.5 141 | Pillow==9.1.1 142 | platformdirs==2.5.2 143 | plotly==5.9.0 144 | pluggy==1.0.0 145 | pmdarima==2.0.1 146 | prometheus-client==0.15.0 147 | promise==2.3 148 | prompt-toolkit==3.0.31 149 | proto-plus==1.22.1 150 | protobuf==3.19.6 151 | psutil==5.9.3 152 | psycopg2-binary==2.9.4 153 | ptyprocess==0.7.0 154 | pure-eval==0.2.2 155 | py==1.11.0 156 | pyarrow==8.0.0 157 | pyasn1==0.4.8 158 | pyasn1-modules==0.2.8 159 | pycodestyle==2.8.0 160 | pycparser==2.21 161 | pydantic==1.9.2 162 | pydata-google-auth==1.4.0 163 | pydeck==0.8.0b4 164 | pyflakes==2.4.0 165 | Pygments==2.13.0 166 | pylint==2.14.5 167 | Pympler==1.0.1 168 | pyparsing==3.0.9 169 | pyrsistent==0.18.1 170 | pytest==7.1.3 171 | pytest-asyncio==0.19.0 172 | python-dateutil==2.8.2 173 | python-dotenv==0.20.0 174 | python-slugify==6.1.2 175 | pytz==2022.1 176 | pytz-deprecation-shim==0.1.0.post0 177 | PyWavelets==1.4.1 178 | PyYAML==5.4.1 179 | pyzmq==24.0.1 180 | regex==2022.9.13 181 | requests==2.28.1 182 | requests-oauthlib==1.3.1 183 | rfc3986==1.5.0 184 | rich==12.6.0 185 | rsa==4.9 186 | scikit-image==0.19.3 187 | scikit-learn==1.1.2 188 | scipy==1.8.1 189 | seaborn==0.11.2 190 | semver==2.13.0 191 | Send2Trash==1.8.0 192 | setuptools-scm==6.4.2 193 | six==1.16.0 194 | smart-open==6.2.0 195 | smmap==5.0.0 196 | sniffio==1.3.0 197 | soupsieve==2.3.2.post1 198 | stack-data==0.5.1 199 | statsmodels==0.13.2 200 | stopit==1.1.2 201 | streamlit==1.11.1 202 | tangled-up-in-unicode==0.2.0 203 | tenacity==8.1.0 204 | tensorboard==2.10.1 205 | tensorboard-data-server==0.6.1 206 | tensorboard-plugin-wit==1.8.1 207 | tensorflow==2.10.0 208 | tensorflow-datasets==4.6.0 209 | tensorflow-estimator==2.10.0 210 | tensorflow-io-gcs-filesystem==0.27.0 211 | tensorflow-metadata==1.10.0 212 | termcolor==2.0.1 213 | terminado==0.16.0 214 | text-unidecode==1.3 215 | threadpoolctl==3.1.0 216 | tifffile==2022.10.10 217 | tinycss2==1.2.1 218 | toml==0.10.2 219 | tomli==2.0.1 220 | tomlkit==0.11.5 221 | toolz==0.12.0 222 | tornado==6.2 223 | TPOT==0.11.7 224 | tqdm==4.64.1 225 | traitlets==5.5.0 226 | typing_extensions==4.4.0 227 | tzdata==2022.5 228 | tzlocal==4.2 229 | update-checker==0.18.0 230 | urllib3==1.26.12 231 | validators==0.20.0 232 | visions==0.7.5 233 | wcwidth==0.2.5 234 | webencodings==0.5.1 235 | websocket-client==1.4.1 236 | Werkzeug==2.2.2 237 | widgetsnbextension==3.6.1 238 | wrapt==1.14.1 239 | xgboost==1.6.2 240 | XlsxWriter==3.0.3 241 | yapf==0.32.0 242 | zipp==3.10.0 243 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q4/apple_silicon.txt: -------------------------------------------------------------------------------- 1 | absl-py==1.3.0 2 | altair==4.2.0 3 | anyio==3.6.2 4 | appnope==0.1.3 5 | argon2-cffi==21.3.0 6 | argon2-cffi-bindings==21.2.0 7 | astroid==2.11.7 8 | asttokens==2.0.8 9 | astunparse==1.6.3 10 | attrs==22.1.0 11 | autopep8==1.6.0 12 | Babel==2.10.3 13 | backcall==0.2.0 14 | beautifulsoup4==4.11.1 15 | bleach==5.0.1 16 | blinker==1.5 17 | branca==0.5.0 18 | cachetools==5.2.0 19 | certifi==2022.9.24 20 | cffi==1.15.1 21 | charset-normalizer==2.1.1 22 | click==8.1.3 23 | cloudpickle==2.2.0 24 | colorama==0.4.5 25 | commonmark==0.9.1 26 | cycler==0.11.0 27 | Cython==0.29.32 28 | dask==2022.7.1 29 | db-dtypes==1.0.4 30 | deap==1.3.3 31 | debugpy==1.6.3 32 | decorator==5.1.1 33 | defusedxml==0.7.1 34 | dill==0.3.6 35 | entrypoints==0.4 36 | etils==0.8.0 37 | executing==1.1.1 38 | fastjsonschema==2.16.2 39 | flake8==4.0.1 40 | flatbuffers==22.9.24 41 | folium==0.12.1.post1 42 | fonttools==4.38.0 43 | fsspec==2022.10.0 44 | gast==0.4.0 45 | gensim==4.2.0 46 | gitdb==4.0.9 47 | GitPython==3.1.29 48 | google-api-core==2.10.2 49 | google-auth==2.13.0 50 | google-auth-oauthlib==0.4.6 51 | google-cloud-bigquery==2.34.4 52 | google-cloud-bigquery-storage==2.16.2 53 | google-cloud-core==2.3.2 54 | google-cloud-storage==2.4.0 55 | google-crc32c==1.5.0 56 | google-pasta==0.2.0 57 | google-resumable-media==2.4.0 58 | google-trans-new==1.1.9 59 | googleapis-common-protos==1.56.4 60 | grpcio==1.50.0 61 | grpcio-status==1.48.2 62 | h11==0.12.0 63 | h5py==3.7.0 64 | htmlmin==0.1.12 65 | httpcore==0.15.0 66 | httpx==0.23.0 67 | idna==3.4 68 | ImageHash==4.3.1 69 | imageio==2.22.2 70 | imbalanced-learn==0.9.1 71 | imblearn==0.0 72 | importlib-metadata==5.0.0 73 | importlib-resources==5.10.0 74 | iniconfig==1.1.1 75 | ipdb==0.13.9 76 | ipykernel==6.15.3 77 | ipympl==0.9.2 78 | ipython==8.5.0 79 | ipython-genutils==0.2.0 80 | ipywidgets==7.7.2 81 | isort==5.10.1 82 | jedi==0.18.1 83 | Jinja2==3.1.2 84 | joblib==1.1.1 85 | json5==0.9.10 86 | jsonschema==4.16.0 87 | jupyter-contrib-core==0.4.0 88 | jupyter-contrib-nbextensions==0.5.1 89 | jupyter-highlight-selected-word==0.2.0 90 | jupyter-latex-envs==1.4.6 91 | jupyter-nbextensions-configurator==0.5.0 92 | jupyter-resource-usage==0.6.3 93 | jupyter-server==1.21.0 94 | jupyter_client==7.4.3 95 | jupyter_core==4.11.2 96 | jupyterlab==3.4.8 97 | jupyterlab-pygments==0.2.2 98 | jupyterlab-widgets==1.1.1 99 | jupyterlab_server==2.16.1 100 | kaggle==1.5.12 101 | keras==2.10.0 102 | Keras-Preprocessing==1.1.2 103 | kiwisolver==1.4.4 104 | lazy-object-proxy==1.7.1 105 | libclang==14.0.6 106 | locket==1.0.0 107 | lxml==4.9.1 108 | Markdown==3.4.1 109 | MarkupSafe==2.1.1 110 | matplotlib==3.5.3 111 | matplotlib-inline==0.1.6 112 | mccabe==0.6.1 113 | memoized-property==1.0.3 114 | missingno==0.5.1 115 | mistune==0.8.4 116 | multimethod==1.8 117 | nbclassic==0.4.7 118 | nbclient==0.7.0 119 | nbconvert==6.5.4 120 | nbformat==5.7.0 121 | nbresult==0.0.8 122 | nest-asyncio==1.5.6 123 | networkx==2.8.7 124 | nltk==3.7 125 | notebook==6.4.12 126 | notebook_shim==0.2.0 127 | numpy==1.23.4 128 | oauthlib==3.2.2 129 | opt-einsum==3.3.0 130 | packaging==21.3 131 | pandas==1.4.4 132 | pandas-gbq==0.17.9 133 | pandas-profiling==3.3.0 134 | pandocfilters==1.5.0 135 | parso==0.8.3 136 | partd==1.3.0 137 | patsy==0.5.3 138 | pexpect==4.8.0 139 | phik==0.12.2 140 | pickleshare==0.7.5 141 | Pillow==9.1.1 142 | platformdirs==2.5.2 143 | plotly==5.9.0 144 | pluggy==1.0.0 145 | pmdarima==2.0.1 146 | prometheus-client==0.15.0 147 | promise==2.3 148 | prompt-toolkit==3.0.31 149 | proto-plus==1.22.1 150 | protobuf==3.19.6 151 | psutil==5.9.3 152 | psycopg2-binary==2.9.4 153 | ptyprocess==0.7.0 154 | pure-eval==0.2.2 155 | py==1.11.0 156 | pyarrow==8.0.0 157 | pyasn1==0.4.8 158 | pyasn1-modules==0.2.8 159 | pycodestyle==2.8.0 160 | pycparser==2.21 161 | pydantic==1.9.2 162 | pydata-google-auth==1.4.0 163 | pydeck==0.8.0b4 164 | pyflakes==2.4.0 165 | Pygments==2.13.0 166 | pylint==2.14.5 167 | Pympler==1.0.1 168 | pyparsing==3.0.9 169 | pyrsistent==0.18.1 170 | pytest==7.1.3 171 | pytest-asyncio==0.19.0 172 | python-dateutil==2.8.2 173 | python-dotenv==0.20.0 174 | python-slugify==6.1.2 175 | pytz==2022.1 176 | pytz-deprecation-shim==0.1.0.post0 177 | PyWavelets==1.4.1 178 | PyYAML==5.4.1 179 | pyzmq==24.0.1 180 | regex==2022.9.13 181 | requests==2.28.1 182 | requests-oauthlib==1.3.1 183 | rfc3986==1.5.0 184 | rich==12.6.0 185 | rsa==4.9 186 | scikit-image==0.19.3 187 | scikit-learn==1.1.2 188 | scipy==1.8.1 189 | seaborn==0.11.2 190 | semver==2.13.0 191 | Send2Trash==1.8.0 192 | setuptools-scm==6.4.2 193 | six==1.16.0 194 | smart-open==6.2.0 195 | smmap==5.0.0 196 | sniffio==1.3.0 197 | soupsieve==2.3.2.post1 198 | stack-data==0.5.1 199 | statsmodels==0.13.2 200 | stopit==1.1.2 201 | streamlit==1.11.1 202 | tangled-up-in-unicode==0.2.0 203 | tenacity==8.1.0 204 | tensorboard==2.10.1 205 | tensorboard-data-server==0.6.1 206 | tensorboard-plugin-wit==1.8.1 207 | tensorflow-datasets==4.6.0 208 | tensorflow-estimator==2.10.0 209 | tensorflow-macos==2.10.0 210 | tensorflow-metadata==1.10.0 211 | termcolor==2.0.1 212 | terminado==0.16.0 213 | text-unidecode==1.3 214 | threadpoolctl==3.1.0 215 | tifffile==2022.10.10 216 | tinycss2==1.2.1 217 | toml==0.10.2 218 | tomli==2.0.1 219 | tomlkit==0.11.5 220 | toolz==0.12.0 221 | tornado==6.2 222 | TPOT==0.11.7 223 | tqdm==4.64.1 224 | traitlets==5.5.0 225 | typing_extensions==4.4.0 226 | tzdata==2022.5 227 | tzlocal==4.2 228 | update-checker==0.18.0 229 | urllib3==1.26.12 230 | validators==0.20.0 231 | visions==0.7.5 232 | wcwidth==0.2.5 233 | webencodings==0.5.1 234 | websocket-client==1.4.1 235 | Werkzeug==2.2.2 236 | widgetsnbextension==3.6.1 237 | wrapt==1.14.1 238 | xgboost==1.6.2 239 | XlsxWriter==3.0.3 240 | yapf==0.32.0 241 | zipp==3.10.0 242 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q4/glovebox.txt: -------------------------------------------------------------------------------- 1 | astroid==2.11.7 2 | asttokens==2.0.8 3 | attrs==22.1.0 4 | autopep8==1.6.0 5 | backcall==0.2.0 6 | beautifulsoup4==4.11.1 7 | certifi==2022.9.24 8 | charset-normalizer==2.1.1 9 | cycler==0.11.0 10 | decorator==5.1.1 11 | dill==0.3.6 12 | executing==1.1.1 13 | flake8==4.0.1 14 | fonttools==4.38.0 15 | idna==3.4 16 | iniconfig==1.1.1 17 | ipdb==0.13.9 18 | ipython==8.5.0 19 | isort==5.10.1 20 | jedi==0.18.1 21 | joblib==1.1.1 22 | kiwisolver==1.4.4 23 | lazy-object-proxy==1.7.1 24 | lxml==4.9.1 25 | matplotlib==3.5.3 26 | matplotlib-inline==0.1.6 27 | mccabe==0.6.1 28 | memoized-property==1.0.3 29 | nbresult==0.0.8 30 | numpy==1.23.4 31 | packaging==21.3 32 | pandas==1.4.4 33 | parso==0.8.3 34 | pexpect==4.8.0 35 | pickleshare==0.7.5 36 | Pillow==9.1.1 37 | platformdirs==2.5.2 38 | pluggy==1.0.0 39 | prompt-toolkit==3.0.31 40 | ptyprocess==0.7.0 41 | pure-eval==0.2.2 42 | py==1.11.0 43 | pycodestyle==2.8.0 44 | pyflakes==2.4.0 45 | Pygments==2.13.0 46 | pylint==2.14.5 47 | pyparsing==3.0.9 48 | pytest==7.1.3 49 | python-dateutil==2.8.2 50 | pytz==2022.1 51 | PyYAML==5.4.1 52 | requests==2.28.1 53 | scikit-learn==1.1.2 54 | scipy==1.8.1 55 | setuptools-scm==6.4.2 56 | six==1.16.0 57 | soupsieve==2.3.2.post1 58 | stack-data==0.5.1 59 | threadpoolctl==3.1.0 60 | toml==0.10.2 61 | tomli==2.0.1 62 | tomlkit==0.11.5 63 | traitlets==5.5.0 64 | urllib3==1.26.12 65 | wcwidth==0.2.5 66 | wrapt==1.14.1 67 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q4/linux.txt: -------------------------------------------------------------------------------- 1 | absl-py==1.3.0 2 | altair==4.2.0 3 | anyio==3.6.2 4 | argon2-cffi==21.3.0 5 | argon2-cffi-bindings==21.2.0 6 | astroid==2.11.7 7 | asttokens==2.0.8 8 | astunparse==1.6.3 9 | attrs==22.1.0 10 | autopep8==1.6.0 11 | Babel==2.10.3 12 | backcall==0.2.0 13 | beautifulsoup4==4.11.1 14 | bleach==5.0.1 15 | blinker==1.5 16 | branca==0.5.0 17 | cachetools==5.2.0 18 | certifi==2022.9.24 19 | cffi==1.15.1 20 | charset-normalizer==2.1.1 21 | click==8.1.3 22 | cloudpickle==2.2.0 23 | colorama==0.4.5 24 | commonmark==0.9.1 25 | cycler==0.11.0 26 | Cython==0.29.32 27 | dask==2022.7.1 28 | db-dtypes==1.0.4 29 | deap==1.3.3 30 | debugpy==1.6.3 31 | decorator==5.1.1 32 | defusedxml==0.7.1 33 | dill==0.3.6 34 | entrypoints==0.4 35 | etils==0.8.0 36 | executing==1.1.1 37 | fastjsonschema==2.16.2 38 | flake8==4.0.1 39 | flatbuffers==22.9.24 40 | folium==0.12.1.post1 41 | fonttools==4.38.0 42 | fsspec==2022.10.0 43 | gast==0.4.0 44 | gensim==4.2.0 45 | gitdb==4.0.9 46 | GitPython==3.1.29 47 | google-api-core==2.10.2 48 | google-auth==2.13.0 49 | google-auth-oauthlib==0.4.6 50 | google-cloud-bigquery==2.34.4 51 | google-cloud-bigquery-storage==2.16.2 52 | google-cloud-core==2.3.2 53 | google-cloud-storage==2.4.0 54 | google-crc32c==1.5.0 55 | google-pasta==0.2.0 56 | google-resumable-media==2.4.0 57 | google-trans-new==1.1.9 58 | googleapis-common-protos==1.56.4 59 | grpcio==1.50.0 60 | grpcio-status==1.48.2 61 | h11==0.12.0 62 | h5py==3.7.0 63 | htmlmin==0.1.12 64 | httpcore==0.15.0 65 | httpx==0.23.0 66 | idna==3.4 67 | ImageHash==4.3.1 68 | imageio==2.22.2 69 | imbalanced-learn==0.9.1 70 | imblearn==0.0 71 | importlib-metadata==5.0.0 72 | importlib-resources==5.10.0 73 | iniconfig==1.1.1 74 | ipdb==0.13.9 75 | ipykernel==6.15.3 76 | ipympl==0.9.2 77 | ipython==8.5.0 78 | ipython-genutils==0.2.0 79 | ipywidgets==7.7.2 80 | isort==5.10.1 81 | jedi==0.18.1 82 | Jinja2==3.1.2 83 | joblib==1.1.1 84 | json5==0.9.10 85 | jsonschema==4.16.0 86 | jupyter-contrib-core==0.4.0 87 | jupyter-contrib-nbextensions==0.5.1 88 | jupyter-highlight-selected-word==0.2.0 89 | jupyter-latex-envs==1.4.6 90 | jupyter-nbextensions-configurator==0.5.0 91 | jupyter-resource-usage==0.6.3 92 | jupyter-server==1.21.0 93 | jupyter_client==7.4.3 94 | jupyter_core==4.11.2 95 | jupyterlab==3.4.8 96 | jupyterlab-pygments==0.2.2 97 | jupyterlab-widgets==1.1.1 98 | jupyterlab_server==2.16.1 99 | kaggle==1.5.12 100 | keras==2.10.0 101 | Keras-Preprocessing==1.1.2 102 | kiwisolver==1.4.4 103 | lazy-object-proxy==1.7.1 104 | libclang==14.0.6 105 | locket==1.0.0 106 | lxml==4.9.1 107 | Markdown==3.4.1 108 | MarkupSafe==2.1.1 109 | matplotlib==3.5.3 110 | matplotlib-inline==0.1.6 111 | mccabe==0.6.1 112 | memoized-property==1.0.3 113 | missingno==0.5.1 114 | mistune==0.8.4 115 | multimethod==1.8 116 | nbclassic==0.4.7 117 | nbclient==0.7.0 118 | nbconvert==6.5.4 119 | nbformat==5.7.0 120 | nbresult==0.0.8 121 | nest-asyncio==1.5.6 122 | networkx==2.8.7 123 | nltk==3.7 124 | notebook==6.4.12 125 | notebook_shim==0.2.0 126 | numpy==1.23.4 127 | oauthlib==3.2.2 128 | opt-einsum==3.3.0 129 | packaging==21.3 130 | pandas==1.4.4 131 | pandas-gbq==0.17.9 132 | pandas-profiling==3.3.0 133 | pandocfilters==1.5.0 134 | parso==0.8.3 135 | partd==1.3.0 136 | patsy==0.5.3 137 | pexpect==4.8.0 138 | phik==0.12.2 139 | pickleshare==0.7.5 140 | Pillow==9.1.1 141 | platformdirs==2.5.2 142 | plotly==5.9.0 143 | pluggy==1.0.0 144 | pmdarima==2.0.1 145 | prometheus-client==0.15.0 146 | promise==2.3 147 | prompt-toolkit==3.0.31 148 | proto-plus==1.22.1 149 | protobuf==3.19.6 150 | psutil==5.9.3 151 | psycopg2-binary==2.9.4 152 | ptyprocess==0.7.0 153 | pure-eval==0.2.2 154 | py==1.11.0 155 | pyarrow==8.0.0 156 | pyasn1==0.4.8 157 | pyasn1-modules==0.2.8 158 | pycodestyle==2.8.0 159 | pycparser==2.21 160 | pydantic==1.9.2 161 | pydata-google-auth==1.4.0 162 | pydeck==0.8.0b4 163 | pyflakes==2.4.0 164 | Pygments==2.13.0 165 | pylint==2.14.5 166 | Pympler==1.0.1 167 | pyparsing==3.0.9 168 | pyrsistent==0.18.1 169 | pytest==7.1.3 170 | pytest-asyncio==0.19.0 171 | python-dateutil==2.8.2 172 | python-dotenv==0.20.0 173 | python-slugify==6.1.2 174 | pytz==2022.1 175 | pytz-deprecation-shim==0.1.0.post0 176 | PyWavelets==1.4.1 177 | PyYAML==5.4.1 178 | pyzmq==24.0.1 179 | regex==2022.9.13 180 | requests==2.28.1 181 | requests-oauthlib==1.3.1 182 | rfc3986==1.5.0 183 | rich==12.6.0 184 | rsa==4.9 185 | scikit-image==0.19.3 186 | scikit-learn==1.1.2 187 | scipy==1.8.1 188 | seaborn==0.11.2 189 | semver==2.13.0 190 | Send2Trash==1.8.0 191 | setuptools-scm==6.4.2 192 | six==1.16.0 193 | smart-open==6.2.0 194 | smmap==5.0.0 195 | sniffio==1.3.0 196 | soupsieve==2.3.2.post1 197 | stack-data==0.5.1 198 | statsmodels==0.13.2 199 | stopit==1.1.2 200 | streamlit==1.11.1 201 | tangled-up-in-unicode==0.2.0 202 | tenacity==8.1.0 203 | tensorboard==2.10.1 204 | tensorboard-data-server==0.6.1 205 | tensorboard-plugin-wit==1.8.1 206 | tensorflow==2.10.0 207 | tensorflow-datasets==4.6.0 208 | tensorflow-estimator==2.10.0 209 | tensorflow-io-gcs-filesystem==0.27.0 210 | tensorflow-metadata==1.10.0 211 | termcolor==2.0.1 212 | terminado==0.16.0 213 | text-unidecode==1.3 214 | threadpoolctl==3.1.0 215 | tifffile==2022.10.10 216 | tinycss2==1.2.1 217 | toml==0.10.2 218 | tomli==2.0.1 219 | tomlkit==0.11.5 220 | toolz==0.12.0 221 | tornado==6.2 222 | TPOT==0.11.7 223 | tqdm==4.64.1 224 | traitlets==5.5.0 225 | typing_extensions==4.4.0 226 | tzdata==2022.5 227 | tzlocal==4.2 228 | update-checker==0.18.0 229 | urllib3==1.26.12 230 | validators==0.20.0 231 | visions==0.7.5 232 | watchdog==2.1.9 233 | wcwidth==0.2.5 234 | webencodings==0.5.1 235 | websocket-client==1.4.1 236 | Werkzeug==2.2.2 237 | widgetsnbextension==3.6.1 238 | wrapt==1.14.1 239 | xgboost==1.6.2 240 | XlsxWriter==3.0.3 241 | yapf==0.32.0 242 | zipp==3.10.0 243 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q4/pyproject_install_dates.txt: -------------------------------------------------------------------------------- 1 | 2022-10-24 01:21:49 zipp==3.10.0 2 | 2022-10-23 22:46:33 dill==0.3.6 3 | 2022-10-21 18:18:52 fonttools==4.38.0 4 | 2022-10-20 07:13:16 nbclassic==0.4.7 5 | 2022-10-19 22:24:09 jupyter_client==7.4.3 6 | 2022-10-19 17:11:32 jupyterlab_server==2.16.1 7 | 2022-10-19 15:01:07 fsspec==2022.10.0 8 | 2022-10-19 14:11:36 jupyter_core==4.11.2 9 | 2022-10-19 10:08:34 anyio==3.6.2 10 | 2022-10-18 20:15:11 psutil==5.9.3 11 | 2022-10-18 17:52:55 grpcio==1.50.0 12 | 2022-10-18 12:40:20 traitlets==5.5.0 13 | 2022-10-18 07:04:56 tinycss2==1.2.1 14 | 2022-10-17 20:04:27 oauthlib==3.2.2 15 | 2022-10-17 16:12:45 notebook_shim==0.2.0 16 | 2022-10-17 15:14:40 google-auth==2.13.0 17 | 2022-10-16 19:25:26 imageio==2.22.2 18 | 2022-10-13 20:32:52 absl-py==1.3.0 19 | 2022-10-13 15:15:27 pydeck==0.8.0b4 20 | 2022-10-13 14:49:13 prometheus-client==0.15.0 21 | 2022-10-13 00:44:38 tzdata==2022.5 22 | 2022-10-12 14:53:03 numpy==1.23.4 23 | 2022-10-11 16:30:44 tifffile==2022.10.10 24 | 2022-10-11 11:37:13 jupyter-server==1.21.0 25 | 2022-10-10 23:50:08 GitPython==3.1.29 26 | 2022-10-10 16:29:33 google-cloud-bigquery-storage==2.16.2 27 | 2022-10-10 13:12:17 nbformat==5.7.0 28 | 2022-10-10 12:54:10 joblib==1.1.1 29 | 2022-10-09 20:27:39 patsy==0.5.3 30 | 2022-10-08 15:36:32 executing==1.1.1 31 | 2022-10-08 01:10:36 importlib-resources==5.10.0 32 | 2022-10-08 00:45:43 google-api-core==2.10.2 33 | 2022-10-06 22:40:03 typing_extensions==4.4.0 34 | 2022-10-06 16:32:32 nbclient==0.7.0 35 | 2022-10-06 16:03:56 psycopg2-binary==2.9.4 36 | 2022-10-06 08:59:29 jupyter-resource-usage==0.6.3 37 | 2022-10-04 17:37:32 tensorflow-io-gcs-filesystem==0.27.0 38 | 2022-10-04 12:23:41 jupyterlab==3.4.8 39 | 2022-10-02 16:27:00 rich==12.6.0 40 | 2022-10-02 00:42:12 importlib-metadata==5.0.0 41 | 2022-10-01 20:52:29 networkx==2.8.7 42 | 2022-09-30 07:09:16 nest-asyncio==1.5.6 43 | 2022-09-29 22:07:23 protobuf==3.19.6 44 | 2022-09-29 21:58:33 google-resumable-media==2.4.0 45 | 2022-09-29 14:07:54 terminado==0.16.0 46 | 2022-09-28 19:15:07 pandas-gbq==0.17.9 47 | 2022-09-28 08:44:39 ImageHash==4.3.1 48 | 2022-09-28 01:52:43 tomlkit==0.11.5 49 | 2022-09-27 19:09:39 flatbuffers==22.9.24 50 | 2022-09-26 15:15:56 tensorboard==2.10.1 51 | 2022-09-26 14:38:09 nbconvert==6.5.4 52 | 2022-09-25 14:10:46 stack-data==0.5.1 53 | 2022-09-24 14:26:53 certifi==2022.9.24 54 | 2022-09-22 02:50:32 grpcio-status==1.48.2 55 | 2022-09-21 12:50:09 pyzmq==24.0.1 56 | 2022-09-21 12:24:13 tenacity==8.1.0 57 | 2022-09-20 15:01:05 db-dtypes==1.0.4 58 | 2022-09-19 16:49:56 fastjsonschema==2.16.2 59 | 2022-09-16 14:26:50 PyWavelets==1.4.1 60 | 2022-09-15 20:35:04 tensorflow-macos==2.10.0 61 | 2022-09-14 02:10:51 smart-open==6.2.0 62 | 2022-09-14 00:24:27 idna==3.4 63 | 2022-09-13 15:31:54 ipykernel==6.15.3 64 | 2022-09-13 01:31:49 regex==2022.9.13 65 | 2022-09-12 15:59:32 etils==0.8.0 66 | 2022-09-12 05:14:20 termcolor==2.0.1 67 | 2022-09-09 09:46:05 jsonschema==4.16.0 68 | 2022-09-07 16:12:58 cloudpickle==2.2.0 69 | 2022-09-07 14:35:12 pandas-profiling==3.3.0 70 | 2022-09-06 19:26:55 tensorflow==2.10.0 71 | 2022-09-06 09:04:59 ipython==8.5.0 72 | 2022-09-04 20:01:51 websocket-client==1.4.1 73 | 2022-09-03 11:10:30 tqdm==4.64.1 74 | 2022-09-02 22:41:53 tensorflow-estimator==2.10.0 75 | 2022-09-02 21:28:37 keras==2.10.0 76 | 2022-09-02 11:13:15 pytest==7.1.3 77 | 2022-09-02 09:01:31 prompt-toolkit==3.0.31 78 | 2022-09-01 14:33:40 google-crc32c==1.5.0 79 | 2022-09-01 12:31:36 sniffio==1.3.0 80 | 2022-08-31 12:22:41 pandas==1.4.4 81 | 2022-08-30 13:37:58 proto-plus==1.22.1 82 | 2022-08-23 15:34:38 pmdarima==2.0.1 83 | 2022-08-23 00:41:59 tensorflow-metadata==1.10.0 84 | 2022-08-22 15:19:36 xgboost==1.6.2 85 | 2022-08-22 13:27:23 urllib3==1.26.12 86 | 2022-08-22 09:59:48 ipympl==0.9.2 87 | 2022-08-19 22:13:48 charset-normalizer==2.1.1 88 | 2022-08-19 17:00:46 ipywidgets==7.7.2 89 | 2022-08-18 21:23:17 json5==0.9.10 90 | 2022-08-18 03:48:18 matplotlib-inline==0.1.6 91 | 2022-08-16 07:20:28 kiwisolver==1.4.4 92 | 2022-08-15 23:26:32 debugpy==1.6.3 93 | 2022-08-15 16:03:23 Pygments==2.13.0 94 | 2022-08-15 10:49:52 asttokens==2.0.8 95 | 2022-08-11 23:23:41 partd==1.3.0 96 | 2022-08-11 13:27:52 pydantic==1.9.2 97 | 2022-08-11 07:00:56 matplotlib==3.5.3 98 | 2022-08-08 21:44:15 Werkzeug==2.2.2 99 | 2022-08-08 11:16:19 deap==1.3.3 100 | 2022-08-05 14:44:15 scikit-learn==1.1.2 101 | 2022-08-02 01:56:28 libclang==14.0.6 102 | 2022-07-29 07:16:55 Cython==0.29.32 103 | 2022-07-28 13:20:29 attrs==22.1.0 104 | 2022-07-27 21:20:37 streamlit==1.11.1 105 | 2022-07-22 21:10:24 dask==2022.7.1 106 | 2022-07-20 10:28:36 rsa==4.9 107 | 2022-07-18 13:18:46 google-cloud-core==2.3.2 108 | 2022-07-17 19:45:53 pylint==2.14.5 109 | 2022-07-17 17:40:05 blinker==1.5 110 | 2022-07-17 12:14:53 jupyter-nbextensions-configurator==0.5.0 111 | 2022-07-15 19:15:38 Markdown==3.4.1 112 | 2022-07-15 08:25:13 pytest-asyncio==0.19.0 113 | 2022-07-12 17:32:20 googleapis-common-protos==1.56.4 114 | 2022-07-10 04:29:56 toolz==0.12.0 115 | 2022-07-09 14:51:00 astroid==2.11.7 116 | 2022-07-09 08:13:07 jupyter-contrib-core==0.4.0 117 | 2022-07-03 22:39:41 tornado==6.2 118 | 2022-07-02 06:12:04 lxml==4.9.1 119 | 2022-06-30 18:18:32 cffi==1.15.1 120 | 2022-06-29 15:13:42 requests==2.28.1 121 | 2022-06-27 14:40:08 bleach==5.0.1 122 | 2022-06-24 01:08:01 plotly==5.9.0 123 | 2022-06-22 17:39:36 widgetsnbextension==3.6.1 124 | 2022-06-22 17:38:28 jupyterlab-widgets==1.1.1 125 | 2022-06-16 12:34:47 colorama==0.4.5 126 | 2022-06-16 06:31:37 Babel==2.10.3 127 | 2022-06-12 18:12:38 scikit-image==0.19.3 128 | 2022-06-10 10:29:06 watchdog==2.1.9 129 | 2022-06-09 14:43:58 google-cloud-bigquery==2.34.4 130 | 2022-06-08 18:12:02 google-cloud-storage==2.4.0 131 | 2022-06-07 16:42:13 notebook==6.4.12 132 | 2022-06-05 17:12:13 validators==0.20.0 133 | 2022-06-02 09:17:39 tensorflow-datasets==4.6.0 134 | 2022-05-29 20:53:07 cachetools==5.2.0 135 | 2022-05-24 09:59:22 h5py==3.7.0 136 | 2022-05-23 15:32:37 httpx==0.23.0 137 | 2022-05-20 22:00:05 nbresult==0.0.8 138 | 2022-05-18 12:47:44 scipy==1.8.1 139 | 2022-05-17 22:02:08 Pillow==9.1.1 140 | 2022-05-17 12:45:55 httpcore==0.15.0 141 | 2022-05-16 18:50:07 imbalanced-learn==0.9.1 142 | 2022-05-10 23:26:05 pyparsing==3.0.9 143 | 2022-05-06 21:36:10 pyarrow==8.0.0 144 | 2022-05-02 05:28:31 wrapt==1.14.1 145 | 2022-05-01 16:20:13 gensim==4.2.0 146 | 2022-04-28 17:36:09 click==8.1.3 147 | 2022-04-28 17:21:27 Jinja2==3.1.2 148 | 2022-04-27 16:09:01 python-slugify==6.1.2 149 | 2022-04-20 22:04:44 locket==1.0.0 150 | 2022-04-18 16:29:33 branca==0.5.0 151 | 2022-04-18 08:48:49 platformdirs==2.5.2 152 | 2022-04-14 12:58:00 soupsieve==2.3.2.post1 153 | 2022-04-14 09:06:25 jupyterlab-pygments==0.2.2 154 | 2022-04-08 21:22:48 beautifulsoup4==4.11.1 155 | 2022-04-08 01:27:42 multimethod==1.8 156 | 2022-04-04 10:26:28 appnope==0.1.3 157 | 2022-04-02 14:16:00 tzlocal==4.2 158 | 2022-03-24 21:32:37 python-dotenv==0.20.0 159 | 2022-03-21 20:25:47 phik==0.12.2 160 | 2022-03-20 00:37:10 pytz==2022.1 161 | 2022-03-15 13:23:27 MarkupSafe==2.1.1 162 | 2022-03-14 16:48:43 pydata-google-auth==1.4.0 163 | 2022-02-27 20:39:38 missingno==0.5.1 164 | 2022-02-27 12:33:09 XlsxWriter==3.0.3 165 | 2022-02-10 07:35:29 statsmodels==0.13.2 166 | 2022-02-09 12:40:51 nltk==3.7 167 | 2022-02-08 10:54:04 tomli==2.0.1 168 | 2022-02-02 21:30:28 entrypoints==0.4 169 | 2022-01-31 16:31:55 threadpoolctl==3.1.0 170 | 2022-01-29 18:52:24 requests-oauthlib==1.3.1 171 | 2022-01-22 15:41:29 pure-eval==0.2.2 172 | 2022-01-19 10:42:57 setuptools-scm==6.4.2 173 | 2022-01-14 19:56:08 pyrsistent==0.18.1 174 | 2022-01-07 08:20:05 decorator==5.1.1 175 | 2022-01-05 20:29:51 tensorboard-plugin-wit==1.8.1 176 | 2021-12-29 13:25:39 altair==4.2.0 177 | 2021-12-26 07:48:02 yapf==0.32.0 178 | 2021-12-22 16:55:19 Pympler==1.0.1 179 | 2021-12-15 16:56:56 lazy-object-proxy==1.7.1 180 | 2021-12-11 11:47:50 argon2-cffi==21.3.0 181 | 2021-12-05 19:31:33 visions==0.7.5 182 | 2021-12-01 09:09:45 argon2-cffi-bindings==21.2.0 183 | 2021-11-30 21:05:50 parso==0.8.3 184 | 2021-11-22 17:22:38 folium==0.12.1.post1 185 | 2021-11-18 00:39:13 packaging==21.3 186 | 2021-11-17 00:47:51 jedi==0.18.1 187 | 2021-11-09 05:42:46 isort==5.10.1 188 | 2021-11-06 12:50:13 pycparser==2.21 189 | 2021-11-04 17:17:01 py==1.11.0 190 | 2021-10-29 03:40:55 cycler==0.11.0 191 | 2021-10-24 13:40:44 gitdb==4.0.9 192 | 2021-10-24 06:47:38 autopep8==1.6.0 193 | 2021-10-15 13:19:47 smmap==5.0.0 194 | 2021-10-11 12:42:48 flake8==4.0.1 195 | 2021-10-11 00:56:27 pycodestyle==2.8.0 196 | 2021-10-06 20:39:50 pyflakes==2.4.0 197 | 2021-09-27 22:01:35 tangled-up-in-unicode==0.2.0 198 | 2021-09-14 03:37:58 pandocfilters==1.5.0 199 | 2021-09-01 09:54:17 google-auth-oauthlib==0.4.6 200 | 2021-08-25 16:26:02 pluggy==1.0.0 201 | 2021-08-16 00:42:21 seaborn==0.11.2 202 | 2021-08-09 02:53:00 Send2Trash==1.8.0 203 | 2021-07-14 08:19:19 python-dateutil==2.8.2 204 | 2021-06-02 11:43:46 ipdb==0.13.9 205 | 2021-05-07 23:29:27 rfc3986==1.5.0 206 | 2021-05-05 21:49:51 tensorboard-data-server==0.6.1 207 | 2021-05-05 14:18:18 six==1.16.0 208 | 2021-03-13 00:50:03 kaggle==1.5.12 209 | 2021-03-08 18:48:28 PyYAML==5.4.1 210 | 2021-03-08 10:59:26 defusedxml==0.7.1 211 | 2021-01-06 15:20:09 TPOT==0.11.7 212 | 2021-01-01 11:34:46 h11==0.12.0 213 | 2020-12-28 15:15:30 ptyprocess==0.7.0 214 | 2020-12-04 07:12:37 google-trans-new==1.1.9 215 | 2020-11-01 01:40:22 toml==0.10.2 216 | 2020-10-20 20:16:54 semver==2.13.0 217 | 2020-10-16 17:37:23 iniconfig==1.1.1 218 | 2020-08-07 21:45:23 gast==0.4.0 219 | 2020-08-04 07:08:50 update-checker==0.18.0 220 | 2020-07-19 22:40:32 opt-einsum==3.3.0 221 | 2020-06-23 16:10:29 wcwidth==0.2.5 222 | 2020-06-17 16:16:30 pytz-deprecation-shim==0.1.0.post0 223 | 2020-06-09 15:11:32 backcall==0.2.0 224 | 2020-05-14 03:53:48 Keras-Preprocessing==1.1.2 225 | 2020-03-13 18:57:50 google-pasta==0.2.0 226 | 2020-01-21 16:37:05 pexpect==4.8.0 227 | 2020-01-09 17:24:21 pyasn1-modules==0.2.8 228 | 2019-12-22 18:12:13 astunparse==1.6.3 229 | 2019-12-18 07:31:43 promise==2.3 230 | 2019-11-16 17:27:38 pyasn1==0.4.8 231 | 2019-10-04 15:37:39 commonmark==0.9.1 232 | 2019-08-30 21:37:03 text-unidecode==1.3 233 | 2019-01-02 13:39:54 jupyter-contrib-nbextensions==0.5.1 234 | 2018-12-02 22:31:10 jupyter-latex-envs==1.4.6 235 | 2018-10-11 06:59:27 mistune==0.8.4 236 | 2018-09-25 19:17:37 pickleshare==0.7.5 237 | 2018-04-07 13:56:22 jupyter-highlight-selected-word==0.2.0 238 | 2018-02-09 00:32:14 stopit==1.1.2 239 | 2017-12-29 16:41:36 htmlmin==0.1.12 240 | 2017-04-05 20:21:34 webencodings==0.5.1 241 | 2017-03-13 22:12:26 ipython-genutils==0.2.0 242 | 2017-01-26 22:13:15 mccabe==0.6.1 243 | 2017-01-19 11:52:37 imblearn==0.0 244 | 2016-09-29 06:16:34 memoized-property==1.0.3 245 | -------------------------------------------------------------------------------- /specs/releases/past/2022_Q4/python_version.txt: -------------------------------------------------------------------------------- 1 | 3.10.6 2 | -------------------------------------------------------------------------------- /specs/releases/pyproject_install_dates.txt: -------------------------------------------------------------------------------- 1 | 2022-10-24 01:21:49 zipp==3.10.0 2 | 2022-10-23 22:46:33 dill==0.3.6 3 | 2022-10-21 18:18:52 fonttools==4.38.0 4 | 2022-10-20 07:13:16 nbclassic==0.4.7 5 | 2022-10-19 22:24:09 jupyter_client==7.4.3 6 | 2022-10-19 17:11:32 jupyterlab_server==2.16.1 7 | 2022-10-19 15:01:07 fsspec==2022.10.0 8 | 2022-10-19 14:11:36 jupyter_core==4.11.2 9 | 2022-10-19 10:08:34 anyio==3.6.2 10 | 2022-10-18 20:15:11 psutil==5.9.3 11 | 2022-10-18 17:52:55 grpcio==1.50.0 12 | 2022-10-18 12:40:20 traitlets==5.5.0 13 | 2022-10-18 07:04:56 tinycss2==1.2.1 14 | 2022-10-17 20:04:27 oauthlib==3.2.2 15 | 2022-10-17 16:12:45 notebook_shim==0.2.0 16 | 2022-10-17 15:14:40 google-auth==2.13.0 17 | 2022-10-16 19:25:26 imageio==2.22.2 18 | 2022-10-13 20:32:52 absl-py==1.3.0 19 | 2022-10-13 15:15:27 pydeck==0.8.0b4 20 | 2022-10-13 14:49:13 prometheus-client==0.15.0 21 | 2022-10-13 00:44:38 tzdata==2022.5 22 | 2022-10-12 14:53:03 numpy==1.23.4 23 | 2022-10-11 16:30:44 tifffile==2022.10.10 24 | 2022-10-11 11:37:13 jupyter-server==1.21.0 25 | 2022-10-10 23:50:08 GitPython==3.1.29 26 | 2022-10-10 16:29:33 google-cloud-bigquery-storage==2.16.2 27 | 2022-10-10 13:12:17 nbformat==5.7.0 28 | 2022-10-10 12:54:10 joblib==1.1.1 29 | 2022-10-09 20:27:39 patsy==0.5.3 30 | 2022-10-08 15:36:32 executing==1.1.1 31 | 2022-10-08 01:10:36 importlib-resources==5.10.0 32 | 2022-10-08 00:45:43 google-api-core==2.10.2 33 | 2022-10-06 22:40:03 typing_extensions==4.4.0 34 | 2022-10-06 16:32:32 nbclient==0.7.0 35 | 2022-10-06 16:03:56 psycopg2-binary==2.9.4 36 | 2022-10-06 08:59:29 jupyter-resource-usage==0.6.3 37 | 2022-10-04 17:37:32 tensorflow-io-gcs-filesystem==0.27.0 38 | 2022-10-04 12:23:41 jupyterlab==3.4.8 39 | 2022-10-02 16:27:00 rich==12.6.0 40 | 2022-10-02 00:42:12 importlib-metadata==5.0.0 41 | 2022-10-01 20:52:29 networkx==2.8.7 42 | 2022-09-30 07:09:16 nest-asyncio==1.5.6 43 | 2022-09-29 22:07:23 protobuf==3.19.6 44 | 2022-09-29 21:58:33 google-resumable-media==2.4.0 45 | 2022-09-29 14:07:54 terminado==0.16.0 46 | 2022-09-28 19:15:07 pandas-gbq==0.17.9 47 | 2022-09-28 08:44:39 ImageHash==4.3.1 48 | 2022-09-28 01:52:43 tomlkit==0.11.5 49 | 2022-09-27 19:09:39 flatbuffers==22.9.24 50 | 2022-09-26 15:15:56 tensorboard==2.10.1 51 | 2022-09-26 14:38:09 nbconvert==6.5.4 52 | 2022-09-25 14:10:46 stack-data==0.5.1 53 | 2022-09-24 14:26:53 certifi==2022.9.24 54 | 2022-09-22 02:50:32 grpcio-status==1.48.2 55 | 2022-09-21 12:50:09 pyzmq==24.0.1 56 | 2022-09-21 12:24:13 tenacity==8.1.0 57 | 2022-09-20 15:01:05 db-dtypes==1.0.4 58 | 2022-09-19 16:49:56 fastjsonschema==2.16.2 59 | 2022-09-16 14:26:50 PyWavelets==1.4.1 60 | 2022-09-15 20:35:04 tensorflow-macos==2.10.0 61 | 2022-09-14 02:10:51 smart-open==6.2.0 62 | 2022-09-14 00:24:27 idna==3.4 63 | 2022-09-13 15:31:54 ipykernel==6.15.3 64 | 2022-09-13 01:31:49 regex==2022.9.13 65 | 2022-09-12 15:59:32 etils==0.8.0 66 | 2022-09-12 05:14:20 termcolor==2.0.1 67 | 2022-09-09 09:46:05 jsonschema==4.16.0 68 | 2022-09-07 16:12:58 cloudpickle==2.2.0 69 | 2022-09-07 14:35:12 pandas-profiling==3.3.0 70 | 2022-09-06 19:26:55 tensorflow==2.10.0 71 | 2022-09-06 09:04:59 ipython==8.5.0 72 | 2022-09-04 20:01:51 websocket-client==1.4.1 73 | 2022-09-03 11:10:30 tqdm==4.64.1 74 | 2022-09-02 22:41:53 tensorflow-estimator==2.10.0 75 | 2022-09-02 21:28:37 keras==2.10.0 76 | 2022-09-02 11:13:15 pytest==7.1.3 77 | 2022-09-02 09:01:31 prompt-toolkit==3.0.31 78 | 2022-09-01 14:33:40 google-crc32c==1.5.0 79 | 2022-09-01 12:31:36 sniffio==1.3.0 80 | 2022-08-31 12:22:41 pandas==1.4.4 81 | 2022-08-30 13:37:58 proto-plus==1.22.1 82 | 2022-08-23 15:34:38 pmdarima==2.0.1 83 | 2022-08-23 00:41:59 tensorflow-metadata==1.10.0 84 | 2022-08-22 15:19:36 xgboost==1.6.2 85 | 2022-08-22 13:27:23 urllib3==1.26.12 86 | 2022-08-22 09:59:48 ipympl==0.9.2 87 | 2022-08-19 22:13:48 charset-normalizer==2.1.1 88 | 2022-08-19 17:00:46 ipywidgets==7.7.2 89 | 2022-08-18 21:23:17 json5==0.9.10 90 | 2022-08-18 03:48:18 matplotlib-inline==0.1.6 91 | 2022-08-16 07:20:28 kiwisolver==1.4.4 92 | 2022-08-15 23:26:32 debugpy==1.6.3 93 | 2022-08-15 16:03:23 Pygments==2.13.0 94 | 2022-08-15 10:49:52 asttokens==2.0.8 95 | 2022-08-11 23:23:41 partd==1.3.0 96 | 2022-08-11 13:27:52 pydantic==1.9.2 97 | 2022-08-11 07:00:56 matplotlib==3.5.3 98 | 2022-08-08 21:44:15 Werkzeug==2.2.2 99 | 2022-08-08 11:16:19 deap==1.3.3 100 | 2022-08-05 14:44:15 scikit-learn==1.1.2 101 | 2022-08-02 01:56:28 libclang==14.0.6 102 | 2022-07-29 07:16:55 Cython==0.29.32 103 | 2022-07-28 13:20:29 attrs==22.1.0 104 | 2022-07-27 21:20:37 streamlit==1.11.1 105 | 2022-07-22 21:10:24 dask==2022.7.1 106 | 2022-07-20 10:28:36 rsa==4.9 107 | 2022-07-18 13:18:46 google-cloud-core==2.3.2 108 | 2022-07-17 19:45:53 pylint==2.14.5 109 | 2022-07-17 17:40:05 blinker==1.5 110 | 2022-07-17 12:14:53 jupyter-nbextensions-configurator==0.5.0 111 | 2022-07-15 19:15:38 Markdown==3.4.1 112 | 2022-07-15 08:25:13 pytest-asyncio==0.19.0 113 | 2022-07-12 17:32:20 googleapis-common-protos==1.56.4 114 | 2022-07-10 04:29:56 toolz==0.12.0 115 | 2022-07-09 14:51:00 astroid==2.11.7 116 | 2022-07-09 08:13:07 jupyter-contrib-core==0.4.0 117 | 2022-07-03 22:39:41 tornado==6.2 118 | 2022-07-02 06:12:04 lxml==4.9.1 119 | 2022-06-30 18:18:32 cffi==1.15.1 120 | 2022-06-29 15:13:42 requests==2.28.1 121 | 2022-06-27 14:40:08 bleach==5.0.1 122 | 2022-06-24 01:08:01 plotly==5.9.0 123 | 2022-06-22 17:39:36 widgetsnbextension==3.6.1 124 | 2022-06-22 17:38:28 jupyterlab-widgets==1.1.1 125 | 2022-06-16 12:34:47 colorama==0.4.5 126 | 2022-06-16 06:31:37 Babel==2.10.3 127 | 2022-06-12 18:12:38 scikit-image==0.19.3 128 | 2022-06-10 10:29:06 watchdog==2.1.9 129 | 2022-06-09 14:43:58 google-cloud-bigquery==2.34.4 130 | 2022-06-08 18:12:02 google-cloud-storage==2.4.0 131 | 2022-06-07 16:42:13 notebook==6.4.12 132 | 2022-06-05 17:12:13 validators==0.20.0 133 | 2022-06-02 09:17:39 tensorflow-datasets==4.6.0 134 | 2022-05-29 20:53:07 cachetools==5.2.0 135 | 2022-05-24 09:59:22 h5py==3.7.0 136 | 2022-05-23 15:32:37 httpx==0.23.0 137 | 2022-05-20 22:00:05 nbresult==0.0.8 138 | 2022-05-18 12:47:44 scipy==1.8.1 139 | 2022-05-17 22:02:08 Pillow==9.1.1 140 | 2022-05-17 12:45:55 httpcore==0.15.0 141 | 2022-05-16 18:50:07 imbalanced-learn==0.9.1 142 | 2022-05-10 23:26:05 pyparsing==3.0.9 143 | 2022-05-06 21:36:10 pyarrow==8.0.0 144 | 2022-05-02 05:28:31 wrapt==1.14.1 145 | 2022-05-01 16:20:13 gensim==4.2.0 146 | 2022-04-28 17:36:09 click==8.1.3 147 | 2022-04-28 17:21:27 Jinja2==3.1.2 148 | 2022-04-27 16:09:01 python-slugify==6.1.2 149 | 2022-04-20 22:04:44 locket==1.0.0 150 | 2022-04-18 16:29:33 branca==0.5.0 151 | 2022-04-18 08:48:49 platformdirs==2.5.2 152 | 2022-04-14 12:58:00 soupsieve==2.3.2.post1 153 | 2022-04-14 09:06:25 jupyterlab-pygments==0.2.2 154 | 2022-04-08 21:22:48 beautifulsoup4==4.11.1 155 | 2022-04-08 01:27:42 multimethod==1.8 156 | 2022-04-04 10:26:28 appnope==0.1.3 157 | 2022-04-02 14:16:00 tzlocal==4.2 158 | 2022-03-24 21:32:37 python-dotenv==0.20.0 159 | 2022-03-21 20:25:47 phik==0.12.2 160 | 2022-03-20 00:37:10 pytz==2022.1 161 | 2022-03-15 13:23:27 MarkupSafe==2.1.1 162 | 2022-03-14 16:48:43 pydata-google-auth==1.4.0 163 | 2022-02-27 20:39:38 missingno==0.5.1 164 | 2022-02-27 12:33:09 XlsxWriter==3.0.3 165 | 2022-02-10 07:35:29 statsmodels==0.13.2 166 | 2022-02-09 12:40:51 nltk==3.7 167 | 2022-02-08 10:54:04 tomli==2.0.1 168 | 2022-02-02 21:30:28 entrypoints==0.4 169 | 2022-01-31 16:31:55 threadpoolctl==3.1.0 170 | 2022-01-29 18:52:24 requests-oauthlib==1.3.1 171 | 2022-01-22 15:41:29 pure-eval==0.2.2 172 | 2022-01-19 10:42:57 setuptools-scm==6.4.2 173 | 2022-01-14 19:56:08 pyrsistent==0.18.1 174 | 2022-01-07 08:20:05 decorator==5.1.1 175 | 2022-01-05 20:29:51 tensorboard-plugin-wit==1.8.1 176 | 2021-12-29 13:25:39 altair==4.2.0 177 | 2021-12-26 07:48:02 yapf==0.32.0 178 | 2021-12-22 16:55:19 Pympler==1.0.1 179 | 2021-12-15 16:56:56 lazy-object-proxy==1.7.1 180 | 2021-12-11 11:47:50 argon2-cffi==21.3.0 181 | 2021-12-05 19:31:33 visions==0.7.5 182 | 2021-12-01 09:09:45 argon2-cffi-bindings==21.2.0 183 | 2021-11-30 21:05:50 parso==0.8.3 184 | 2021-11-22 17:22:38 folium==0.12.1.post1 185 | 2021-11-18 00:39:13 packaging==21.3 186 | 2021-11-17 00:47:51 jedi==0.18.1 187 | 2021-11-09 05:42:46 isort==5.10.1 188 | 2021-11-06 12:50:13 pycparser==2.21 189 | 2021-11-04 17:17:01 py==1.11.0 190 | 2021-10-29 03:40:55 cycler==0.11.0 191 | 2021-10-24 13:40:44 gitdb==4.0.9 192 | 2021-10-24 06:47:38 autopep8==1.6.0 193 | 2021-10-15 13:19:47 smmap==5.0.0 194 | 2021-10-11 12:42:48 flake8==4.0.1 195 | 2021-10-11 00:56:27 pycodestyle==2.8.0 196 | 2021-10-06 20:39:50 pyflakes==2.4.0 197 | 2021-09-27 22:01:35 tangled-up-in-unicode==0.2.0 198 | 2021-09-14 03:37:58 pandocfilters==1.5.0 199 | 2021-09-01 09:54:17 google-auth-oauthlib==0.4.6 200 | 2021-08-25 16:26:02 pluggy==1.0.0 201 | 2021-08-16 00:42:21 seaborn==0.11.2 202 | 2021-08-09 02:53:00 Send2Trash==1.8.0 203 | 2021-07-14 08:19:19 python-dateutil==2.8.2 204 | 2021-06-02 11:43:46 ipdb==0.13.9 205 | 2021-05-07 23:29:27 rfc3986==1.5.0 206 | 2021-05-05 21:49:51 tensorboard-data-server==0.6.1 207 | 2021-05-05 14:18:18 six==1.16.0 208 | 2021-03-13 00:50:03 kaggle==1.5.12 209 | 2021-03-08 18:48:28 PyYAML==5.4.1 210 | 2021-03-08 10:59:26 defusedxml==0.7.1 211 | 2021-01-06 15:20:09 TPOT==0.11.7 212 | 2021-01-01 11:34:46 h11==0.12.0 213 | 2020-12-28 15:15:30 ptyprocess==0.7.0 214 | 2020-12-04 07:12:37 google-trans-new==1.1.9 215 | 2020-11-01 01:40:22 toml==0.10.2 216 | 2020-10-20 20:16:54 semver==2.13.0 217 | 2020-10-16 17:37:23 iniconfig==1.1.1 218 | 2020-08-07 21:45:23 gast==0.4.0 219 | 2020-08-04 07:08:50 update-checker==0.18.0 220 | 2020-07-19 22:40:32 opt-einsum==3.3.0 221 | 2020-06-23 16:10:29 wcwidth==0.2.5 222 | 2020-06-17 16:16:30 pytz-deprecation-shim==0.1.0.post0 223 | 2020-06-09 15:11:32 backcall==0.2.0 224 | 2020-05-14 03:53:48 Keras-Preprocessing==1.1.2 225 | 2020-03-13 18:57:50 google-pasta==0.2.0 226 | 2020-01-21 16:37:05 pexpect==4.8.0 227 | 2020-01-09 17:24:21 pyasn1-modules==0.2.8 228 | 2019-12-22 18:12:13 astunparse==1.6.3 229 | 2019-12-18 07:31:43 promise==2.3 230 | 2019-11-16 17:27:38 pyasn1==0.4.8 231 | 2019-10-04 15:37:39 commonmark==0.9.1 232 | 2019-08-30 21:37:03 text-unidecode==1.3 233 | 2019-01-02 13:39:54 jupyter-contrib-nbextensions==0.5.1 234 | 2018-12-02 22:31:10 jupyter-latex-envs==1.4.6 235 | 2018-10-11 06:59:27 mistune==0.8.4 236 | 2018-09-25 19:17:37 pickleshare==0.7.5 237 | 2018-04-07 13:56:22 jupyter-highlight-selected-word==0.2.0 238 | 2018-02-09 00:32:14 stopit==1.1.2 239 | 2017-12-29 16:41:36 htmlmin==0.1.12 240 | 2017-04-05 20:21:34 webencodings==0.5.1 241 | 2017-03-13 22:12:26 ipython-genutils==0.2.0 242 | 2017-01-26 22:13:15 mccabe==0.6.1 243 | 2017-01-19 11:52:37 imblearn==0.0 244 | 2016-09-29 06:16:34 memoized-property==1.0.3 245 | -------------------------------------------------------------------------------- /specs/releases/python_version.txt: -------------------------------------------------------------------------------- 1 | 3.12.9 2 | -------------------------------------------------------------------------------- /unused-images.sh: -------------------------------------------------------------------------------- 1 | #!/bin/zsh 2 | 3 | # list unused images 4 | # - checks for images not referenced in the content 5 | # - does not assess missing references in the content 6 | for file in images/*; do if [[ -z $(grep -rnw . -e $file G $file) ]]; then echo $file; fi; done 7 | --------------------------------------------------------------------------------