content: [build-system]
  requires = ["setuptools>=61.0"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "nerfstudio"
  version = "0.1.12"
  description = "All-in-one repository for state-of-the-art NeRFs"
  readme = "README.md"
  license = { text="Apache 2.0"}
  requires-python = ">=3.7.3"
  classifiers = [
      "Development Status :: 3 - Alpha",
      "Programming Language :: Python",
  ]
  dependencies = [
      "aiohttp==3.8.1",
      "aiortc==1.3.2",
      "appdirs>=1.4",
      "av==9.2.0",
      "tyro>=0.3.31",
      "gdown==4.5.1",
      "ninja==1.10.2.3",
      "h5py>=2.9.0",
      "imageio==2.21.1",
      "ipywidgets>=7.6",
      "inplace-abn==1.1.0",
      "jupyterlab==3.3.4",
      "matplotlib==3.5.3",
      "mediapy==1.1.0",
      "msgpack==1.0.4",
      "msgpack_numpy==0.4.8",
      "nerfacc==0.3.5",
      "open3d>=0.16.0",
      "opencv-python==4.6.0.66",
      "plotly==5.7.0",
      "omegaconf==2.3.0",
      "protobuf==3.20.0",
      "einops==0.7.0",
      "pymeshlab==2022.2.post2",
      "pyngrok==5.1.0",
      "python-socketio==5.7.1",
      "requests",
      "rich==12.5.1",
      "scikit-image==0.19.3",
      "tensorboard==2.9.0",
      "torchmetrics[image]>=0.9.3",
      "torchtyping>=0.1.4",
      "torchvision>=0.13.0",
      "u-msgpack-python>=2.4.1",
      "nuscenes-devkit>=1.1.1",
      "wandb>=0.13.3",
      "xatlas",
      "trimesh",
  ]
  
  [project.urls]
  "Documentation" = "https://docs.nerf.studio"
  
  
  [project.optional-dependencies]
  # Development packages
  dev = [
      "black[jupyter]==22.3.0",
      "pylint==2.13.4",
      "pytest==7.1.2",
      "pytest-xdist==2.5.0",
      "typeguard>=2.13.3",
  ]
  
  # Documentation related packages
  docs = [
      "furo==2022.09.29",
      # Specifying ipython for https://github.com/ipython/ipython/issues/13845
      "ipython==8.6.0",
      "readthedocs-sphinx-search==0.1.2",
      "myst-nb==0.16.0",
      "nbconvert==7.2.5",
      "nbformat==5.5.0",
      "sphinx==5.2.1",
      "sphinxemoji==0.2.0",
      "sphinx-argparse==0.3.1",
      "sphinx-copybutton==0.5.0",
      "sphinx-design==0.2.0",
      "sphinxext-opengraph==0.6.3"
  ]
  
  [project.scripts]
  # Note, add entrypoint name to scripts/completions/install.py to include CLI completion
  ns-install-cli = "scripts.completions.install:entrypoint"
  ns-process-data = "scripts.process_data:entrypoint"
  ns-download-data = "scripts.downloads.download_data:entrypoint"
  ns-train = "scripts.train:entrypoint"
  ns-eval = "scripts.eval:entrypoint"
  ns-render = "scripts.render:entrypoint"
  ns-export = "scripts.exporter:entrypoint"
  ns-dev-test = "scripts.github.run_actions:entrypoint"
  ns-bridge-server = "nerfstudio.viewer.server.server:entrypoint"
  ns-extract-mesh = "scripts.extract_mesh:entrypoint"
  ns-render-mesh = "scripts.render_mesh:entrypoint"
  
  
  [options]
  # equivalent to using --extra-index-url with pip, which is needed for specifying the CUDA version torch and torchvision
  dependency_links = [
      "https://download.pytorch.org/whl/cu113"
  ]
  
  [tool.setuptools.packages.find]
  include = ["nerfstudio*","scripts*"]
  
  [tool.setuptools.package-data]
  "*" = ["*.json", "py.typed", "setup.bash", "setup.zsh"]
  
  # black
  [tool.black]
  line-length = 120
  
  # pylint
  [tool.pylint.messages_control]
  max-line-length = 120
  generated-members = ["numpy.*", "torch.*", "cv2.*", "cv.*"]
  good-names-rgxs = "^[_a-zA-Z][_a-z0-9]?$"
  ignore-paths = ["scripts/colmap2nerf.py"]
  jobs = 0
  ignored-classes = ["TensorDataclass"]
  
  disable = [
    "duplicate-code",
    "fixme",
    "logging-fstring-interpolation",
    "too-many-arguments",
    "too-many-branches",
    "too-many-instance-attributes",
    "too-many-locals",
    "unnecessary-ellipsis",
  ]
  
  #pytest
  [tool.pytest.ini_options]
  addopts = "-n=4 --typeguard-packages=nerfstudio --torchtyping-patch-typeguard --disable-warnings"
  testpaths = [
      "tests",
  ]
  
  # pyright
  [tool.pyright]
  include = ["nerfstudio"]
  exclude = ["**/node_modules",
      "**/__pycache__",
  ]
  ignore = ["nerfstudio/viewer"]
  defineConstant = { DEBUG = true }
  
  reportMissingImports = true
  reportMissingTypeStubs = false
  reportPrivateImportUsage = false
  reportUndefinedVariable = false
  
  pythonVersion = "3.7"
  pythonPlatform = "Linux"
  