[project]
name = "gnnbook"
version = "0.1.0"
description = "Kod towarzyszący książce poświęconej grafowym sieciom neuronowym."
authors = [
    {name = "Filip Wójcik", email = "ds@filip-wojcik.com"}
]
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
    "jupyterlab>=4.2.5",
    "pandas>=2.2.3",
    "torch==2.8",
    "networkx>=3.4.1",
    "torch-geometric>=2.6.1",
    "matplotlib>=3.9.2",
    "pydantic>=2.9.2",
    "ipywidgets>=8.1.5",
    "tqdm>=4.66.5",
    "tabulate>=0.9.0",
    "scikit-learn>=1.5.2",
    "deepsnap @ git+https://github.com/snap-stanford/deepsnap.git",
    "openpyxl>=3.1.5",
    "torchmetrics>=1.6.0",
    "optuna>=4.1.0",
    "pytorch-lightning>=2.5.0",
    "seaborn>=0.13.2",
    "plotly>=6.0.0",
    "ogb>=1.3.6",
    "torcheval>=0.0.7",
    "tensorboard>=2.18.0",
    "ruff>=0.9.6",
    "sentence-transformers>=3.4.1",
]

[project.optional-dependencies]
pyg = [
    "pyg-lib",
    "torch-scatter",
    "torch-sparse",
    "torch-cluster",
    "torch-spline-conv",
]

[tool.uv]
find-links = [
    "https://download.pytorch.org/whl/cu128",
    "https://data.pyg.org/whl/torch-2.8.0+cu128.html",
]

[tool.uv.extra-build-dependencies]
torch-cluster = ["torch"]
torch-spline-conv = ["torch"]
torch-sparse = ["torch"]
torch-scatter = ["torch"]
pyg-lib = ["torch"]

[tool.uv.sources]
torch = { index = "torch-cuda128" }

[[tool.uv.index]]
name = "torch-cuda128"
url = "https://download.pytorch.org/whl/cu128"
explicit = true

[tool.hatch.metadata]
allow-direct-references = true

[tool.hatch.build.targets.wheel]
packages = ["rozdzial_4_przeglad_warstw_gnn", "rozdzial_5_wybrane_aspekty_treningu"]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
