Caipyrinha 0.2

Y tan rapido como esto hice una version 0.2 (por necesidades laborales)

 

Diferencias fundamentales: ahora los exclude group se instancian con el parametro exclusive y no con group (ya implementare los grupos propiamente dichos)
Aca tienen como instalarlo: http://caipyrinha.readthedocs.org

si lo instalan con este código:

# ex.py

import caipyrinha

parser = caipyrinha.Caipyrinha(prog="Your Program")
parser.add_argument("--version", action='version', version="%(prog)s 0.1")

@parser.callback(exit=0, exclusive="group1")
def first(flags, returns):
    '''Execute this option and exit'''
    print "bye bye"

@parser.callback(action="store")
def second(flags, returns):
    '''set his own return value with his parameter'''
    return flags.second

@parser.callback("--third", exclusive="group1")
def no_used_name(flags, returns):
    '''you cant use this argument with first'''
    print returns.second

import sys
parser(sys.argv[1:])

Tienen este resultado

2013-01-23-030740_1056x346_scrot

Aca tienen un link donde lo estoy usando:  http://bitbucket.org/leliel12/yatel/src/tip/bin/yatel

Anuncios

Caipyrinha 0.1

Si hay algo desordenado que me queda siempre son los parsers de linea de comando. Así que se me ocurrió caipyrinha

Que hace caipyrinha? te da un decorador para hacer argumentos de linea de comando a mi criterio… mas facilmente

Aca tienen como instalarlo: http://caipyrinha.readthedocs.org

si lo instalan con este código:

# ex.py

import caipyrinha

parser = caipyrinha.Caipyrinha(prog="Your Program")
parser.add_argument("--version", action='version', version="%(prog)s 0.1")

@parser.callback(exit=0, group="group1")
def first(flags, returns):
    '''Execute this option and exit'''
    print "bye bye"

@parser.callback(action="store")
def second(flags, returns):
    '''set his own return value with his parameter'''
    return flags.second

@parser.callback("--third", group="group1")
def no_used_name(flags, returns):
    '''you cant use this argument with first'''
    print returns.second

import sys
parser(sys.argv[1:])

Tienen este resultado

2013-01-23-030740_1056x346_scrot

Aca tienen un link donde lo estoy usando:  http://bitbucket.org/leliel12/yatel/src/tip/bin/yatel

Hermoseando Ipython

Me gusta mucho Bash. Si bien no soy usuario de ohmyzsh, me parece un proyecto super interesante. Y pensando en mi ultimo post me dije “debería haber un OhMyIpython”.

Así que me puse unas hora de laburo y lectura de documentación sobre plugins de Ipython, adapte el script de multiple scm como extensión, arme un repo y… voilà.

Acá esta el repo:  https://bitbucket.org/leliel12/ohmyipython

si lo instalan tienen este resultado:

2013-01-16-015651_653x650_scrot

En definitiva:

  • Informa que tipo de versionador tienen (git, mercurial, bzr y svn)
  • Si están en git y mercurial les dice en que branch están.
  • Si modifican un archivo versionado les agrega un * al final.
  • Mapea todos los comandos git, hg, svn y bzr a ipython.

El que quiera colaborar sera bienvenido