Outside of the main python language features (which are unlikely to change), this documents individual
python modules (internal and external). Some of these are referenced outside of this document (those I find most useful),
but consider this to be the master list.
Authentication
Data Analytics
Databases
Data Serialization
Data Visualization
Debuggers
python pdb |
the official builtin debugger
|
python ipdb |
the ipython debugger, built overtop of pdb with colours, tab-completion, and enhanced featureset
|
python trepan |
Formerly pydbgr, pygdb, extends pdb to include features from gdb.
|
python pudb |
TUI console deugger, that shows your code while debugging.
|
gdb#python |
debug frameworks that were compiled in C/Cpp (qt, etc).
|
File Management
Freezing/Compiling
cython |
compile python to C/C++
|
cx_freeze |
freeze python into executables
|
pyoxidizer |
embed python in rust executable (single file executable, statically linked)
|
py2exe |
py2exe allows you to compile python executables for windows
|
python nuitka |
native executable compiler for python
|
Linting
|
pylint |
|
automated checks for your codebase's consistency with the various PEPs, and established bad practices.
|
Media
Misc
|
openpyxl |
|
Interface with Excel Speadsheets (.xlsx)
|
pypdf2 |
|
PDF authoring/manipulation
|
pypdf4 |
|
PDF authoring/manipulation
|
pdfrw |
|
PDF authoring/manipulation
|
pdfreader |
|
read/extract info from pdfs
|
icalendar |
|
icalendar .ics read/write tool
|
hashlib |
|
md5, sha, ... hashing library
|
lockfile |
|
entirely cross-platform lock/pid file mechanism
|
datetime |
|
native python object for managing times, timezones
|
pytz |
|
timezone info for python
|
ctypes |
|
interfaces with C libraries.
|
interface |
|
java-style interface implementation in python.
|
docutils |
|
convert between text formats (html, man, tex, xml, rst, ...)
|
python orgparse |
|
parse org mode files, clock times, etc.
|
Operating Systems
General
pyxdg |
XDG-compatible config,data,cache directory finding
|
python-daemon |
facilitates daemon start/stop and pidfiles
|
watchdog |
observes filesystem events, notifies python callables.
|
pyautogui |
cross-platform keystroke, mouse, and selection controls
|
Unix
Windows
Packaging
|
setuptools |
creating/installing software distrobutions (and uploading to PyPi).
|
virtualenv |
safely manage a set of python requirements within an environment
|
Performance Testing
|
cProfile |
python's builtin profiling software. The basis for most other profiling tools.
|
pprofile |
line-profiling.
|
line_profiler |
after identifying a problem area, line_profiler allows you to test your code line-by-line.
|
runSnakeRun |
My favourite profiling tool. This has saved my hide an inummerable amount of times.
|
python snakeviz |
Decent profiling tool, supports python3
|
vprof |
Hierarchical view of your code, and how long it took to run. Provides heat maps for how long each line in your code took to run.
|
timeit |
watches time it take to run code
|
gitviewer |
This was mentioned in one of Alex Gaynor's(Pypy) talks about the speed of python . I haven't been able to find it online. It is supposed to show each line of code, it's speed, it's call to the Python VM, and it's sysCall. It was supposed to be a tool for helping you identify good/bad code practices.
|
pympler |
memory profiler for python
|
objgraph |
find memory leaks by filtering/identifying instances, and examing their parent graph using graphviz
|
resource |
bulitin library to examine/manage progam's python resource usage (memory etc)
|
Progam Extension
|
taskw |
|
python taskwarrior API
|
Proprietary APIs
Refactoring
|
pycharm |
|
A python IDE. honestly, best refactoring experience I've seen for python.
|
rope |
|
A refactoring library for python
|
Sockets/RPC
|
netifaces |
|
cross-platform python API for network interfaces/connections
|
flask |
|
RPC/Rest API tools (requires a webserver)
|
json-rpc |
|
(Remote Procedure Call) using JSON (works over web sockets)
|
Static Types
Speech To Text
Templating
User Interfaces
GUI
CLI
|
argparse |
|
CLI argument parser
|
docopt |
|
CLI argument parser
|
prompt_toolkit |
|
syntax-highlighting, tab-completion, repl... so easy it's sexy
|
pygments |
|
syntax-highlighting, and printing colours to console
|
TUI
Unit Testing
|
pytest |
|
(++) A-Mazing test-runner AND unittest framework.
|
mock |
|
(++) test/fake function results for unittests
|
pytest-cov |
|
test code-coverage while testing in pytest
|
coverage |
|
|
unittest |
|
A unittesting framework based off of the popular XUnit library.
|
unittest2 |
|
??
|
pyfakefs |
|
mock out the filesystem in memory
|
pyramid |
|
??
|
nose |
|
customized unittest runner (unmaintained)
|
nose2 |
|
followup to nose
|
tox |
|
run unittests in multiple versions of python at once (using virtualenvs)
|
dox |
|
similar to tox, but runs multiple versions of python in multiple linux distrobutions by using docker on the back-end.
|
Web