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
- Data Science
- Data Visualisation
- Machine Learning
- Command Line Interfaces (CLIs)
- Guided User Interfaces (GUIs)
- Python Development
- Game Development
- Interesting Tidbits
Wagtail is a content management system (CMS) (like Wordpress), written in
Python, based off
Django app that creates automatic web UIs for
Live example at: https://wooey.herokuapp.com/
Full stack web apps with nothing but
Vue.js with pure
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/
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.
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/
Fully automated offensive security framework for reconnaissance and vulnerability scanning
mongoaudit is an automated pentesting tool that lets you know if your
MongoDB instances are properly secured
Great Expectations is a leading tool for validating, documenting, and profiling, your data to maintain quality and improve communication between teams.
Plumb a PDF for detailed information about each char, rectangle, line, et cetera — and easily extract text and tables.
pyjanitor is a project that extends Pandas with a verb-based API, providing convenient data cleaning routines for repetitive tasks.
pandas-vet is a plugin for
flake8 that provides opinionated linting for pandas code.
Jupyter notebooks to Excel Spreadsheets (xlsx), through a new 'Download As' option or via
nbconvert on the command line.
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 is a
Python library that makes it easy for data scientists to create charts.
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
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/
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
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.
https://github.com/microsoft/SandDance Visually explore, understand, and present your data.
Tensors and Dynamic neural networks in
Python with strong GPU acceleration
Yellowbrick extends the
Scikit-Learn API to make model selection and hyperparameter tuning easier. Under the hood, it’s using
A refreshing functional take on deep learning, compatible with your favorite libraries.
From the makers of
Plug-n-play reinforcement learning with OpenAI Gym and
https://spinningup.openai.com/en/latest/ Deep reinforcement learning educational resource
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 is an open-source library for unsupervised topic modeling and natural language processing, using modern statistical machine learning.
SQLAlchemy with Spatial Databases.
GeoAlchemy 2 provides extensions to
SQLAlchemy for working with spatial databases.
GeoAlchemy 2 focuses on
PostGIS 1.5 and
PostGIS 2 are supported.
https://github.com/jeffknupp/sandman2 Automatically generate a RESTful API service for your legacy database. No code required!
Command Line Interfaces (CLIs)
is a library for automatically generating command line interfaces (CLIs) from absolutely anyPython` object.
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, build great CLIs. Easy to code. Based on
Python type hints.
Guided User Interfaces (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 is a little
Python library for making simple Electron-like offline HTML/JS GUI apps, with full access to
Python capabilities and libraries.
A real quick GUI generator for
click. Inspired by
Gooey, the GUI generator for classical
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 -
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.
dateutil module provides powerful extensions to the standard datetime module, available in
A library for compiling excel spreadsheets to
Python code & visualizing them as a graph
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.
Panda3D is an open-source, completely free-to-use engine for realtime 3D games, visualizations, simulations, experiments
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.
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