content: [tool.poetry]
  name = "shotgun-csp"
  version = "0.1.0-alpha"
  description = "Unleashing a revolutionary, single-shot, non-iterative framework that rapidly and efficiently cracks the crystal structure problem (CSP)."
  authors = ["TsumiNa <liu.chang.1865@gmail.com>"]
  license = "Apache-2.0"
  readme = "README.md"
  packages = [{ include = "shotgun_csp" }]
  include = ["pyproject.toml", "README.md", "LICENSE"]
  classifiers = [
      'Development Status :: 4 - Beta',
      'License :: OSI Approved :: BSD License',
      'Operating System :: OS Independent',
      'Programming Language :: Python :: 3',
      'Programming Language :: Python :: 3.10',
      'Programming Language :: Python :: 3.11',
      'Programming Language :: Python :: 3.12',
      'Intended Audience :: Science/Research',
      'Topic :: Scientific/Engineering :: Physics',
  ]
  
  [tool.poetry.dependencies]
  python = "^3.10"
  pymatgen = "^2024.8.9"
  ase = "^3.23.0"
  pandas = "^2.2.2"
  scikit-learn = "^1.5.1"
  matminer = "^0.9.2"
  pydantic = "^2.8.2"
  tqdm = "^4.66.5"
  seaborn = "^0.13.2"
  
  [tool.poetry.group.dev.dependencies]
  pytest = "^8.3.2"
  Sphinx = "^8.0.2"
  ipython = "^8.26.0"
  ipykernel = "^6.29.5"
  
  [tool.ruff]
  exclude = [".venv", "venv", "__pycache__", ".git"]
  line-length = 120
  indent-width = 4
  
  [tool.ruff.lint]
  # PEP8
  select = [
      "F", # Pyflakes
      "E", # pycodestyle
      "W", # pycodestyle
  ]
  ignore = [
      "F841", # unused-variable
      "E741", # ambiguous-variable-name
      "W505", # doc-line-too-long
  ]
  fixable = ["ALL"]
  
  [tool.ruff.format]
  quote-style = "double"
  skip-magic-trailing-comma = false
  
  [tool.ruff.lint.mccabe]
  # C901
  max-complexity = 10
  
  [build-system]
  requires = ["poetry-core"]
  build-backend = "poetry.core.masonry.api"
  