[project]
name = "sevenn"
version = "0.11.1.dev3"
authors = [
    { name = "Yutack Park", email = "parkyutack@snu.ac.kr" },
    { name = "Haekwan Jeon", email = "haekwan98@snu.ac.kr" },
    { name = "Jaesun Kim" },
    { name = "Gijin Kim" },
    { name = "Hyungmin An" },
]
description = "Scalable EquiVariance Enabled Neural Network"
readme = "README.md"
license = { file = "LICENSE" }
requires-python = ">=3.8"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
    "Operating System :: POSIX :: Linux",
]
dependencies = [
    "ase",
    "braceexpand",
    "pyyaml",
    "e3nn>=0.5.0",
    "tqdm",
    "scikit-learn",
    "torch_geometric>=2.5.0",
    "numpy",
    "matscipy",
    "pandas",
    "requests",
    "setuptools>=61.0"
]
[project.optional-dependencies]
test = ["pytest", "pytest-cov>=5"]
cueq12 = ["cuequivariance>=0.4.0; python_version >= '3.10'", "cuequivariance-torch>=0.4.0; python_version >= '3.10'", "cuequivariance-ops-torch-cu12; python_version >= '3.10'"]
cueq11 = ["cuequivariance>=0.4.0; python_version >= '3.10'", "cuequivariance-torch>=0.4.0; python_version >= '3.10'", "cuequivariance-ops-torch-cu11; python_version >= '3.10'"]

[project.scripts]
sevenn = "sevenn.main.sevenn:main"
sevenn_get_model = "sevenn.main.sevenn_get_model:main"
sevenn_graph_build = "sevenn.main.sevenn_graph_build:main"
sevenn_inference = "sevenn.main.sevenn_inference:main"
sevenn_patch_lammps = "sevenn.main.sevenn_patch_lammps:main"
sevenn_preset = "sevenn.main.sevenn_preset:main"
sevenn_cp = "sevenn.main.sevenn_cp:main"

[project.urls]
Homepage = "https://github.com/MDIL-SNU/SevenNet"
Issues = "https://github.com/MDIL-SNU/SevenNet/issues"

[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools>=61.0"]

[tool.setuptools.package-data]
sevenn = [
    "logo_ascii",
    "*.so",
    "pair_e3gnn/*.cpp",
    "pair_e3gnn/*.h",
    "pair_e3gnn/*.cu",
    "pair_e3gnn/patch_lammps.sh",
    "presets/*.yaml",
    "pretrained_potentials/SevenNet_0__11Jul2024/checkpoint_sevennet_0.pth",
    "pretrained_potentials/SevenNet_0__22May2024/checkpoint_sevennet_0.pth",
    "pretrained_potentials/SevenNet_l3i5/checkpoint_l3i5.pth",
    "pretrained_potentials/SevenNet_MF_0/checkpoint_sevennet_mf_0.pth",
    "py.typed",
]

[tool.setuptools.packages.find]
include = ["sevenn*"]
exclude = ["tests*", "example_inputs*", ]

[tool.pytest.ini_options]
log_cli = true
log_cli_format = "%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)"
log_cli_date_format = "%Y-%m-%d %H:%M:%S"

[tool.ruff]
line-length = 85

[tool.ruff.lint]
extend-select = ["E501"]

[tool.ruff.format]
quote-style = "single"
docstring-code-format = true
