Files
digital-drosophila/models/male-cns-lif/terminal-scope-diagnostic-v1/launch.py
T
2026-09-30 00:27:22 +08:00

33 lines
1.6 KiB
Python

"""Explicit frozen module paths; repairs launch only, never scientific source."""
import os
from pathlib import Path
import sys
ROOT = Path('/data/digital-drosophila')
MODEL = ROOT/'models/male-cns-lif/terminal-scope-diagnostic-v1'
EXP = ROOT/'experiments/phase4ab-terminal-scope'
PARENT = ROOT/'models/male-cns-lif'
names = ['deterministic-runtime-v2', 'credit-v3', 'timing-audit-v1', 'timing-credit-v1',
'timing-stability-v1', 'odor-timing-generalization-v1', 'csus-audit-v1',
'late-kc-audit-v1', 'dpm-hypothesis-v1', 'pn-feedback-audit-v1', 'transmitter-audit-v1']
sys.path[:0] = [str(MODEL), str(PARENT)] + [str(PARENT/n) for n in names]
os.environ['PYTHONDONTWRITEBYTECODE'] = '1'
import diagnostic
_, _, _, _, save, digest, _, _ = diagnostic.load_context()
save(EXP/'protocol/launch-addendum.json', {
'previous_attempt': 'ModuleNotFoundError: phase4v before run-start and before simulation',
'only_fix': 'Add explicit existing frozen dependency directories to module lookup',
'model_source_edited': False, 'protocol_parameters_changed': False,
'launcher_sha256': digest(Path(__file__)), 'module_paths': [str(PARENT/n) for n in names]})
try:
diagnostic.run()
finally:
loaded = {}
for name, mod in list(sys.modules.items()):
filename = getattr(mod, '__file__', None)
if filename:
p = Path(filename)
if p.is_file() and p.is_relative_to(PARENT) and '.venv' not in p.parts:
loaded[name] = {'path': str(p.relative_to(ROOT)), 'sha256': digest(p)}
save(EXP/'protocol/imported-code-hashes.json', loaded)