content: # Note: This pyproject.toml file is intended to publish model/ folder as pip package
  #       and is not intended to be used for the whole project. For the project, use anaconda-project.yml
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [project]
  name = "ddpm"
  description = "Pytorch implementation of 'Improved Denoising Diffusion Probabilistic Models', 'Denoising Diffusion Probabilistic Models' and 'Classifier-free Diffusion Guidance'"
  requires-python = ">=3.7,<3.12"
  keywords = ["pytorch", "ddpm", "denoising diffusion probabilistic model", "generative", ]
  license = {text = "MIT"}
  readme = "readme_pip.md"
  classifiers = [
      "Development Status :: 5 - Production/Stable",
      "Intended Audience :: Developers",
      "Intended Audience :: Science/Research",
      "License :: OSI Approved :: MIT License",
      "Operating System :: OS Independent",
      "Programming Language :: Python",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.7",
      "Programming Language :: Python :: 3.8",
      "Programming Language :: Python :: 3.9",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Topic :: Scientific/Engineering :: Artificial Intelligence",
      "Topic :: Software Development :: Libraries :: Python Modules",
  ]
  
  dependencies = [
      "torch>=1.8",
      "pytorch-lightning >= 1.8",
      "torchvision",
      "tensorguard==1.0.0",
      "path>=16.0"
  ]
  
  version = "1.0.0"
  
  
  [project.optional-dependencies]
  dev = [
      "pytest",
  ]
  
  [tool.hatch.build]
  include = [
    "ddpm",
  ]
  
  [tool.hatch.envs.default]
  python = "3.10"
  dependencies = [
    "torch==2.0.1",
    "torchvision",
    "pytorch-lightning",
    "torchmetrics==1.6.3",
    "torchsummary",
    "path==17.1.0",
    "numpy<2.0.0",
    "hydra-core",
    "tensorboard",
    "seaborn",
    "matplotlib",
    "einops",
    "pytest",
  ]
  
  [tool.hatch.envs.default.scripts]
  train = "python train.py accelerator=gpu devices=1"
  test = "pytest {args:tests}"
  compress-runs = "tar cfz saved_models.tar.gz saved_models/"
  run-tensorboard = "tensorboard --logdir=saved_models/"
  clean-empty-runs = """python -c '\nfrom path import Path\nfor run in Path(\"saved_models\").dirs():\n\
           if not run.joinpath(\"best.ckpt\").exists():\n        print(f\"Removing\
         {run}\")\n        run.rmtree()'\n"""
  generate = "python generate.py {args:generate}"
  plot-cosine-scheduler = "python plot_cosine_scheduler.py {args:plot-cosine-scheduler}"
  
  
  [tool.hatch.envs.cpu]
  python = "3.10"
  dependencies = [
    "torch==2.0.1",
    "torchvision",
    "pytorch-lightning",
    "torchmetrics==1.6.3",
    "path==17.1.0",
    "numpy<2.0.0",
    "hydra-core",
    "tensorboard",
    "seaborn",
    "matplotlib",
    "einops",
    "pytest",
  ]
  
  [tool.hatch.envs.cpu.env-vars]
  PIP_EXTRA_INDEX_URL = "https://download.pytorch.org/whl/cpu"
  PIP_VERBOSE = "1"
  
  
  [tool.hatch.envs.cpu.scripts]
  train = "python train.py accelerator=cpu"
  
  