-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathpyproject.toml
More file actions
97 lines (89 loc) · 3.25 KB
/
Copy pathpyproject.toml
File metadata and controls
97 lines (89 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
[project]
name = "demo-prompt-generator"
dynamic = ["version"]
description = "AI agent that generates end-to-end Databricks demos — pipelines, dashboards, Genie spaces, and apps — from a chat prompt."
readme = "README.md"
requires-python = ">=3.12,<3.13"
dependencies = [
"fastapi>=0.119.0",
"pydantic-settings>=2.11.0",
"uvicorn>=0.37.0",
"databricks-sdk[openai]>=0.114.0",
"sqlmodel>=0.0.27",
"psycopg[binary,pool]>=3.2.11",
"pglite>=0.2.0",
"httpx>=0.28.0",
"python-docx>=1.1.0",
"python-multipart>=0.0.22",
# Newer SDK ships a newer bundled Claude Code CLI. Opus 4.7 needs CLI
# ≥2.1.111 (which is when 4.7 + the adaptive thinking shape landed);
# 0.1.50's bundled CLI was 2.1.81 → 4.7 returns HTTP 400 with
# "thinking.type.enabled is not supported for this model".
# 0.2.83 (current floor) bundles CLI 2.1.146 — well past that gate.
# Note: 0.1.77 deprecated "Skill" in allowed_tools in favor of the
# skills= option on ClaudeAgentOptions. Still works (deprecation only,
# not removed); we use "Skill" in services/agent.py — migrate when we
# touch that file next.
"claude-agent-sdk>=0.2.83",
"pyyaml>=6.0",
"watchdog>=4.0.0",
# MCP tools dependencies
"mcp>=1.0.0",
"fastmcp==3.4.2",
"sqlglot>=20.0.0",
"sqlfluff>=3.0.0",
"plutoprint==0.19.0",
"alembic",
# Data-generation helpers used by the demo-building agent.
"databricks-connect>=16.1,<16.2",
"faker>=30.0",
"holidays>=0.55",
"dbdemos-tracker>=0.1.12",
"zstandard>=0.25.0",
# Read-side parsers for the home-page file upload feature
# (services/file_extraction.py). pypdf = pure-Python MIT, no system
# deps. openpyxl reads .xlsx without needing the full pandas stack.
"pypdf>=4.0",
"openpyxl>=3.1",
]
# Local path dependencies for Databricks MCP tools
[tool.uv.sources]
databricks-mcp-server = { path = "ai_dev_kit/databricks-mcp-server", editable = true }
[dependency-groups]
dev = [
"ty>=0.0.12",
"pytest>=8.3.0",
"pytest-asyncio>=0.24.0",
]
[build-system]
requires = ["hatchling", "uv-dynamic-versioning>=0.7.0"]
build-backend = "hatchling.build"
[tool.hatch.version]
source = "uv-dynamic-versioning"
[tool.uv-dynamic-versioning]
vcs = "git"
fallback-version = "0.0.0"
[tool.hatch.build.hooks.version]
path = "src/demo_prompt_generator/_version.py"
template = '''
version = "{version}"
'''
[tool.hatch.build.hooks.custom]
path = "hatch_build.py"
[tool.hatch.build]
# Three runtime trees are staged INTO the package by scripts/build.sh before
# `uv build`, so paths inside the wheel mirror the dev tree exactly:
# src/demo_prompt_generator/.claude/skills/databricks-demo-generator/
# src/demo_prompt_generator/initial_templates/
# src/demo_prompt_generator/ai_dev_kit/
# Backend resolvers use one Path expression for both modes (editable dev
# walks up to the repo; wheel install reads from the package).
# `.claude/` needs explicit listing here — hatch otherwise skips dotfile dirs.
artifacts = [
"src/demo_prompt_generator/__dist__",
"src/demo_prompt_generator/_metadata.py",
"src/demo_prompt_generator/.claude",
"src/demo_prompt_generator/initial_templates",
"src/demo_prompt_generator/ai_dev_kit",
]
exclude = ["src/demo_prompt_generator/ui"]