fix: typing, add pyrefly, migrate to pixi#34
Conversation
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📝 WalkthroughWalkthroughMigrates CI from Poetry to pixi, updates workflow checkout actions, adds module-detection and extensive identity/hash APIs to EnvSpecBase and refactors EnvBase field declarations to runtime assignments, and removes the TestRegistry test class from tests/tests.py. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
snakemake_interface_software_deployment_plugins/__init__.py (1)
274-283:⚠️ Potential issue | 🟡 MinorPre-existing:
_managed_generic_hashnever persists the computed hash back toself.The computed hash is assigned to the local
storevariable but never written back to the instance attribute viasetattr(self, f"_managed_{kind}_store", store). This meanshash()anddeployment_hash()recompute the MD5 on every call instead of caching. Not introduced by this PR, but worth fixing while you're in this area.Proposed fix
def _managed_generic_hash(self, kind: str) -> str: - store = getattr(self, f"_managed_{kind}_store") - if store is None: + attr = f"_managed_{kind}_store" + store = getattr(self, attr) + if store is None: record_hash = f"record_{kind}" hash_object = hashlib.md5() if self.within is not None: getattr(self.within, record_hash)(hash_object) getattr(self, record_hash)(hash_object) store = hash_object.hexdigest() + setattr(self, attr, store) return store
🧹 Nitpick comments (3)
.github/workflows/release-please.yml (1)
14-16: Inconsistent checkout action versions across workflows.This file uses
actions/checkout@v6(line 25), while.github/workflows/test.ymluses@v5for the formatting and linting jobs (lines 15, 27) but@v6for the testing job (line 38). Consider aligning all checkout steps to the same version for consistency..github/workflows/test.yml (1)
15-15: Inconsistentactions/checkoutversions within the same workflow.The formatting and linting jobs use
actions/checkout@v5(lines 15, 27) while the testing job usesactions/checkout@v6(line 38). Pick one version consistently.Proposed fix
- name: Check out the code - uses: actions/checkout@v5 + uses: actions/checkout@v6 ... - name: Check out the code - uses: actions/checkout@v5 + uses: actions/checkout@v6Also applies to: 27-27, 38-38
snakemake_interface_software_deployment_plugins/__init__.py (1)
160-161:TSettingsTypeVar is unused in this file but exported as part of the public API.Confirmed that
TSettingsis not referenced within this file or elsewhere in the repository. However, since this is a plugin interface library, it appears to be intentionally exported for plugin implementations to use in their own type annotations. Consider adding a brief comment explaining its purpose as a TypeVar for plugin developers (e.g.,# TypeVar for plugin implementations to annotate Settings-compatible types).
🤖 I have created a release *beep* *boop* --- ## [0.9.1](v0.9.0...v0.9.1) (2026-02-13) ### Bug Fixes * typing, add pyrefly, migrate to pixi ([#34](#34)) ([6532631](6532631)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Summary by CodeRabbit
Chores
New Features
Refactor
Tests