2010-04-07 7 views
23

J'ai écrit une petite application console capable d'effectuer certaines tâches. L'interface utilisateur est similaire à des choses comme les systèmes de contrôle de version ou yum etc. Donc, fondamentalement, vous pouvez le considérer comme un langage spécifique à un domaine. Maintenant je voudrais écrire un shell (bash like) qui peut exécuter et auto-compléter cette langue et a un historique des commandes (donc je n'ai pas besoin de charger et d'enregistrer les fichiers xml assez volumineux sur chaque commande). En un mot, je veux quelque chose comme ipython mais pas pour l'exécution de code python, mais mon propre DSL.Comment écrire un shell en Python

Y a-t-il des bibliothèques qui m'aident à faire cela? Je vois qu'il y a un module readline et rlcompleter en python mais sa documentation semble indiquer que c'est uniquement pour l'utiliser avec le shell python lui-même, ou est-ce que j'ai manqué quelque chose?

Répondre

21

Vous devriez vérifier les modules cmd et cmd2. Je pense qu'ils vont faire ce que tu veux. Il y avait un PyCon talk à propos de ceux-ci.

+1

Oui c'était exactement ce que je cherchais! Merci. – panzi

+2

Le lien de conversation ne marche plus. Un lien alternatif à la même conversation [est ici sur pyvideo.] (Http://pyvideo.org/video/306/pycon-2010--easy-command-line-applications-with-c). La conversation est appelée: Applications de ligne de commande faciles avec cmd et cmd2 (# 153) de pycon us 2010. – klaas

Questions connexes