[tool.poetry]
name = "fansifter-artist-roster"
version = "0.1.0"
description = "Streamlit app for managing artist rosters in Snowflake"
authors = ["Fansifter Team <engineering@fansifter.com>"]
readme = "README.md"

[tool.poetry.dependencies]
python = ">=3.11,<3.13"
streamlit = "1.39.0"
snowflake-snowpark-python = "^1.26.0"
pandas = "^2.2.0"
pydantic = "^2.0.0"
python-dotenv = "^1.0.0"
pycountry = "^24.6.1"

[tool.poetry.group.dev.dependencies]
ruff = "^0.9.3"
mypy = "^1.14.1"
pandas-stubs = "^2.2.3.241126"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.ruff]
line-length = 88
target-version = "py311"
include = [
    "streamlit_app/common/*.py",
    "streamlit_app/pages/*.py",
    "streamlit_app/main.py",
]

[tool.ruff.lint.isort]
combine-as-imports = true
forced-separate = ["streamlit_app.common"]

[tool.ruff.lint.pydocstyle]
convention = "google"

[tool.mypy]
python_version = "3.11"
strict = true
pretty = true
color_output = true
show_error_codes = true
plugins = ["pydantic.mypy"]
files = [
    "streamlit_app/common/*.py",
    "streamlit_app/pages/*.py",
    "streamlit_app/main.py",
]
