⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 281167 in webkit


Ignore:
Timestamp:
Aug 17, 2021, 3:16:18 PM (5 years ago)
Author:
Jonathan Bedard
Message:

[webkitcorepy] Return SourceFileLoader in find_module
​https://bugs.webkit.org/show_bug.cgi?id=229172
<rdar://problem/82006256>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(AutoInstall.find_module): Return SourceFileLoader object in Python 3.

Location:
trunk/Tools
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r281155 r281167  
     12021-08-17  Jonathan Bedard  <jbedard@apple.com>
     2
     3        [webkitcorepy] Return SourceFileLoader in find_module
     4        https://bugs.webkit.org/show_bug.cgi?id=229172
     5        <rdar://problem/82006256>
     6
     7        Reviewed by Stephanie Lewis.
     8
     9        * Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
     10        (AutoInstall.find_module): Return SourceFileLoader object in Python 3.
     11
    1122021-08-17  Lauro Moura  <lmoura@igalia.com>
    213
  • trunk/Tools/Scripts/libraries/webkitcorepy/setup.py

    r280864 r281167  
    3131setup(
    3232    name='webkitcorepy',
    33     version='0.8.2',
     33    version='0.8.3',
    3434    description='Library containing various Python support classes and functions.',
    3535    long_description=readme(),
  • trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py

    r280864 r281167  
    4141from webkitcorepy.nested_fuzzy_dict import NestedFuzzyDict
    4242
    43 version = Version(0, 8, 2)
     43version = Version(0, 8, 3)
    4444
    4545from webkitcorepy.autoinstall import Package, AutoInstall
  • trunk/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py

    r279009 r281167  
    4141
    4242if sys.version_info > (3, 0):
     43    from html.parser import HTMLParser
     44    from importlib import machinery as importmachinery
    4345    from urllib.request import urlopen
    4446    from urllib.error import URLError
    45     from html.parser import HTMLParser
    4647else:
    4748    from urllib2 import urlopen, URLError
    … …  
    592593    def find_module(cls, fullname, path=None):
    593594        if not cls.enabled() or path is not None:
    594             return
     595            return None
    595596
    596597        name = fullname.split('.')[0]
    597         if cls.packages.get(name):
    598             cls.install(name)
     598        if not cls.packages.get(name) or not cls.directory:
     599            return None
     600
     601        cls.install(name)
     602        if sys.version_info < (3, 0):
     603            # Python 2 works fine with the default module finder, once we've installed the module in question
     604            return None
     605
     606        path = cls.directory
     607        for part in fullname.split('.'):
     608            path = os.path.join(path, part)
     609            for ext in ('', '.py', '.pyc', '.py3', '.pyo'):
     610                candidate = '{}{}'.format(path, ext)
     611                if os.path.exists(candidate):
     612                    path = candidate
     613                    break
     614            if not os.path.isdir(path):
     615                break
     616        if os.path.isdir(path):
     617            path = os.path.join(path, '__init__.py')
     618
     619        return importmachinery.SourceFileLoader(name, path)
    599620
    600621    @classmethod
Note: See TracChangeset for help on using the changeset viewer.