Atualizando código optparse
***************************

Originalmente, o módulo "argparse" tentou manter a compatibilidade com
"optparse". No entanto, "optparse" era difícil de estender de forma
transparente, particularmente com as mudanças necessárias para prover
suporte a especificadores "nargs=" e melhores mensagens de uso. Quando
quase tudo em "optparse" tinha sido copiado e colado ou corrigido em
tempo de execução, não mais parecia prático tentar manter a
compatibilidade com versões anteriores.

O módulo "argparse" melhora em comparação ao módulo "optparse" em
vários aspectos, incluindo:

* Tratando argumentos posicionais.

* Prover suporte a subcomandos.

* Permitir prefixos alternativos de opções como "+" e "/".

* Manipular argumentos de estilo "zero ou mais" e "um ou mais".

* Produzir mensagens de uso mais informativas.

* Fornecer uma interface muito mais simples para "type" e "action"
  personalizados.

Um caminho de atualização parcial de "optparse" para "argparse":

* Substituir todas as chamadas de "optparse.OptionParser.add_option()"
  por chamadas de "ArgumentParser.add_argument()".

* Substituir "(options, args) = parser.parse_args()" por "args =
  parser.parse_args()" e adicionar chamadas adicionais a
  "ArgumentParser.add_argument()" para os argumentos posicionais.
  Tenha em mente que o que anteriormente era chamado de "options",
  agora no contexto do "argparse" é chamado de "args".

* Substituir "optparse.OptionParser.disable_interspersed_args()"
  usando "parse_intermixed_args()" em vez de "parse_args()".

* Substituir ações de função de retorno e argumentos nomeados
  "callback_*" por argumentos "type" ou "action".

* Substituir nomes de strings para argumentos nomeados "type" pelos
  objetos de tipo correspondentes (por exemplo, int, float, complex,
  etc).

* Substituir "optparse.Values" por "Namespace" e
  "optparse.OptionError" e "optparse.OptionValueError" por
  "ArgumentError".

* Substituir strings com argumentos implícitos tal como "%default" ou
  "%prog" pela sintaxe padrão do Python para usar dicionários para
  formatar strings, ou seja, "%(default)s" e "%(prog)s".

* Substituir o argumento "version" do construtor do OptionParser por
  uma chamada a "parser.add_argument('--version', action='version',
  version='<the version>')".
