ffunenga Posted January 29, 2013 at 11:55 PM Report #493502 Posted January 29, 2013 at 11:55 PM Vejam-me bem esta maravilha: http://docopt.org/ tenho usado sempre o argparse mas esta abordagem parece-me muito interessante
Virneto Posted January 30, 2013 at 12:48 AM Report #493507 Posted January 30, 2013 at 12:48 AM Não queres deixar aí a tua opinião e trocar por miúdos? É que, (sem contar com o inglês do orador ou qualidade do vídeo/som), isto é muita areia para mim......ainda!! 😞 "Que inquieto desejo vos tortura, Seres elementares, força obscura? Em volta de que ideia gravitais?" >> Anthero de Quental - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Linuxando.com | ...
ffunenga Posted January 30, 2013 at 07:50 PM Author Report #493647 Posted January 30, 2013 at 07:50 PM Vou tentar deixar uma explicação daquilo que pude apurar até ao momento. Quando lanças um programa pela linha de comandos, normalmente tens a opção de colocar argumentos de entrada para poder atalhar certas configurações (isto é pouco utilizado em Windows). Por exemplo: $ ./app.py --verbose -h www.google.pt -p 80 Na universidade, aprendi a desenrrascar este tipo de coisas ao analisar o argc,argv na linguagem C com um bloco gigante de ifs e elses... embora existam formas de tornar este processo mais simples, dá sempre algum trabalho. Em Python, pelo contrário, existem duas abordagens para realizar esta análise de forma sistemática e simples: são os modulos optparse e argparse (principalmente o segundo). O workflow tipico é: criar um objecto Argparser, e depois utilizar os seus métodos para ir adicionando as opções e flags que estarão disponiveis na linha de comandos. No final, corres um metodo dessa instância para analisar o sys.argv e retornar um dicionário com os argumentos e seus valores. Mesmo assim, a malta deste projecto (docopt) achou que ainda era possivel simplificar/melhorar este processo: crias uma string embutida no código com a tua mensagem de usage, e o modulo vai ser capaz de interpretar automaticamente o que lá escreveste de forma a fazer o parsing da linha de comandos como pretendes. A vantagem é obvia: muito menos linhas no teu código para definires a mesma coisa. Além disso, pelo que percebi da explicação do orador sobre o a definição de um comando (o link [1] aponta directamente para o momento em que ele diz isso), é possivel fazeres coisas com este modulo que nenhum dos outros dois que eu já referi permitem. Tal como ele diz e bem, não tenho a certeza se conseguia implementar a definição que ele pretende com o argparse. [1] https://www.youtube.com/embed/pXhcPJK5cMc?start=605&feature=oembed 1 Report
eatg75 Posted January 31, 2013 at 09:25 AM Report #493688 Posted January 31, 2013 at 09:25 AM Na universidade, aprendi a desenrrascar este tipo de coisas ao analisar o argc,argv na linguagem C com um bloco gigante de ifs e elses... embora existam formas de tornar este processo mais simples, dá sempre algum trabalho. Para o C ja existe o Gengetop ha muito temp! Que por acaso e muito interresante. Gostei da abordagem do docopt para definir as opcoes, comandos, etc, ... O docopt para ser muito KISS (Keep It Simple Stupid) Victarion seized the dusky woman by the wrist and pulled her to him. Victarion - She will do it. Go pray to your red god. Light your fire, and tell me what you see. Moqorro's dark eyes seemed to shine. Moqorro - I see dragons.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now