Add utilities for auto-generating param Python types#636
Draft
philippjfr wants to merge 2 commits intomainfrom
Draft
Add utilities for auto-generating param Python types#636philippjfr wants to merge 2 commits intomainfrom
philippjfr wants to merge 2 commits intomainfrom
Conversation
Collaborator
|
Do you handle adding required imports to the top of the module? That was one of the hard things for me when experimenting with stubs for Panel as you might have to add some deeply nested Bokeh import. Update: ahh. It's on the todo list. |
Collaborator
|
My vote would go for using | over Union if possible. But it might not matter to the end user not reading the code. VS Code translates to | in tooltips automatically I believe. |
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.
This is an attempt at implementing a solution for #376
Major, major HACKALERT for now as there a large number of unsafe/incomplete details here:
pytypeproperties not completeParameterizedtoast.ClassDefnode not entirely safeParametertoast.Assign/ast.AnnAssignnode not entirely safepytypeproperty into valid type definition string not safeint | NoneorUnion[int, None]rather thanOptional[int]pname =pname: int =will not worktypingmodule has been imported. Should eventually check if typing is imported and allow configurability betweenimport typingandfrom typing import ...ClassSelector/Listclass_definition from the ast node), but e.g.param.Array->np.ndarraywould require checking if numpy has been imported and if not adding the import.Further work for viability:
Example
Here is an example of the types generated for
panel.viewable.Layoutable(docdefinitions omitted for readability):