content: [build-system]
  requires = ["hatchling>=1.8.0"]
  build-backend = "hatchling.build"
  
  [project]
  name = "netket_ptvmc"
  description="NetKet extension for running Fidelity optimisations and PTVMC dynamical calculations."
  #readme = "README.md"
  authors = [
      { name = "Luca Gravina" },
      { name = "Filippo Vicentini" },
      { name = "The NQX Lab of Ecole Polytechnique" },
  ]
  requires-python = ">=3.10"
  dependencies = [
      "netket>=3.15.0",
      "numba>=0.59",
      "einops>=0.6",
      "sparse>=0.15", #This is required to serialize types from Hydra config files
      "omegaconf>=2.3.0",
      "matplotlib>=3.10.0",
      "nqxpack>=0.1.1",
  ]
  version = "0.1"
  
  [project.optional-dependencies]
  dev = [
      "pytest>=8",
      "pytest-xdist[psutil]>=3.3",
      "pytest-cov>=5.0",
      "pytest-json-report>=1.3",
      "pytest-datadir>=1.3",
      "coverage>=5",
      "pre-commit>=2.7",
      "black==24.10.0",
      "ruff==0.7.3",
      "wheel",
      "build",
      "qutip",
  ]
  docs = [
      "Sphinx>=8.0",
      "sphinx-design>=0.4.0",
      "sphinx-autodoc-typehints>=1.22,<3.0",
      "sphinxcontrib-fulltoc~=1.2.0",
      "sphinxcontrib-jsmath~=1.0.1",
      "myst-parser>=4.0.0,<4.1.0",
      "myst-nb>=1.0,<1.2",
      "sphinx-book-theme>=1.1.0",
      "pydata-sphinx-theme>=0.16.0",
  ]
  
  [dependency-groups]
  dev = [
      "pytest>=8",
      "pytest-xdist[psutil]>=3.3",
      "pytest-cov>=5.0",
      "pytest-json-report>=1.3",
      "pytest-datadir>=1.3",
      "coverage>=5",
      "pre-commit>=2.7",
      "black==24.10.0",
      "ruff==0.7.3",
      "wheel",
      "build",
      "qutip",
  ]
  docs = [
      "Sphinx>=8.0",
      "sphinx-design>=0.4.0",
      "sphinx-autodoc-typehints>=1.22,<3.0",
      "sphinxcontrib-fulltoc~=1.2.0",
      "sphinxcontrib-jsmath~=1.0.1",
      "myst-parser>=4.0.0,<4.1.0",
      "myst-nb>=1.0,<1.2",
      "sphinx-book-theme>=1.1.0",
      "pydata-sphinx-theme>=0.16.0",
      #"sphinx-rtd-theme",
  ]
  extras = [
      "h5py",
      "neural_tangents",
  ]
  
  [tool.hatch.build]
  include = ["packages/**"]
  
  [tool.hatch.build.targets.wheel]
  sources = ["packages"]
  
  [tool.hatch.metadata]
  allow-direct-references = true
  
  # Development tools
  
  [tool.black]
  line-length = 88
  target-version = ['py310', 'py311', 'py312', 'py313']
  include = '\.pyi?$'
  exclude = '''
  /(
      \.eggs
    | \.git
    | \.hg
    | \.mypy_cache
    | \.tox
    | \.venv
    | _build
    | buck-out
    | build
    | dist
    | netket_pro/_src/external
  )/
  '''
  
  [tool.coverage.run]
  branch = true
  parallel = true
  concurrency = ["multiprocessing"]
  command_line = "-m pytest --verbose test"
  source = ["packages/**"]
  
  [tool.pytest.ini_options]
  addopts = "--color=yes --verbose --durations=100 --tb=short"
  doctest_optionflags = "NORMALIZE_WHITESPACE IGNORE_EXCEPTION_DETAIL NUMBER"
  filterwarnings = [
      "ignore::UserWarning",
      "ignore:No GPU/TPU found, falling back to CPU.:UserWarning",
      "ignore:the imp module is deprecated in favour of importlib.*:DeprecationWarning",
      "ignore:`np.long`",
      "ignore:`np.int` is a deprecated alias for the builtin `int`",
      "ignore::DeprecationWarning:tensorboardX",
      "ignore::netket.errors.UnoptimalSRtWarning"
  ]
  testpaths = [
      "test",
  ]
  
  [tool.ruff]
  target-version = "py39"
  line-length = 88
  exclude = ["packages/netket_pro/_src/external", ]
  
  [tool.ruff.lint]
  select = ["E", "F", "W", "D410", "UP",]
  fixable = ["E", "F", "W", "D", "UP"]
  ignore = ["E501", "E731", "E741", "D100", "D101", "D102", "D103", "D105", "D107", "D404", "D417"]
  
  [tool.ruff.lint.per-file-ignores]
  "__init__.py" = ["E402","F401"]
  "examples/*" = ["F401", "E402"]
  "docs/conf.py" = ["F401", "E402"]
  "docs/sphinx_extensions/*" = ["F401", "E402", "UP"]
  