From 8caa5c16e866b51311b87935a3f787ce275183d4 Mon Sep 17 00:00:00 2001 From: Burt Bielicki Date: Fri, 19 Feb 2016 13:52:34 -0800 Subject: [PATCH 1/4] Support Python 2.7 again --- src/azure/cli/__main__.py | 10 +--------- src/azure/cli/_argparse.py | 2 +- src/azure/cli/_session.py | 4 ++-- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/azure/cli/__main__.py b/src/azure/cli/__main__.py index 8c109acaaa8..666cda4f24e 100644 --- a/src/azure/cli/__main__.py +++ b/src/azure/cli/__main__.py @@ -1,13 +1,5 @@ -import time -_import_time = time.perf_counter() - import sys import azure.cli.main -from azure.cli._logging import logging -try: - sys.exit(azure.cli.main.main(sys.argv[1:])) -finally: - # Note: script time includes idle and network time - logging.info('Execution time: %8.3fms', 1000 * (time.perf_counter() - _import_time)) +sys.exit(azure.cli.main.main(sys.argv[1:])) diff --git a/src/azure/cli/_argparse.py b/src/azure/cli/_argparse.py index 46f041776b6..2e0be55f42a 100644 --- a/src/azure/cli/_argparse.py +++ b/src/azure/cli/_argparse.py @@ -145,7 +145,7 @@ def execute(self, args, show_usage=False, show_completions=False, out=sys.stdout all_global_args = set(a.lstrip('-/') for a in self.help_args | self.complete_args | self.global_args) def not_global(a): return a.lstrip('-/') not in all_global_args - it = filter(not_global, args) + it = filter(not_global, args).__iter__() m = self.noun_map nouns = [] diff --git a/src/azure/cli/_session.py b/src/azure/cli/_session.py index 46c7daf15e8..fb294057e1b 100644 --- a/src/azure/cli/_session.py +++ b/src/azure/cli/_session.py @@ -1,11 +1,11 @@ -import collections.abc +import collections import json import os import time from codecs import open -class Session(collections.abc.MutableMapping): +class Session(collections.MutableMapping): '''A simple dict-like class that is backed by a JSON file. All direct modifications will save the file. Indirect modifications should From 7115bdc69ffc2c73a9574bf355d356eefe0ad40e Mon Sep 17 00:00:00 2001 From: Burt Bielicki Date: Fri, 19 Feb 2016 14:00:57 -0800 Subject: [PATCH 2/4] fix syntax error in storage --- src/azure/cli/commands/storage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure/cli/commands/storage.py b/src/azure/cli/commands/storage.py index cf1bef0617c..f5068fd97ca 100644 --- a/src/azure/cli/commands/storage.py +++ b/src/azure/cli/commands/storage.py @@ -16,7 +16,7 @@ def list_accounts(args, unexpected): profile = Profile() #credentials, subscription_id = profile.get_credentials() smc = StorageManagementClient(StorageManagementClientConfiguration( - *profile.get_credentials(), + *profile.get_credentials() )) group = args.get('resource-group') From 6ee7d36317490baae9f30ac0c0d54ff53ba4fe00 Mon Sep 17 00:00:00 2001 From: Burt Bielicki Date: Fri, 19 Feb 2016 14:28:27 -0800 Subject: [PATCH 3/4] address feedback, also convert code where args are missing to 2.7 --- src/azure/cli/_argparse.py | 20 +++++++++++++------- src/azure/cli/_session.py | 5 +++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/azure/cli/_argparse.py b/src/azure/cli/_argparse.py index 2e0be55f42a..eea8f9d3e06 100644 --- a/src/azure/cli/_argparse.py +++ b/src/azure/cli/_argparse.py @@ -215,14 +215,16 @@ def not_global(a): def _display_usage(self, nouns, noun_map, arguments, out=sys.stdout): spec = ' '.join(noun_map.get('$spec') or nouns) print(' {} {}'.format(self.prog, spec), file=out) - print(file=out, flush=True) + print(file=out) + out.flush() subnouns = sorted(k for k in noun_map if not k.startswith('$')) if subnouns: print('Subcommands', file=out) for n in subnouns: print(' {}'.format(n), file=out) - print(file=out, flush=True) + print(file=out) + out.flush() argdoc = noun_map.get('$argdoc') if argdoc: @@ -230,15 +232,18 @@ def _display_usage(self, nouns, noun_map, arguments, out=sys.stdout): maxlen = max(len(a) for a, d in argdoc) for a, d in argdoc: print(' {0:<{1}} - {2}'.format(a, maxlen, d), file=out) - print(file=out, flush=True) + print(file=out) + out.flush() doc_file = locale_get_file(noun_map['$doc']) try: with open(doc_file, 'r') as f: - print(f.read(), file=out, flush=True) - except OSError: + print(f.read(), file=out) + f.flush() + except (OSError, IOError): # TODO: Behave better when no docs available - print('No documentation available', file=out, flush=True) + print('No documentation available', file=out) + out.flush() logging.debug('Expected documentation at %s', doc_file) def _display_completions(self, nouns, noun_map, arguments, out=sys.stdout): @@ -248,4 +253,5 @@ def _display_completions(self, nouns, noun_map, arguments, out=sys.stdout): if kwargs: completions.extend('--' + a for a in kwargs if a) - print('\n'.join(sorted(completions)), file=out, flush=True) + print('\n'.join(sorted(completions)), file=out) + out.flush() diff --git a/src/azure/cli/_session.py b/src/azure/cli/_session.py index fb294057e1b..1b613c2cb48 100644 --- a/src/azure/cli/_session.py +++ b/src/azure/cli/_session.py @@ -2,6 +2,11 @@ import json import os import time +try: + import collections.abc as collections +except ImportError: + import collections + from codecs import open From 88389397882b1846bfc0296b919877dc19cd0aff Mon Sep 17 00:00:00 2001 From: Burt Bielicki Date: Mon, 22 Feb 2016 11:37:10 -0800 Subject: [PATCH 4/4] remove extra import --- src/azure/cli/_session.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/azure/cli/_session.py b/src/azure/cli/_session.py index 1b613c2cb48..af369362918 100644 --- a/src/azure/cli/_session.py +++ b/src/azure/cli/_session.py @@ -1,4 +1,3 @@ -import collections import json import os import time