-
Notifications
You must be signed in to change notification settings - Fork 45
[WIP] ssa: python support kwargs #1321
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
base: main
Are you sure you want to change the base?
Conversation
Code Review ResultsTodo List:
Review SummaryThis PR adds Python keyword arguments (kwargs) support to the SSA package. The implementation allows passing Issues FoundHigh Priority Issues1. Missing Error Handling in Type Assertions
2. Potential Memory Safety Issue 3. Magic String Constant Code Quality Issues4. Inconsistent Commenting 5. Complex Conditional Logic Architecture AssessmentPositive Aspects:
Areas for Improvement:
Recommendations
Overall, the feature implementation is on the right track but needs defensive programming practices and better error handling before merging. 👉 Want me to re-run this review? Just type |
Summary of ChangesHello @visualfc, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the Go-Python interoperability by enabling Go programs to call Python functions that accept keyword arguments ( Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
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.
Review: Python kwargs implementation needs defensive programming
Found several issues requiring attention:
• Missing bounds checking could cause runtime panics
• Unsafe type assertions need error handling
• Magic constants should be properly defined
• Complex conditional logic could be simplified for maintainability
The core kwargs functionality is well-designed, but needs defensive programming practices before merging.
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.
Code Review
This pull request introduces support for keyword arguments (kwargs
) when calling Python functions from Go. The implementation correctly identifies when a map[string]*py.Object
is passed as the last argument in a variadic function call, converts it to a Python dictionary using a helper function, and then uses PyObject_Call
to perform the call with both positional and keyword arguments. The changes are logical and well-contained. I have a couple of suggestions to improve the maintainability of the new code.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1321 +/- ##
==========================================
- Coverage 90.18% 90.04% -0.15%
==========================================
Files 43 43
Lines 12674 12696 +22
==========================================
+ Hits 11430 11432 +2
- Misses 1087 1106 +19
- Partials 157 158 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Code Review ResultsTodo List:
Review SummaryThis PR adds Python keyword arguments (kwargs) support to the SSA package. The implementation allows passing Issues FoundHigh Priority Issues1. Missing Error Handling in Type Assertions
2. Potential Memory Safety Issue 3. Missing Bounds Checking Code Quality Issues4. Inconsistent Commenting 5. Complex Conditional Logic 6. Magic String Dependency Architecture AssessmentPositive Aspects:
Areas for Improvement:
Recommendations
Specific Code IssuesThe implementation is functionally correct but needs defensive programming practices. The kwargs detection logic at lines 377-384 should be refactored for better readability and safety. Overall, the feature implementation is on the right track but needs defensive programming practices and better error handling before merging. 👉 Want me to re-run this review? Just type |
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.
Review Summary
This PR adds Python kwargs support to the SSA package. Found several issues requiring attention:
• Missing bounds checking in parameter access that could cause panics
• Unsafe type assertions without error handling
• Complex conditional logic that could be simplified for better readability
The implementation is functionally sound but needs defensive programming practices before merging.
e54cd3b
to
0ea6469
Compare
pass last map[string]*py.Object to kwargs. #1236
python
test lib
test main
demo
goplus/lib#20: add KwargsToDict