-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathpyproject.toml
More file actions
101 lines (91 loc) · 3.11 KB
/
pyproject.toml
File metadata and controls
101 lines (91 loc) · 3.11 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
98
99
100
101
[project]
name = "motley-slayer"
version = "0.3.1"
description = "A lightweight, agent-first semantic layer for AI agents"
requires-python = ">=3.11"
license = "MIT"
readme = "README.md"
authors = [{name = "MotleyAI"}]
[tool.poetry]
packages = [{include = "slayer"}]
keywords = ["semantic-layer", "sql", "ai", "mcp", "data", "analytics", "bi"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Database",
"Topic :: Scientific/Engineering :: Information Analysis",
]
[tool.poetry.urls]
Repository = "https://github.com/MotleyAI/slayer"
Documentation = "https://motley-slayer.readthedocs.io/"
[tool.poetry.dependencies]
python = "^3.11"
sqlglot = {version = ">=30.0", extras = ["c"]}
sqlalchemy = ">=2.0"
pydantic = ">=2.0"
python-dateutil = ">=2.8"
pyyaml = ">=6.0"
fastapi = ">=0.100"
uvicorn = ">=0.20"
httpx = {version = ">=0.24", optional = true}
pandas = {version = ">=2.0", optional = true}
mcp = ">=1.0"
mkdocs-material = {version = ">=9.0", optional = true}
psycopg2-binary = {version = ">=2.9", optional = true}
asyncpg = {version = ">=0.27", optional = true}
pymysql = {version = ">=1.0", optional = true}
aiomysql = {version = ">=0.2", optional = true}
clickhouse-sqlalchemy = {version = ">=0.3", optional = true}
duckdb = {version = ">=0.9", optional = true}
duckdb-engine = {version = ">=0.13", optional = true}
dbt-core = {version = ">=1.7", optional = true}
# jafgen: not a pyproject dependency (git URL not allowed on PyPI).
# Install manually for tutorials — see notebooks:
# pip install git+https://github.com/rossbowen/jaffle-shop-generator.git@09557a1118b000071f8171aa97d54d5029bf0f0b
[tool.poetry.extras]
client = ["httpx", "pandas"]
postgres = ["psycopg2-binary", "asyncpg"]
mysql = ["pymysql", "aiomysql"]
clickhouse = ["clickhouse-sqlalchemy"]
duckdb = ["duckdb", "duckdb-engine"]
dbt = ["dbt-core"]
docs = ["mkdocs-material"]
examples = ["duckdb", "duckdb-engine"]
all = ["httpx", "pandas", "psycopg2-binary", "asyncpg", "pymysql", "aiomysql", "clickhouse-sqlalchemy", "duckdb", "duckdb-engine", "dbt-core"]
[project.scripts]
slayer = "slayer.cli:main"
[tool.poetry.group.dev.dependencies]
pytest = "^9.0.2"
pytest-cov = ">=5.0"
ruff = ">=0.4"
pytest-postgresql = "^8.0.0"
psycopg2-binary = "^2.9.11"
pytest-benchmark = "^5.2.3"
duckdb = ">=0.9"
duckdb-engine = ">=0.13"
nbclient = ">=0.10"
nbformat = ">=5.10"
ipykernel = ">=6.0"
pre-commit = "^4.5.1"
notebook = "^7.5.5"
pytest-asyncio = "^1.3.0"
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "--ignore=tests/perf --cov=slayer --cov-report=term-missing --cov-report=html"
markers = [
"integration: marks tests as integration tests (require a real database)",
]
asyncio_mode = "auto"
[tool.ruff]
target-version = "py311"
line-length = 120
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["E402"]
[build-system]
requires = ["poetry-core>=2.0.0"]
build-backend = "poetry.core.masonry.api"