[build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.poetry] name = "jinjax" version = "0.46" description = "Replace your HTML templates with Python server-Side components" authors = ["Juan-Pablo Scaletti "] license = "MIT" readme = "README.md" homepage = "https://jinjax.scaletti.dev/" repository = "https://github.com/jpsca/jinjax" documentation = "https://jinjax.scaletti.dev/guides/" classifiers = [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: User Interfaces", "Topic :: Text Processing :: Markup :: HTML", "Typing :: Typed", ] [tool.poetry.dependencies] python = "^3.10" jinja2 = ">=3.0" markupsafe = ">=2.0" whitenoise = ">=5.3" [tool.poetry.group.dev] optional = true [tool.poetry.group.dev.dependencies] pyright = ">=1.1.282" pre-commit = "*" tox = "*" typing-extensions = "^4.11.0" [tool.poetry.group.test] optional = true [tool.poetry.group.test.dependencies] pytest = "^8.1.1" pytest-cov = "*" ruff = ">0.3" [tool.coverage.run] branch = true [tool.coverage.report] exclude_lines = [ "pragma: no cover", "TYPE_CHECKING", "def __repr__", "def __str__", "raise AssertionError", "raise NotImplementedError", "if __name__ == .__main__.:" ] [tool.coverage.html] directory = "covreport" [tool.pyright] include = ["src"] exclude = [ "**/node_modules", "**/__pycache__", "**/tests", ] ignore = [] reportPrivateImportUsage = false reportWildcardImportFromLibrary = false [tool.pytest.ini_options] addopts = "--doctest-modules" [tool.tox] legacy_tox_ini = """ [tox] skipsdist = True envlist = py310,py311,py312,pypy3.10 [testenv] skip_install = true allowlist_externals = poetry commands = pip install -U pip wheel poetry install --with test pytest -x src/jinjax tests """ [tool.ruff] line-length = 90 indent-width = 4 target-version = "py311" exclude = [ ".*", "_build", "build", "covreport", "dist", ] include = ["*.py"] [tool.ruff.format] # Like Black, use double quotes for strings. quote-style = "double" # Like Black, indent with spaces, rather than tabs. indent-style = "space" # Like Black, respect magic trailing commas. skip-magic-trailing-comma = false # Like Black, automatically detect the appropriate line ending. line-ending = "auto" # Enable auto-formatting of code examples in docstrings. Markdown, # reStructuredText code/literal blocks and doctests are all supported. # # This is currently disabled by default, but it is planned for this # to be opt-out in the future. docstring-code-format = false # Set the line length limit used when formatting code snippets in # docstrings. # # This only has an effect when the `docstring-code-format` setting is # enabled. docstring-code-line-length = "dynamic" [tool.ruff.lint] fixable = ["ALL"] ignore = [ # x is too complex "C901", # whitespace before ':' "E203", "E501", # x defined from star imports "F405", # line break before binary operator "W505", "W605", ] select = [ # bugbear "B", # mccabe"", comprehensions, commas "C", # pycodestyle errors "E", # pyflakes "F", # logging format "G", # imports "I", # quotes "Q", # pycodestyle warnings "W", ] [tool.ruff.lint.isort] known-first-party = ["jinjax"] # Use two line after imports. lines-after-imports = 2