omniscientframework / patch_utils_imports.py
NexusInstruments's picture
Create patch_utils_imports.py
688136c verified
import os
import sys
PATCH_FILE = os.path.abspath(__file__)
ROOT = os.path.dirname(PATCH_FILE)
APP_FILE = os.path.join(ROOT, "app.py")
TARGET_PREFIX = "omniscientframework.utils"
def patch_file(filepath):
if not os.path.exists(filepath):
print(f"[patch] File not found: {filepath}")
return False
with open(filepath, "r") as f:
original = f.read()
patched = original.replace(
"from utils.",
f"from {TARGET_PREFIX}."
)
if patched == original:
print("[patch] No changes needed in app.py.")
else:
with open(filepath, "w") as f:
f.write(patched)
print("[patch] Patched import paths in app.py.")
return True
def ensure_init_files():
package_dirs = [
os.path.join(ROOT, "omniscientframework"),
os.path.join(ROOT, "omniscientframework", "utils")
]
for d in package_dirs:
init_file = os.path.join(d, "__init__.py")
if not os.path.exists(d):
print(f"[patch] Directory missing: {d}")
continue
if not os.path.exists(init_file):
with open(init_file, "w") as f:
f.write("") # empty init file
print(f"[patch] Created {init_file}")
else:
print(f"[patch] Init exists: {init_file}")
def self_delete():
print("[patch] Cleaning up patch file...")
try:
os.remove(PATCH_FILE)
print("[patch] Patch file removed from container runtime.")
except Exception as e:
print(f"[patch] Failed to delete self: {e}")
def main():
print("[patch] Running import patcher...")
ok = patch_file(APP_FILE)
ensure_init_files()
if ok:
self_delete()
print("[patch] Done.")
if __name__ == "__main__":
main()