deps(deps-dev): bump the python-development group with 15 updates#127
deps(deps-dev): bump the python-development group with 15 updates#127
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the 📝 WalkthroughWalkthroughVersion handling moved from the runtime package to a new Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Caution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (1 error)
✅ Passed checks (2 passed)
Comment |
3188f71 to
2d21448
Compare
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
2d21448 to
2060a7c
Compare
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Fix all issues with AI agents
In `@mpt_extension_sdk/runtime/swoext.py`:
- Around line 30-37: The lazy maps mean import_string is never called and
commands never registered; consume the iterator returned by cmds and register
each command. Replace the second map call with an explicit iteration or
materialize the list so import_string is executed (e.g., iterate over cmds and
call cli.add_command(cmd) for each imported command), referencing the cmds
variable, import_string and cli.add_command to locate and change the code.
In `@mpt_extension_sdk/runtime/version.py`:
- Around line 1-6: The try/except in this module is too broad—narrow the
exception to only handle the expected PackageNotFoundError from
importlib.metadata: import PackageNotFoundError and change the except Exception
around version("swo-runtime") to except PackageNotFoundError so that only the
missing-package case sets __version__ = "0.0.0" while letting other errors
surface; keep the __version__ assignment and the call to version("swo-runtime")
intact.
In `@mpt_extension_sdk/swo_rql/__init__.py`:
- Line 1: The import in __init__.py uses "from
mpt_extension_sdk.swo_rql.query_builder import RQLQuery as R" and currently
includes an unused "# noqa: WPS347" directive; remove the trailing "# noqa:
WPS347" from that import statement so the linter no longer reports RUF100 and
the import remains unchanged (keep the alias R and the RQLQuery symbol).
- Around line 1-3: Restore the removed public export by reintroducing the
RQLQuery alias pointing to R (RQLQuery = R) and include both "R" and "RQLQuery"
in __all__ so external callers using from mpt_extension_sdk.swo_rql import
RQLQuery keep working; add a brief deprecation comment or docstring near the
alias to indicate RQLQuery is deprecated and should be replaced by R for future
removal.
In `@pyproject.toml`:
- Around line 50-55: Replace the broad major-only constraint "ipython==9.*" with
a minor-series wildcard to pin the intended minor version (for example
"ipython==9.9.*"); locate the ipython entry in pyproject.toml (the string
"ipython==9.*") and update it to the chosen minor wildcard so upgrades won't
accidentally jump minor versions.
🧹 Nitpick comments (3)
pyproject.toml (2)
47-49: Add flake8-aaa or remove the TODO to avoid drift.The dependency is commented out, but team guidance indicates flake8-aaa should be part of the linting stack. If it’s still required, please enable it (and update pre-commit accordingly); otherwise, remove the TODO. Based on learnings, flake8-aaa should be enabled for AAA test validation.
♻️ Suggested change
- # "flake8-aaa==0.17.*", # also update pre-commit config TODO: add it on next iteration + "flake8-aaa==0.17.*", # also update pre-commit config
120-149: Deduplicate per-file-ignores entries for clarity.There are redundant entries (e.g.,
mpt_extension_sdk/swo_rql/__init__.pyappears twice) and repeated codes (WPS202/WPS460). Consolidating reduces maintenance risk and confusion.♻️ Cleanup example
- "mpt_extension_sdk/runtime/utils.py: WPS100 WPS202 WPS460 WPS210 WPS221 WPS349 WPS110 WPS430 WPS237 WPS202 WPS460", - "mpt_extension_sdk/swo_rql/__init__.py: WPS111 WPS410", + "mpt_extension_sdk/runtime/utils.py: WPS100 WPS202 WPS460 WPS210 WPS221 WPS349 WPS110 WPS430 WPS237",mpt_extension_sdk/runtime/djapp/conf/product_utils.py (1)
4-6: Trim and filter product IDs from comma-separated input.
This avoids empty tokens and whitespace-related lookup misses.♻️ Suggested improvement
def extract_product_ids(product_ids: str) -> list[str]: """Extract product IDs from a comma-separated string.""" - return product_ids.split(",") + return [pid.strip() for pid in product_ids.split(",") if pid.strip()]
📜 Review details
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (9)
mpt_extension_sdk/runtime/__init__.pympt_extension_sdk/runtime/djapp/conf/__init__.pympt_extension_sdk/runtime/djapp/conf/product_utils.pympt_extension_sdk/runtime/events/producers.pympt_extension_sdk/runtime/swoext.pympt_extension_sdk/runtime/version.pympt_extension_sdk/swo_rql/__init__.pypyproject.tomlsetup.cfg
💤 Files with no reviewable changes (2)
- mpt_extension_sdk/runtime/init.py
- setup.cfg
🧰 Additional context used
📓 Path-based instructions (3)
**/*.py
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
**/*.py: All configuration must be provided via environment variables, not hardcoded
Use type annotations (PEP 484) in all Python code
All public functions, methods, and classes must include Google-style docstrings
Do not add inline comments; rely on clear code and docstrings instead
Function and variable names must be explicit and intention-revealing
Follow PEP 8 unless explicitly overridden by ruff
Prefer simple, explicit code over clever or compact implementations
Files:
mpt_extension_sdk/runtime/version.pympt_extension_sdk/runtime/djapp/conf/product_utils.pympt_extension_sdk/runtime/events/producers.pympt_extension_sdk/swo_rql/__init__.pympt_extension_sdk/runtime/djapp/conf/__init__.pympt_extension_sdk/runtime/swoext.py
⚙️ CodeRabbit configuration file
**/*.py: Follow the linting rules defined in pyproject.toml under [tool.ruff] and [tool.flake8] sections.
For formatting, use Ruff instead of Black. Do not suggest Black formatting changes.
Files:
mpt_extension_sdk/runtime/version.pympt_extension_sdk/runtime/djapp/conf/product_utils.pympt_extension_sdk/runtime/events/producers.pympt_extension_sdk/swo_rql/__init__.pympt_extension_sdk/runtime/djapp/conf/__init__.pympt_extension_sdk/runtime/swoext.py
**/*
⚙️ CodeRabbit configuration file
**/*: For each subsequent commit in this PR, explicitly verify if previous review comments have been resolved
Files:
mpt_extension_sdk/runtime/version.pympt_extension_sdk/runtime/djapp/conf/product_utils.pympt_extension_sdk/runtime/events/producers.pypyproject.tomlmpt_extension_sdk/swo_rql/__init__.pympt_extension_sdk/runtime/djapp/conf/__init__.pympt_extension_sdk/runtime/swoext.py
pyproject.toml
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
In pyproject.toml, use
*for minor versions only (e.g.,django==4.2.*, notdjango==^4.2.2)
Files:
pyproject.toml
🧠 Learnings (5)
📚 Learning: 2026-01-12T10:21:44.018Z
Learnt from: CR
Repo: softwareone-platform/mpt-extension-sdk PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-12T10:21:44.018Z
Learning: Use flake8 exclusively to run wemake-python-styleguide and flake8-aaa for strict Python coding standards and test pattern validation
Applied to files:
pyproject.toml
📚 Learning: 2026-01-12T10:21:44.018Z
Learnt from: CR
Repo: softwareone-platform/mpt-extension-sdk PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-12T10:21:44.018Z
Learning: Applies to **/*.py : Follow PEP 8 unless explicitly overridden by ruff
Applied to files:
pyproject.toml
📚 Learning: 2026-01-12T10:21:44.018Z
Learnt from: CR
Repo: softwareone-platform/mpt-extension-sdk PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-12T10:21:44.018Z
Learning: Use ruff as the primary linter for general Python style and best practices
Applied to files:
pyproject.toml
📚 Learning: 2026-01-15T11:58:23.192Z
Learnt from: d3rky
Repo: softwareone-platform/mpt-extension-sdk PR: 116
File: pyproject.toml:31-31
Timestamp: 2026-01-15T11:58:23.192Z
Learning: In pyproject.toml, when specifying the Python 'regex' package, prefer calendar versioning (year.month) such as regex==2025.* instead of a general minor-version wildcard. This avoids weekly/monthly updates and aligns with the package's versioning scheme for longer stability.
Applied to files:
pyproject.toml
📚 Learning: 2026-01-15T15:23:47.310Z
Learnt from: d3rky
Repo: softwareone-platform/mpt-extension-sdk PR: 123
File: pyproject.toml:21-25
Timestamp: 2026-01-15T15:23:47.310Z
Learning: Pin exact versions (no wildcards) for opentelemetry-api and opentelemetry-sdk in pyproject.toml to avoid dependency resolution issues with dependabot when combined with azure-monitor-opentelemetry-exporter==1.0.0b46. Ensure the constraints are exact version specifiers (e.g., opentelemetry-api = '1.39.0', opentelemetry-sdk = '1.39.0') and avoid wildcard/minor-range specs. Validate by checking that no '~', '*', '>=', or '<=' operators are used for these packages and that the lockfile or dependency resolver reflects the exact pins.
Applied to files:
pyproject.toml
🧬 Code graph analysis (4)
mpt_extension_sdk/runtime/djapp/conf/product_utils.py (1)
mpt_extension_sdk/flows/context.py (1)
product_id(25-27)
mpt_extension_sdk/runtime/events/producers.py (1)
mpt_extension_sdk/swo_rql/query_builder.py (1)
RQLQuery(55-392)
mpt_extension_sdk/runtime/djapp/conf/__init__.py (1)
mpt_extension_sdk/runtime/djapp/conf/product_utils.py (2)
extract_product_ids(4-6)get_for_product(9-11)
mpt_extension_sdk/runtime/swoext.py (1)
mpt_extension_sdk/runtime/version.py (1)
get_version(9-11)
🪛 Ruff (0.14.11)
mpt_extension_sdk/runtime/version.py
5-5: Do not catch blind exception: Exception
(BLE001)
mpt_extension_sdk/swo_rql/__init__.py
1-1: Unused noqa directive (unknown: WPS347)
Remove unused noqa directive
(RUF100)
🔇 Additional comments (7)
pyproject.toml (2)
45-46: Confirm earlier review comments are resolved for this follow-up commit.This PR has multiple commits; please verify any prior review comments for earlier commits are fully addressed in this update.
57-63: Confirm intended versions for pytest-deadfixtures and ruff.The PR objective lists newer targets (pytest-deadfixtures 3.1.x, ruff 0.14.13), but the config currently pins
3.0.*and0.14.11. Please confirm the intended versions and align if needed.🔍 If matching the PR target, consider
- "pytest-deadfixtures==3.0.*", + "pytest-deadfixtures==3.1.*", ... - "ruff==0.14.11", # force ruff version to have same formatting everywhere, also update in pre-commit config + "ruff==0.14.13", # force ruff version to have same formatting everywhere, also update in pre-commit configmpt_extension_sdk/runtime/version.py (1)
9-11: LGTM: centralized version accessor.mpt_extension_sdk/runtime/swoext.py (1)
5-5: Import path update looks good.mpt_extension_sdk/runtime/events/producers.py (1)
14-14: Alias import aligns with the updatedswo_rqlexport.mpt_extension_sdk/runtime/djapp/conf/product_utils.py (1)
9-11: Product-scoped lookup looks fine.mpt_extension_sdk/runtime/djapp/conf/__init__.py (1)
1-6: Clean re-export and public API declaration.The import and
__all__make the public surface explicit and consistent.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
2060a7c to
41fa29d
Compare
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.pre-commit-config.yaml (1)
25-30: Alignwemake-python-styleguideversion withpyproject.toml.The pre-commit hook pins
wemake-python-styleguide==1.4.*, whilepyproject.tomluses1.5.*. This can yield inconsistent lint results between local runs and CI.🔧 Suggested alignment
- [flake8-pyproject==1.2.*, wemake-python-styleguide==1.4.*] + [flake8-pyproject==1.2.*, wemake-python-styleguide==1.5.*]
♻️ Duplicate comments (1)
mpt_extension_sdk/runtime/swoext.py (1)
30-37: Replace list comprehension with explicit loop to avoid non-idiomatic side effects.The list comprehension
[cli.add_command(cmd) for cmd in cmds]at lines 30-37 uses side effects non-idiomatically and triggers Ruff's B018 (unused expression). Replace it with an explicit for loop:Suggested fix
cmds = map( import_string, ( "mpt_extension_sdk.runtime.commands.run.run", "mpt_extension_sdk.runtime.commands.django.django", ), ) -[cli.add_command(cmd) for cmd in cmds] +for cmd in cmds: + cli.add_command(cmd)
🧹 Nitpick comments (2)
mpt_extension_sdk/runtime/djapp/conf/product_utils.py (1)
4-6: Trim/ignore empty product IDs when splitting.If callers pass
"id1, id2, "or an empty string, this returns tokens with whitespace or"". Consider stripping and filtering to avoid accidental empty IDs.♻️ Proposed tweak
def extract_product_ids(product_ids: str) -> list[str]: """Extract product IDs from a comma-separated string.""" - return product_ids.split(",") + return [pid.strip() for pid in product_ids.split(",") if pid.strip()]pyproject.toml (1)
97-149: Consolidate duplicateper-file-ignoresentries.
mpt_extension_sdk/swo_rql/__init__.pyappears twice. Merging into a single entry avoids ambiguity and future drift.🧹 Suggested cleanup
- "mpt_extension_sdk/swo_rql/__init__.py: WPS412 WPS111 WPS410", @@ - "mpt_extension_sdk/swo_rql/__init__.py: WPS111 WPS410", + "mpt_extension_sdk/swo_rql/__init__.py: WPS412 WPS111 WPS410",
📜 Review details
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
uv.lockis excluded by!**/*.lock
📒 Files selected for processing (10)
.pre-commit-config.yamlmpt_extension_sdk/runtime/__init__.pympt_extension_sdk/runtime/djapp/conf/__init__.pympt_extension_sdk/runtime/djapp/conf/product_utils.pympt_extension_sdk/runtime/events/producers.pympt_extension_sdk/runtime/swoext.pympt_extension_sdk/runtime/version.pympt_extension_sdk/swo_rql/__init__.pypyproject.tomlsetup.cfg
💤 Files with no reviewable changes (2)
- mpt_extension_sdk/runtime/init.py
- setup.cfg
🧰 Additional context used
📓 Path-based instructions (3)
**/*.py
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
**/*.py: All configuration must be provided via environment variables, not hardcoded
Use type annotations (PEP 484) in all Python code
All public functions, methods, and classes must include Google-style docstrings
Do not add inline comments; rely on clear code and docstrings instead
Function and variable names must be explicit and intention-revealing
Follow PEP 8 unless explicitly overridden by ruff
Prefer simple, explicit code over clever or compact implementations
Files:
mpt_extension_sdk/runtime/events/producers.pympt_extension_sdk/runtime/swoext.pympt_extension_sdk/runtime/djapp/conf/product_utils.pympt_extension_sdk/runtime/version.pympt_extension_sdk/swo_rql/__init__.pympt_extension_sdk/runtime/djapp/conf/__init__.py
⚙️ CodeRabbit configuration file
**/*.py: Follow the linting rules defined in pyproject.toml under [tool.ruff] and [tool.flake8] sections.
For formatting, use Ruff instead of Black. Do not suggest Black formatting changes.
Files:
mpt_extension_sdk/runtime/events/producers.pympt_extension_sdk/runtime/swoext.pympt_extension_sdk/runtime/djapp/conf/product_utils.pympt_extension_sdk/runtime/version.pympt_extension_sdk/swo_rql/__init__.pympt_extension_sdk/runtime/djapp/conf/__init__.py
**/*
⚙️ CodeRabbit configuration file
**/*: For each subsequent commit in this PR, explicitly verify if previous review comments have been resolved
Files:
mpt_extension_sdk/runtime/events/producers.pympt_extension_sdk/runtime/swoext.pympt_extension_sdk/runtime/djapp/conf/product_utils.pypyproject.tomlmpt_extension_sdk/runtime/version.pympt_extension_sdk/swo_rql/__init__.pympt_extension_sdk/runtime/djapp/conf/__init__.py
pyproject.toml
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
In pyproject.toml, use
*for minor versions only (e.g.,django==4.2.*, notdjango==^4.2.2)
Files:
pyproject.toml
🧠 Learnings (12)
📚 Learning: 2026-01-16T19:06:33.642Z
Learnt from: d3rky
Repo: softwareone-platform/mpt-extension-sdk PR: 127
File: mpt_extension_sdk/swo_rql/__init__.py:1-3
Timestamp: 2026-01-16T19:06:33.642Z
Learning: In mpt_extension_sdk/swo_rql/__init__.py, the removal of RQLQuery from the public API (keeping only R) was an expected and intentional breaking change.
Applied to files:
mpt_extension_sdk/runtime/events/producers.py
📚 Learning: 2026-01-12T10:21:44.018Z
Learnt from: CR
Repo: softwareone-platform/mpt-extension-sdk PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-12T10:21:44.018Z
Learning: Use ruff as the primary linter for general Python style and best practices
Applied to files:
.pre-commit-config.yamlpyproject.tomlmpt_extension_sdk/swo_rql/__init__.py
📚 Learning: 2026-01-12T10:21:44.018Z
Learnt from: CR
Repo: softwareone-platform/mpt-extension-sdk PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-12T10:21:44.018Z
Learning: Use flake8 exclusively to run wemake-python-styleguide and flake8-aaa for strict Python coding standards and test pattern validation
Applied to files:
.pre-commit-config.yamlpyproject.tomlmpt_extension_sdk/swo_rql/__init__.py
📚 Learning: 2026-01-15T15:23:47.310Z
Learnt from: d3rky
Repo: softwareone-platform/mpt-extension-sdk PR: 123
File: pyproject.toml:21-25
Timestamp: 2026-01-15T15:23:47.310Z
Learning: Pin exact versions (no wildcards) for opentelemetry-api and opentelemetry-sdk in pyproject.toml to avoid dependency resolution issues with dependabot when combined with azure-monitor-opentelemetry-exporter==1.0.0b46. Ensure the constraints are exact version specifiers (e.g., opentelemetry-api = '1.39.0', opentelemetry-sdk = '1.39.0') and avoid wildcard/minor-range specs. Validate by checking that no '~', '*', '>=', or '<=' operators are used for these packages and that the lockfile or dependency resolver reflects the exact pins.
Applied to files:
pyproject.toml
📚 Learning: 2026-01-16T19:06:13.014Z
Learnt from: d3rky
Repo: softwareone-platform/mpt-extension-sdk PR: 127
File: pyproject.toml:50-55
Timestamp: 2026-01-16T19:06:13.014Z
Learning: In any pyproject.toml files, apply a dependency version wildcard rule where most packages use a minor-version wildcard, but ipython is an exception and should use a major-version wildcard (e.g., ipython==9.*) similar to how regex may use year-level wildcards. This pattern should be checked whenever reviewing dependency pins in pyproject.toml across the repository.
Applied to files:
pyproject.toml
📚 Learning: 2026-01-15T11:58:23.192Z
Learnt from: d3rky
Repo: softwareone-platform/mpt-extension-sdk PR: 116
File: pyproject.toml:31-31
Timestamp: 2026-01-15T11:58:23.192Z
Learning: In pyproject.toml, when specifying the Python 'regex' package, prefer calendar versioning (year.month) such as regex==2025.* instead of a general minor-version wildcard. This avoids weekly/monthly updates and aligns with the package's versioning scheme for longer stability.
Applied to files:
pyproject.toml
📚 Learning: 2026-01-12T10:21:44.018Z
Learnt from: CR
Repo: softwareone-platform/mpt-extension-sdk PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-12T10:21:44.018Z
Learning: Applies to pyproject.toml : In pyproject.toml, use `*` for minor versions only (e.g., `django==4.2.*`, not `django==^4.2.2`)
Applied to files:
pyproject.toml
📚 Learning: 2026-01-12T10:21:44.018Z
Learnt from: CR
Repo: softwareone-platform/mpt-extension-sdk PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-12T10:21:44.018Z
Learning: pyproject.toml is the source of truth for code quality rules, and generated code must not violate any configured rules
Applied to files:
pyproject.toml
📚 Learning: 2026-01-16T19:07:02.127Z
Learnt from: d3rky
Repo: softwareone-platform/mpt-extension-sdk PR: 127
File: mpt_extension_sdk/swo_rql/__init__.py:1-1
Timestamp: 2026-01-16T19:07:02.127Z
Learning: In the mpt-extension-sdk repository, `# noqa: WPS347` directives (and other WPS-prefixed codes) are used for flake8 with wemake-python-styleguide. Ruff may report these as unused (RUF100) because it doesn't recognize WPS rules, but they should be kept for flake8 compatibility.
Applied to files:
pyproject.tomlmpt_extension_sdk/runtime/version.pympt_extension_sdk/swo_rql/__init__.py
📚 Learning: 2026-01-12T10:21:44.018Z
Learnt from: CR
Repo: softwareone-platform/mpt-extension-sdk PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2026-01-12T10:21:44.018Z
Learning: Applies to **/*.py : Follow PEP 8 unless explicitly overridden by ruff
Applied to files:
pyproject.tomlmpt_extension_sdk/swo_rql/__init__.py
📚 Learning: 2026-01-16T19:06:13.014Z
Learnt from: d3rky
Repo: softwareone-platform/mpt-extension-sdk PR: 127
File: pyproject.toml:50-55
Timestamp: 2026-01-16T19:06:13.014Z
Learning: In pyproject.toml, `ipython` uses a major-version wildcard (e.g., `ipython==9.*`) as an exception to the general minor-version wildcard pattern, similar to how `regex` uses year-level wildcards.
Applied to files:
mpt_extension_sdk/runtime/version.py
📚 Learning: 2026-01-16T19:06:33.642Z
Learnt from: d3rky
Repo: softwareone-platform/mpt-extension-sdk PR: 127
File: mpt_extension_sdk/swo_rql/__init__.py:1-3
Timestamp: 2026-01-16T19:06:33.642Z
Learning: In mpt_extension_sdk/swo_rql/__init__.py, removing RQLQuery from the public API is an intentional breaking change. During reviews, ensure this change is clearly documented (CHANGELOG or release notes), communicate deprecation timelines if applicable, and verify that public API surface is updated consistently (e.g., __all__ or API docs). Update tests to reflect the new public surface and consider providing guidance for downstream users on alternatives (R).
Applied to files:
mpt_extension_sdk/swo_rql/__init__.py
🧬 Code graph analysis (5)
mpt_extension_sdk/runtime/events/producers.py (1)
mpt_extension_sdk/swo_rql/query_builder.py (1)
RQLQuery(55-392)
mpt_extension_sdk/runtime/swoext.py (1)
mpt_extension_sdk/runtime/version.py (1)
get_version(9-11)
mpt_extension_sdk/runtime/djapp/conf/product_utils.py (1)
mpt_extension_sdk/flows/context.py (1)
product_id(25-27)
mpt_extension_sdk/swo_rql/__init__.py (1)
mpt_extension_sdk/swo_rql/query_builder.py (1)
RQLQuery(55-392)
mpt_extension_sdk/runtime/djapp/conf/__init__.py (1)
mpt_extension_sdk/runtime/djapp/conf/product_utils.py (2)
extract_product_ids(4-6)get_for_product(9-11)
🪛 Ruff (0.14.11)
mpt_extension_sdk/swo_rql/__init__.py
1-1: Unused noqa directive (unknown: WPS347)
Remove unused noqa directive
(RUF100)
🔇 Additional comments (9)
mpt_extension_sdk/runtime/djapp/conf/product_utils.py (1)
9-11: LGTM for product-scoped lookup.Concise and consistent with direct settings access.
mpt_extension_sdk/runtime/djapp/conf/__init__.py (1)
1-6: Re-export wiring looks good.Clean public API exposure via all.
.pre-commit-config.yaml (1)
2-3: Ruff hook bump aligns with dev tooling.Nice to see the hook set to v0.14.11, which should keep lint/format behavior consistent with the dev pin.
mpt_extension_sdk/runtime/version.py (2)
1-6: ScopedPackageNotFoundErrorhandling looks correct.This resolves the earlier broad-exception concern and avoids masking unexpected failures.
9-11:get_version()accessor is clear and minimal.No concerns here.
mpt_extension_sdk/runtime/swoext.py (1)
4-6: Import path update aligns with the new version module.This keeps versioning centralized.
pyproject.toml (1)
45-66: Dev dependency pins follow the wildcard convention; ipython exception acknowledged.These minor-series wildcards match the expected pattern, and keeping
ipython==9.*reflects the documented exception from the earlier discussion. As per coding guidelines, minor wildcards are used where applicable. Based on learnings, theipython==9.*major wildcard is intentional.mpt_extension_sdk/swo_rql/__init__.py (1)
1-3: Public API change looks intentional; keepWPS347and document the break.Keeping the
# noqa: WPS347is correct for flake8/wemake, and exporting onlyRmatches the intentional breaking change. Please confirm the release notes or changelog call out the removal ofRQLQueryand provide migration guidance. Based on learnings, theWPS347noqa andR-only export are intentional.mpt_extension_sdk/runtime/events/producers.py (1)
14-14: Alias import aligns with the new public API.This keeps the local name stable while using the new exported symbol. Based on learnings, this matches the intentional export change.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
d17c4f6 to
fab4173
Compare
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@pyproject.toml`:
- Line 57: The dependency declaration "pytest-deadfixtures==3.0.*" in
pyproject.toml uses a 3.0 wildcard which won't match the intended 3.1.0 update;
update that entry to "pytest-deadfixtures==3.1.*" so the version constraint
matches 3.1.x (ensure the change is applied to the dependency string in
pyproject.toml).
🧹 Nitpick comments (1)
mpt_extension_sdk/runtime/djapp/conf/product_utils.py (1)
4-6: Consider stripping whitespace from extracted IDs.If the input contains spaces after commas (e.g.,
"id1, id2"), the resulting list will include leading whitespace ([" id2"]), which could cause silent lookup failures.💡 Suggested improvement
def extract_product_ids(product_ids: str) -> list[str]: """Extract product IDs from a comma-separated string.""" - return product_ids.split(",") + return [pid.strip() for pid in product_ids.split(",")]
fab4173 to
59c9c84
Compare
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@pyproject.toml`:
- Around line 100-116: The pyproject currently lists "AAA" in the linter
`select` list but the flake8-aaa plugin is not enabled in dependencies or
pre-commit `additional_dependencies`, causing the AAA rules to have no effect;
either remove "AAA" from the `select` array (the `select = ["AAA", "E999",
"WPS"]` line) or explicitly enable flake8-aaa by adding it to the project
dependencies and to the pre-commit hook `additional_dependencies` (or add a
clear inline comment next to `select` explaining this is intentional until
flake8-aaa is re-enabled).
🧹 Nitpick comments (3)
pyproject.toml (1)
119-148: Acknowledge technical debt in per-file-ignores.The comment "To be fixed and removed" appropriately documents these suppressions as technical debt. Consider tracking this in an issue to ensure it's addressed incrementally.
Would you like me to open an issue to track the gradual removal of these per-file-ignores?
mpt_extension_sdk/runtime/swoext.py (1)
30-37: Avoid list comprehension for side effects.Good to see the iterator is now consumed (prior issue resolved), but using a list comprehension only for side effects is non-idiomatic; a simple loop is clearer and avoids building an unused list.
♻️ Suggested refactor
cmds = map( import_string, ( "mpt_extension_sdk.runtime.commands.run.run", "mpt_extension_sdk.runtime.commands.django.django", ), ) -[cli.add_command(cmd) for cmd in cmds] +for cmd in cmds: + cli.add_command(cmd)mpt_extension_sdk/runtime/djapp/conf/product_utils.py (1)
4-6: Consider trimming/ignoring empty IDs inextract_product_ids.This avoids accidental whitespace/empty entries when settings are comma-separated.
♻️ Suggested tweak
def extract_product_ids(product_ids: str) -> list[str]: """Extract product IDs from a comma-separated string.""" - return product_ids.split(",") + return [pid.strip() for pid in product_ids.split(",") if pid.strip()]
9299cb5 to
7ccc87e
Compare
|
@CodeRabbit review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@pyproject.toml`:
- Around line 46-66: The dev dependency pin for ruff in pyproject.toml is set to
an exact version ("ruff==0.14.11") which violates the project's minor-version
wildcard policy; update the entry in the dev = [ ... ] list so the ruff pin
reads "ruff==0.14.*" (replace the exact pin in the line containing
ruff==0.14.11) while keeping the existing comment intact.
🧹 Nitpick comments (3)
mpt_extension_sdk/runtime/swoext.py (1)
30-37: Avoid list comprehension for side effects.
Using a plain loop keeps intent clear and avoids style-linter complaints.♻️ Suggested refactor
cmds = map( import_string, ( "mpt_extension_sdk.runtime.commands.run.run", "mpt_extension_sdk.runtime.commands.django.django", ), ) -[cli.add_command(cmd) for cmd in cmds] +for cmd in cmds: + cli.add_command(cmd)mpt_extension_sdk/runtime/djapp/conf/product_utils.py (1)
4-6: Trim and drop empty IDs when splitting.
split(",")preserves whitespace and yields""for trailing commas; consider stripping and filtering to avoid invalid IDs.♻️ Suggested tweak
- return product_ids.split(",") + return [pid.strip() for pid in product_ids.split(",") if pid.strip()]pyproject.toml (1)
97-148: Consider re‑enabling flake8‑aaa if AAA enforcement is desired.Line 116 drops
AAAfromselect, which makes the config consistent with the commented‑outflake8-aaadependency. If AAA checks are still required, re‑enable the plugin and addAAAback toselect(plus pre‑commit).As per coding guidelines.🔧 Example change (when re‑enabling flake8‑aaa)
-select = ["E999", "WPS"] +select = ["AAA", "E999", "WPS"]
7ccc87e to
bba4a91
Compare
Bumps the python-development group with 15 updates: | Package | From | To | | --- | --- | --- | | [freezegun](https://github.com/spulec/freezegun) | `1.4.0` | `1.5.5` | | [ipython](https://github.com/ipython/ipython) | `8.38.0` | `9.9.0` | | [mypy](https://github.com/python/mypy) | `1.8.0` | `1.19.1` | | [pre-commit](https://github.com/pre-commit/pre-commit) | `3.6.2` | `4.5.1` | | [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.2` | | [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.0.0` | | [pytest-deadfixtures](https://github.com/jllorencetti/pytest-deadfixtures) | `2.2.1` | `3.1.0` | | [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.7.0` | `4.11.1` | | [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.12.0` | `3.15.1` | | [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `3.15.0` | `4.0.1` | | [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.5.0` | `3.8.0` | | [responses](https://github.com/getsentry/responses) | `0.24.1` | `0.25.8` | | [ruff](https://github.com/astral-sh/ruff) | `0.12.11` | `0.14.13` | | [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.31.0.20240406` | `2.32.4.20260107` | | [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide) | `1.3.0` | `1.5.0` | Updates `freezegun` from 1.4.0 to 1.5.5 - [Release notes](https://github.com/spulec/freezegun/releases) - [Changelog](https://github.com/spulec/freezegun/blob/master/CHANGELOG) - [Commits](spulec/freezegun@1.4.0...1.5.5) Updates `ipython` from 8.38.0 to 9.9.0 - [Release notes](https://github.com/ipython/ipython/releases) - [Commits](ipython/ipython@8.38.0...9.9.0) Updates `mypy` from 1.8.0 to 1.19.1 - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](python/mypy@v1.8.0...v1.19.1) Updates `pre-commit` from 3.6.2 to 4.5.1 - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](pre-commit/pre-commit@v3.6.2...v4.5.1) Updates `pytest` from 7.4.4 to 9.0.2 - [Release notes](https://github.com/pytest-dev/pytest/releases) - [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest@7.4.4...9.0.2) Updates `pytest-cov` from 4.1.0 to 7.0.0 - [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst) - [Commits](pytest-dev/pytest-cov@v4.1.0...v7.0.0) Updates `pytest-deadfixtures` from 2.2.1 to 3.1.0 - [Release notes](https://github.com/jllorencetti/pytest-deadfixtures/releases) - [Changelog](https://github.com/jllorencetti/pytest-deadfixtures/blob/main/CHANGES.rst) - [Commits](jllorencetti/pytest-deadfixtures@2.2.1...3.1.0) Updates `pytest-django` from 4.7.0 to 4.11.1 - [Release notes](https://github.com/pytest-dev/pytest-django/releases) - [Changelog](https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst) - [Commits](pytest-dev/pytest-django@v4.7.0...v4.11.1) Updates `pytest-mock` from 3.12.0 to 3.15.1 - [Release notes](https://github.com/pytest-dev/pytest-mock/releases) - [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest-mock@v3.12.0...v3.15.1) Updates `pytest-randomly` from 3.15.0 to 4.0.1 - [Changelog](https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst) - [Commits](pytest-dev/pytest-randomly@3.15.0...4.0.1) Updates `pytest-xdist` from 3.5.0 to 3.8.0 - [Release notes](https://github.com/pytest-dev/pytest-xdist/releases) - [Changelog](https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst) - [Commits](pytest-dev/pytest-xdist@v3.5.0...v3.8.0) Updates `responses` from 0.24.1 to 0.25.8 - [Release notes](https://github.com/getsentry/responses/releases) - [Changelog](https://github.com/getsentry/responses/blob/master/CHANGES) - [Commits](getsentry/responses@0.24.1...0.25.8) Updates `ruff` from 0.12.11 to 0.14.13 - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.12.11...0.14.13) Updates `types-requests` from 2.31.0.20240406 to 2.32.4.20260107 - [Commits](https://github.com/typeshed-internal/stub_uploader/commits) Updates `wemake-python-styleguide` from 1.3.0 to 1.5.0 - [Release notes](https://github.com/wemake-services/wemake-python-styleguide/releases) - [Changelog](https://github.com/wemake-services/wemake-python-styleguide/blob/master/CHANGELOG.md) - [Commits](wemake-services/wemake-python-styleguide@1.3.0...1.5.0) --- updated-dependencies: - dependency-name: freezegun dependency-version: 1.5.5 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-development - dependency-name: ipython dependency-version: 9.9.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: python-development - dependency-name: mypy dependency-version: 1.19.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-development - dependency-name: pre-commit dependency-version: 4.5.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: python-development - dependency-name: pytest dependency-version: 9.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: python-development - dependency-name: pytest-cov dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: python-development - dependency-name: pytest-deadfixtures dependency-version: 3.1.0 dependency-type: direct:development update-type: version-update:semver-major dependency-group: python-development - dependency-name: pytest-django dependency-version: 4.11.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-development - dependency-name: pytest-mock dependency-version: 3.15.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-development - dependency-name: pytest-randomly dependency-version: 4.0.1 dependency-type: direct:development update-type: version-update:semver-major dependency-group: python-development - dependency-name: pytest-xdist dependency-version: 3.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-development - dependency-name: responses dependency-version: 0.25.8 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-development - dependency-name: ruff dependency-version: 0.14.13 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-development - dependency-name: types-requests dependency-version: 2.32.4.20260107 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-development - dependency-name: wemake-python-styleguide dependency-version: 1.5.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: python-development ... Signed-off-by: dependabot[bot] <support@github.com>
bba4a91 to
d41902c
Compare
|



Bumps the python-development group with 15 updates:
1.4.01.5.58.38.09.9.01.8.01.19.13.6.24.5.17.4.49.0.24.1.07.0.02.2.13.1.04.7.04.11.13.12.03.15.13.15.04.0.13.5.03.8.00.24.10.25.80.12.110.14.132.31.0.202404062.32.4.202601071.3.01.5.0Updates
freezegunfrom 1.4.0 to 1.5.5Changelog
Sourced from freezegun's changelog.
Commits
c9bf52cIncrease version number0f2bd7eMerge pull request #582 from spulec/fixture-called-funca608055Allow parametrized arguments with name 'func'2bb4711Increase version number7599eeeAdd 1.5.4 release notes0d00e7dMerge pull request #579 from zsh8/decorate_generator10c93f2fix: preserve functionality in pytest yield fixturesd2e0a00Increase version number6229e27Add 1.5.3 release notes3111775Merge pull request #576 from spulec/support-fixtures-pytest-840Updates
ipythonfrom 8.38.0 to 9.9.0Commits
0c28fe5release 9.9.0b33b134whats new 9.9 (#15113)3841c05whats new 990423da8Stop assuming that memory addresses are signed (#15111)4d0cb19Stop assuming that memory addresses are signed4d71bcfFix completions for methods starting with_(#15106)28d83b9fix-test74bf6d0add-end-to-end-teste62c4bafix-completions-for-private-attr11e1f40Add prompt_toolkit's unix_word_rubout to assignable commands for shortcuts (#...Updates
mypyfrom 1.8.0 to 1.19.1Changelog
Sourced from mypy's changelog.
... (truncated)
Commits
412c19aBump version to 1.19.120aea0aUpdate changelog for 1.19.1 (#20414)2b23b50Serialize raw errors in cache metas (#20372)f60f90fFail on PyPy in main instead of setup.py (#20389)58d485bFail with an explicit error on PyPy (#20384)a4b31a2Allowtypes.NoneTypein match cases (#20383)8a6eff4[mypyc] fix generator regression with empty tuple (#20371)70eceeaFix noncommutative joins with bounded TypeVars (#20345)3890fc4Fix crash involving Unpack-ed TypeVarTuple (#20323)c93d917Fix crash on star import of redefinition (#20333)Updates
pre-commitfrom 3.6.2 to 4.5.1Release notes
Sourced from pre-commit's releases.
... (truncated)
Changelog
Sourced from pre-commit's changelog.
... (truncated)
Commits
8a0630cv4.5.1fcbc745Merge pull request #3597 from pre-commit/empty-setup-py51592eefix python local template when artifact dirs are present67e8fafMerge pull request #3596 from pre-commit/pre-commit-ci-update-configc251e6b[pre-commit.ci] pre-commit autoupdate98ccafaMerge pull request #3593 from pre-commit/pre-commit-ci-update-config4895355[pre-commit.ci] pre-commit autoupdate2cedd58Merge pull request #3588 from pre-commit/pre-commit-ci-update-config465192d[pre-commit.ci] pre-commit autoupdatefd42f96Merge pull request #3586 from pre-commit/zipapp-sha256-file-not-neededUpdates
pytestfrom 7.4.4 to 9.0.2Release notes
Sourced from pytest's releases.
... (truncated)
Commits
3d10b51Prepare release version 9.0.2188750bMerge pull request #14030 from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...b7d7befMerge pull request #14014 from bluetech/compat-notebd08e85Merge pull request #14013 from pytest-dev/patchback/backports/9.0.x/922b60377...bc78386Add CLI options reference documentation (#13930)5a4e398Fix docs typo (#14005) (#14008)d7ae6dfMerge pull request #14006 from pytest-dev/maintenance/update-plugin-list-tmpl...556f6a2pre-commit: fix rst-lint after new release (#13999) (#14001)c60fbe6Fix quadratic-time behavior when handlingunittestsubtests in Python 3.10 ...73d9b01Merge pull request #13995 from nicoddemus/patchback/backports/9.0.x/1b5200c0f...Updates
pytest-covfrom 4.1.0 to 7.0.0Changelog
Sourced from pytest-cov's changelog.
... (truncated)
Commits
224d896Bump version: 6.3.0 → 7.0.073424e3Cleanup the docs a bit.36f1cc2Bump pins in template.f299c59Bump the github-actions group with 2 updates25f0b2eUpdate docs/config.rstbb23eacImprove configuration docsa19531eSwitch from build/pre-commit to uv/prek - this should make this faster.82f9993Update changelog.211b5cdFix links.97aadd7Update some ci config, reformat and apply some lint fixes.Updates
pytest-deadfixturesfrom 2.2.1 to 3.1.0Release notes
Sourced from pytest-deadfixtures's releases.
Changelog
Sourced from pytest-deadfixtures's changelog.
Commits
58fd817Remove license classifierfef94a5Add documentation for ignoring specific fixtures33a4a02Add support for ignoring specific fixtures7eae1aeFixes code formate6dbe8eadd unused fixtures count28605dcRun tests on supported Python versionsbdae857Bump actions/checkout from 4 to 5f5e6c4aBump actions/setup-python from 5 to 65abe1f1add support 3.12 and 3.13 python, min python set 3.8ff9bf35add support 3.12 and 3.13 python, min python set 3.8Updates
pytest-djangofrom 4.7.0 to 4.11.1Release notes
Sourced from pytest-django's releases.
Changelog
Sourced from pytest-django's changelog.
... (truncated)
Commits
5ada9c1Release 4.11.1cf3f0bbfixtures: fixup a regression in previous release for TestCase multi-db support6d5c272Release 4.11.08000db0Only setup and serialize databases as needed by tests6f7fc26Add optional integration of pytest into django'smanage.py test3071a66docs/conf.py: format with ruff format3f44e50fixtures: avoid unnecessary closureb732869Remove testing on MyISAM (#1180)e362f4cAdd support for Django 5.2 (#1179)d8dc3d9Release 4.10.0Updates
pytest-mockfrom 3.12.0 to 3.15.1Release notes
Sourced from pytest-mock's releases.
Changelog
Sourced from pytest-mock's changelog.
Commits
e1b5c62Release 3.15.1184eb19Setspy_return_iteronly when explicitly requested (#537)4fa0088[pre-commit.ci] pre-commit autoupdate (#536)f5aff33Fix test failure with pytest 8+ and verbose mode (#535)adc4187Bump actions/setup-python from 5 to 6 in the github-actions group (#533)95ad570[pre-commit.ci] pre-commit autoupdate (#532)e696bf0Fix standalone mock support (#531)5b29b03Fix gen-release-notes script7d22ef4Merge pull request #528 from pytest-dev/release-3.15.090b29f8Update CHANGELOG for 3.15.0Updates
pytest-randomlyfrom 3.15.0 to 4.0.1Changelog
Sourced from pytest-randomly's changelog.
Commits
50de096Version 4.0.1f9406ecModify Numpy seed restriction (#691)22049aaRemove the random state caching (#690)ded2e54Version 4.0.0cb9b861Move from MD5 to CRC32 for hashing test IDs (#688)bd697bdUse a different random seed per test (#687)acadf46Generate default seed on demand (#685)f818056Support Python 3.14 (#684)456f787Drop unused import of xdiste00b782[pre-commit.ci] pre-commit autoupdate (#682)Updates
pytest-xdistfrom 3.5.0 to 3.8.0Changelog
Sourced from pytest-xdist's changelog.
... (truncated)
Commits
1e3e4dcRelease 3.8.0600aad5Ensure all xdist group names are strings (#1216)9d7ba5bAdd--no-loadscope-reorderand--loadscope-reorderoptions (#1217)532f07fMerge pul...Description has been truncated