[tool.poetry] name = "hircine" version = "0.3.0" description = "A web-based comic organizer" authors = ["Wolfgang Müller "] license = "ISC" include = [{path = "src/hircine/static/**/*"}] [tool.poetry.scripts] hircine = 'hircine.cli:main' [tool.poetry.plugins."hircine.scraper"] gallery_dl = "hircine.plugins.scrapers.gallery_dl:GalleryDLScraper" ehentai_api = "hircine.plugins.scrapers.ehentai_api:EHentaiAPIScraper" anchira_yaml = "hircine.plugins.scrapers.anchira:AnchiraYamlScraper" [tool.poetry.dependencies] python = "^3.12" sqlalchemy = {version = "^2.0.0", extras = ["aiosqlite", "asyncio"]} strawberry-graphql = "^0.252.0" starlette = "^0.41.2" uvicorn = {extras = ["standard"], version = "^0.32.0"} pillow = "^11.0.0" blake3 = "^0.4.1" alembic = "^1.13.1" requests = "^2.31.0" pyyaml = "^6.0.1" natsort = "^8.4.0" [tool.poetry.group.dev.dependencies] pytest = {extras = ["asyncio"], version = "^8.0.0"} ruff = "^0.7.3" types-pillow = "^10.1.0.2" pytest-cov = "^6.0.0" sphinx = "^8.1.3" furo = "^2024.1.29" sphinx-issues = "^5.0.0" requests-mock = "^1.12.1" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.ruff.lint] # https://docs.astral.sh/ruff/rules/ select = [ "F", # pyflakes "E", # pycodestyle "W", # pycodestyle "I", # isort "UP", # pyupgrade "A", # flake8-builtin "B", # flake8-bugbear "SIM", # flake8-simplify "FURB" # refurb ] ignore = ["B007", "SIM102", "SIM108"] [tool.ruff.lint.flake8-builtins] builtins-ignorelist = ["copyright", "filter", "hash", "id", "input"] [tool.pytest.ini_options] pythonpath = ["src"] [tool.coverage.html] directory = "coverage" [tool.coverage.run] concurrency = ["greenlet", "multiprocessing"] omit = ["tests/*", "src/hircine/cli.py"] [tool.coverage.report] exclude_also = [ "if __name__ == \"__main__\":", "def __repr__", "@(abc\\.)?abstractmethod", ]