import this

der Python Podcast

CLI Parameter mit Docopt und Schema

simplel und pythonic - Oktober 9, 2013
cache/img/podcasts/import-this/episodes/docopt_logo_img_episode_sm.png

import docopt

"""

CLI Parameter mit Docopt und Schema

Gerade für CLI Tools ist Python oft eine gute Wahl. Es verbindet die Geschwindigkeit von Shell-Programmierung mit Features einer durchdachten Sprache.

Eine der ersten Zeilen Code ist sys.argv[] zu parsen. Die Standardlib bringt da mit optparse oder seit Python (2.7|3) argparse sehr umfangreiche Packages mit. Umfangreich heißt leider auch etwas zeitintensiv zu nutzen, wenn man die Doku nicht auswendig gelernt hat.

Komplett von der anderen Seite zäumt Docopt [0] dieses Problem auf. Man schreibt einfach seinen Hilfetext in einen String und wirft ihn diesem Modul vor. Genau, das war alles.

In der Natur der Sache liegt, dass Docopt nicht weiß, wie es die CLI Optionen und Argumente validieren soll. Da kommt z. B. Schema [1] des selben Autors ins Spiel. Dieses Modul bietet ein simples Interface beliebige Datenstrukturen zu validieren. Damit ist es nicht nur ein perfekter Kompagnon für Docopt sondern für Daten fast jeglicher Art.

  • [0] http://docopt.org/
  • [1] https://github.com/halst/schema

Usage:

   import-this listen [--pre-fetch ]

   import-this download []

Options:

   -h --help Show help screen

   -p --pre-fetch Download before playing

"""

arguments = docopt(__doc__)

Die Kommentarfunktion ist von Disqus eingebettet.