Skip to content

Commit 55a0a44

Browse files
committed
Reduce imports clutter
1 parent 85dfb3c commit 55a0a44

File tree

4 files changed

+28
-10
lines changed

4 files changed

+28
-10
lines changed

qiling/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
from .core import Qiling
2-
from .__version__ import __version__
2+
from .__version__ import __version__
3+
4+
__all__ = ['Qiling']

qiling/core.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44
#
55

66
import os, pickle
7+
from typing import TYPE_CHECKING, Any, AnyStr, List, Mapping, MutableMapping, Optional, Sequence, Tuple, Union
78

89
# See https://stackoverflow.com/questions/39740632/python-type-hinting-without-cyclic-imports
9-
from typing import AnyStr, List, Mapping, MutableMapping, Sequence, Union
10-
from typing import TYPE_CHECKING
11-
from configparser import ConfigParser
12-
1310
if TYPE_CHECKING:
1411
from unicorn.unicorn import Uc
12+
from configparser import ConfigParser
1513
from logging import Logger
1614
from .arch.arch import QlArch
1715
from .os.os import QlOs
@@ -26,7 +24,6 @@
2624
from .utils import *
2725
from .core_struct import QlCoreStructs
2826
from .core_hooks import QlCoreHooks
29-
from .__version__ import __version__
3027

3128
# Mixin Pattern
3229
class Qiling(QlCoreHooks, QlCoreStructs):
@@ -269,7 +266,7 @@ def multithread(self) -> bool:
269266
return self._multithread
270267

271268
@property
272-
def profile(self) -> ConfigParser:
269+
def profile(self) -> "ConfigParser":
273270
""" Program profile. See qiling/profiles/*.ql for details.
274271
275272
Note: Please pass None or the path string to Qiling.__init__.

qiling/utils.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,3 +459,21 @@ def verify_ret(ql, err):
459459
raise
460460
else:
461461
raise
462+
463+
__all__ = [
464+
'catch_KeyboardInterrupt',
465+
'os_convert',
466+
'arch_convert',
467+
'debugger_convert',
468+
'arch_os_convert',
469+
'ql_get_module',
470+
'ql_get_module_function',
471+
'ql_guess_emu_env',
472+
'select_os',
473+
'select_arch',
474+
'select_loader',
475+
'select_debugger',
476+
'select_component',
477+
'profile_setup',
478+
'verify_ret'
479+
]

qltool

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ import os
88
import sys
99
import ast
1010
import pickle
11-
import unicorn
11+
12+
from unicorn import __version__ as uc_ver
13+
from qiling import __version__ as ql_ver
1214

1315
from qiling import Qiling
1416
from qiling.arch import utils as arch_utils
1517
from qiling.debugger.qdb import QlQdb
1618
from qiling.utils import arch_convert
1719
from qiling.const import QL_VERBOSE, QL_ENDIAN, os_map, arch_map, verbose_map
18-
from qiling.__version__ import __version__ as ql_version
1920
from qiling.extensions.coverage import utils as cov_utils
2021
from qiling.extensions import report
2122

@@ -167,7 +168,7 @@ def handle_examples(parser: argparse.ArgumentParser):
167168

168169
if __name__ == '__main__':
169170
parser = argparse.ArgumentParser()
170-
parser.add_argument('--version', action='version', version=f'qltool for Qiling {ql_version}, using Unicorn {unicorn.__version__}')
171+
parser.add_argument('--version', action='version', version=f'qltool for Qiling {ql_ver}, using Unicorn {uc_ver}')
171172

172173
commands = parser.add_subparsers(title='sub commands', description='select execution mode', dest='subcommand')
173174

0 commit comments

Comments
 (0)