summaryrefslogtreecommitdiffstats
path: root/pyproject.toml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--pyproject.toml189
1 files changed, 189 insertions, 0 deletions
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..693d296
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,189 @@
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
+
+
+[tool.poetry]
+name = "jinjax"
+version = "0.45"
+description = "Replace your HTML templates with Python server-Side components"
+authors = ["Juan-Pablo Scaletti <juanpablo@jpscaletti.com>"]
+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