Add dynamic import handling for 'zdtt' package in terminal.py
- Implemented a mechanism to ensure the 'zdtt' package is importable from both repository and installed locations. - Added a fallback search for the package in various candidate directories if the initial import fails, enhancing compatibility and usability.
This commit is contained in:
21
terminal.py
21
terminal.py
@@ -23,6 +23,27 @@ import urllib.request
|
|||||||
import urllib.error
|
import urllib.error
|
||||||
import time as time_module
|
import time as time_module
|
||||||
|
|
||||||
|
# Ensure local 'zdtt' package is importable both from repo and installed locations
|
||||||
|
try:
|
||||||
|
# Probe a quick import to determine availability
|
||||||
|
import zdtt # type: ignore
|
||||||
|
except Exception:
|
||||||
|
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
candidates = [
|
||||||
|
script_dir,
|
||||||
|
os.path.abspath(os.path.join(script_dir, '..')),
|
||||||
|
os.path.join(script_dir, 'zdtt'),
|
||||||
|
'/home/zane/ZDTT',
|
||||||
|
]
|
||||||
|
for path_candidate in candidates:
|
||||||
|
if path_candidate and os.path.isdir(path_candidate) and path_candidate not in sys.path:
|
||||||
|
sys.path.insert(0, path_candidate)
|
||||||
|
# Best-effort: ignore failure here; regular imports will raise if still missing
|
||||||
|
try:
|
||||||
|
import zdtt # type: ignore
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
from zdtt.plugins import (
|
from zdtt.plugins import (
|
||||||
PROTECTED_COMMANDS as PLUGIN_PROTECTED_COMMANDS,
|
PROTECTED_COMMANDS as PLUGIN_PROTECTED_COMMANDS,
|
||||||
validate_plugin_ast as plugins_validate_ast,
|
validate_plugin_ast as plugins_validate_ast,
|
||||||
|
|||||||
Reference in New Issue
Block a user