APScheduler<3.12.0,>=3.6.3
Babel<3.0,>=1.3
Flask-Babel<4.1.0,>=3.0.0
Flask-Principal<0.5.1,>=0.3.2
Flask<3.2.0,>=1.0.2
PyPDF<6.5.0,>=6.1.3
pytz>=2016.10
requests<2.33.0,>=2.32.0
SQLAlchemy<2.1.0,>=1.3.0
tornado<6.6,>=6.4.2
Wand<0.7.0,>=0.4.4
unidecode<1.4.0,>=0.04.19
lxml<5.4.0,>=4.9.1
flask-wtf<1.3.0,>=0.14.2
chardet<5.3.0,>=3.0.0
netifaces-plus<0.13.0,>=0.12.0
urllib3<3.0,>=1.22
Flask-Limiter<3.13.0,>=2.3.0
regex<2025.3.20,>=2022.3.2
bleach<6.3.0,>=6.0.0
python-magic<0.5.0,>=0.4.27
flask-httpAuth<5.0.0,>=4.4.0
cryptography<45.0.0,>=39.0.0
certifi<2025.8.24,>=2024.7.4

[:python_version < "3.12"]
iso-639<0.5.0,>=0.4.5

[:python_version >= "3.12"]
pycountry<25.0.0,>=20.0.0

[:sys_platform == "win32"]
python-magic-bin<0.5.0,>=0.4.0

[comics]
natsort<8.5.0,>=2.2.0
comicapi<3.3.0,>=2.2.0

[gdrive]
google-api-python-client<2.200.0,>=2.73.00
gevent<24.12.0,>20.6.0
greenlet<3.3.0,>=0.4.17
httplib2<0.23.0,>=0.9.2
oauth2client<4.1.4,>=4.0.0
uritemplate<4.3.0,>=3.0.0
pyasn1-modules<0.7.0,>=0.0.8
pyasn1<0.7.0,>=0.1.9
PyDrive2<1.22.0,>=1.15.0
PyYAML<6.1,>=3.12
rsa<4.10.0,>=3.4.2

[gmail]
google-auth-oauthlib<1.3.0,>=1.0.0
google-api-python-client<2.200.0,>=2.73.00

[goodreads]
goodreads<0.4.0,>=0.3.2
python-Levenshtein<0.28.0,>=0.12.0

[kobo]
jsonschema<4.30.0,>=3.2.0

[ldap]
python-ldap<3.5.0,>=3.0.0
Flask-SimpleLDAP<2.1.0,>=1.4.0

[metadata]
rarfile<5.0,>=3.2
scholarly<1.8,>=1.2.0
markdown2<2.6.0,>=2.0.0
html2text<2025.2.26,>=2020.1.16
python-dateutil<2.10.0,>=2.1
beautifulsoup4<4.14.0,>=4.0.1
faust-cchardet<2.1.20,>=2.1.18
py7zr<0.21.0,>=0.15.0
mutagen<1.50.0,>=1.40.0
pycountry<25.0.0,>=20.0.0

[oauth]
Flask-Dance<7.2.0,>=2.0.0
SQLAlchemy-Utils<0.42.0,>=0.33.5
