diff contrib/automation/hgautomation/cli.py @ 43076:2372284d9457

formatting: blacken the codebase This is using my patch to black (https://github.com/psf/black/pull/826) so we don't un-wrap collection literals. Done with: hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S # skip-blame mass-reformatting only # no-check-commit reformats foo_bar functions Differential Revision: https://phab.mercurial-scm.org/D6971
author Augie Fackler <augie@google.com>
date Sun, 06 Oct 2019 09:45:02 -0400
parents c5c502bd1f70
children 9d441f820c8b
line wrap: on
line diff
--- a/contrib/automation/hgautomation/cli.py	Sat Oct 05 10:29:34 2019 -0400
+++ b/contrib/automation/hgautomation/cli.py	Sun Oct 06 09:45:02 2019 -0400
@@ -22,12 +22,15 @@
 )
 
 
-SOURCE_ROOT = pathlib.Path(os.path.abspath(__file__)).parent.parent.parent.parent
+SOURCE_ROOT = pathlib.Path(
+    os.path.abspath(__file__)
+).parent.parent.parent.parent
 DIST_PATH = SOURCE_ROOT / 'dist'
 
 
-def bootstrap_linux_dev(hga: HGAutomation, aws_region, distros=None,
-                        parallel=False):
+def bootstrap_linux_dev(
+    hga: HGAutomation, aws_region, distros=None, parallel=False
+):
     c = hga.aws_connection(aws_region)
 
     if distros:
@@ -59,8 +62,9 @@
     print('Windows development AMI available as %s' % image.id)
 
 
-def build_inno(hga: HGAutomation, aws_region, arch, revision, version,
-               base_image_name):
+def build_inno(
+    hga: HGAutomation, aws_region, arch, revision, version, base_image_name
+):
     c = hga.aws_connection(aws_region)
     image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
     DIST_PATH.mkdir(exist_ok=True)
@@ -71,13 +75,14 @@
         windows.synchronize_hg(SOURCE_ROOT, revision, instance)
 
         for a in arch:
-            windows.build_inno_installer(instance.winrm_client, a,
-                                         DIST_PATH,
-                                         version=version)
+            windows.build_inno_installer(
+                instance.winrm_client, a, DIST_PATH, version=version
+            )
 
 
-def build_wix(hga: HGAutomation, aws_region, arch, revision, version,
-              base_image_name):
+def build_wix(
+    hga: HGAutomation, aws_region, arch, revision, version, base_image_name
+):
     c = hga.aws_connection(aws_region)
     image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
     DIST_PATH.mkdir(exist_ok=True)
@@ -88,12 +93,14 @@
         windows.synchronize_hg(SOURCE_ROOT, revision, instance)
 
         for a in arch:
-            windows.build_wix_installer(instance.winrm_client, a,
-                                        DIST_PATH, version=version)
+            windows.build_wix_installer(
+                instance.winrm_client, a, DIST_PATH, version=version
+            )
 
 
-def build_windows_wheel(hga: HGAutomation, aws_region, arch, revision,
-                        base_image_name):
+def build_windows_wheel(
+    hga: HGAutomation, aws_region, arch, revision, base_image_name
+):
     c = hga.aws_connection(aws_region)
     image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
     DIST_PATH.mkdir(exist_ok=True)
@@ -107,8 +114,9 @@
             windows.build_wheel(instance.winrm_client, a, DIST_PATH)
 
 
-def build_all_windows_packages(hga: HGAutomation, aws_region, revision,
-                               version, base_image_name):
+def build_all_windows_packages(
+    hga: HGAutomation, aws_region, revision, version, base_image_name
+):
     c = hga.aws_connection(aws_region)
     image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
     DIST_PATH.mkdir(exist_ok=True)
@@ -124,11 +132,13 @@
             windows.purge_hg(winrm_client)
             windows.build_wheel(winrm_client, arch, DIST_PATH)
             windows.purge_hg(winrm_client)
-            windows.build_inno_installer(winrm_client, arch, DIST_PATH,
-                                         version=version)
+            windows.build_inno_installer(
+                winrm_client, arch, DIST_PATH, version=version
+            )
             windows.purge_hg(winrm_client)
-            windows.build_wix_installer(winrm_client, arch, DIST_PATH,
-                                        version=version)
+            windows.build_wix_installer(
+                winrm_client, arch, DIST_PATH, version=version
+            )
 
 
 def terminate_ec2_instances(hga: HGAutomation, aws_region):
@@ -141,8 +151,15 @@
     aws.remove_resources(c)
 
 
-def run_tests_linux(hga: HGAutomation, aws_region, instance_type,
-                    python_version, test_flags, distro, filesystem):
+def run_tests_linux(
+    hga: HGAutomation,
+    aws_region,
+    instance_type,
+    python_version,
+    test_flags,
+    distro,
+    filesystem,
+):
     c = hga.aws_connection(aws_region)
     image = aws.ensure_linux_dev_ami(c, distro=distro)
 
@@ -151,17 +168,17 @@
     ensure_extra_volume = filesystem not in ('default', 'tmpfs')
 
     with aws.temporary_linux_dev_instances(
-        c, image, instance_type,
-        ensure_extra_volume=ensure_extra_volume) as insts:
+        c, image, instance_type, ensure_extra_volume=ensure_extra_volume
+    ) as insts:
 
         instance = insts[0]
 
-        linux.prepare_exec_environment(instance.ssh_client,
-                                       filesystem=filesystem)
+        linux.prepare_exec_environment(
+            instance.ssh_client, filesystem=filesystem
+        )
         linux.synchronize_hg(SOURCE_ROOT, instance, '.')
         t_prepared = time.time()
-        linux.run_tests(instance.ssh_client, python_version,
-                        test_flags)
+        linux.run_tests(instance.ssh_client, python_version, test_flags)
         t_done = time.time()
 
     t_setup = t_prepared - t_start
@@ -169,29 +186,48 @@
 
     print(
         'total time: %.1fs; setup: %.1fs; tests: %.1fs; setup overhead: %.1f%%'
-        % (t_all, t_setup, t_done - t_prepared, t_setup / t_all * 100.0))
+        % (t_all, t_setup, t_done - t_prepared, t_setup / t_all * 100.0)
+    )
 
 
-def run_tests_windows(hga: HGAutomation, aws_region, instance_type,
-                      python_version, arch, test_flags, base_image_name):
+def run_tests_windows(
+    hga: HGAutomation,
+    aws_region,
+    instance_type,
+    python_version,
+    arch,
+    test_flags,
+    base_image_name,
+):
     c = hga.aws_connection(aws_region)
     image = aws.ensure_windows_dev_ami(c, base_image_name=base_image_name)
 
-    with aws.temporary_windows_dev_instances(c, image, instance_type,
-                                             disable_antivirus=True) as insts:
+    with aws.temporary_windows_dev_instances(
+        c, image, instance_type, disable_antivirus=True
+    ) as insts:
         instance = insts[0]
 
         windows.synchronize_hg(SOURCE_ROOT, '.', instance)
-        windows.run_tests(instance.winrm_client, python_version, arch,
-                          test_flags)
+        windows.run_tests(
+            instance.winrm_client, python_version, arch, test_flags
+        )
 
 
-def publish_windows_artifacts(hg: HGAutomation, aws_region, version: str,
-                              pypi: bool, mercurial_scm_org: bool,
-                              ssh_username: str):
-    windows.publish_artifacts(DIST_PATH, version,
-                              pypi=pypi, mercurial_scm_org=mercurial_scm_org,
-                              ssh_username=ssh_username)
+def publish_windows_artifacts(
+    hg: HGAutomation,
+    aws_region,
+    version: str,
+    pypi: bool,
+    mercurial_scm_org: bool,
+    ssh_username: str,
+):
+    windows.publish_artifacts(
+        DIST_PATH,
+        version,
+        pypi=pypi,
+        mercurial_scm_org=mercurial_scm_org,
+        ssh_username=ssh_username,
+    )
 
 
 def run_try(hga: HGAutomation, aws_region: str, rev: str):
@@ -208,25 +244,21 @@
         help='Path for local state files',
     )
     parser.add_argument(
-        '--aws-region',
-        help='AWS region to use',
-        default='us-west-2',
+        '--aws-region', help='AWS region to use', default='us-west-2',
     )
 
     subparsers = parser.add_subparsers()
 
     sp = subparsers.add_parser(
-        'bootstrap-linux-dev',
-        help='Bootstrap Linux development environments',
+        'bootstrap-linux-dev', help='Bootstrap Linux development environments',
     )
     sp.add_argument(
-        '--distros',
-        help='Comma delimited list of distros to bootstrap',
+        '--distros', help='Comma delimited list of distros to bootstrap',
     )
     sp.add_argument(
         '--parallel',
         action='store_true',
-        help='Generate AMIs in parallel (not CTRL-c safe)'
+        help='Generate AMIs in parallel (not CTRL-c safe)',
     )
     sp.set_defaults(func=bootstrap_linux_dev)
 
@@ -242,17 +274,13 @@
     sp.set_defaults(func=bootstrap_windows_dev)
 
     sp = subparsers.add_parser(
-        'build-all-windows-packages',
-        help='Build all Windows packages',
+        'build-all-windows-packages', help='Build all Windows packages',
     )
     sp.add_argument(
-        '--revision',
-        help='Mercurial revision to build',
-        default='.',
+        '--revision', help='Mercurial revision to build', default='.',
     )
     sp.add_argument(
-        '--version',
-        help='Mercurial version string to use',
+        '--version', help='Mercurial version string to use',
     )
     sp.add_argument(
         '--base-image-name',
@@ -262,8 +290,7 @@
     sp.set_defaults(func=build_all_windows_packages)
 
     sp = subparsers.add_parser(
-        'build-inno',
-        help='Build Inno Setup installer(s)',
+        'build-inno', help='Build Inno Setup installer(s)',
     )
     sp.add_argument(
         '--arch',
@@ -273,13 +300,10 @@
         default=['x64'],
     )
     sp.add_argument(
-        '--revision',
-        help='Mercurial revision to build',
-        default='.',
+        '--revision', help='Mercurial revision to build', default='.',
     )
     sp.add_argument(
-        '--version',
-        help='Mercurial version string to use in installer',
+        '--version', help='Mercurial version string to use in installer',
     )
     sp.add_argument(
         '--base-image-name',
@@ -289,8 +313,7 @@
     sp.set_defaults(func=build_inno)
 
     sp = subparsers.add_parser(
-        'build-windows-wheel',
-        help='Build Windows wheel(s)',
+        'build-windows-wheel', help='Build Windows wheel(s)',
     )
     sp.add_argument(
         '--arch',
@@ -300,9 +323,7 @@
         default=['x64'],
     )
     sp.add_argument(
-        '--revision',
-        help='Mercurial revision to build',
-        default='.',
+        '--revision', help='Mercurial revision to build', default='.',
     )
     sp.add_argument(
         '--base-image-name',
@@ -311,10 +332,7 @@
     )
     sp.set_defaults(func=build_windows_wheel)
 
-    sp = subparsers.add_parser(
-        'build-wix',
-        help='Build WiX installer(s)'
-    )
+    sp = subparsers.add_parser('build-wix', help='Build WiX installer(s)')
     sp.add_argument(
         '--arch',
         help='Architecture to build for',
@@ -323,13 +341,10 @@
         default=['x64'],
     )
     sp.add_argument(
-        '--revision',
-        help='Mercurial revision to build',
-        default='.',
+        '--revision', help='Mercurial revision to build', default='.',
     )
     sp.add_argument(
-        '--version',
-        help='Mercurial version string to use in installer',
+        '--version', help='Mercurial version string to use in installer',
     )
     sp.add_argument(
         '--base-image-name',
@@ -345,15 +360,11 @@
     sp.set_defaults(func=terminate_ec2_instances)
 
     sp = subparsers.add_parser(
-        'purge-ec2-resources',
-        help='Purge all EC2 resources managed by us',
+        'purge-ec2-resources', help='Purge all EC2 resources managed by us',
     )
     sp.set_defaults(func=purge_ec2_resources)
 
-    sp = subparsers.add_parser(
-        'run-tests-linux',
-        help='Run tests on Linux',
-    )
+    sp = subparsers.add_parser('run-tests-linux', help='Run tests on Linux',)
     sp.add_argument(
         '--distro',
         help='Linux distribution to run tests on',
@@ -374,8 +385,18 @@
     sp.add_argument(
         '--python-version',
         help='Python version to use',
-        choices={'system2', 'system3', '2.7', '3.5', '3.6', '3.7', '3.8',
-                 'pypy', 'pypy3.5', 'pypy3.6'},
+        choices={
+            'system2',
+            'system3',
+            '2.7',
+            '3.5',
+            '3.6',
+            '3.7',
+            '3.8',
+            'pypy',
+            'pypy3.5',
+            'pypy3.6',
+        },
         default='system2',
     )
     sp.add_argument(
@@ -386,13 +407,10 @@
     sp.set_defaults(func=run_tests_linux)
 
     sp = subparsers.add_parser(
-        'run-tests-windows',
-        help='Run tests on Windows',
+        'run-tests-windows', help='Run tests on Windows',
     )
     sp.add_argument(
-        '--instance-type',
-        help='EC2 instance type to use',
-        default='t3.medium',
+        '--instance-type', help='EC2 instance type to use', default='t3.medium',
     )
     sp.add_argument(
         '--python-version',
@@ -407,8 +425,7 @@
         default='x64',
     )
     sp.add_argument(
-        '--test-flags',
-        help='Extra command line flags to pass to run-tests.py',
+        '--test-flags', help='Extra command line flags to pass to run-tests.py',
     )
     sp.add_argument(
         '--base-image-name',
@@ -419,7 +436,7 @@
 
     sp = subparsers.add_parser(
         'publish-windows-artifacts',
-        help='Publish built Windows artifacts (wheels, installers, etc)'
+        help='Publish built Windows artifacts (wheels, installers, etc)',
     )
     sp.add_argument(
         '--no-pypi',
@@ -436,22 +453,17 @@
         help='Skip uploading to www.mercurial-scm.org',
     )
     sp.add_argument(
-        '--ssh-username',
-        help='SSH username for mercurial-scm.org',
+        '--ssh-username', help='SSH username for mercurial-scm.org',
     )
     sp.add_argument(
-        'version',
-        help='Mercurial version string to locate local packages',
+        'version', help='Mercurial version string to locate local packages',
     )
     sp.set_defaults(func=publish_windows_artifacts)
 
     sp = subparsers.add_parser(
-        'try',
-        help='Run CI automation against a custom changeset'
+        'try', help='Run CI automation against a custom changeset'
     )
-    sp.add_argument('-r', '--rev',
-                    default='.',
-                    help='Revision to run CI on')
+    sp.add_argument('-r', '--rev', default='.', help='Revision to run CI on')
     sp.set_defaults(func=run_try)
 
     return parser