content: [project]
  name = "MCSL2"
  dynamic = ["version"]
  description = "MCServerLauncher 2"
  authors = [
      { name = "LxHTT", email = "lxhtt@mcsl.com.cn" },
      { name = "shenjackyuanjie", email = "3695888@qq.com" },
      { name = "AresConnor", email = "2837434884@qq.com" },
      { name = "lgc2333", email = "lgc2333@126.com" },
      { name = "wyx55520", email = "2509043002@qq.com" },
      { name = "Yurnu", email = "1487084645@qq.com" },
      { name = "hengshizhi", email = "3192145045@qq.com" },
      { name = "ztsinsun", email = "horizonsun@vip.qq.com" },
      { name = "ltzXiaoYanMo", email = "yanmo233@duck.com" },
      { name = "kitUIN", email = "kit_uin@outlook.com" },
  ]
  dependencies = [
      # "setuptools>=60",
      "PyQt-Fluent-Widgets",
      "psutil==6.0.0",
      "loguru==0.7.2",
      "requests==2.31.0",
      "lib-not-dr[nuitka]>=0.4",
      "nuitka==2.4.5",
      "pyqt5-concurrent>=0.1.6",
      "pyqt5-qt5==5.15.17",
      # "py2app>=0.28.8",
      # "pyobjc-framework-scriptingbridge>=10.3.2",
      # "pyobjc-framework-instantmessage>=10.3.2",
      # "pyobjc-framework-inputmethodkit>=10.3.2",
      # "pyobjc-framework-dictionaryservices>=10.3.2",
      # "pyobjc-framework-collaboration>=10.3.2",
      # "pyobjc-framework-calendarstore>=10.3.2",
  ]
  requires-python = ">=3.8,<3.9"
  readme = "README.md"
  license = { text = "GPL-3.0" }
  
  [tool.setuptools.dynamic]
  version = { attr = "MCSL2Lib.MCSL2VERSION" }
  
  [tool.setuptools]
  packages = []
  
  # 原 [tool.pdm.scripts] 段落删除，使用 uv 运行脚本：
  #   uv run MCSL2.py
  #   uv run -m lndl_nuitka . -y
  #   uv run generate_i18n.py
  
  [tool.uv]
  dev-dependencies = [
      "tomli>=2.0.1",
      "ruff>=0.1.6",
      "pyqt5-stubs>=5.15.6.0",
  ]
  # required-environments = [
  # "sys_platform == 'darwin' and platform_machine == 'x86_64'"
  # ]
  # 若需要锁定：执行 `uv lock` 生成 uv.lock；CI 中可用 `uv sync --frozen`。
  
  [tool.ruff]
  target-version = "py38"
  line-length = 100
  src = ["MCSL2Lib", "PluginExample", "Tools", "Adapters"]
  output-format = "grouped"
  preview = true
  exclude = ["generate_i18n.py", "Tools/ParseOneDriveLink/ParseOneDriveLink.py"]
  
  [tool.ruff.lint]
  select = [
      "E", # pycodestyle
      "F", # pyflakes
      "I", # isort
      "W", # pycodestyle
  ]
  ignore = ["I001"]
  
  [tool.ruff.lint.isort]
  force-single-line = true
  force-wrap-aliases = true
  combine-as-imports = true
  
  
  [tool.lndl.nuitka]
  script = "Tools/lndl-config.py"
  
  # 请使用 lndl_nuitka . -y 编译 (-y 为自动确认)
  [tool.lndl.nuitka.cli]
  main = "MCSL2.py"
  output-dir = "build"
  
  # 编译选项
  clang = true
  msvc = "latest"
  standalone = true
  lto = "yes"
  disable-console = false
  show-memory = false
  show-progress = false
  
  # 版本号 构建时通过 Tools/lndl-config.py 自动填充
  product-version = false
  file-version = false
  
  # 文件信息
  product-name = "MCSL 2"
  company-name = "MCSLTeam"
  file-description = "MCServerLauncher 2"
  copyright = "Copyright ©MCSLTeam. All rights reserved."
  
  # 依赖
  include-package = ["MCSL2Lib", "sqlite3"]
  follow-import-to = ["Adapters", "loguru", "requests"]
  nofollow-import-to = ["numpy", "scipy", "PIL", "colorthief", "sqlite3.test"]
  
  enable-plugin = ["pyqt5", "multiprocessing"]
  windows-icon-from-ico = "MCSL2.ico"
  assume-yes-for-download = true
  