Migrating "optparse" code to "argparse"
***************************************

The "argparse" module offers several higher level features not
natively provided by the "optparse" module, including:

* gère les arguments positionnels ;

* Supporting subcommands.

* permet d'utiliser les alternatives "+" ou "/" comme préfixes
  d'option ;

* prend en charge la répétition de valeurs (zéro ou plus, un ou plus)
  ;

* fournit des messages d'aide plus complets ;

* fournit une interface plus simple pour les types et les actions
  personnalisés.

Originally, the "argparse" module attempted to maintain compatibility
with "optparse".  However, the fundamental design differences between
supporting declarative command line option processing (while leaving
positional argument processing to application code), and supporting
both named options and positional arguments in the declarative
interface mean that the API has diverged from that of "optparse" over
time.

As described in Choosing an argument parsing library, applications
that are currently using "optparse" and are happy with the way it
works can just continue to use "optparse".

Application developers that are considering migrating should also
review the list of intrinsic behavioural differences described in that
section before deciding whether or not migration is desirable.

For applications that do choose to migrate from "optparse" to
"argparse", the following suggestions should be helpful:

* remplacer tous les appels à "optparse.OptionParser.add_option()" par
  des appels à "ArgumentParser.add_argument()" ;

* remplacer "(options, args) = parser.parse_args()" par "args =
  parser.parse_args()" et ajouter des appels à
  "ArgumentParser.add_argument()" pour les arguments positionnels.
  Prenez note que les valeurs précédemment appelées "options" sont
  appelées "args" dans le contexte d'"argparse" ;

* remplacer "optparse.OptionParser.disable_interspersed_args()" en
  appelant "parse_intermixed_args()" plutôt que "parse_args()" ;

* remplacer les actions de rappel (*callback actions* en anglais) et
  les arguments nommés "callback_*" par des arguments "type" et
  "actions" ;

* remplacer les chaînes représentant le nom des types pour l'argument
  nommé "type" par les objets types correspondants (par exemple :
  "int", "float", "complex", etc) ;

* remplacer "optparse.Values" par "Namespace" ; et
  "optparse.OptionError" et "optparse.OptionValueError" par
  "ArgumentError" ;

* remplacer les chaînes avec des arguments de formatage implicite
  (tels que "%default" ou "%prog") par la syntaxe standard de Python
  pour l'interpolation d'un dictionnaire dans les chaînes de formatage
  (c'est-à-dire "%(default)s" et "%(prog)s") ;

* remplacer l'argument "version" du constructeur d'"OptionParser" par
  un appel à "parser.add_argument('--version', action='version',
  version='<la version>')".
