[project]
name = "keras-kinetic"
version = "0.0.3"
authors = [
    {name = "Keras team", email = "keras-users@googlegroups.com"},
]
description = "Run Keras models remotely on TPU seamlessly."
readme = "README.md"
requires-python = ">=3.11"
license = "Apache-2.0"
license-files = ["LICENSE"]
classifiers = [
    "Programming Language :: Python :: 3",
    "Operating System :: OS Independent",
]
dependencies = [
    "absl-py",
    "cloudpickle",
    "numpy",
    "keras",
    "rich>=14.0",
    "google-auth>=2.49",
    "pyOpenSSL>=26.0",
    "requests>=2.33",
    "google-cloud-artifact-registry>=1.11",
    "google-cloud-billing>=1.19",
    "google-cloud-compute>=1.47",
    "google-cloud-iam>=2.20",
    "google-cloud-container>=2.64",
    "google-cloud-resource-manager>=1.17",
    "google-cloud-service-usage>=1.16",
    "google-cloud-storage>=3.10",
    "google-cloud-build>=3.36",
    "kubernetes>=35.0",
]

[project.optional-dependencies]
cli = [
    "click>=8.1",
    "google-cloud-secret-manager>=2.20",
    "pulumi>=3.0",
    "pulumi-gcp>=9.0",
    "pulumi-command>=1.0",
    "pulumi-kubernetes>=4.0",
]
test = [
    "coverage>=7.0",
    "pytest-xdist>=3.0",
]
dev = [
    "pre-commit",
    "ruff",
    "keras-kinetic[cli]",
    "keras-kinetic[test]",
    "keras-kinetic[release]",
]
release = [
    "build",
    "twine",
]
demo = [
    "jax",
    "keras",
    "numpy",
    "keras-hub",
]
docs = [
    "myst_nb",
    "sphinx",
    "sphinx_autobuild",
    "sphinx_book_theme",
    "sphinx-click",
    "sphinx-design",
    "sphinx-llm",
]

[project.scripts]
kinetic = "kinetic.cli.main:cli"

[project.urls]
Homepage = "https://github.com/keras-team/kinetic"
Issues = "https://github.com/keras-team/kinetic/issues"

[build-system]
requires = [
    "build",
    "hatchling>=1.26",
    "twine",
]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["kinetic"]

[tool.ruff]
indent-width = 2
line-length = 80

[tool.ruff.lint]
select = ["B", "E", "F", "N", "PYI", "T20", "TID", "SIM", "W", "I", "NPY"]
ignore = ["E501"]

[tool.ruff.lint.per-file-ignores]
"examples/*" = ["T201", "NPY002"]
"**/test_*.py" = ["T201"]
"tests/**" = ["T201"]

