-
Notifications
You must be signed in to change notification settings - Fork 15
Matas/fix/pr 36 audit #39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
4bfd1c6
407e34e
6ae016c
cfaae12
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| # Run all pre-commit hooks on all files | ||
| pre-commit run --all-files | ||
|
|
||
| # Run ruff linter and formatter directly (if needed) | ||
| ruff check src/ | ||
| ruff format src/ | ||
|
|
||
| # Run mypy for type checking | ||
| mypy src/ |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,91 +1,3 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Target Python version | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| target-version = "py312" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Line length - restored from old config | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| line-length = 120 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Indent width | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| indent-width = 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Exclude common directories - restored from old config | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| exclude = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".bzr", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".direnv", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".eggs", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".git", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".git-rewrite", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".hg", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".ipynb_checkpoints", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".mypy_cache", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".nox", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".pants.d", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".pyenv", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".pytest_cache", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".pytype", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".ruff_cache", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".svn", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".tox", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".venv", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".vscode", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "__pypackages__", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "_build", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "buck-out", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "build", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "dist", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "node_modules", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "site-packages", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "venv", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff.lint] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Select a comprehensive set of rules | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Based on recommended practices from Ruff documentation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| select = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "E", # pycodestyle errors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "F", # pyflakes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "I", # isort | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "B", # flake8-bugbear | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "C4", # flake8-comprehensions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "UP", # pyupgrade | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Common ignores for web development | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ignore = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "E501", # line too long (handled by formatter) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "B008", # do not perform function calls in argument defaults (common in FastAPI) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Allow fixing all enabled rules | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fixable = ["ALL"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Allow unused variables when underscore-prefixed - restored from old config | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff.format] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Modern formatting options | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| quote-style = "double" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| indent-style = "space" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Format docstring code blocks | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docstring-code-format = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Restored from old config | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| skip-magic-trailing-comma = false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| line-ending = "auto" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff.lint.isort] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Enhanced isort configuration | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| known-first-party = ["src"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Make sure we correctly order the import sections | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| section-order = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "future", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "standard-library", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "third-party", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "first-party", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "local-folder", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Add a trailing comma to imports split across multiple lines | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| split-on-trailing-comma = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Combine import statements for the same module | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| combine-as-imports = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [project] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| name = "watchflow" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| version = "0.1.0" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -96,17 +8,6 @@ license = {text = "Apache Software License 2.0"} | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| authors = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| {name = "Dimitris Kargatzis", email = "[email protected]"}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| keywords = ["github", "governance", "ai", "protection", "rules", "enforcement", "collaboration"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| classifiers = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "Development Status :: 4 - Beta", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "Intended Audience :: Developers", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "License :: OSI Approved :: MIT License", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "Programming Language :: Python :: 3", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "Programming Language :: Python :: 3.12", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "Topic :: Software Development :: Libraries :: Python Modules", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "Topic :: Software Development :: Quality Assurance", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dependencies = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "fastapi[standard]>=0.104.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "uvicorn[standard]>=0.24.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -131,120 +32,80 @@ dev = [ | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pytest>=7.4.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pytest-asyncio>=0.21.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pytest-cov>=4.1.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "black>=23.0.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "isort>=5.12.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "flake8>=6.0.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "respx>=0.20.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "mypy>=1.7.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pre-commit>=3.5.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ruff>=0.1.0", # Replaces black, isort, flake8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docs = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "mkdocs>=1.5.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "mkdocs-material>=9.5.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "mkdocs-git-revision-date-localized-plugin>=1.2.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "mkdocs-minify-plugin>=0.7.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pymdown-extensions>=10.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [project.urls] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Homepage = "https://github.com/warestack/watchflow" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Documentation = "https://docs.watchflow.dev" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Repository = "https://github.com/warestack/watchflow" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Issues = "https://github.com/warestack/watchflow/issues" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [project.scripts] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| watchflow = "src.main:app" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.black] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| line-length = 88 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| target-version = ['py312'] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| include = '\.pyi?$' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| extend-exclude = ''' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| /( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # directories | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| \.eggs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | \.git | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | \.hg | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | \.mypy_cache | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | \.tox | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | \.venv | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | build | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | dist | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| )/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ''' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # --- RUFF CONFIGURATION (The Enforcer) --- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| target-version = "py312" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| line-length = 120 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| indent-width = 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| exclude = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ".git", ".mypy_cache", ".pytest_cache", ".ruff_cache", ".venv", "venv", "__pypackages__", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff.lint] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # E/F: Core Python errors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # I: Import sorting (isort replacement) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # B: Bugbear (catches common bugs) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # UP: Pyupgrade (modernizes syntax) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # C4: Comprehensions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # SIM: Simplify (suggests pythonic refactors) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # TCH: Type Checking (enforces specific typing blocks) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| select = ["E", "F", "I", "B", "UP", "C4", "SIM", "TCH"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ignore = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "E501", # Line too long (handled by formatter) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "B008", # Do not perform function calls in argument defaults (FastAPI Dependency Pattern) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fixable = ["ALL"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff.format] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| quote-style = "double" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| indent-style = "space" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| skip-magic-trailing-comma = false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| line-ending = "auto" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docstring-code-format = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.isort] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| profile = "black" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| multi_line_output = 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| line_length = 88 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| known_first_party = ["src"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.ruff.lint.isort] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| known-first-party = ["src"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| combine-as-imports = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # --- MYPY CONFIGURATION (The Type Cop) --- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.mypy] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| python_version = "3.12" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| warn_return_any = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| warn_unused_configs = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disallow_untyped_defs = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disallow_incomplete_defs = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disallow_untyped_defs = true # No dynamic functions allowed | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disallow_incomplete_defs = true # Must type all args | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| check_untyped_defs = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disallow_untyped_decorators = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disallow_untyped_decorators = false # Allow untyped decorators (needed for FastAPI/LangChain) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| no_implicit_optional = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| warn_redundant_casts = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| warn_unused_ignores = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| warn_no_return = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| warn_unreachable = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| strict_equality = true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # --- PYTEST CONFIGURATION --- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.pytest.ini_options] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| testpaths = ["tests"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| python_files = ["test_*.py", "*_test.py"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| python_classes = ["Test*"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| python_functions = ["test_*"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| addopts = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--strict-markers", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--strict-config", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--cov=src", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--cov-report=term-missing", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--cov-report=html", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "--cov-report=xml", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| asyncio_mode = "auto" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.coverage.run] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| source = ["src"] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| omit = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "*/tests/*", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "*/test_*", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "*/__pycache__/*", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "*/migrations/*", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.coverage.report] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| exclude_lines = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pragma: no cover", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "def __repr__", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "if self.debug:", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "if settings.DEBUG", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "raise AssertionError", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "raise NotImplementedError", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "if 0:", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "if __name__ == .__main__.:", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "class .*\\bProtocol\\):", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "@(abc\\.)?abstractmethod", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [tool.uv] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| dev-dependencies = [ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pytest>=7.4.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pytest-asyncio>=0.21.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pytest-cov>=4.1.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "black>=23.0.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "isort>=5.12.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "flake8>=6.0.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "mypy>=1.7.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pre-commit>=3.5.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "mkdocs-material>=9.5.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "mkdocs-git-revision-date-localized-plugin>=1.2.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "mkdocs-minify-plugin>=0.7.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "pymdown-extensions>=10.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| "ruff>=0.1.0", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
103
to
111
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
The Proposed fix [tool.uv]
dev-dependencies = [
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.1.0",
+ "respx>=0.20.0",
"mypy>=1.7.0",
"pre-commit>=3.5.0",
"ruff>=0.1.0",
]📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| # Watchflow application package | ||
| # App package—root for imports, keep minimal. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: warestack/watchflow
Length of output: 3906
🏁 Script executed:
Repository: warestack/watchflow
Length of output: 2253
🏁 Script executed:
Repository: warestack/watchflow
Length of output: 719
Update the endpoint path in the documentation to match the actual API.
The endpoint in the README should be
/api/v1/rules/recommend, not/v1/rules/recommend. The full path includes the/apiprefix, as confirmed by the router mounting insrc/main.py(line 103) and the integration tests.The rest of the documentation is clear and accurate—rate limits, authentication requirements, and the 429 response handling are all correctly described.
🤖 Prompt for AI Agents