Little Helpers

Es gibt eine Menge von Tools die in Python geschrieben sind, um das Leben beim Programmieren oder generell einfacher zu machen.

Auf einem frischen System läuft bei mir erst mal das hier:

pip3 install -U \
    bpython \
    black \
    isort \
    pyflakes \
    pylint \
    pyyaml \
    sphinx \
    watchdog

Und dann hab ich noch ein paar Aliasse, die recht praktisch sind:

.pyc und __pycache__ entfernen:

pyc() {
    find . \
        -name '*.pyc' -delete -print -o \
        -name '__pycache__' -delete -print
}

Der HTTP Server:

serve_http() { python -m http.server "$@"; }

Sendmail emulieren:

serve_smtp() { python -m smtpd -n -c DebuggingServer "localhost:${1-"2525"}"; }

Wo liegen denn die installierten Module?

alias python_libdir='python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib());"'

bpython

Interaktiver Python Interpreter, mit:

  • Syntax Highlighting!
  • Autocomplete!
  • Auto Indentation!
  • Rollback!
  • Buzzwords!

Ist sehr hilfreich!

black

Formatiert den Quellcode so dass es eindeutig und lesbar bleibt.

isort

Sortiert automatisch die import-Statements. Wandert rekursiv durchs Package… Es ist sehr gut!

watchdog

Der kleine Dackel steckt seine Nase zwischen alle Files auf die man ihn los lässt, und bellt bei Änderungen…

Beispiel:

Bei Änderungen an den source-files im Ordner ./src, ruft Waldi make build auf:

watchmedo shell-command ./docs \
    --recursive \
    --ignore-directories \
    --drop \
    --patterns="*.cpp;*.hpp" \
    --command="make build"