[tool.poetry]
name = "markitdown-mcp-actor"
version = "1.0.0"
description = "Apify Actor for Markitdown MCP Server - converts various file formats to Markdown"
authors = ["Your Name <your.email@example.com>"]
readme = "README.md"
license = "Apache-2.0"
[tool.poetry.dependencies]
python = "^3.10"
apify = "^2.0.0"
mcp = "^1.3.2"
pydantic = "^2.10.6"
httpx = "^0.28.1"
uvicorn = "^0.34.0"
starlette = "^0.42.0"
uvloop = {version = "^0.21.0", markers = "sys_platform != 'win32'"}
[tool.poetry.group.dev.dependencies]
ruff = "^0.9.1"
mypy = "^1.14.1"
pytest = "^8.3.4"
pytest-asyncio = "^0.24.0"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.ruff]
line-length = 120
target-version = "py310"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
]
ignore = [
"E501", # line too long (handled by formatter)
"B008", # do not perform function calls in argument defaults
"C901", # too complex
]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = false
disallow_incomplete_defs = false
check_untyped_defs = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
strict_equality = true
[[tool.mypy.overrides]]
module = "apify.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "mcp.*"
ignore_missing_imports = true
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]