# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.

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

[project]
name = "resilientdb-tutor"
version = "1.0.0"
description = "ResilientDB Educational Assistant MCP Server"
authors = [
    {name = "ResilientDB Tutor", email = "tutor@resilientdb.edu"}
]
readme = "README.md"
requires-python = ">=3.8"
dependencies = [
    "mcp>=1.0.0",
    "fastmcp>=0.1.0",
    "docker>=6.0.0",
    "pydantic>=2.0.0",
    "uvicorn>=0.20.0",
    "asyncio"
]

[project.optional-dependencies]
dev = [
    "pytest>=7.0.0",
    "black>=22.0.0",
    "mypy>=1.0.0",
    "ruff>=0.1.0"
]

[project.scripts]
resilientdb-tutor = "resilientdb_mcp_server:main"

[tool.setuptools.packages.find]
where = ["."]
include = ["resilientdb_mcp_server*"]

[tool.black]
line-length = 100
target-version = ['py38']

[tool.mypy]
python_version = "3.8"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true

[tool.ruff]
line-length = 100
select = ["E", "F", "I", "N", "W", "UP"]
ignore = ["E501"]  # Line too long (handled by black)
