# -*- mode: python ; coding: utf-8 -*- from pathlib import Path from PyInstaller.utils.hooks import ( collect_data_files, collect_dynamic_libs, collect_submodules, ) ROOT = Path(SPECPATH).resolve() datas = [ (str(ROOT / "md2gost" / "Template.docx"), "md2gost"), (str(ROOT / "md2gost" / "mml2omml"), "md2gost"), (str(ROOT / "md2gost" / "diagrams"), "md2gost/diagrams"), (str(ROOT / "prompts"), "prompts"), (str(ROOT / "docs"), "docs"), ] _plantuml = ROOT / "md2gost" / "vendor" / "plantuml.jar" if _plantuml.is_file(): datas.append((str(_plantuml), "md2gost/vendor")) binaries = [] hiddenimports = collect_submodules("md2gost") datas += collect_data_files("certifi") datas += collect_data_files("lxml") datas += collect_data_files("latex2mathml") datas += collect_data_files("docx") datas += collect_data_files("matplotlib", includes=["mpl-data/**"]) for pkg in ("lxml", "freetype"): try: binaries += collect_dynamic_libs(pkg) except Exception: pass hiddenimports += [ "lxml", "lxml.etree", "lxml._elementpath", "PIL", "PIL.Image", "PIL.PngImagePlugin", "pygments", "pygments.lexers", "pygments.formatters", "freetype", "docx", "docxcompose", "docxcompose.composer", "marko", "marko.ext.gfm", "latex2mathml", "latex2mathml.converter", "requests", "certifi", "matplotlib", "matplotlib.font_manager", "matplotlib.ft2font", "tkinter", "tkinter.filedialog", "tkinter.messagebox", "tkinter.ttk", ] hiddenimports += collect_submodules("pygments.lexers") hiddenimports += collect_submodules("marko") try: hiddenimports += collect_submodules("tkinterdnd2") except Exception: pass excludes = [ "pytest", "PyQt5", "PyQt6", "PySide2", "PySide6", "IPython", "jupyter", "notebook", "zmq", "matplotlib.backends.qt_compat", "matplotlib.backends.backend_qtagg", "matplotlib.backends.backend_qt5agg", "matplotlib.backends.backend_qt5", "matplotlib.backends.backend_qt", "matplotlib.backends.backend_gtk3", "matplotlib.backends.backend_gtk4", "matplotlib.backends.backend_macosx", ] a = Analysis( [str(ROOT / "scripts" / "md2gost_exe.py")], pathex=[str(ROOT)], binaries=binaries, datas=datas, hiddenimports=hiddenimports, hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=excludes, noarchive=False, ) pyz = PYZ(a.pure) exe = EXE( pyz, a.scripts, a.binaries, a.datas, [], name="md2gost", debug=False, bootloader_ignore_signals=False, strip=False, upx=False, console=False, disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None, )