← Files Dataiku HeadlessARCHIVED FILE

pyproject.toml

2.38 KB · Nov 3, 2026 · 19:02 UTC

↓ Download file

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "dataiku-headless"
version = "0.8.0"
description = "Headless Dataiku agent kit: a FastMCP server for operating Dataiku from an AI agent harness. The companion agent skill library ships via the Claude Code / Codex / Cortex Code plugin, not this package."
readme = "README.md"
requires-python = ">=3.10"
license = "Apache-2.0"
license-files = ["LICENSE"]
authors = [{ name = "Dataiku" }]
keywords = ["dataiku", "mcp", "fastmcp", "agent", "llm"]
classifiers = [
    "Programming Language :: Python :: 3",
    "Operating System :: OS Independent",
    "Intended Audience :: Developers",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "License :: OSI Approved :: Apache Software License",
]
dependencies = [
    "fastmcp>=3.4.5,<4",
    "dataiku-api-client>=14.7.2",
    "pydantic>=2.11,<3",
    "python-dotenv",
    "requests>=2.32",
]

[project.urls]
Homepage = "https://github.com/dataiku/dataiku-headless"
Repository = "https://github.com/dataiku/dataiku-headless"

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

[tool.hatch.build.targets.sdist]
include = [
    "dataiku_mcp",
    "skills",
    "README.md",
    "pyproject.toml",
]

[tool.ruff.lint]
# Pin to Ruff's default rule set (pyflakes + a subset of pycodestyle) so the
# lint gate stays stable across Ruff upgrades. Import sorting is configured
# below but not yet enforced — add "I" to this list to opt in.
select = ["E4", "E7", "E9", "F"]

[tool.ruff.lint.per-file-ignores]
# Dataiku 4-tab webapp template: CONFIG intentionally precedes the imports (E402)
# and `app` is injected by the Dataiku webapp runtime (F821).
"skills/dataiku-headless/references/migrations/sources/excel/webapp/template.py" = ["E402", "F821"]

[tool.ruff.lint.isort]
combine-as-imports = true

[tool.pytest.ini_options]
testpaths = [
    "tests",
]
addopts = "-ra"

[tool.commitizen]
name = "cz_conventional_commits"
version_provider = "pep621"
tag_format = "v$version"
update_changelog_on_bump = true
major_version_zero = true
# Keep the plugin manifests' "version" field in lockstep with [project].version.
version_files = [
    ".claude-plugin/plugin.json",
    ".codex-plugin/plugin.json",
    ".cortex-plugin/plugin.json",
    ".cursor-plugin/plugin.json",
]

[dependency-groups]
dev = [
    "commitizen>=4.16.3",
    "ruff>=0.15",
    "pytest>=8",
    "pre-commit>=4",
]

SHA-256: f5f19f687d0953ea381717ceef6e6d933d681487e41affa030ecf1c0f31c1d5c