Что такое "самый чистый" способ реализовать интерфейс командной строки, похожий на git, например:
git push origin/master
git remote add origin git://example.com master
В идеале также допускается более гибкий синтаксический анализ, например
jump_to_folder app theappname v2
jump_to_folder app theappname source
jump_to_folder app theappname source v2
jump_to_folder app theappname build v1
jump_to_folder app theappname build 1
jump_to_folder app theappname v2 build
 jump_to_folder - это имя скрипта, app - это команда, theappname - это параметр фиксированного местоположения, "build" и "v2" и т.д. являются аргументами (например, возможными аргументами могут быть любые числа/любое число с префиксом av или build/source/tmp/config)
Я мог бы просто вручную проанализировать аргументы с помощью серии if/else/elifs, но должен быть более элегантный способ сделать это?
Как вполне теоретический пример, я мог бы описать схему пользовательского интерфейса.
app:
    fixed: application_name
    optional params:
        arg subsection:
            "build"
            "source"
            "tmp"
            "config"
        arg version:
            integer
            "v" + integer
Затем проанализируйте предоставленные аргументы, используя приведенную выше схему, и получите словарь:
>>> print schema.parse(["app", "theappname", "v1", "source"])
{
    "application_name": "theappname",
    "params":{
        "subsection": "source",
        "version":"v1"
    }
}
Существует ли такая система? Если нет, как бы я мог реализовать что-то в этом направлении?
