Python Bytes Awesome Package List

Posted on Wed 11 March 2020 in Python • 6 min read

Python Bytes is a weekly, short & sweet podcast by Michael Kennedy & Brian Okken. After having the podcast recommended numerous times by friends & colleagues, I decided to download every episode thus far on the 14th of September 2019. Over the next 174 days, whenever I was commuting, I'd listen to 171 episodes of Python bytes, learnt a stack of new things and found new amazing python packages.

IMPORTANT NOTE: This list has been moved to it's own repository on Github so other listeners can add other awesome packages to this list! Pull requests are 100% open and I'm looking forward to seeing your contributions! https://github.com/JackMcKew/awesome-python-bytes

Python Bytes Image

This post is intended to list out the packages I'd noted down & their application. Total disclaimer, I haven't tried out all of these packages personally and I'm certain there is a plethora of other packages mentioned that I have not captured here, please reach out if theres anything to add!

I've attempted to sort these into a directory of sorts pending on what you're interested in looking at, and whether I found out about them through Python Bytes or elsewhere (they will have a link to the episode if directly from Python Bytes).

Table Of Contents

Web Development

Wagtail

https://pythonbytes.fm/episodes/show/70/have-you-seen-my-log-it-s-cute Wagtail is a content management system (CMS) (like Wordpress), written in Python, based off Django.

Gallery of sites made with wagtail

Wooey

https://pythonbytes.fm/episodes/show/62/wooey-and-gooey-are-simple-python-guis A Django app that creates automatic web UIs for Python scripts.

Live example at: https://wooey.herokuapp.com/

Wooey Example

Anvil

https://pythonbytes.fm/episodes/show/106/fluent-query-apis-on-python-collections

Full stack web apps with nothing but Python.

Vue.py

https://pythonbytes.fm/episodes/show/140/becoming-a-10x-developer-sorta use Vue.js with pure Python

vue.py provides Python bindings for Vue.js. It uses brython to run Python in the browser.

Live example at: https://stefanhoelzl.github.io/vue.py/examples/todo_mvc/

Vue.py Example

GeoDjango

https://docs.djangoproject.com/en/3.0/ref/contrib/gis/ GeoDjango intends to be a world-class geographic Web framework. Its goal is to make it as easy as possible to build GIS Web applications and harness the power of spatially enabled data.

Django Bootcamp

https://github.com/vitorfs/bootcamp Bootcamp is an open source enterprise social network of open purpose, on which you can build for your own ends.

Example at: https://trybootcamp.vitorfs.com/

Security

Osmedeus

Fully automated offensive security framework for reconnaissance and vulnerability scanning Osmedeus

Mongo Audit

https://mongoaud.it/ mongoaudit is an automated pentesting tool that lets you know if your MongoDB instances are properly secured

Data Science

Great Expectations

https://pythonbytes.fm/episodes/show/115/dataclass-csv-reader-and-nina-drops-by Great Expectations is a leading tool for validating, documenting, and profiling, your data to maintain quality and improve communication between teams.

PDF Plumber

https://pythonbytes.fm/episodes/show/26/how-have-you-automated-your-life-or-cli-with-python

Plumb a PDF for detailed information about each char, rectangle, line, et cetera β€” and easily extract text and tables.

PDF Plumb Example

PyJanitor

https://pythonbytes.fm/episodes/show/108/spilled-data-call-the-pyjanitor

pyjanitor is a project that extends Pandas with a verb-based API, providing convenient data cleaning routines for repetitive tasks.

Pandas Vet

https://pythonbytes.fm/episodes/show/167/cheating-at-kaggle-and-uwsgi-in-prod

pandas-vet is a plugin for flake8 that provides opinionated linting for pandas code.

NB2XLS

https://github.com/ideonate/nb2xls Convert Jupyter notebooks to Excel Spreadsheets (xlsx), through a new 'Download As' option or via nbconvert on the command line. NB2XLS Preview

Data Visualisation

Pylustrator

https://pythonbytes.fm/episodes/show/137/advanced-python-testing-and-big-time-diffs

Pylustrator offers an interactive interface to find the best way to present your data in a figure for publication. Added formatting an styling can be saved by automatically generated code. To compose multiple figures to panels, pylustrator can compose different subfigures to a single figure.

pylustrator demonstration

Chartify

https://pythonbytes.fm/episodes/show/109/cpython-byte-code-explorer

Chartify is a Python library that makes it easy for data scientists to create charts.

Chartify Example

Panel Holoviz

Panel provides tools for easily composing widgets, plots, tables, and other viewable objects and controls into control panels, apps, and dashboards. Panel works with visualizations from Bokeh, Matplotlib, HoloViews, and other Python plotting libraries, making them instantly viewable either individually or when combined with interactive widgets that control them. Panel works equally well in Jupyter Notebooks, for creating quick data-exploration tools, or as standalone deployed apps and dashboards, and allows you to easily switch between those contexts as needed.

Examples at: https://panel.holoviz.org/

Panel Example

Cartoframes

A Python package for integrating CARTO maps, analysis, and data services into data science workflows.

Python data analysis workflows often rely on the de facto standards pandas and Jupyter notebooks. Integrating CARTO into this workflow saves data scientists time and energy by not having to export datasets as files or retain multiple copies of the data. Instead, CARTOframes give the ability to communicate reproducible analysis while providing the ability to gain from CARTO's services like hosted, dynamic or static maps and Data Observatory augmentation.

Carto Example

Sand Dance

https://github.com/microsoft/SandDance Visually explore, understand, and present your data. Sand Dance Preview

Machine Learning

PyTorch

https://pythonbytes.fm/episodes/show/80/dan-bader-drops-by-and-we-found-30-new-python-projects Tensors and Dynamic neural networks in Python with strong GPU acceleration

Yellow Brick

https://pythonbytes.fm/episodes/show/74/contributing-to-open-source-effectively Yellowbrick extends the Scikit-Learn API to make model selection and hyperparameter tuning easier. Under the hood, it’s using Matplotlib. Yellow Brick Preview

Thinc

https://pythonbytes.fm/episodes/show/167/cheating-at-kaggle-and-uwsgi-in-prod A refreshing functional take on deep learning, compatible with your favorite libraries. From the makers of spaCy, Prodigy & FastAPI

Keras Gym

https://github.com/KristianHolsheimer/keras-gym Plug-n-play reinforcement learning with OpenAI Gym and Keras Keras Gym GIF

Spinning up

https://spinningup.openai.com/en/latest/ Deep reinforcement learning educational resource

Jax

https://github.com/google/jax JAX is Autograd and XLA, brought together for high-performance machine learning research.

Autograd & XLA are both optimisers, this package makes the applications run quicker

Gensim

https://radimrehurek.com/gensim/ Gensim is an open-source library for unsupervised topic modeling and natural language processing, using modern statistical machine learning.

Databases

GeoAlchemy

https://pythonbytes.fm/episodes/show/77/you-don-t-have-to-be-a-workaholic-to-win Using SQLAlchemy with Spatial Databases.

GeoAlchemy 2 provides extensions to SQLAlchemy for working with spatial databases.

GeoAlchemy 2 focuses on PostGIS. PostGIS 1.5 and PostGIS 2 are supported.

Sandman 2

https://github.com/jeffknupp/sandman2 Automatically generate a RESTful API service for your legacy database. No code required!

Command Line Interfaces (CLIs)

Python Fire

https://pythonbytes.fm/episodes/show/17/google-s-python-is-on-fire-and-simon-says-you-have-cpu-load-pythonically `PythonFireis a library for automatically generating command line interfaces (CLIs) from absolutely anyPython` object.

Clize

https://pythonbytes.fm/episodes/show/167/cheating-at-kaggle-and-uwsgi-in-prod

Clize is an argument parser for Python. You can use Clize as an alternative to argparse if you want an even easier way to create command-line interfaces.

Typer

https://pythonbytes.fm/episodes/show/164/use-type-hints-to-build-your-next-cli-app

Typer, build great CLIs. Easy to code. Based on Python type hints.

Guided User Interfaces (GUIs)

Gooey

https://pythonbytes.fm/episodes/show/62/wooey-and-gooey-are-simple-python-guis

I personally love Gooey and have it installed in almost every project lately. Gooey turns (almost) any Python command line program into a full GUI application with one line.

I have also done a tutorial blog post on Gooey as well at: https://jackmckew.dev/making-executable-guis-with-python-gooey-pyinstaller.html

Gooey Example

Eel GUI

https://pythonbytes.fm/episodes/show/61/on-being-a-senior-engineer Eel is a little Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to Python capabilities and libraries.

Eel Demo

QUICK

https://pythonbytes.fm/episodes/show/166/misunderstanding-software-clocks-and-time A real quick GUI generator for click. Inspired by Gooey, the GUI generator for classical Python argparse-based command line programs.

QUICK Example

Great Examples of Tkinter

https://pythonbytes.fm/episodes/show/63/we-re-still-on-a-desktop-gui-kick A few great examples of what is possible with Tkinter. - https://github.com/victordomingos/PT-Tracking/ - PT Tracking - https://github.com/victordomingos/RepService/ - RepService - https://github.com/victordomingos/ContarDinheiro.py - Money Counter

Python Development

Attrs

https://pythonbytes.fm/episodes/show/11/django-2.0-is-dropping-python-2-entirely-pipenv-for-profile-functionality-and-pythonic-home-automation Python Classes Without Boilerplate

PyOxidiser

https://pythonbytes.fm/episodes/show/114/what-should-be-in-the-python-standard-library PyOxidizer is a utility for producing binaries that embed Python. The over-arching goal of PyOxidizer is to make complex packaging and distribution problems simple so application maintainers can focus on building applications instead of toiling with build systems and packaging tools.

Python Date Utils

https://pythonbytes.fm/episodes/show/136/a-python-kernel-rather-than-cleaning-the-batteries

The dateutil module provides powerful extensions to the standard datetime module, available in Python.

Pycel

https://pythonbytes.fm/episodes/show/171/chilled-out-python-decorators-with-pep-614

A library for compiling excel spreadsheets to Python code & visualizing them as a graph

Doc Assemble

docassemble is a free, open-source expert system for guided interviews and document assembly. It provides a web site that conducts interviews with users. Based on the information gathered, the interviews can present users with documents in PDF, RTF, or DOCX format, which users can download or e-mail.

Game Development

Panda3D

https://pythonbytes.fm/episodes/show/116/so-you-want-python-in-a-3d-graphics-engine

Panda3D is an open-source, completely free-to-use engine for realtime 3D games, visualizations, simulations, experiments

Panda3D Example

PursuedPyBear

PursuedPyBear, also known as ppb, exists to be an educational resource. Most obviously used to teach computer science, it can be a useful tool for any topic that a simulation can be helpful.

Interesting Tidbits

There was one episode that referenced some amazing examples of GUIs built in Tkinter, unfortunately I have been unable to find it again. My note that I had down was 63 GUIs in Tkinter. EDIT: Thank you Anton Alekseev for helping me find this! Tkinter Examples Using --prompt to name your virtualenv for easy identification later on is something I use widely now. https://pythonbytes.fm/episodes/show/168/race-your-donkey-car-with-python Python Graph Gallery is an amazing resource for examples of already made data visualisations. Type hints for busy programmers is a great resource for understanding what type hints are and why you should use them. https://pythonbytes.fm/episodes/show/160/your-json-shall-be-streamed