# -*- mode: python ; coding: utf-8 -*- import sys from pathlib import Path block_cipher = None backend_path = Path('../backend') a = Analysis( [str(backend_path / 'run_server.py')], pathex=[str(backend_path)], binaries=[], datas=[ (str(backend_path / 'app'), 'app'), ], hiddenimports=[ # Uvicorn internals 'uvicorn.logging', 'uvicorn.loops', 'uvicorn.loops.auto', 'uvicorn.loops.asyncio', 'uvicorn.protocols', 'uvicorn.protocols.http', 'uvicorn.protocols.http.auto', 'uvicorn.protocols.http.h11_impl', 'uvicorn.protocols.http.httptools_impl', 'uvicorn.protocols.websockets', 'uvicorn.protocols.websockets.auto', 'uvicorn.protocols.websockets.wsproto_impl', 'uvicorn.lifespan', 'uvicorn.lifespan.on', 'uvicorn.lifespan.off', # FastAPI / Starlette 'fastapi', 'fastapi.middleware', 'fastapi.middleware.cors', 'fastapi.routing', 'fastapi.responses', 'fastapi.exceptions', 'starlette', 'starlette.routing', 'starlette.middleware', 'starlette.middleware.cors', 'starlette.responses', 'starlette.requests', 'starlette.concurrency', 'starlette.formparsers', 'starlette.staticfiles', # Pydantic 'pydantic', 'pydantic.fields', 'pydantic_settings', 'pydantic_core', # HTTP / networking 'httpx', 'httpcore', 'h11', 'httptools', 'anyio', 'anyio._backends', 'anyio._backends._asyncio', 'sniffio', # MongoDB (motor/pymongo) 'motor', 'motor.motor_asyncio', 'pymongo', 'pymongo.errors', 'pymongo.collection', 'pymongo.database', 'pymongo.mongo_client', # Async I/O 'aiofiles', 'aiofiles.os', 'aiofiles.ospath', # Scientific 'numpy', 'numpy.core', 'scipy', 'scipy.special', 'scipy.interpolate', # Multipart 'multipart', 'python_multipart', # Encoding 'email.mime', 'email.mime.multipart', # Ray (parallel processing) — graceful fallback if missing 'ray', 'ray._private', 'ray._private.worker', 'ray._private.node', 'ray._private.services', 'ray._private.utils', 'ray._raylet', 'ray.runtime_context', 'ray.util', # Multiprocessing (fallback) 'multiprocessing', 'multiprocessing.pool', 'multiprocessing.queues', 'concurrent.futures', ], hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=['tkinter', 'matplotlib', 'PIL', 'pandas', 'IPython'], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False, ) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE( pyz, a.scripts, a.binaries, a.zipfiles, a.datas, [], name='rfcp-server', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=True, # Show console for debugging — set to False for release disable_windowed_traceback=False, target_arch=None, codesign_identity=None, entitlements_file=None, icon='../desktop/assets/icon.ico' if sys.platform == 'win32' else None, )