[build-system] requires = ["setuptools>=64", "wheel"] build-backend = "setuptools.build_meta" [project] name = "pyshelf" version = "0.1.0" description = "" readme = "README.md" requires-python = ">=3.12" license = { text = "GPL-3.0-or-later" } keywords = [] authors = [ { name = "th3r00t", email = "tty0@th3r00t.dev" }, ] classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ] dependencies = [ "websockets", "loguru", "pypdf2", "bs4", "requests", "psycopg2-binary", "mobi-python", "lxml", "sqlalchemy", "sqlalchemy.orm", "fastapi[all]", "jinja2", "libsass", "nodejs-bin", "npm", "brotlipy", "debugpy", "pudb", "ptipython", "chardet", "pre-commit", "coverage[toml]>=6.5","pytest", "black>=23.1.0", "mypy>=1.0.0", "ruff>=0.0.243" ] [project.optional-dependencies] dev = [ ] [project.urls] Documentation = "https://github.com/th3r00t/pyshelf#readme" Issues = "https://github.com/th3r00t/pyshelf/issues" Source = "https://github.com/th3r00t/pyshelf" [tool.setuptools.packages.find] where = ["src"] [tool.black] target-version = ["py312"] line-length = 120 skip-string-normalization = true [tool.ruff] target-version = "py312" line-length = 120 select = [ "A", "ARG", "B", "C", "DTZ", "E", "EM", "F", "FBT", "I", "ICN", "ISC", "N", "PLC", "PLE", "PLR", "PLW", "Q", "RUF", "S", "T", "TID", "UP", "W", "YTT" ] ignore = [ "B027", "FBT003", "S105", "S106", "S107", "C901", "PLR0911", "PLR0912", "PLR0913", "PLR0915" ] unfixable = ["F401"] [tool.ruff.isort] known-first-party = ["pyshelf"] [tool.ruff.flake8-tidy-imports] ban-relative-imports = "all" [tool.ruff.per-file-ignores] "tests/**/*" = ["PLR2004", "S101", "TID252"] [tool.coverage.run] source_pkgs = ["pyshelf", "tests"] branch = true parallel = true omit = ["src/pyshelf/__about__.py"] [tool.coverage.paths] pyshelf = ["src/pyshelf", "*/pyshelf/src/pyshelf"] tests = ["tests", "*/pyshelf/tests"] [tool.coverage.report] exclude_lines = [ "no cov", "if __name__ == .__main__.:", "if TYPE_CHECKING:", ] [tool.isort] force_grid_wrap = 0 include_trailing_comma = true line_length = 88 multi_line_output = 3 use_parentheses = true known_third_party = [ "backend", "bs4", "django", "interface", "mobi", "prompt_toolkit", "psycopg2", "pyfiglet", "requests" ]