Showing the changes to python (2 of 2 files). Show all
Unified · Split
| @@ -499,7 +499,24 @@ class process_cut(process_onset): · 498 unmodified lines | ||
| 499 | 499 | |
| 500 | 500 | def main(): |
| 501 | 501 | parser = aubio_parser() |
| 502 | − args = parser.parse_args() | |
| 502 | + if sys.version_info[0] != 3: | |
| 503 | + # on py2, create a dummy ArgumentParser to workaround the | |
| 504 | + # optional subcommand issue. See https://bugs.python.org/issue9253 | |
| 505 | + # This ensures that: | |
| 506 | + # - version string is shown when only '-V' is passed | |
| 507 | + # - help is printed if '-V' is passed with any other argument | |
| 508 | + # - any other argument get forwarded to the real parser | |
| 509 | + parser_root = argparse.ArgumentParser(add_help=False) | |
| 510 | + parser_root.add_argument('-V', '--version', help="show version", | |
| 511 | + action="store_true", dest="show_version") | |
| 512 | + args, extras = parser_root.parse_known_args() | |
| 513 | + if args.show_version == False: # no -V, forward to parser | |
| 514 | + args = parser.parse_args(extras, namespace=args) | |
| 515 | + elif len(extras) != 0: # -V with other arguments, print help | |
| 516 | + parser.print_help() | |
| 517 | + sys.exit(1) | |
| 518 | + else: # in py3, we can simply use parser directly | |
| 519 | + args = parser.parse_args() | |
| 503 | 520 | if 'show_version' in args and args.show_version: |
| 504 | 521 | sys.stdout.write('aubio version ' + aubio.version + '\n') |
| 505 | 522 | sys.exit(0) |
| @@ -19,13 +19,16 @@ class aubio_cmd(TestCase): · 18 unmodified lines | ||
| 19 | 19 | class aubio_cmd_utils(TestCase): |
| 20 | 20 | |
| 21 | 21 | def test_samples2seconds(self): |
| 22 | − self.assertEqual(aubio.cmd.samples2seconds(3200, 32000), "0.100000\t") | |
| 22 | + self.assertEqual(aubio.cmd.samples2seconds(3200, 32000), | |
| 23 | + "0.100000\t") | |
| 23 | 24 | |
| 24 | 25 | def test_samples2milliseconds(self): |
| 25 | − self.assertEqual(aubio.cmd.samples2milliseconds(3200, 32000), "100.000000\t") | |
| 26 | + self.assertEqual(aubio.cmd.samples2milliseconds(3200, 32000), | |
| 27 | + "100.000000\t") | |
| 26 | 28 | |
| 27 | 29 | def test_samples2samples(self): |
| 28 | − self.assertEqual(aubio.cmd.samples2samples(3200, 32000), "3200\t") | |
| 30 | + self.assertEqual(aubio.cmd.samples2samples(3200, 32000), | |
| 31 | + "3200\t") | |
| 29 | 32 | |
| 30 | 33 | if __name__ == '__main__': |
| 31 | 34 | main() |