fix: sync uv.lock with pyproject.toml after python-deps bump#226
Merged
Conversation
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Greptile Summary
This PR syncs
uv.lockwithpyproject.tomlafter a dependency bump and makes two related cleanups: the CI lock-file assertion is tightened from--frozento--locked, and bothMemberRoleandAccessLevelenums are migrated from the older(str, Enum)mixin pattern toStrEnum.ci.yml): All fouruv sync --frozencalls are replaced withuv sync --locked.--frozenonly requires the lockfile to exist;--lockedadditionally asserts it is consistent withpyproject.toml, so future dep bumps without a corresponding lockfile regeneration will now fail fast in CI.api/db/models.py&api/dependencies.py:MemberRoleandAccessLevelare rewritten asenum.StrEnum/StrEnum, the idiomatic form since Python 3.11. Serialisation via Pydantic/SQLModel is unaffected because both forms expose the same.valuestrings to the ORM and JSON serialiser.Confidence Score: 5/5
Safe to merge — all changes are additive improvements with no behavioral regressions on the API or data layer.
The CI change tightens lockfile enforcement without breaking any existing workflow. The StrEnum migration uses stdlib semantics that are identical to the old (str, Enum) mixin for Pydantic/SQLModel serialisation purposes; the only observable difference (str() representation) is not exercised anywhere in the changed or adjacent code. No logic, schema, or auth contract is altered.
No files require special attention.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[uv sync in CI] --> B{flag used} B -- "--frozen (before)" --> C[Lockfile exists?\nYes → install from lockfile\nNo → fail] B -- "--locked (after)" --> D[Lockfile exists AND\nmatches pyproject.toml?\nYes → install\nNo → fail] E[Enum base class] --> F{pattern} F -- "str, Enum (before)" --> G["str(member) → 'ClassName.MEMBER'\nmember == 'value' → True\n.value → 'value'"] F -- "StrEnum (after)" --> H["str(member) → 'value'\nmember == 'value' → True\n.value → 'value'"]Reviews (1): Last reviewed commit: "ci: enforce uv sync --locked to catch lo..." | Re-trigger Greptile