[project] name = "qodo-embed-m2v" version = "0.1.0" description = "Model2Vec-optimized version of Qodo-Embed-1-1.5B that reduces model size by 25x and improves inference speed by 112x while maintaining ~85% of original performance" readme = "README.md" license = "LICENSE.md" requires-python = ">=3.12" dependencies = [ "matplotlib>=3.10.3", "model2vec>=0.5.0", "psutil>=7.0.0", "scikit-learn>=1.6.1", "sentence-transformers>=4.1.0", ] [dependency-groups] dev = [ "mypy>=1.15.0", "ruff>=0.11.6", ] [tool.mypy] exclude = [ ".git", ".ruff_cache", ".venv", "venv", "__pycache__", "build", "dist", "vendor", ] follow_untyped_imports = true [tool.ruff] line-length = 120 target-version = "py312" # Exclude files/directories exclude = [ ".git", ".ruff_cache", ".venv", "venv", "__pycache__", "build", "dist", "vendor" ] [tool.ruff.lint] # Enable all rules by default, then selectively disable select = ["ALL"] ignore = [ # Rules that conflict with other tools/preferences "D203", # one-blank-line-before-class "D212", # multi-line-summary-first-line "FBT001", # Boolean positional arg in function definition (required for typer) "FBT002", # Boolean default value in function definition (required for typer) "C901", # function too complex "PLR0911", # too many return statements "PLR0912", # too many branches "PLR0913", # too many arguments in function definition "PLR0915", # too many statements "TRY300", # Consider moving this statement to an `else` block "COM812", # Use a constant for the message in a raise statement "TC001", # Move application import into a type-checking block "ERA001", # Found commented-out code "G004", # Logging statement uses f-string "TD003", # Missing link in to-do "TRY301", # Abstract raise to an inner function # Disable rules that conflict with tab indentation "E101", # Indentation contains mixed spaces and tabs "W191", # indentation contains tabs "D206", # indent with spaces, not tabs ] [tool.ruff.lint.mccabe] max-complexity = 10 [tool.ruff.lint.pylint] max-args = 5 max-branches = 12 max-statements = 50 [tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.format] quote-style = "double" indent-style = "tab" skip-magic-trailing-comma = false line-ending = "auto"