[LNT] r372404 - [LNT] Python 3 support: Fix implicit package-relative imports

Hubert Tong via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 20 08:20:44 PDT 2019


Author: hubert.reinterpretcast
Date: Fri Sep 20 08:20:41 2019
New Revision: 372404

URL: http://llvm.org/viewvc/llvm-project?rev=372404&view=rev
Log:
[LNT] Python 3 support: Fix implicit package-relative imports

Summary:
This patch replaces implicit package-relative imports with explicitly
relative imports and makes further adjustments necessary to correct for
circular import issues encountered when running with Python 2.7
following the initial changes.

Finally, `from __future__ import absolute_import` is added to all of the
files changed as part of this exercise.

These changes help with running tests (without result submission) with
Python 3.

Reviewers: cmatthews, thopre, kristof.beyls, MaskRay

Reviewed By: MaskRay

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D67795

Modified:
    lnt/trunk/lnt/external/stats/pstat.py
    lnt/trunk/lnt/external/stats/stats.py
    lnt/trunk/lnt/formats/__init__.py
    lnt/trunk/lnt/lnttool/__init__.py
    lnt/trunk/lnt/server/db/testsuite.py
    lnt/trunk/lnt/server/db/testsuitedb.py
    lnt/trunk/lnt/testing/profile/__init__.py
    lnt/trunk/lnt/testing/profile/perf.py
    lnt/trunk/lnt/testing/profile/profilev2impl.py

Modified: lnt/trunk/lnt/external/stats/pstat.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/external/stats/pstat.py?rev=372404&r1=372403&r2=372404&view=diff
==============================================================================
--- lnt/trunk/lnt/external/stats/pstat.py (original)
+++ lnt/trunk/lnt/external/stats/pstat.py Fri Sep 20 08:20:41 2019
@@ -105,8 +105,8 @@ functions/methods.  Their inclusion here
 ##
 ## 11/08/98 ... fixed aput to output large arrays correctly
 
+from __future__ import absolute_import
 from __future__ import print_function
-import stats  # required 3rd party module
 import string, copy
 from types import *
 

Modified: lnt/trunk/lnt/external/stats/stats.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/external/stats/stats.py?rev=372404&r1=372403&r2=372404&view=diff
==============================================================================
--- lnt/trunk/lnt/external/stats/stats.py (original)
+++ lnt/trunk/lnt/external/stats/stats.py Fri Sep 20 08:20:41 2019
@@ -222,8 +222,9 @@ SUPPORT FUNCTIONS:  writecc
 ##              changed name of skewness and askewness to skew and askew
 ##              fixed (a)histogram (which sometimes counted points <lowerlimit)
 
+from __future__ import absolute_import
 from __future__ import print_function
-import pstat               # required 3rd party module
+from . import pstat        # required 3rd party module
 import math, string, copy  # required python modules
 from types import *
 

Modified: lnt/trunk/lnt/formats/__init__.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/formats/__init__.py?rev=372404&r1=372403&r2=372404&view=diff
==============================================================================
--- lnt/trunk/lnt/formats/__init__.py (original)
+++ lnt/trunk/lnt/formats/__init__.py Fri Sep 20 08:20:41 2019
@@ -7,8 +7,9 @@ callable taking a path_or_file object, t
 callable taking a Python object to write, and the path_or_file to write to.
 """
 
-from PlistFormat import format as plist
-from JSONFormat import format as json
+from __future__ import absolute_import
+from .PlistFormat import format as plist
+from .JSONFormat import format as json
 
 formats = [plist, json]
 formats_by_name = dict((f['name'], f) for f in formats)

Modified: lnt/trunk/lnt/lnttool/__init__.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/lnttool/__init__.py?rev=372404&r1=372403&r2=372404&view=diff
==============================================================================
--- lnt/trunk/lnt/lnttool/__init__.py (original)
+++ lnt/trunk/lnt/lnttool/__init__.py Fri Sep 20 08:20:41 2019
@@ -1 +1,2 @@
-from main import main
+from __future__ import absolute_import
+from .main import main

Modified: lnt/trunk/lnt/server/db/testsuite.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/db/testsuite.py?rev=372404&r1=372403&r2=372404&view=diff
==============================================================================
--- lnt/trunk/lnt/server/db/testsuite.py (original)
+++ lnt/trunk/lnt/server/db/testsuite.py Fri Sep 20 08:20:41 2019
@@ -2,10 +2,10 @@
 Database models for the TestSuites abstraction.
 """
 
+from __future__ import absolute_import
 import json
 import lnt
-import testsuitedb
-import util
+from . import util
 
 import sqlalchemy
 import sqlalchemy.ext.declarative
@@ -114,6 +114,7 @@ class TestSuite(Base):
 
     @staticmethod
     def from_json(data):
+        from . import testsuitedb
         if data.get('format_version') != '2':
             raise ValueError("Expected \"format_version\": \"2\" in schema")
         name = data['name']
@@ -349,6 +350,7 @@ class SampleField(FieldMixin, Base):
 
 
 def _upgrade_to(connectable, tsschema, new_schema, dry_run=False):
+    from . import testsuitedb
     new = json.loads(new_schema.jsonschema)
     old = json.loads(tsschema.jsonschema)
     ts_name = new['name']

Modified: lnt/trunk/lnt/server/db/testsuitedb.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/server/db/testsuitedb.py?rev=372404&r1=372403&r2=372404&view=diff
==============================================================================
--- lnt/trunk/lnt/server/db/testsuitedb.py (original)
+++ lnt/trunk/lnt/server/db/testsuitedb.py Fri Sep 20 08:20:41 2019
@@ -5,6 +5,7 @@ These are a bit magical because the mode
 suite metadata, so we only create the classes at runtime.
 """
 
+from __future__ import absolute_import
 import datetime
 import json
 import os
@@ -18,7 +19,7 @@ from sqlalchemy.orm.exc import ObjectDel
 from typing import List
 from lnt.util import logger
 
-import testsuite
+from . import testsuite
 import lnt.testing.profile.profile as profile
 import lnt
 from lnt.server.ui.util import convert_revision

Modified: lnt/trunk/lnt/testing/profile/__init__.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/testing/profile/__init__.py?rev=372404&r1=372403&r2=372404&view=diff
==============================================================================
--- lnt/trunk/lnt/testing/profile/__init__.py (original)
+++ lnt/trunk/lnt/testing/profile/__init__.py Fri Sep 20 08:20:41 2019
@@ -1,7 +1,8 @@
 # This is the profile implementation registry. Register new profile
 # implementations here.
 
-from profilev1impl import ProfileV1
-from profilev2impl import ProfileV2
-from perf import LinuxPerfProfile
+from __future__ import absolute_import
+from .profilev1impl import ProfileV1
+from .profilev2impl import ProfileV2
+from .perf import LinuxPerfProfile
 IMPLEMENTATIONS = {0: LinuxPerfProfile, 1: ProfileV1, 2: ProfileV2}

Modified: lnt/trunk/lnt/testing/profile/perf.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/testing/profile/perf.py?rev=372404&r1=372403&r2=372404&view=diff
==============================================================================
--- lnt/trunk/lnt/testing/profile/perf.py (original)
+++ lnt/trunk/lnt/testing/profile/perf.py Fri Sep 20 08:20:41 2019
@@ -1,6 +1,7 @@
+from __future__ import absolute_import
 from lnt.util import logger
-from profile import ProfileImpl
-from profilev1impl import ProfileV1
+from .profile import ProfileImpl
+from .profilev1impl import ProfileV1
 
 import os
 import traceback

Modified: lnt/trunk/lnt/testing/profile/profilev2impl.py
URL: http://llvm.org/viewvc/llvm-project/lnt/trunk/lnt/testing/profile/profilev2impl.py?rev=372404&r1=372403&r2=372404&view=diff
==============================================================================
--- lnt/trunk/lnt/testing/profile/profilev2impl.py (original)
+++ lnt/trunk/lnt/testing/profile/profilev2impl.py Fri Sep 20 08:20:41 2019
@@ -1,4 +1,5 @@
-from profile import ProfileImpl
+from __future__ import absolute_import
+from .profile import ProfileImpl
 import StringIO
 import bz2
 import copy




More information about the llvm-commits mailing list