argparse
est l'outil que Django (prétendument) utilise pour analyser la ligne de commande, selon this commit et this support ticket.Pourquoi est-ce que l'option optparse est toujours utilisée dans Django v1.7.4?
Cependant, neuf mois se sont écoulés maintenant, et quand je visite la déclaration BaseCommand
je vois:
from optparse import make_option, OptionParser
...
option_list = (
make_option('-v', '--verbosity', action='store', dest='verbosity', default='1',
type='choice', choices=['0', '1', '2', '3'],
help='Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output'),
make_option('--settings',
help='The Python path to a settings module, e.g. "myproject.settings.main". If this isn\'t provided, the DJANGO_SETTINGS_MODULE environment variable will be used.'),
make_option('--pythonpath',
help='A directory to add to the Python path, e.g. "/home/djangoprojects/myproject".'),
make_option('--traceback', action='store_true',
help='Raise on exception'),
make_option('--no-color', action='store_true', dest='no_color', default=False,
help="Don't colorize the command output."),
)
Quand est-ce Django utiliser argparse
en 1.7?
Bon sang -.- vous 'avez raison. N'a pas vérifié le code source entier, et a pensé que c'était pour 1.7. Je peux penser à un lof de commandes manage.py dans des applications tierces qui seront cassées en 1.8. –
@LuisMasuelli vrai. Comme le disent les notes de version: * "Vous pouvez rendre votre commande rétrocompatible en définissant simplement la variable de classe' args' Cependant, si vous n'avez pas besoin de garder la compatibilité avec les anciennes versions de Django, il vaut mieux implémenter le nouveau 'add_arguments() 'méthode décrite dans [Écrire des commandes django-admin personnalisées] (https://docs.djangoproject.com/fr/dev/howto/custom-management-commands/)." * – jonrsharpe