-
Notifications
You must be signed in to change notification settings - Fork 636
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
Improve namespace listing using CPython3 engine #10950
Conversation
Namespace listing using dir would only provide non meaningful results using the CPython3 engine. This is now fixed by preloading names by default globally.
{ | ||
var scope = Py.CreateScope(globalScopeName); | ||
// Allows discoverability of modules by inspecting their attributes | ||
scope.Exec(@" |
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.
I'm confused why this only needed to be run on this scope...
I guess it may be related to the sys.path
issue @reddyashish is looking at and some confusion I have around the lifetime of ironPython engines vs PythonNet ones.
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.
Yes. From what I could see, loaded modules stay alive beyond a single Python node evaluation. It's like they stay alive with the process. Doing it here makes more sense clr.setPreload(True)
, not only because it's easier, but also because once a module is loaded you can't reload it.
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.
thanks for fixing this one!
Namespace listing using dir would only provide non meaningful results using the CPython3 engine. This is now fixed by preloading names by default globally.
… scrollviewers (#10932) * T1.1 Code Migration (#4) * add ScriptMigrator * Add visual difference viewer * Update PythonMigrationViewExtension.cs * Add tooltip description to migration assistant * updates * comment updates * comment updates * Update PythonMigrationViewExtension.csproj * T1.2 accept/reject code changes (#5) * add ScriptMigrator * Add visual difference viewer * Added methods for updating the ScriptEditors with the migrated code * Update PythonMigrationViewExtension.cs * Add tooltip description to migration assistant * updates * comment updates * comment updates * Update ScriptEditorWindow.xaml.cs * Update PythonMigrationViewExtension.csproj * Update PythonMigrationViewExtension.csproj * comment updates * Revert "comment updates" This reverts commit 2d2332a. * comment updates * Update PythonMigrationAssistantViewModel.cs * comment updates 2 * update engine version when migrating code * extension and test updates * T1.3 save python2 backup file on migration (#6) * add ScriptMigrator * Add visual difference viewer * Added methods for updating the ScriptEditors with the migrated code * Update PythonMigrationViewExtension.cs * add mechanisme to save Python 2 backup * Add tooltip description to migration assistant * updates * comment updates * comment updates * Update ScriptEditorWindow.xaml.cs * Update PythonMigrationViewExtension.csproj * Update PythonMigrationViewExtension.csproj * comment updates * Revert "comment updates" This reverts commit 2d2332a. * comment updates * Update PythonMigrationAssistantViewModel.cs * comment updates 2 * small clean ups * Update PythonMigrationAssistantViewModel.cs * add 2to3 icon * comment updates * GraphPythonDependencies changes * make event internal * fix build failure * update license files, MigrationAssitantClicked event and PythonMigrationAssistantTests * clean up * clean up * update licence files * make MigrateCode internal * comments update * unsubscribe from ScriptEditorWindow closed * Add 'Before' and 'After' properties (for some reason they where gone) * Modify the VisualDifferenceViewer so text wraps instead of using scroll viewers * remove diffplex.wpf reference * refactor internal methods to bail early * rename IronPython dependency method * switch custom node python deps eval to short-circuit and add xml comment * rename & move CPython deps method around * prep support for handling dyn and dyf in migration backup * handle dyf vs dyn difference in migration backup events were not properly getting triggered when opening custom nodes either, fixed that too * notify user that a backup file is created on Python migration * fix tests test project was unloaded * move CustomNodeItem class as private to the warning dialog that needs it * mark the PythonNode script setter for migration as Obsolet this is so it raises warnings in the compiler and that anyone using this will know not to depend on a temporary feature * change migration assistant viewmodel to depend on workspace and pathmanager not DynamoViewModel * DYN-2990 address accessing null reference fixes DYN-2990 * remove prism reference * add note to obsolete MigrateCode method * move migration assistant viewmodel to its namesake namespace * make GraphPythonDependencies depend on interfaces instead of general ViewLoadedParams * revert graph python dependency evaluation logic to not be short-circuited this is because the dependency map dictionary is used in the UI warnings modal * update comment * fix botched namespace change * parametrise the differ window initial width * Modify the VisualDifferenceViewer so text wraps instead of using scroll viewers * remove diffplex.wpf reference * Python.NET binaries update (PR9) (#10945) * Improve namespace listing using CPython3 engine (#10950) Namespace listing using dir would only provide non meaningful results using the CPython3 engine. This is now fixed by preloading names by default globally. * parametrise the differ window initial width * resolve conflict between the 2 python migration viewmodels * adjust initial window widths to keep text same wrapping also allow for slightly larger vertical height for Before/After label as it was hard to spot * update diff colours to Dynamo pallette * update splitter colour in side diff layout to be black * upgrade the inline display mode to also show fragments * update sizing of diff viewer * Update PythonMigrationViewExtensionTests.cs Co-authored-by: Radu Gidei <[email protected]> Co-authored-by: Martin Misol Monzo <[email protected]>
* T1.1 Code Migration (#4) * add ScriptMigrator * Add visual difference viewer * Update PythonMigrationViewExtension.cs * Add tooltip description to migration assistant * updates * comment updates * comment updates * Update PythonMigrationViewExtension.csproj * T1.2 accept/reject code changes (#5) * add ScriptMigrator * Add visual difference viewer * Added methods for updating the ScriptEditors with the migrated code * Update PythonMigrationViewExtension.cs * Add tooltip description to migration assistant * updates * comment updates * comment updates * Update ScriptEditorWindow.xaml.cs * Update PythonMigrationViewExtension.csproj * Update PythonMigrationViewExtension.csproj * comment updates * Revert "comment updates" This reverts commit 2d2332a. * comment updates * Update PythonMigrationAssistantViewModel.cs * comment updates 2 * update engine version when migrating code * extension and test updates * T1.3 save python2 backup file on migration (#6) * add ScriptMigrator * Add visual difference viewer * Added methods for updating the ScriptEditors with the migrated code * Update PythonMigrationViewExtension.cs * add mechanisme to save Python 2 backup * Add tooltip description to migration assistant * updates * comment updates * comment updates * Update ScriptEditorWindow.xaml.cs * Update PythonMigrationViewExtension.csproj * Update PythonMigrationViewExtension.csproj * comment updates * Revert "comment updates" This reverts commit 2d2332a. * comment updates * Update PythonMigrationAssistantViewModel.cs * comment updates 2 * small clean ups * Update PythonMigrationAssistantViewModel.cs * add 2to3 icon * comment updates * GraphPythonDependencies changes * make event internal * fix build failure * update license files, MigrationAssitantClicked event and PythonMigrationAssistantTests * clean up * clean up * update licence files * make MigrateCode internal * comments update * unsubscribe from ScriptEditorWindow closed * Add 'Before' and 'After' properties (for some reason they where gone) * Modify the VisualDifferenceViewer so text wraps instead of using scroll viewers * remove diffplex.wpf reference * Migration assistant warning dialog * refactor internal methods to bail early * rename IronPython dependency method * switch custom node python deps eval to short-circuit and add xml comment * rename & move CPython deps method around * prep support for handling dyn and dyf in migration backup * handle dyf vs dyn difference in migration backup events were not properly getting triggered when opening custom nodes either, fixed that too * notify user that a backup file is created on Python migration * fix tests test project was unloaded * move CustomNodeItem class as private to the warning dialog that needs it * mark the PythonNode script setter for migration as Obsolet this is so it raises warnings in the compiler and that anyone using this will know not to depend on a temporary feature * change migration assistant viewmodel to depend on workspace and pathmanager not DynamoViewModel * DYN-2990 address accessing null reference fixes DYN-2990 * remove prism reference * add note to obsolete MigrateCode method * move migration assistant viewmodel to its namesake namespace * make GraphPythonDependencies depend on interfaces instead of general ViewLoadedParams * revert graph python dependency evaluation logic to not be short-circuited this is because the dependency map dictionary is used in the UI warnings modal * update comment * fix botched namespace change * parametrise the differ window initial width * Modify the VisualDifferenceViewer so text wraps instead of using scroll viewers * remove diffplex.wpf reference * Python.NET binaries update (PR9) (#10945) * Improve namespace listing using CPython3 engine (#10950) Namespace listing using dir would only provide non meaningful results using the CPython3 engine. This is now fixed by preloading names by default globally. * parametrise the differ window initial width * resolve conflict between the 2 python migration viewmodels * adjust initial window widths to keep text same wrapping also allow for slightly larger vertical height for Before/After label as it was hard to spot * update diff colours to Dynamo pallette * update splitter colour in side diff layout to be black * upgrade the inline display mode to also show fragments * update sizing of diff viewer * update warning dialog * migration assistant warning save setting * Update PythonMigrationAssistantViewModel.cs * add dynamo version to file path * comment updates * only create warning dismiss file if accepted * comments updates 2 * Update PythonMigrationViewExtension.csproj * Update PythonMigrationAssistantViewModel.cs * add is test mode to legal message * comment updates * comment updates 2 * update migration assistant disclaimer window title Co-authored-by: Radu Gidei <[email protected]> Co-authored-by: Martin Misol Monzo <[email protected]>
Purpose
Namespace listing using dir would only provide non meaningful results
using the CPython3 engine. This is now fixed by preloading names by
default globally.
Declarations
Check these if you believe they are true
*.resx
filesReviewers
@mjkkirschner
FYIs
@DynamoDS/dynamo