-
Notifications
You must be signed in to change notification settings - Fork 3
fix: Use pydantic compat validate where v2 was expected #51
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
fix: Use pydantic compat validate where v2 was expected #51
Conversation
- Updated the function name from `_model_validate_compat` to `model_validate_compat` for consistency and clarity. - Adjusted imports in `loader.py` and `sql_execution.py` to reflect the new function name. - Ensured all references to the function are updated accordingly in the codebase.
📝 WalkthroughWalkthroughThe private Pydantic compatibility helper 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 📜 Recent review detailsConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Disabled knowledge base sources:
📒 Files selected for processing (1)
🧰 Additional context used📓 Path-based instructions (2)**/*.py📄 CodeRabbit inference engine (.cursorrules)
Files:
deepnote_toolkit/**/*.py📄 CodeRabbit inference engine (.cursorrules)
Files:
🧬 Code graph analysis (1)deepnote_toolkit/sql/sql_execution.py (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
🔇 Additional comments (3)
✏️ Tip: You can disable this entire section by setting Comment |
|
📦 Python package built successfully!
|
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.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
deepnote_core/pydantic_compat_helpers.py (1)
48-55: Rename looks good.Function promoted to public API correctly. The
Anyreturn type is acceptable here given dynamic model class input.Consider: Other helpers (
_model_dump_compat,_model_fields_compat, etc.) still use underscore prefix. If they're also used externally, align naming.
🤖 Fix all issues with AI agents
In `@deepnote_toolkit/sql/sql_execution.py`:
- Around line 313-319: The except clause currently catches BaseException which
is too broad; change the exception handler around the call to
model_validate_compat(IntegrationFederatedAuthParams,
sql_alchemy_dict["federatedAuthParams"]) to catch Exception instead of
BaseException and keep the existing logger.exception("Invalid federated auth
params, try updating toolkit version") and return behavior so normal
system-exiting signals (KeyboardInterrupt, SystemExit, GeneratorExit) are not
swallowed.
📜 Review details
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
deepnote_core/config/loader.pydeepnote_core/pydantic_compat_helpers.pydeepnote_toolkit/sql/sql_execution.py
🧰 Additional context used
📓 Path-based instructions (2)
**/*.py
📄 CodeRabbit inference engine (.cursorrules)
**/*.py: Write clean, readable Python code following PEP 8 style guide
Use type hints with Optional[T] for parameters that can be None (not T = None)
Use explicit type hints for function parameters and return values
Maximum line length: 88 characters (Black default)
Use f-strings instead of .format() for string formatting
Use pathlib.Path for file path operations instead of os.path
Use black for code formatting
Use isort for import sorting (black profile)
Use flake8 for linting
Use early returns to reduce nesting and extract common checks into variables for readability
Use snake_case for variable and function names
Use PascalCase for class names
Use snake_case for file names
Support Python versions 3.9, 3.10, 3.11, 3.12, and 3.13
**/*.py: Follow PEP 8 with Black formatting (line length: 88)
Use isort with Black profile for import sorting
Use type hints consistently
Use docstrings for all functions/classes
Use f-strings instead of .format() for string formatting
Use pathlib.Path for file path operations instead of os.path
Always useOptional[T]for parameters that can be None (notT = None)
Use explicit type hints for function parameters and return values
Use snake_case for files, functions, and variables
Use PascalCase for classes
Use appropriate exception types with context logging for error handling
Handle Jupyter/IPython specific exceptions properly
Use early returns to reduce nesting and extract common checks into variables for readability
Use dictionary unpacking for headers (e.g.,headers = {"Content-Type": "application/json", **auth_headers})
Use space-separated format for CLI arguments (e.g.,--port 8080)
Files:
deepnote_toolkit/sql/sql_execution.pydeepnote_core/config/loader.pydeepnote_core/pydantic_compat_helpers.py
deepnote_toolkit/**/*.py
📄 CodeRabbit inference engine (.cursorrules)
deepnote_toolkit/**/*.py: Use dictionary unpacking for headers: headers = {"Content-Type": "application/json", **auth_headers}
Use appropriate exception types, log errors with context, and handle Jupyter/IPython specific exceptions properly
Document functions and classes with docstrings
Files:
deepnote_toolkit/sql/sql_execution.py
🧬 Code graph analysis (2)
deepnote_toolkit/sql/sql_execution.py (1)
deepnote_core/pydantic_compat_helpers.py (1)
model_validate_compat(48-55)
deepnote_core/config/loader.py (1)
deepnote_core/pydantic_compat_helpers.py (1)
model_validate_compat(48-55)
🪛 Ruff (0.14.11)
deepnote_core/pydantic_compat_helpers.py
48-48: Dynamically typed expressions (typing.Any) are disallowed in model_validate_compat
(ANN401)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (14)
- GitHub Check: Test - Python 3.12
- GitHub Check: Test - Python 3.11
- GitHub Check: Test - Python 3.10
- GitHub Check: Test - Python 3.9
- GitHub Check: Test - Python 3.13
- GitHub Check: Typecheck - 3.10
- GitHub Check: Typecheck - 3.12
- GitHub Check: Typecheck - 3.9
- GitHub Check: Typecheck - 3.13
- GitHub Check: Build and push artifacts for Python 3.11
- GitHub Check: Build and push artifacts for Python 3.12
- GitHub Check: Build and push artifacts for Python 3.10
- GitHub Check: Build and push artifacts for Python 3.13
- GitHub Check: Build and push artifacts for Python 3.9
🔇 Additional comments (5)
deepnote_toolkit/sql/sql_execution.py (2)
19-23: Import changes correct.Properly imports
model_validate_compatand removes unusedValidationError.
285-287: Correct usage of compat helper.deepnote_core/config/loader.py (3)
17-17: Import updated correctly.
111-111: Usage updated.
134-134: Usage updated.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #51 +/- ##
=======================================
Coverage 73.13% 73.14%
=======================================
Files 93 93
Lines 5193 5194 +1
Branches 758 758
=======================================
+ Hits 3798 3799 +1
Misses 1151 1151
Partials 244 244
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
|
🚀 Review App Deployment Started
|
_model_validate_compattomodel_validate_compatfor consistency and clarity.loader.pyandsql_execution.pyto reflect the new function name.Summary by CodeRabbit
Refactor
Bug Fixes
✏️ Tip: You can customize this high-level summary in your review settings.