fix babelfish
This commit is contained in:
@@ -10,7 +10,7 @@ try:
|
|||||||
from collections.abc import Mapping, MutableMapping
|
from collections.abc import Mapping, MutableMapping
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from collections import Mapping, MutableMapping
|
from collections import Mapping, MutableMapping
|
||||||
|
from importlib import import_module
|
||||||
|
|
||||||
# from https://github.com/kennethreitz/requests/blob/master/requests/structures.py
|
# from https://github.com/kennethreitz/requests/blob/master/requests/structures.py
|
||||||
class CaseInsensitiveDict(MutableMapping):
|
class CaseInsensitiveDict(MutableMapping):
|
||||||
@@ -240,21 +240,20 @@ class ConverterManager(object):
|
|||||||
"""Get a converter, lazy loading it if necessary"""
|
"""Get a converter, lazy loading it if necessary"""
|
||||||
if name in self.converters:
|
if name in self.converters:
|
||||||
return self.converters[name]
|
return self.converters[name]
|
||||||
for ep in iter_entry_points(self.entry_point):
|
# for ep in iter_entry_points(self.entry_point):
|
||||||
if ep.name == name:
|
# if ep.name == name:
|
||||||
self.converters[ep.name] = ep.load()()
|
# self.converters[ep.name] = ep.load()()
|
||||||
return self.converters[ep.name]
|
# return self.converters[ep.name]
|
||||||
for ep in (EntryPoint.parse(c) for c in self.registered_converters + self.internal_converters):
|
|
||||||
if ep.name == name:
|
def parse(str):
|
||||||
# `require` argument of ep.load() is deprecated in newer versions of setuptools
|
import re
|
||||||
if hasattr(ep, 'resolve'):
|
match = re.match('(?P<name>\w+) = (?P<module>[a-z0-9.]+):(?P<class>\w+)', str)
|
||||||
plugin = ep.resolve()
|
return match.groupdict()
|
||||||
elif hasattr(ep, '_load'):
|
for ep in (parse(c) for c in self.registered_converters + self.internal_converters):
|
||||||
plugin = ep._load()
|
if ep.get('name') == name:
|
||||||
else:
|
cl = getattr(import_module(ep.get('module')), ep.get('class'))
|
||||||
plugin = ep.load(require=False)
|
self.converters[ep.get('name')] = cl()
|
||||||
self.converters[ep.name] = plugin()
|
return self.converters[ep.get('name')]
|
||||||
return self.converters[ep.name]
|
|
||||||
raise KeyError(name)
|
raise KeyError(name)
|
||||||
|
|
||||||
def __setitem__(self, name, converter):
|
def __setitem__(self, name, converter):
|
||||||
|
|||||||
Reference in New Issue
Block a user