Skip to content

Commit c22421a

Browse files
committed
Replace optparse with argparse to parse arguments
optparse is obsolete and no longer maintained and we should be running on more modern python3's anyway. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> --- v2 - fix %prog and VERSION handling v3 - fix merge conflicts
1 parent 597f321 commit c22421a

File tree

1 file changed

+44
-43
lines changed

1 file changed

+44
-43
lines changed

git-publish

Lines changed: 44 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import email.policy
1616
import os
1717
import glob
1818
import sys
19-
import optparse
19+
import argparse
2020
import re
2121
import tempfile
2222
import shutil
@@ -557,99 +557,100 @@ def inspect_menu(tmpdir, to_list, cc_list, patches, suppress_cc, in_reply_to,
557557
return patches
558558

559559
def parse_args():
560+
prog = os.path.basename(sys.argv[0])
560561

561-
parser = optparse.OptionParser(version='%%prog %s' % VERSION,
562-
usage='%prog [options] -- [common format-patch options]',
562+
parser = argparse.ArgumentParser(prog=f"{prog} {VERSION}",
563+
usage=f"{prog} [options] -- [common format-patch options]",
563564
description='Prepare and store patch revisions as git tags.',
564565
epilog='Please report bugs to Stefan Hajnoczi <stefanha@gmail.com>.')
565-
parser.add_option('--annotate', dest='annotate', action='store_true',
566+
parser.add_argument('--annotate', dest='annotate', action='store_true',
566567
default=False, help='review and edit each patch email')
567-
parser.add_option('-b', '--base', dest='base', default=None,
568+
parser.add_argument('-b', '--base', dest='base', default=None,
568569
help='branch which this is based off [defaults to master]')
569-
parser.add_option('--blurb-template', dest='blurb_template', default=None,
570+
parser.add_argument('--blurb-template', dest='blurb_template', default=None,
570571
help='Template for blurb [defaults to *** BLURB HERE ***]')
571-
parser.add_option('--cc', dest='cc', action='append', default=[],
572+
parser.add_argument('--cc', dest='cc', action='append', default=[],
572573
help='specify a Cc: email recipient')
573-
parser.add_option('--cc-cmd',
574+
parser.add_argument('--cc-cmd',
574575
help='specify a command whose output to add to the cc list')
575-
parser.add_option('--no-check-url', dest='check_url', action='store_false',
576+
parser.add_argument('--no-check-url', dest='check_url', action='store_false',
576577
help='skip publicly accessible pull request URL check')
577-
parser.add_option('--check-url', dest='check_url', action='store_true',
578+
parser.add_argument('--check-url', dest='check_url', action='store_true',
578579
help='check pull request URLs are publicly accessible')
579-
parser.add_option('--skip', type='int', dest='skip', metavar='N', default=0,
580+
parser.add_argument('--skip', type=int, dest='skip', metavar='N', default=0,
580581
help='unselect the first N patch emails (including the cover letter if any)')
581-
parser.add_option('--edit', dest='edit', action='store_true',
582+
parser.add_argument('--edit', dest='edit', action='store_true',
582583
default=False, help='edit message but do not tag a new version')
583-
parser.add_option('--no-inspect-emails', dest='inspect_emails',
584+
parser.add_argument('--no-inspect-emails', dest='inspect_emails',
584585
action='store_false',
585586
help='no confirmation before sending emails')
586-
parser.add_option('--inspect-emails', dest='inspect_emails',
587+
parser.add_argument('--inspect-emails', dest='inspect_emails',
587588
action='store_true', default=True,
588589
help='show confirmation before sending emails')
589-
parser.add_option('-n', '--number', type='int', dest='number', default=-1,
590+
parser.add_argument('-n', '--number', type=int, dest='number', default=-1,
590591
help='version number [auto-generated by default]')
591-
parser.add_option('--no-message', '--no-cover-letter', dest='message',
592+
parser.add_argument('--no-message', '--no-cover-letter', dest='message',
592593
action='store_false', help='do not add a message')
593-
parser.add_option('-m', '--message', '--cover-letter', dest='message',
594+
parser.add_argument('-m', '--message', '--cover-letter', dest='message',
594595
action='store_true', help='add a message')
595-
parser.add_option('--no-cover-info', dest='cover_info',
596+
parser.add_argument('--no-cover-info', dest='cover_info',
596597
action='store_false', default=True,
597598
help='do not append comments information when editing the cover letter')
598-
parser.add_option('--no-binary', dest='binary',
599+
parser.add_argument('--no-binary', dest='binary',
599600
action='store_false', default=True,
600601
help='Do not output contents of changes in binary files, instead display a notice that those files changed')
601-
parser.add_option('--profile', '-p', dest='profile_name', default='default',
602+
parser.add_argument('--profile', '-p', dest='profile_name', default='default',
602603
help='select default settings profile')
603-
parser.add_option('--pull-request', dest='pull_request', action='store_true',
604+
parser.add_argument('--pull-request', dest='pull_request', action='store_true',
604605
default=False, help='tag and send as a pull request')
605-
parser.add_option('--sign-pull', dest='sign_pull', action='store_true',
606+
parser.add_argument('--sign-pull', dest='sign_pull', action='store_true',
606607
help='sign tag when sending pull request')
607-
parser.add_option('-k', '--keyid', dest='keyid',
608+
parser.add_argument('-k', '--keyid', dest='keyid',
608609
help='use the given GPG key when signing pull request tag')
609-
parser.add_option('--no-sign-pull', dest='sign_pull', action='store_false',
610+
parser.add_argument('--no-sign-pull', dest='sign_pull', action='store_false',
610611
help='do not sign tag when sending pull request')
611-
parser.add_option('--subject-prefix', dest='prefix', default=None,
612+
parser.add_argument('--subject-prefix', dest='prefix', default=None,
612613
help='set the email Subject: header prefix')
613-
parser.add_option('--clear-subject-prefix', dest='clear_prefix',
614+
parser.add_argument('--clear-subject-prefix', dest='clear_prefix',
614615
action='store_true', default=False,
615616
help='clear the per-branch subject prefix')
616-
parser.add_option('--setup', dest='setup', action='store_true', default=False,
617+
parser.add_argument('--setup', dest='setup', action='store_true', default=False,
617618
help='add git alias in ~/.gitconfig')
618-
parser.add_option('-t', '--topic', dest='topic',
619+
parser.add_argument('-t', '--topic', dest='topic',
619620
help='topic name [defaults to current branch name]')
620-
parser.add_option('--to', dest='to', action='append', default=[],
621+
parser.add_argument('--to', dest='to', action='append', default=[],
621622
help='specify a primary email recipient')
622-
parser.add_option('-s', '--signoff', dest='signoff', action='store_true',
623+
parser.add_argument('-s', '--signoff', dest='signoff', action='store_true',
623624
default=False,
624625
help='add Signed-off-by: <self> to commits when emailing')
625-
parser.add_option('--notes', dest='notes', action='store_true',
626+
parser.add_argument('--notes', dest='notes', action='store_true',
626627
default=False,
627628
help='Append the notes (see git-notes(1)) for the commit after the three-dash line.')
628-
parser.add_option('--suppress-cc', dest='suppress_cc',
629+
parser.add_argument('--suppress-cc', dest='suppress_cc',
629630
help='override auto-cc when sending email (man git-send-email for details)')
630-
parser.add_option('-v', '--verbose', dest='verbose',
631+
parser.add_argument('-v', '--verbose', dest='verbose',
631632
action='store_true', default=False,
632633
help='show executed git commands (useful for troubleshooting)')
633-
parser.add_option('--forget-cc', dest='forget_cc', action='store_true',
634+
parser.add_argument('--forget-cc', dest='forget_cc', action='store_true',
634635
default=False, help='Forget all previous CC emails')
635-
parser.add_option('--override-to', dest='override_to', action='store_true',
636+
parser.add_argument('--override-to', dest='override_to', action='store_true',
636637
default=False, help='Ignore any profile or saved TO emails')
637-
parser.add_option('--override-cc', dest='override_cc', action='store_true',
638+
parser.add_argument('--override-cc', dest='override_cc', action='store_true',
638639
default=False, help='Ignore any profile or saved CC emails')
639-
parser.add_option('--in-reply-to', "-R",
640+
parser.add_argument('--in-reply-to', "-R",
640641
help='specify the In-Reply-To: of the cover letter (or the single patch)')
641-
parser.add_option('--no-thread', dest='thread', action='store_false',
642+
parser.add_argument('--no-thread', dest='thread', action='store_false',
642643
help='do not add In-Reply-To: headers to any email')
643-
parser.add_option('--thread', dest='thread', action='store_true',
644+
parser.add_argument('--thread', dest='thread', action='store_true',
644645
help='add In-Reply-To: headers to sent emails')
645-
parser.add_option('--add-header', '-H', action='append', dest='headers',
646+
parser.add_argument('--add-header', '-H', action='append', dest='headers',
646647
help='specify custom headers to git-send-email')
647-
parser.add_option('--separate-send', '-S', dest='separate_send', action='store_true',
648+
parser.add_argument('--separate-send', '-S', dest='separate_send', action='store_true',
648649
default=False, help='Send patches using separate git-send-email cmd')
649-
parser.add_option('--send-email-args', action='append', default=[],
650+
parser.add_argument('--send-email-args', action='append', default=[],
650651
help="Arguments forwarded to git-send-email")
651652

652-
return parser.parse_args()
653+
return parser.parse_known_args()
653654

654655
def main():
655656
global VERBOSE

0 commit comments

Comments
 (0)