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
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
- Security
- Data Science
- Data Visualisation
- Machine Learning
- Databases
- Command Line Interfaces (CLIs)
- Guided User Interfaces (GUIs)
- Python Development
- Game Development
- Interesting Tidbits
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/
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/
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
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.
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.
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.
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.
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/
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.
Sand Dance
https://github.com/microsoft/SandDance Visually explore, understand, and present your data.
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
.
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
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
`Python
Fireis a library for automatically generating command line interfaces (CLIs) from absolutely any
Python` 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
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.
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.
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/ - - https://github.com/victordomingos/RepService/ - - https://github.com/victordomingos/ContarDinheiro.py -
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
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