159 lines
3.7 KiB
Python
159 lines
3.7 KiB
Python
# -*- mode: python ; coding: utf-8 -*-
|
|
|
|
from pathlib import Path
|
|
from PyInstaller.utils.hooks import collect_submodules
|
|
|
|
project_root = Path(SPECPATH)
|
|
data_dir = project_root / "data"
|
|
|
|
hiddenimports = []
|
|
hiddenimports += collect_submodules("uvicorn")
|
|
hiddenimports += collect_submodules("fastapi")
|
|
hiddenimports += collect_submodules("starlette")
|
|
hiddenimports += collect_submodules("anyio")
|
|
hiddenimports += collect_submodules("pydantic")
|
|
|
|
hiddenimports += [
|
|
# --- local modules used by basis14.py (desktop) ---
|
|
"aza_config",
|
|
"aza_prompts",
|
|
"aza_persistence",
|
|
"aza_ui_helpers",
|
|
"aza_audio",
|
|
"aza_todo_mixin",
|
|
"aza_text_windows_mixin",
|
|
"aza_diktat_mixin",
|
|
"aza_settings_mixin",
|
|
"aza_ordner_mixin",
|
|
"aza_arbeitsplan_mixin",
|
|
"aza_notizen_mixin",
|
|
"aza_totp",
|
|
"aza_consent",
|
|
"aza_audit_log",
|
|
"desktop_backend_autostart",
|
|
"desktop_update_check",
|
|
"aza_version",
|
|
"openai_runtime_config",
|
|
"aza_launcher",
|
|
"aza_activation",
|
|
"security_vault",
|
|
"aza_med_validator",
|
|
"aza_style",
|
|
"aza_admin",
|
|
"aza_systemstatus",
|
|
"aza_global_paste",
|
|
"aza_firewall",
|
|
"aza_docapp",
|
|
"translate",
|
|
"apps.diktat.audio_notiz_app",
|
|
"apps.diktat.diktat_app",
|
|
# --- local modules used by backend_main.py ---
|
|
"backend_main",
|
|
"aza_tls",
|
|
"aza_rate_limit",
|
|
"aza_security",
|
|
"aza_license_logic",
|
|
"aza_device_enforcement",
|
|
"aza_news_backend",
|
|
"aza_monitoring",
|
|
"aza_stripe_idempotency",
|
|
"aza_backup",
|
|
"aza_macro",
|
|
"stripe_routes",
|
|
"admin_routes",
|
|
"project_status_routes",
|
|
"services",
|
|
"services.live_event_search",
|
|
"services.event_llm_direct",
|
|
"services.news_llm_search",
|
|
"services.event_extract_llm",
|
|
"services.link_verify",
|
|
# --- third-party that PyInstaller may miss ---
|
|
"bcrypt",
|
|
"pyotp",
|
|
"qrcode",
|
|
"qrcode.image.pure",
|
|
"PIL",
|
|
"PIL.Image",
|
|
"PIL.ImageTk",
|
|
"pynput",
|
|
"pynput.keyboard",
|
|
"pynput.keyboard._win32",
|
|
"pynput.mouse",
|
|
"pynput.mouse._win32",
|
|
"pynput._util",
|
|
"pynput._util.win32",
|
|
"dotenv",
|
|
"openai",
|
|
"requests",
|
|
"stripe",
|
|
"httpx",
|
|
"sounddevice",
|
|
"_sounddevice_data",
|
|
"numpy",
|
|
"docx",
|
|
"docx.opc",
|
|
"docx.opc.constants",
|
|
"docx.opc.part",
|
|
"docx.opc.pkgreader",
|
|
"lxml",
|
|
"lxml.etree",
|
|
]
|
|
|
|
datas = [
|
|
(str(project_root / "logo.png"), "."),
|
|
(str(project_root / "logo.ico"), "."),
|
|
(str(project_root / "apps"), "apps"),
|
|
(str(project_root / ".env"), "."),
|
|
(str(project_root / "backend_url.txt"), "."),
|
|
(str(project_root / "backend_token.txt"), "."),
|
|
(str(project_root / "license_url.txt"), "."),
|
|
(str(project_root / "project_status.json"), "."),
|
|
(str(project_root / "project_plan.json"), "."),
|
|
(str(project_root / "project_todos.json"), "."),
|
|
(str(project_root / "project_roadmap.json"), "."),
|
|
(str(data_dir / "stripe_webhook.sqlite"), "data"),
|
|
(str(project_root / "assets"), "assets"),
|
|
(str(project_root / "legal"), "legal"),
|
|
]
|
|
|
|
a = Analysis(
|
|
[str(project_root / "basis14.py")],
|
|
pathex=[str(project_root)],
|
|
binaries=[],
|
|
datas=datas,
|
|
hiddenimports=hiddenimports,
|
|
hookspath=[],
|
|
hooksconfig={},
|
|
runtime_hooks=[],
|
|
excludes=[],
|
|
noarchive=False,
|
|
)
|
|
|
|
pyz = PYZ(a.pure)
|
|
|
|
exe = EXE(
|
|
pyz,
|
|
a.scripts,
|
|
[],
|
|
exclude_binaries=True,
|
|
name="aza_desktop",
|
|
debug=False,
|
|
bootloader_ignore_signals=False,
|
|
strip=False,
|
|
upx=True,
|
|
console=True,
|
|
disable_windowed_traceback=False,
|
|
icon=str(project_root / "logo.ico"),
|
|
)
|
|
|
|
coll = COLLECT(
|
|
exe,
|
|
a.binaries,
|
|
a.datas,
|
|
strip=False,
|
|
upx=True,
|
|
upx_exclude=[],
|
|
name="aza_desktop",
|
|
)
|