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

[project]
name = "calibreweb"
description = "Web app for browsing, reading and downloading eBooks stored in a Calibre database."
authors = [{name = "@OzzieIsaacs", email = "Ozzie.Fernandez.Isaacs@googlemail.com"}]
maintainers = [{name = "@OzzieIsaacs"}]
license = {text = "GPLv3+"}
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "License :: OSI Approved :: GNU Affero General Public License v3",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Operating System :: OS Independent",
]
keywords = [
    "calibre",
    "calibre-web",
    "library",
]
requires-python = ">=3.6"
dependencies = [
    "APScheduler>=3.6.3,<3.12.0",
    "Babel>=1.3,<3.0",
    "Flask-Babel>=3.0.0,<4.1.0",
    "Flask-Principal>=0.3.2,<0.5.1",
    "Flask>=1.0.2,<3.2.0",
    "iso-639>=0.4.5,<0.5.0;python_version<'3.12'",
    "pycountry>=20.0.0,<25.0.0;python_version>='3.12'",
    "PyPDF>=3.15.6,<5.5.0",
    "pytz>=2016.10",
    "requests>=2.32.0,<2.33.0",
    "SQLAlchemy>=1.3.0,<2.1.0",
    "tornado>=6.4.2,<6.6",
    "Wand>=0.4.4,<0.7.0",
    "unidecode>=0.04.19,<1.4.0",
    "lxml>=4.9.1,<5.4.0",
    "flask-wtf>=0.14.2,<1.3.0",
    "chardet>=3.0.0,<5.3.0",
    "netifaces-plus>=0.12.0,<0.13.0",
    "urllib3>=1.22,<3.0",
    "Flask-Limiter>=2.3.0,<3.13.0",
    "regex>=2022.3.2,<2025.3.20",
    "bleach>=6.0.0,<6.3.0",
    "python-magic>=0.4.27,<0.5.0",
    "python-magic-bin>=0.4.0,<0.5.0;sys_platform=='win32'",
    "flask-httpAuth>=4.4.0,<5.0.0",
    "cryptography>=39.0.0,<45.0.0",
    "certifi>=2024.7.4,<2025.8.24",
]
dynamic = ["version"]

[project.urls]
Homepage = "https://github.com/janeczku/calibre-web"
"Bug Tracker" = "https://github.com/janeczku/calibre-web/issues"
"Release Management" = "https://github.com/janeczku/calibre-web/releases"
Documentation = "https://github.com/janeczku/calibre-web/wiki"
"Source Code" = "https://github.com/janeczku/calibre-web"

[project.readme]
file = "README.md"
content-type = "text/markdown"

[project.optional-dependencies]
gdrive = [
    "google-api-python-client>=2.73.00,<2.200.0",
    "gevent>20.6.0,<24.12.0",
    "greenlet>=0.4.17,<3.3.0",
    "httplib2>=0.9.2,<0.23.0",
    "oauth2client>=4.0.0,<4.1.4",
    "uritemplate>=3.0.0,<4.3.0",
    "pyasn1-modules>=0.0.8,<0.7.0",
    "pyasn1>=0.1.9,<0.7.0",
    "PyDrive2>=1.15.0,<1.22.0",
    "PyYAML>=3.12,<6.1",
    "rsa>=3.4.2,<4.10.0",
]
gmail = [
    "google-auth-oauthlib>=1.0.0,<1.3.0",
    "google-api-python-client>=2.73.00,<2.200.0",
]
goodreads = [
    "goodreads>=0.3.2,<0.4.0",
    "python-Levenshtein>=0.12.0,<0.28.0",
]
ldap = [
    "python-ldap>=3.0.0,<3.5.0",
    "Flask-SimpleLDAP>=1.4.0,<2.1.0",
]
oauth = [
    "Flask-Dance>=2.0.0,<7.2.0",
    "SQLAlchemy-Utils>=0.33.5,<0.42.0",
]
metadata = [
    "rarfile>=3.2,<5.0",
    "scholarly>=1.2.0,<1.8",
    "markdown2>=2.0.0,<2.6.0",
    "html2text>=2020.1.16,<2025.2.26",
    "python-dateutil>=2.1,<2.10.0",
    "beautifulsoup4>=4.0.1,<4.14.0",
    "faust-cchardet>=2.1.18,<2.1.20",
    "py7zr>=0.15.0,<0.21.0",
    "mutagen>=1.40.0,<1.50.0",
    "pycountry>=20.0.0,<25.0.0",
]
comics = [
    "natsort>=2.2.0,<8.5.0",
    "comicapi>=2.2.0,<3.3.0",
]
kobo = [
    "jsonschema>=3.2.0,<4.24.0",
]

[project.scripts]
cps = "calibreweb:main"

[tool.setuptools]
include-package-data = true
license-files = ["LICENSE"]

[tool.setuptools.dynamic]
version = {attr = "calibreweb.cps.constants.STABLE_VERSION"}

