# SPDX-FileCopyrightText: Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[project]
name = "data-generator"
version = "0.1.0"
description = "Data generator library for LLM benchmarks"
readme = "README.md"
authors = [
    {name = "NVIDIA CORPORATION & AFFILIATES"}
]
license = {text = "Apache-2.0"}
requires-python = ">=3.10"

classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Intended Audience :: Science/Research",
    "Intended Audience :: Information Technology",
    "License :: OSI Approved :: Apache Software License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Scientific/Engineering",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Operating System :: POSIX :: Linux",
]

dependencies = [
    "aiconfigurator[webapp] @ git+https://github.com/ai-dynamo/aiconfigurator.git@acb9e89ca5dbb360733887d795ccf55a164beb87",
    "aiperf @ git+https://github.com/ai-dynamo/aiperf.git@c3fc969e9e30e9ddad35b2f613aa7c1d418f2de9",
    "matplotlib",
    "networkx",
    "numpy",
    "pandas",
    "pydantic>=2",
    "tabulate",
    "types-tabulate",
    # Satisfies vLLM 0.11.0 (>=4.55.2), vLLM 0.11.2 (>=4.56.0,<5), TRT-LLM 1.3.0rc5 (==4.57.1), SGLang 0.5.8 (==4.57.1)
    "transformers>=4.56.0",
    "pytest-mypy",
]

[project.scripts]
datagen = "prefix_data_generator.cli:main"

[project.urls]
Repository = "https://github.com/ai-dynamo/dynamo.git"

[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"

[tool.uv]
override-dependencies = [
    "gradio==5.47.1"
]

[tool.setuptools]
packages = ["prefix_data_generator"]

[tool.setuptools.package-data]
prefix_data_generator = ["**/*.py"]

[tool.mypy]
explicit_package_bases = true
ignore_missing_imports = true
check_untyped_defs = true

[tool.pytest.ini_options]
addopts = [
    "-ra",
    "--showlocals",
    "--strict-markers",
    "--strict-config",
    "--mypy",  # This flag enables mypy type checking during pytest runs
    "--ignore-glob=*model.py",
    "--ignore-glob=*_inc.py",
    "--ignore-glob=deploy/api-store/*",
]
