diff --git a/integrations/fastembed/pyproject.toml b/integrations/fastembed/pyproject.toml index 995d25a57..a14c46634 100644 --- a/integrations/fastembed/pyproject.toml +++ b/integrations/fastembed/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "hatchling.build" [project] name = "fastembed-haystack" dynamic = ["version"] -description = 'support for fastembed ' +description = 'An integration of fastembed with Haystack ' readme = "README.md" requires-python = ">=3.8" license = "Apache-2.0" @@ -30,17 +30,16 @@ dependencies = [ ] [project.urls] -Documentation = "https://github.com/unknown/fastembed-haystack#readme" -Issues = "https://github.com/unknown/fastembed-haystack/issues" -Source = "https://github.com/unknown/fastembed-haystack" - -[tool.hatch.version] -path = "src/fastembed_haystack/__about__.py" +Source = "https://github.com/deepset-ai/haystack-core-integrations" +Documentation = "https://github.com/deepset-ai/haystack-core-integrations/blob/main/integrations/fastembed/README.md" +Issues = "https://github.com/deepset-ai/haystack-core-integrations/issues" [tool.hatch.envs.default] dependencies = [ "coverage[toml]>=6.5", "pytest", + "ipython", + "haystack-pydoc-tools", ] [tool.hatch.envs.default.scripts] test = "pytest {args:tests}" @@ -53,27 +52,106 @@ cov = [ "test-cov", "cov-report", ] +docs = [ + "pydoc-markdown pydoc/config.yml" +] [[tool.hatch.envs.all.matrix]] python = ["3.8", "3.9", "3.10", "3.11", "3.12"] -[tool.hatch.envs.types] +[tool.hatch.envs.lint] +detached = true dependencies = [ + "black>=23.1.0", "mypy>=1.0.0", + "ruff>=0.0.243", +] +[tool.hatch.envs.lint.scripts] +typing = "mypy --install-types --non-interactive --explicit-package-bases {args:src/ tests}" +style = [ + "ruff {args:.}", + "black --check --diff {args:.}", +] +fmt = [ + "black {args:.}", + "ruff --fix {args:.}", + "style", +] +all = [ + "style", + "typing", ] -[tool.hatch.envs.types.scripts] -check = "mypy --install-types --non-interactive {args:src/fastembed_haystack tests}" + +[tool.black] +target-version = ["py37"] +line-length = 120 +skip-string-normalization = true + +[tool.ruff] +target-version = "py37" +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 = [ + # Allow non-abstract empty methods in abstract base classes + "B027", + # Allow boolean positional values in function calls, like `dict.get(... True)` + "FBT003", + # Ignore checks for possible passwords + "S105", "S106", "S107", + # Ignore complexity + "C901", "PLR0911", "PLR0912", "PLR0913", "PLR0915", +] +unfixable = [ + # Don't touch unused imports + "F401", +] + +[tool.ruff.isort] +known-first-party = ["src"] + +[tool.ruff.flake8-tidy-imports] +ban-relative-imports = "parents" + +[tool.ruff.per-file-ignores] +# Tests can use magic values, assertions, and relative imports +"tests/**/*" = ["PLR2004", "S101", "TID252"] +# examples can contain "print" commands +"examples/**/*" = ["T201"] [tool.coverage.run] -source_pkgs = ["fastembed_haystack", "tests"] +source_pkgs = ["src", "tests"] branch = true parallel = true -omit = [ - "src/fastembed_haystack/__about__.py", -] + [tool.coverage.paths] -fastembed_haystack = ["src/fastembed_haystack", "*/fastembed-haystack/src/fastembed_haystack"] +fastembed_haystack = ["src/haystack_integrations", "*/fastembed-haystack/src"] tests = ["tests", "*/fastembed-haystack/tests"] [tool.coverage.report] @@ -82,3 +160,12 @@ exclude_lines = [ "if __name__ == .__main__.:", "if TYPE_CHECKING:", ] + +[[tool.mypy.overrides]] +module = [ + "haystack.*", + "haystack_integrations.*", + "fastembed.*", + "pytest.*" +] +ignore_missing_imports = true