[Getan-commits] [PATCH] optparse to argparse Migration for scripts/getan-eval.py
Wald Commits
scm-commit at wald.intevation.org
Mon Apr 30 12:18:14 CEST 2018
# HG changeset patch
# User Magnus Schieder <mschieder at intevation.de>
# Date 1525083215 -7200
# Node ID 24ccca2442b1021b7e294130eec95c92c4259b2b
# Parent 52398469cacc327b92bcc1a43653994d9d8effc3
optparse to argparse Migration for scripts/getan-eval.py.
diff -r 52398469cacc -r 24ccca2442b1 TODO
--- a/TODO Wed Mar 21 10:04:31 2018 +0100
+++ b/TODO Mon Apr 30 12:13:35 2018 +0200
@@ -67,15 +67,9 @@
This is a larger drawback after moving all entries somewhere,
it is unclear which task's entries are shown now.
-20180104 BER (minor) Display licensing information with --version and
- usage. Implementation idea: change this when moving away from optparse.
-
20170709 BER: Give scripts/getan-eval.py a more specific name and add
it as a script to be installed.
-20170529 BER: Python compatibility: switch from deprecated optparse module
- to argparse. Affects getan/main.py and scripts/getan-eval.py.
-
20170504 BER: Some multi-user installations do not want a logfile by default.
We could solve this requirement by making it configurable.
diff -r 52398469cacc -r 24ccca2442b1 scripts/getan-eval.py
--- a/scripts/getan-eval.py Wed Mar 21 10:04:31 2018 +0100
+++ b/scripts/getan-eval.py Mon Apr 30 12:13:35 2018 +0200
@@ -11,56 +11,58 @@
import sys
from datetime import date, datetime, timedelta
-from optparse import OptionParser
+import argparse
from getan.template import render
def main():
- parser = OptionParser()
- parser.add_option("-d", "--database", dest="database",
- help="getan database", metavar="DATABASE")
- parser.add_option("-t", "--template", dest="template", metavar="TEMPLATE",
- help="name of getan template")
- parser.add_option("-u", "--user", dest="user", help="name of user")
- parser.add_option("-p", "--project", dest="project",
- help="key of output project")
- parser.add_option("-w", "--week", type="int", dest="week",
- help="week of year")
- parser.add_option("-y", "--year", type="int", dest="year", help="year")
- parser.add_option("-c", "--lastweek", dest="lastweek",
- help="entries of last working week",
- action="store_true")
- parser.add_option("-m", "--empty", dest="empty",
- help="show projects without an entries",
- action="store_true")
- parser.add_option("--encoding", dest="encoding",
- help="encoding of output", metavar="ENCODING")
+ usage='getan-eval.py [options]'
+ parser = argparse.ArgumentParser(prog='getan', usage=usage)
- (options, args) = parser.parse_args()
+ parser.add_argument('-d', '--database', dest='database',metavar="DATABASE",
+ help='metavar="DATABASE')
+ parser.add_argument('-t', '--template', dest='template',
+ metavar='TEMPLATE', help='name of getan template')
+ parser.add_argument('-u', '--user', dest='user', help='name of user')
+ parser.add_argument('-p', '--project', dest='project',
+ help='key of output project')
+ parser.add_argument('-w', '--week', type=int, dest='week',
+ help='week of year')
+ parser.add_argument('-y', '--year', type=int, dest='year', help='year')
+ parser.add_argument('-c', '--lastweek', dest='lastweek',
+ help='entries of last working week',
+ action='store_true')
+ parser.add_argument('-m', '--empty', dest='empty',
+ help='show projects without an entries',
+ action="store_true")
+ parser.add_argument('--encoding', dest='encoding',
+ help='encoding of output', metavar='ENCODING')
- if options.lastweek:
+ args = parser.parse_args()
+
+ if args.lastweek:
week = (datetime.now() - timedelta(7)).isocalendar()[1]
year = int(date.today().strftime("%Y"))
else:
- year = options.year
- week = options.week
+ year = args.year
+ week = args.week
- template_name = options.template or "wochenbericht"
+ template_name = args.template or "wochenbericht"
- if not options.encoding:
+ if not args.encoding:
encoding = locale.getdefaultlocale()[1] or "utf-8"
Writer = codecs.getwriter(encoding)
sys.stdout = Writer(sys.stdout)
user = None
- if options.user:
- user = options.user.decode(encoding)
+ if args.user:
+ user = args.user.decode(encoding)
- print render(database=options.database, user=user,
+ print render(database=args.database, user=user,
template=template_name, year=year, week=week,
- project=options.project, empty_projects=options.empty)
+ project=args.project, empty_projects=args.empty)
if __name__ == '__main__':
More information about the Getan-commits
mailing list