Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Tristan Cavelier
erp5
Commits
d52666e7
Commit
d52666e7
authored
Nov 04, 2015
by
Ayush Tiwari
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_data_notebook bt5: Handle case for jupyter_code as comments , giving empty nodelist
parent
e5184879
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
78 additions
and
77 deletions
+78
-77
bt5/erp5_data_notebook/ExtensionTemplateItem/portal_components/extension.erp5.JupyterCompile.py
...teItem/portal_components/extension.erp5.JupyterCompile.py
+74
-73
bt5/erp5_data_notebook/ExtensionTemplateItem/portal_components/extension.erp5.JupyterCompile.xml
...eItem/portal_components/extension.erp5.JupyterCompile.xml
+4
-4
No files found.
bt5/erp5_data_notebook/ExtensionTemplateItem/portal_components/extension.erp5.JupyterCompile.py
View file @
d52666e7
...
@@ -58,7 +58,7 @@ def Base_compileJupyterCode(self, jupyter_code, old_local_variable_dict):
...
@@ -58,7 +58,7 @@ def Base_compileJupyterCode(self, jupyter_code, old_local_variable_dict):
# Saving the initial globals dict so as to compare it after code execution
# Saving the initial globals dict so as to compare it after code execution
globals_dict
=
globals
()
globals_dict
=
globals
()
g
[
'context'
]
=
self
g
[
'context'
]
=
self
result_string
=
None
result_string
=
''
ename
,
evalue
,
tb_list
=
None
,
None
,
None
ename
,
evalue
,
tb_list
=
None
,
None
,
None
# Update globals dict and use it while running exec command
# Update globals dict and use it while running exec command
g
.
update
(
old_local_variable_dict
[
'variables'
])
g
.
update
(
old_local_variable_dict
[
'variables'
])
...
@@ -69,9 +69,18 @@ def Base_compileJupyterCode(self, jupyter_code, old_local_variable_dict):
...
@@ -69,9 +69,18 @@ def Base_compileJupyterCode(self, jupyter_code, old_local_variable_dict):
# TODO: This can be refactored by using client side error handling instead of
# TODO: This can be refactored by using client side error handling instead of
# catching errors on server/erp5.
# catching errors on server/erp5.
status
=
u'ok'
status
=
u'ok'
local_variable_dict
=
old_local_variable_dict
# Execute only if jupyter_code is not empty
# Execute only if jupyter_code is not empty
if
jupyter_code
:
if
jupyter_code
:
# Create ast parse tree
ast_node
=
ast
.
parse
(
jupyter_code
)
# Get the node list from the parsed tree
nodelist
=
ast_node
.
body
# Handle case for empty nodelist(in case of comments as jupyter_code)
if
nodelist
:
# Import all the modules from local_variable_dict['imports']
# Import all the modules from local_variable_dict['imports']
# While any execution, in locals() dict, a module is saved as:
# While any execution, in locals() dict, a module is saved as:
# code : 'from os import path'
# code : 'from os import path'
...
@@ -81,11 +90,6 @@ def Base_compileJupyterCode(self, jupyter_code, old_local_variable_dict):
...
@@ -81,11 +90,6 @@ def Base_compileJupyterCode(self, jupyter_code, old_local_variable_dict):
import_statement_code
=
'import %s as %s'
%
(
v
,
k
)
import_statement_code
=
'import %s as %s'
%
(
v
,
k
)
exec
(
import_statement_code
,
g
,
g
)
exec
(
import_statement_code
,
g
,
g
)
# Create ast parse tree
ast_node
=
ast
.
parse
(
jupyter_code
)
# Get the node list from the parsed tree
nodelist
=
ast_node
.
body
# If the last node is instance of ast.Expr, set its interactivity as 'last'
# If the last node is instance of ast.Expr, set its interactivity as 'last'
# This would be the case if the last node is expression
# This would be the case if the last node is expression
if
isinstance
(
nodelist
[
-
1
],
ast
.
Expr
):
if
isinstance
(
nodelist
[
-
1
],
ast
.
Expr
):
...
@@ -125,13 +129,10 @@ def Base_compileJupyterCode(self, jupyter_code, old_local_variable_dict):
...
@@ -125,13 +129,10 @@ def Base_compileJupyterCode(self, jupyter_code, old_local_variable_dict):
sys
.
stdout
=
old_stdout
sys
.
stdout
=
old_stdout
result_string
=
result
.
getvalue
()
result_string
=
result
.
getvalue
()
else
:
result_string
=
jupyter_code
# Difference between the globals variable before and after exec/eval so that
# Difference between the globals variable before and after exec/eval so that
# we don't have to save unnecessary variables in database which might or might
# we don't have to save unnecessary variables in database which might or might
# not be picklabale
# not be picklabale
local_variable_dict
=
old_local_variable_dict
local_variable_dict_new
=
{
key
:
val
for
key
,
val
in
g
.
items
()
if
key
not
in
globals_dict
.
keys
()}
local_variable_dict_new
=
{
key
:
val
for
key
,
val
in
g
.
items
()
if
key
not
in
globals_dict
.
keys
()}
local_variable_dict
[
'variables'
].
update
(
local_variable_dict_new
)
local_variable_dict
[
'variables'
].
update
(
local_variable_dict_new
)
...
...
bt5/erp5_data_notebook/ExtensionTemplateItem/portal_components/extension.erp5.JupyterCompile.xml
View file @
d52666e7
...
@@ -47,10 +47,10 @@
...
@@ -47,10 +47,10 @@
<value>
<value>
<tuple>
<tuple>
<string>
W: 50, 2: Using the global statement (global-statement)
</string>
<string>
W: 50, 2: Using the global statement (global-statement)
</string>
<string>
W:
82, 6
: Use of exec (exec-used)
</string>
<string>
W:
91, 8
: Use of exec (exec-used)
</string>
<string>
W:11
1, 6
: Use of exec (exec-used)
</string>
<string>
W:11
5, 8
: Use of exec (exec-used)
</string>
<string>
W:1
17, 6
: Use of exec (exec-used)
</string>
<string>
W:1
21, 8
: Use of exec (exec-used)
</string>
<string>
W:21
2
, 4: Using the global statement (global-statement)
</string>
<string>
W:21
3
, 4: Using the global statement (global-statement)
</string>
</tuple>
</tuple>
</value>
</value>
</item>
</item>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment