π π Awesome lists about Python Bytes https://pythonbytes.fm/
Python Bytes is a weekly, short & sweet podcast by Michael Kennedy & Brian Okken.
This repository is intended to list the awesome packages mentioned on the podcast. Pull requests are open to anyone to add packages mentioned on the podcast that are awesome!
Each package is listed in the following format:
[Package Name](link/to/package)
*Link to show notes where mentioned*
Short package description
[![IMAGE IF APPLICABLE]](link/to/package)
Table of Contents
- Web Development
- Data Science
- Data Visualization
- Machine Learning
- Databases
- Command Line Interfaces (CLIs)
- Graphical User Interfaces (GUIs)
- Python Development
- Game Development
- Interesting Tidbits
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
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/
https://pythonbytes.fm/episodes/show/106/fluent-query-apis-on-python-collections
Full stack web apps with nothing but Python
.
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/
https://pythonbytes.fm/episodes/show/169/jupyter-notebooks-natively-on-your-ipad
D-Tale
is a Flask/React client for visualizing pandas data structures. Live Demo
Why the Deets?
- Integrates easily into any python console or jupyter notebook
- Works with Google Colab & Kaggle
- Quickly explore large dataframes with our grid using sorting, filtering & show/hide/move columns
- Browse column information & statistics with "Describe"
- View correlation matrices
- Quick histograms, value counts & category breakdowns using "Column Analysis"
- Easy chart builder built on top of plotly/dash (export your charts to take them on the go as well π)
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.
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.
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.
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.
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.
https://pythonbytes.fm/episodes/show/165/ranges-as-dictionary-keys-oh-my
A light weight, zero dependency (only standard libs used), to the point (no bells and whistles) Microsoft Excel reader/writer python 2.7-3+ library.
Why pylightxl over pandas/openpyxl
- (compatibility +1, small lib +1) pylightxl has no external dependencies (only uses python built-in standard libs). (compatibility +1) pylightxl was written to be compatible for python 2.7-3+ under one single pylightxl version. It does not impose rules on users to switch versions.
- (small lib +1) pylightxl was written to simply read/write, thereby making the library small without any bells or whistles which makes it easy to compile with PyInstaller and other packagers
- (user friendly +1) pylightxl was written to be as pythonic and easy to use as possible. Core developers actively survey Stack Overflow questions on working with excel files to tailor the API for most common problems.
- (see xlrd before pylightxl) Note that the xlrd library is very similar in values to pylightxl, but with much more functionality! Please take a look at xlrd to see if it is a good fit for your project. So why pick pylightxl over xlrd that has much more to offer? Currently, xlrd does not have any active developers. Pylightxl is a new library aimed to help solve current excel data issues (as surveyed by Stack Overflow), please submit your suggestions to help improve this library together.
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.
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.
https://pythonbytes.fm/episodes/show/178/build-a-pypi-package-from-a-jupyter-notebook
Pandas-Bokeh provides a Bokeh plotting backend for Pandas, GeoPandas and Pyspark DataFrames, similar to the already existing Visualization feature of Pandas. Importing the library adds a complementary plotting method plot_bokeh()
on DataFrames and Series.
With Pandas-Bokeh, creating stunning, interactive, HTML-based visualization is as easy as calling:
df.plot_bokeh()
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
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
.
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
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.
Python Fire
is a library for automatically generating command line interfaces (CLIs) from absolutely any Python
object.
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.
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.
https://pythonbytes.fm/episodes/show/176/how-python-implements-super-long-integers
Rich is a Python library for rich text and beautiful formatting in the terminal.
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
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.
https://pythonbytes.fm/episodes/show/90/a-django-async-roadmap
https://pythonbytes.fm/episodes/show/104/api-evolution-the-right-way
PySimpleGUI enables anyone with a week of PySimpleGUI education or more to develop an entirely custom desktop GUI application. The underlying GUI frameworks supported include tkinter, Qt, WxPython and Remi. PySimpleGUI code can be run on any of these underlying frameworks with little or often no modification to the source code.
Unlike other simplified GUI packages, PySimpleGUI has a rich palette of widgets that are not dumbed down and can be assembled into any configuration desired, resulting in applications that look and operate as if written directly in tkinter, Qt, etc. Simple defines the ease of writing the programs, not the class of problems that are capable of being solved. 100's of demo programs are provided to give programmers a jump start on integrating with other packages such as OpenCV, Matplotlib. There are over 500 GitHub projects currently using PySimpleGUI.
A couple recent projects include:
A series of Rainmeter-style "Desktop Widgets": https://github.com/PySimpleGUI/PySimpleGUI-Widgets
A photo and video colorizer: https://github.com/PySimpleGUI/PySimpleGUI-Photo-Colorizer
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.
Python
Classes Without Boilerplate
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.
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
.
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
https://pythonbytes.fm/episodes/show/174/happy-developers-use-python-3
Data validation and settings management using python type annotations.
https://pythonbytes.fm/episodes/show/174/happy-developers-use-python-3
Simplifies creation of data classes from dictionaries. Converting from dict to dataclass is trivial for trivial cases: x = MyClass(**data_as_dict)
.
https://pythonbytes.fm/episodes/show/155/guido-van-rossum-retires
The strictest and most opinionated python linter ever. wemake-python-styleguide is actually a flake8 plugin with some other plugins as dependencies.
https://pythonbytes.fm/episodes/show/178/build-a-pypi-package-from-a-jupyter-notebook
nbdev
is a library that allows you to fully develop a library in Jupyter Notebooks, putting all your code, tests and documentation in one place. That is: you now have a true literate programming environment, as envisioned by Donald Knuth back in 1983!
Using the interactive environment, you can easily debug and refactor your code. Add #export flags to the cells that define the functions you want to include in your python modules. Here, for instance, is how combined_cos is defined and documented in the fastai
library:
- Creates Python packages out of a notebook
- Creates documentation from the notebook
- Solves the git perma-conflict issues with git pre-commit hooks
- Use #export to declare a cell should become a function in the package
- Manages the boilerplate issues for creating Python packages (setup.py, etc)
- Makes testing possible inside notebooks
- Navigate and edit your code in a standard text editor or IDE, and sync any changes automatically back into your notebooks (reverse basically)
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 real time 3D games, visualizations, simulations, experiments
- 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 visualizations.
- 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
- This list was mentioned in Episode #176 https://pythonbytes.fm/episodes/show/176/how-python-implements-super-long-integers