Skip to content

Commit fd3dbf7

Browse files
committed
Bug fixes
1 parent 8ea7a27 commit fd3dbf7

File tree

8 files changed

+57
-40
lines changed

8 files changed

+57
-40
lines changed

addons/fastwq/gui/dictmanager.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,14 @@ def build(self):
7777
# dict service list
7878
confs = config.dicts
7979
dicts = list()
80-
for clazz in service_manager.web_services:
81-
service = service_pool.get(clazz.__unique__)
82-
if service and service.support:
83-
dicts.append({
84-
'title': service.title,
85-
'unique': service.unique,
86-
'path': clazz.__path__,
87-
'enabled': confs.get(service.unique, dict()).get('enabled', True)
88-
})
89-
service_pool.put(service)
80+
services = service_manager.local_custom_services + service_manager.web_services
81+
for clazz in services:
82+
dicts.append({
83+
'title': clazz.__title__,
84+
'unique': clazz.__unique__,
85+
'path': clazz.__path__,
86+
'enabled': confs.get(clazz.__unique__, dict()).get('enabled', True)
87+
})
9088
# add dict
9189
for i, d in enumerate(dicts):
9290
self.add_dict_layout(i, **d)

addons/fastwq/gui/options.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,14 @@ def _before_build(self, s):
8080
'web': [] #网络词典
8181
}
8282
for clazz in service_manager.local_services:
83-
service = service_pool.get(clazz.__unique__)
84-
if service and service.support:
85-
self.dict_services['local'].append({
86-
'title': service.title,
87-
'unique': service.unique
88-
})
89-
service_pool.put(service)
83+
if dicts.get(clazz.__unique__, dict()).get('enabled', True):
84+
service = service_pool.get(clazz.__unique__)
85+
if service and service.support:
86+
self.dict_services['local'].append({
87+
'title': service.title,
88+
'unique': service.unique
89+
})
90+
service_pool.put(service)
9091
for clazz in service_manager.web_services:
9192
if dicts.get(clazz.__unique__, dict()).get('enabled', True):
9293
service = service_pool.get(clazz.__unique__)

addons/fastwq/service/manager.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,10 @@ def _get_services_from_files(self, *args):
8787
for name, clazz in inspect.getmembers(module, predicate=inspect.isclass):
8888
if clazz in base_class:
8989
continue
90+
if not(issubclass(clazz, WebService) or issubclass(clazz, LocalService)):
91+
continue
9092
service = service_wrap(clazz, *args)
93+
service.__title__ = getattr(clazz, '__register_label__', name)
9194
service.__unique__ = name
9295
service.__path__ = os.path.join(mypath, f)
9396
if issubclass(clazz, WebService):

addons/fastwq/utils/importlib.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@
22
# While not critical (and in no way guaranteed!), it would be nice to keep this
33
# code compatible with Python 2.3.
44
import sys
5+
try:
6+
from importlib import reload
7+
except:
8+
pass
59

610
def _resolve_name(name, package, level):
711
"""Return the absolute name of the module to be imported."""
812
if not hasattr(package, 'rindex'):
913
raise ValueError("'package' not set to a string")
1014
dot = len(package)
11-
for x in xrange(level, 1, -1):
15+
for x in range(level, 1, -1):
1216
try:
1317
dot = package.rindex('.', 0, dot)
1418
except ValueError:
@@ -19,11 +23,9 @@ def _resolve_name(name, package, level):
1923

2024
def import_module(name, package=None):
2125
"""Import a module.
22-
2326
The 'package' argument is required when performing a relative import. It
2427
specifies the package to use as the anchor point from which to resolve the
2528
relative import to an absolute import.
26-
2729
"""
2830
if name.startswith('.'):
2931
if not package:
@@ -35,5 +37,9 @@ def import_module(name, package=None):
3537
level += 1
3638
name = _resolve_name(name[level:], package, level)
3739

38-
__import__(name)
39-
return sys.modules[name]
40+
if name in sys.modules:
41+
reload(sys.modules[name])
42+
else:
43+
__import__(name)
44+
return sys.modules[name]
45+

addons21/fastwq/gui/dictmanager.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,14 @@ def build(self):
7777
# dict service list
7878
confs = config.dicts
7979
dicts = list()
80-
for clazz in service_manager.web_services:
81-
service = service_pool.get(clazz.__unique__)
82-
if service and service.support:
83-
dicts.append({
84-
'title': service.title,
85-
'unique': service.unique,
86-
'path': clazz.__path__,
87-
'enabled': confs.get(service.unique, dict()).get('enabled', True)
88-
})
89-
service_pool.put(service)
80+
services = service_manager.local_custom_services + service_manager.web_services
81+
for clazz in services:
82+
dicts.append({
83+
'title': clazz.__title__,
84+
'unique': clazz.__unique__,
85+
'path': clazz.__path__,
86+
'enabled': confs.get(clazz.__unique__, dict()).get('enabled', True)
87+
})
9088
# add dict
9189
for i, d in enumerate(dicts):
9290
self.add_dict_layout(i, **d)

addons21/fastwq/gui/options.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,14 @@ def _before_build(self, s):
8080
'web': [] #网络词典
8181
}
8282
for clazz in service_manager.local_services:
83-
service = service_pool.get(clazz.__unique__)
84-
if service and service.support:
85-
self.dict_services['local'].append({
86-
'title': service.title,
87-
'unique': service.unique
88-
})
89-
service_pool.put(service)
83+
if dicts.get(clazz.__unique__, dict()).get('enabled', True):
84+
service = service_pool.get(clazz.__unique__)
85+
if service and service.support:
86+
self.dict_services['local'].append({
87+
'title': service.title,
88+
'unique': service.unique
89+
})
90+
service_pool.put(service)
9091
for clazz in service_manager.web_services:
9192
if dicts.get(clazz.__unique__, dict()).get('enabled', True):
9293
service = service_pool.get(clazz.__unique__)

addons21/fastwq/service/manager.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ def _get_services_from_files(self, *args):
8282
for name, clazz in inspect.getmembers(module, predicate=inspect.isclass):
8383
if clazz in base_class:
8484
continue
85+
if not(issubclass(clazz, WebService) or issubclass(clazz, LocalService)):
86+
continue
8587
service = service_wrap(clazz, *args)
88+
service.__title__ = getattr(clazz, '__register_label__', name)
8689
service.__unique__ = name
8790
service.__path__ = os.path.join(mypath, f)
8891
if issubclass(clazz, WebService):

addons21/fastwq/utils/importlib.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
# While not critical (and in no way guaranteed!), it would be nice to keep this
33
# code compatible with Python 2.3.
44
import sys
5+
try:
6+
from importlib import reload
7+
except:
8+
pass
59

610
def _resolve_name(name, package, level):
711
"""Return the absolute name of the module to be imported."""
@@ -33,6 +37,9 @@ def import_module(name, package=None):
3337
level += 1
3438
name = _resolve_name(name[level:], package, level)
3539

36-
__import__(name)
40+
if name in sys.modules:
41+
reload(sys.modules[name])
42+
else:
43+
__import__(name)
3744
return sys.modules[name]
3845

0 commit comments

Comments
 (0)