[project]
name = "2025-autumn-mcp"
requires-python = ">=3.12"
version = "0.1.0"
dependencies = [
"pandas~=2.1",
"python-dotenv~=1.1.0",
"jupyterlab~=4.0.0",
"ipykernel~=6.16",
"ruff==0.7.2",
"numpy~=1.2",
"pre-commit~=3.5",
"coverage~=7.3",
"pytest~=7.4",
"pytest-asyncio~=0.21",
"fastmcp==2.12.4",
"scikit-learn~=1.3.0",
"vaderSentiment~=3.3.2",
"pydantic~=2.0",
"arxiv~=2.1.0",
]
[tool.ruff.lint]
extend-select = [
# by default, ruff enables all F and a subset of E rules
# for a description of rulesets and examples, see:
# https://docs.astral.sh/ruff/rules/
"ANN", # flake8-annotations - type annotations, some ignored
"B", # bugbear - identifies likely bugs
"C4", # flake8-comprehensions - identifies redundant calls in comprehensions
"D", # pydocstyle - requires docstrings on all public modules/functions/classes
"I", # isort
"N801", # pep8-naming - enforce ClassNamesStyle
"N804", # pep8-naming - first arg of classmethod should be cls
"N805", # pep8-naming - first arg of method should be self
"PD", # pandas-vet
"PLR2004",# Pylint no magic values!
"PTH", # prefer pathlib over os.path as seems to be the consensus
"Q", # flake8-quotes - double quotes preferred (like black)
"S", # flake8-bandit - security checks
"UP", # pyupgrade - requires preferred syntax in newer python versions
"YTT", # flake8-2020 - corrects code that doesn't anticipate 2 digit python minor version
]
ignore = [
"D415", # allow first line of doctstrings to end without punctuation
"ANN002", # missing type on *args
"ANN003", # missing type on **kwargs
"ANN101", # missing type annotation for self in method
"B905", # won't work on python <3.10
"S104", # binding to all interfaces (needed for server)
]
[tool.ruff.lint.per-file-ignores]
"tests/**/*.py" = [
"S101", # allow assert in tests
"ANN201", # missing return type annotation in tests
"PLR2004",# allow magic values in tests
]
"notebooks/**/*.ipynb" = [
"ANN201", # missing return type annotation in notebooks
]
[tool.ruff.lint.pydocstyle]
convention = "google"