[project]
name = "cinemagoer"
version = "2026.06.27"
description = "Retrieve data from IMDb."
readme = "README.rst"

authors = [
    {name = "Davide Alberani", email = "da@mimante.net"},
    {name = "H. Turgut Uyar", email = "uyar@tekir.org"},
]
license = {file = "LICENSE.txt"}

keywords = [
    "imdb",
    "movie",
    "cinema",
    "film",
    "cast",
    "actor",
    "actress",
    "director",
    "character",
]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Environment :: Console",
    "Intended Audience :: Developers",
    "Intended Audience :: End Users/Desktop",
    "License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
    "Natural Language :: English",
    "Natural Language :: Italian",
    "Natural Language :: Turkish",
    "Programming Language :: Python",
    "Programming Language :: Python :: 3.14",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.10",
    "Operating System :: OS Independent",
    "Topic :: Database :: Front-Ends",
    "Topic :: Software Development :: Libraries :: Python Modules",
]

requires-python = ">=3.10"
dependencies = [
    "lxml>=6.1.1",
    "sqlalchemy>=2.0.50,<2.1",
]

[dependency-groups]
test = [
    "pytest>=8.3.5",
    "pytest-cov>=6.1.1",
]
style = [
    "ruff>=0.11.10",
]
doc = [
    "sphinx>=8.1.3",
    "sphinx-rtd-theme>=3.0.2",
]
dev = [
    {include-group = "test"},
    {include-group = "style"},
    {include-group = "doc"},
    "tox-uv>=1.25.0",
]

[project.urls]
homepage = "https://cinemagoer.github.io/"
documentation = "https://cinemagoer.readthedocs.io/"
repository = "https://github.com/cinemagoer/cinemagoer"

[project.scripts]
cinemagoer = "imdb.cli:main"

[tool.setuptools]
include-package-data = false
script-files = [
    "bin/s32cinemagoer.py",
    "bin/download-from-s3",
    "bin/s3-reduce",
]

[tool.setuptools.package-data]
"imdb.locale" =  [
    "imdbpy.pot",
    "imdbpy-*.po",
    "*/LC_MESSAGES/imdbpy.mo",
]

[tool.pytest.ini_options]
testpaths = ["tests"]

[tool.coverage.run]
source_pkgs = ["imdb"]

[tool.coverage.report]
show_missing = true
skip_covered = true

[tool.ruff]
line-length = 79

[tool.ruff.lint]
select = ["A", "E", "F", "I", "T", "W"]
ignore = ["E501", "E731"]
exclude = []

[tool.ruff.lint.per-file-ignores]
"imdb/cli.py" = ["T201"]

[tool.tox]
legacy_tox_ini = """
[tox]
envlist = py3{10,11,12,13}, style, doc
isolated_build = true

[testenv]
runner = uv-venv-lock-runner
package = wheel
wheel_build_env = .pkg
commands =
    pytest

[testenv:coverage]
commands =
    pytest --cov

[testenv:style]
commands =
    ruff check --preview imdb tests

[testenv:docs]
changedir = docs/
commands =
    sphinx-build -b html ./ _build/
"""

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
