List of videos

Tutorial: Kimberly Fessel - It's Officially Legal so Let's Scrape the Web
Presented by: Kimberly Fessel Web scraping empowers you to write Python programs that collect data from websites automatically, and recent legal rulings support your right to do so! This tutorial covers the breadth and depth of web scraping: from HTML basics through pipeline methods to compile entire datasets. Participants should have working knowledge of Python fundamentals but need not have prior experience scraping. Tutorial resources: - GitHub Tutorial Materials: https://github.com/kimfetti/Conferences/tree/master/PyCon_2020 - Google Colab Notebooks: bit.ly/pycon2020_scrapingbasics and bit.ly/pycon2020_scrapingwiki
Watch
Tutorial: Sebastian Witowski - Modern Python Developer's Toolkit
Presented by: Sebastian Witowski This is a tutorial that I wish someone gave to me when I first learned Python. Python is (relatively) easy and fun to learn, but there is a gap between “knowing how to write Python code” and “knowing the tools and good practices when writing Python code”. This tutorial will try to bridge this gap. It’s intended for beginners who know Python, but who are not sure how to write a Python project from scratch. In this tutorial you will learn: How to set up VS Code for writing Python How to use virtualenv, pyenv, pipenv, and pipx How to use cookiecutter, how to structure your Python project, and how to easily deploy it with Docker What’s PEP8 and how to enforce it with code linters/formatters (black) Why you should use IPython instead of Python REPL How to test your code with pytest How to create great documentation with Sphinx To follow all parts of the tutorial you need to have: VS Code, Docker, and a modern version of Python (at least 3.4, preferably 3.6 or newer) installed on your computer. Tutorial resources: http://pycon.switowski.com/
Watch
Tutorial: Katie McLaughlin - Deploying Django on Serverless Infrastructure
Presented by: Katie McLaughlin Taking your DjangoGirls workshop website and hosting it on the Cloud is complex. Not complicated, just complex. The statefulness of Django out of the box compared to other Python web frameworks makes the migration from your own laptop to a hosted platform non-trivial. In this tutorial, we will take a sample Django project from source control and local deployment to a hosted service using serverless infrastructure. This tutorial will use Google Cloud Platform, but concepts can be applied to any cloud platform. Tutorial resources: glasnt.com/pycon2020-tutorial Timestamps: - 5:01 Manual Deployment - 9:22 Database - 11:30 Media storage - 12:33 Secrets - 17:06 Service - 22:52 Build, Migrate, Deploy - 25:02 Automate Deployment - 30:27 Automate Provisioning - 37:52 Cleanup Music used: "Local Forecast - Elevator" Kevin MacLeod (incompetech.com) CC BY SA
Watch
TUTORIAL / Husni Almoubayyed / Effective Data Visualization
From picking the right plot for the particular type of data, statistic, or result; to pre-processing sophisticated datasets, and even making important decisions about the aesthetic of a figure, visualization is both a science and art that requires both knowledge and practice to master. This tutorial is for python users who are familiar with python and basic plotting, and want to build strong visualization skills that will let them effectively communicate any data, statistic, or result. We will use python libraries such as seaborn, matplotlib, plotly, and sklearn; and discuss topics such as density estimation, dimensionality reduction, interactive plotting, and making suitable choices for communication. Drawing examples from datasets in the scientific, financial, geospatial (mapping) fields and more.
Watch
Tutorial: Keith Galli - Natural Language Processing (NLP) in Python - From Zero to Hero
Presented by: Keith Galli In the past year, massive developments have been made in the natural language processing field. Improvements in areas such as question answering, machine translation, and sentiment analysis have opened up doors to utilize NLP more effectively than ever before. In this tutorial we will perform a brief overview of the field of NLP and look at the Python libraries that allow us to utilize different techniques and models. We will start with simple, traditional approaches to NLP that will provide us baseline for our models. As we progress in the tutorial we will look at some more advanced concepts that can give quick boosts to model performance. We will end by introducing state-of-the-art language models and how we can incorporate them into applications that we build. Tutorial resources:https://github.com/keithgalli/pycon2020
Watch
Tutorial: Mariatta - Say it with Bots!
Presented by: Mariatta Let’s build a GitHub bot that can greet contributors to your project. As humans, we can’t always be up and running 24/7. It can be nice for your contributors if they can receive prompt response from you regarding their pull request instead of waiting until you’re back. In this tutorial, we’ll go through several activities for building a GitHub App that can be easily installed in various repositories. Your GitHub bot can: - thank the maintainer for installing the bot - thank first time contributors for making a pull request to your repository Learn about GitHub APIs, GitHub Apps, and authentications through these fun activities! We’ll be using Python libraries like gidgethub, aiohttp, and asyncio. F-strings included! Tutorial resources: https://github-app-tutorial.readthedocs.io/
Watch
Tutorial: Sergio Sanchez - Geospatial Public Policy Analysis with GeoPandas
Presented by: Sergio Sanchez What if you could take the power of pandas and apply it to geospatial data? That’s what GeoPandas does! GeoPandas is an open source project to make working with geospatial data in python easier. - geopandas.org In this tutorial you will analyze openly available data and apply a GIS-lens to it! We’ll use data from the National Center for Education Statistics (NCES) to recreate the map above! We’ll use Integrated Post-secondary Education Data System (IPEDS) data to map out all the higher education institutions in the United States and analyze the results. We’ll look at the equity implications of Education Deserts and learn some really neat pandas and geopandas tricks in the process! This tutorial is perfect for novice data analysts, pythonistas, social scientists, and journalists that want to learn about the powerful pandas and geopandas libraries and how to use it to analyze openly available data (and for those who’ve been using them but could learn a trick or two to make their workflow even more effective, reproducible and open). Some familiarity with jupyter and pandas is appreciated but not necessary. Do the words Title IV, PfP/PnP, census blocks, or IPUMS mean anything to you? No?! the more reason to join! Come learn something new! Tutorial resources: https://github.com/chekos/geospatial-public-policy-analysis-with-geopandas
Watch
Tutorial: Santiago Basulto - Python Concurrency: from beginner to pro
Presented by: Santiago Basulto This is the ultimate concurrency tutorial. Aimed for beginners, we won’t skip the ugly parts (OS low level and computer science concepts). In this tutorial you’ll learn: what is concurrency and why you need it? what’s the role of the OS in computing and parallelism? how processes work, what fundamental OS structures are used what are threads, how are they created and what’s their scope what modules does Python offer for multithreading (_thread, threading, concurrent.futures) and what’s the difference between them, the same for multiprocessing (subprocess, multiprocessing or concurrent.futures). what are race conditions? how to avoid them with synchronization primitives and threadsafe collections What is the GIL? In which situations will it affect our code? This tutorial will include coding examples for all the concepts in it, along with two main activities, in which we’ll be writing a web server both using multithreading and multiprocessing! At the end of this tutorial, you’ll feel confident answering the following questions: Should I even use concurrency? If I want to use concurrency, threads or processes? How can I make sure my code is safe? Code repo: https://github.com/santiagobasulto/pycon-concurrency-tutorial-2020
Watch
Tutorial: Mike Müller - Migration from Python 2 to 3
Presented by: Mike Müller Python 2 reached end of life (EOL). However, there are still many projects that use Python 2. Staying with Python 2 is certainly no long-term option for most projects. Porting a larger program to Python 3 brakes backward compatibility with Python 2. One solution for this problem is the single-source approach that results in source code that runs with Python 2 and 3 without any changes. This tutorial provides a short overview over the most important differences between Python 2 and 3. After looking at different approaches for Python 3 support, the focus will be on writing single-source programs with python-future. You will learn how to port to Python 3 without loosing Python 2 support. Finally dropping Python 2 support will get as simple as removing a few imports. The content of this tutorial is inspired by questions I received from participants in trainings about how to smoothly transition from Python 2 to Python 3. Making Python 2 working as much as possible as Python 3 seems the best option to me. You are encouraged to bring your questions about this topic. I teach about this topic on a regular basis in my trainings. Being a full-time profession trainer, I have plenty opportunity to get involved with many programmers who have to deal with this problem. Software Requirements You will need Python 3.8 installed on your laptop. Python 3.6/3.7 should also work. You also need Python 2.7 installed to test if the code runs with Python 2 and Python 3. You may use Python 3.9 if is released at the time of the tutorial and all dependencies can be installed. JupyterLab I will use a JupyterLab for the tutorial because it makes a very good teaching tool. You are welcome to use the setup you prefer, i.e editor, IDE, REPL. If you also like to use a JupyterLab, I recommend conda for easy installation. Similarly to virtualenv, conda allows creating isolated environments but allows binary installs for all platforms. There are two ways to install Jupyter via conda: Use Minconda. This is a small install and (after you installed it) you can use the command conda to create an environment: conda create -n pycon2020py38 python=3.8 Now you can change into this environment: conda activate pycon2020py38. The prompt should change to (pycon2020py38). Now you can install JupyterLab: conda install jupyterlab. Do the same with Python 2.7, i.e. conda create -n pycon2020py27 python=2.7 and activate accordingly conda activate pycon2020py27. Install the dependencies: Jupyter Lab 2 ‘conda install jupyterlab’ six ‘conda install six’ python-future ‘conda install future’ Hint: You do all this in one command: conda create -n pycon2020py38 python=3.8 six jupyterlab future and conda create -n pycon2020py27 python=2.7 six jupyterlab future You can create a comparable setup with virtual environments and pip, if you prefer. Working with conda environments After creating a new environment, the system might still work with some stale settings. Even when the command which tells you that you are using an executable from your environment, this might actually not be the case. If you see strange behavior using a command line tool in your environment, use hash -r and try again. https://www.python-academy.com/download/pycon_2020/tutorial_migration_2to3.zip https://www.python-academy.com/download/pycon_2020/solutions.zip
Watch