Repository navigation
Conversation
…thon public surface hashes (aoto-tech#76) - Format Python argument type annotations and function return types in surface parts - Prefix async functions with py:async_function: - Extract public class methods and async methods into py:class_member parts - Support surface_part_name resolution for py:async_function: and py:class_member: - Add comprehensive regression test suite for bug aoto-tech#76
premiuslol
left a comment
There was a problem hiding this comment.
Reviewed exact head 8acf87c09cfb0c14ac7cb8c980060539a0a41de5 against #76. The implementation preserves async/sync distinctions, argument and return annotations, and public class method signatures in the Python surface while keeping body-only changes out of the hash. Local validation on this exact head: npm run build passed; the combined module-resolution/review-regression run passed 89/91 with 1 skip, including the new bug #76 regression and the existing Python public-surface test. The sole failure was the known Windows interpreter-alias case in bug #54 (python resolving to the Microsoft Store stub), not a failure of this patch. I did not find a correctness issue within the requested scope.
|
Closing in favor of the updated, signed-off revision in #83. |
Summary
Fixes #76 by ensuring Python public API surface serialization preserves async vs sync distinctions, argument type annotations, return types, and class method signatures.
Changes
:type) alongside default values infunction_signature.py:async_function:prefix (and included return annotations:return_type).__init__) in class surface representations aspy:class_member:<class>.<method|async_method>:<name>(<signature>):<returns>.surface_part_nameto resolve top-level names forpy:async_function:andpy:class_member:.tests/module-resolution.test.mjsand added regression test for bug bug: [P2] Python public API surface hashes ignore async, type annotation, and method changes #76 intests/review-regressions.test.mjs.Closes #76