{"id":1122,"date":"2013-09-15T21:04:36","date_gmt":"2013-09-15T21:04:36","guid":{"rendered":"http:\/\/blog.filipesaraiva.info\/?p=1122"},"modified":"2013-12-28T17:21:34","modified_gmt":"2013-12-28T17:21:34","slug":"side-panels-in-python-backend-for-cantor-help-and-variable-management","status":"publish","type":"post","link":"https:\/\/filipe.saraiva.tec.br\/blog\/?p=1122","title":{"rendered":"Side panels in Python Backend for Cantor: Help and Variable Management"},"content":{"rendered":"<p style=\"text-align: justify;\">In last weeks I developed some new features to python backend for Cantor. In this post I will write about two of their: the help and the variable management, implemented as panels.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_help_panel.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1133\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1133\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel.png\" data-orig-size=\"322,648\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_help_panel\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel-149x300.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel.png\" class=\"size-full wp-image-1133\" alt=\"python_backend_help_panel\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_help_panel.png\" width=\"322\" height=\"648\" srcset=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel.png 322w, https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel-149x300.png 149w\" sizes=\"auto, (max-width: 322px) 100vw, 322px\" \/><\/a> <a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1132\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1132\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management.png\" data-orig-size=\"350,648\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_variable_management\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management-162x300.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management.png\" class=\"size-full wp-image-1132 alignright\" alt=\"python_backend_variable_management\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management.png\" width=\"350\" height=\"648\" srcset=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management.png 350w, https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management-162x300.png 162w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">\u00a0<em>Help Panel on left; Variable Management Panel on right<\/em><\/p>\n<p style=\"text-align: justify;\"><strong>Help panel<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong><\/strong>Help panel shows the help output in a separated panel, facilitating the consult of this information. To use it, simply use help command as in python interactive mode, as in example below:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1131\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1131\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_1.png\" data-orig-size=\"1366,737\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_help_panel_usecase_1\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_1-300x161.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_1-1024x552.png\" class=\"aligncenter size-large wp-image-1131\" alt=\"python_backend_help_panel_usecase_1\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_1-1024x552.png\" width=\"698\" height=\"375\" srcset=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_1-1024x552.png 1024w, https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_1-300x161.png 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Below a bigger help output, from a python module:<\/p>\n<p style=\"text-align: justify;\">\u00a0<a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_2.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1130\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1130\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_2.png\" data-orig-size=\"1366,737\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_help_panel_usecase_2\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_2-300x161.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_2-1024x552.png\" class=\"aligncenter size-large wp-image-1130\" alt=\"python_backend_help_panel_usecase_2\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_2-1024x552.png\" width=\"698\" height=\"375\" srcset=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_2-1024x552.png 1024w, https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_help_panel_usecase_2-300x161.png 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">In previous picture, did you see some change in variable management panel?<\/p>\n<p style=\"text-align: justify;\"><strong>Variable Management panel<\/strong><\/p>\n<p style=\"text-align: justify;\"><strong><\/strong>Variable management panel is a great feature provide by Cantor, but until now just Octave backend had it. This feature show the variables defined in the session, their values, and allow some interesting functions to manipulate these variables.<\/p>\n<p style=\"text-align: justify;\">You can define a lot of variables in python session and these variables will be shown in the panel. See:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1129\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1129\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase1.png\" data-orig-size=\"1366,737\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_variable_management_usecase1\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase1-300x161.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase1-1024x552.png\" class=\"aligncenter size-large wp-image-1129\" alt=\"python_backend_variable_management_usecase1\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase1-1024x552.png\" width=\"698\" height=\"375\" srcset=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase1-1024x552.png 1024w, https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase1-300x161.png 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">In previous picture, I defined a integer variables <em>x<\/em> and <em>y<\/em>, a string <em>a<\/em>, and two modules: <em>numpy<\/em> and scipy, this last as <em>sc<\/em>. All this values are shown in panel.<\/p>\n<p style=\"text-align: justify;\">Now I will change some values defined previously and will add some others:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase3.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1127\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1127\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase3.png\" data-orig-size=\"1366,737\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_variable_management_usecase3\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase3-300x161.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase3-1024x552.png\" class=\"aligncenter size-large wp-image-1127\" alt=\"python_backend_variable_management_usecase3\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase3-1024x552.png\" width=\"698\" height=\"375\" srcset=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase3-1024x552.png 1024w, https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase3-300x161.png 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">See, now I defined a variable <em>aa<\/em> by the concatenation of two <em>a<\/em>&#8216;s; the value of <em>a<\/em> is now <em>aa<\/em>; <em>div<\/em> is the division of <em>y<\/em> by <em>x.<\/em> I have a 2-dimensional matrix <em>mtr<\/em> defined by matrix function from <em>numpy<\/em> module; a python class <em>HelloWorldClass<\/em> and a object <em>hello<\/em>.<\/p>\n<p style=\"text-align: justify;\">I can change the value of some these variable manipulating their values in the panel. For example, I can rewrite the <em>x<\/em> variable from 35 to 350, clicking in value column and typing 350.<\/p>\n<p style=\"text-align: justify;\">But the more interesting features are provide by the buttons bellow this panel. These buttons load python scripts to run some feature. There are: add variable, load variables from a file, save variables to a file and clear all variables in the session.<\/p>\n<p style=\"text-align: justify;\">Add variable is quite simple: a dialog is open and you type the variable and their value:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase4.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1126\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1126\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase4.png\" data-orig-size=\"313,207\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_variable_management_usecase4\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase4-300x198.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase4.png\" class=\"aligncenter size-full wp-image-1126\" alt=\"python_backend_variable_management_usecase4\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase4.png\" width=\"313\" height=\"207\" srcset=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase4.png 313w, https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase4-300x198.png 300w\" sizes=\"auto, (max-width: 313px) 100vw, 313px\" \/><\/a>Save\/Load use <a href=\"http:\/\/docs.python.org\/2\/library\/shelve.html\" target=\"_blank\">shelve<\/a> module to save and load the variables of the session. But, it is important to say, this feature don&#8217;t save all the variables because shelve module have some limitations. For example, I saved this session to a file named &#8220;python_session.txt&#8221;. The python code loaded is:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase5.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1125\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1125\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase5.png\" data-orig-size=\"954,147\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_variable_management_usecase5\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase5-300x46.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase5.png\" class=\"aligncenter size-full wp-image-1125\" alt=\"python_backend_variable_management_usecase5\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase5.png\" width=\"730\" height=\"147\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">After save, I will clear the session. The python code loaded is:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase6.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1124\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1124\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase6.png\" data-orig-size=\"913,81\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_variable_management_usecase6\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase6-300x26.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase6.png\" class=\"aligncenter size-full wp-image-1124\" alt=\"python_backend_variable_management_usecase6\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase6.png\" width=\"913\" height=\"81\" srcset=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase6.png 913w, https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase6-300x26.png 300w\" sizes=\"auto, (max-width: 913px) 100vw, 913px\" \/><\/a>And, finally, I will load the variables. The python code loaded ans the variable panel is show below:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase8.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1134\" data-permalink=\"https:\/\/filipe.saraiva.tec.br\/blog\/?attachment_id=1134\" data-orig-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase8.png\" data-orig-size=\"1366,737\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"python_backend_variable_management_usecase8\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase8-300x161.png\" data-large-file=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase8-1024x552.png\" class=\"aligncenter size-large wp-image-1134\" alt=\"python_backend_variable_management_usecase8\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase8-1024x552.png\" width=\"698\" height=\"375\" srcset=\"https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase8-1024x552.png 1024w, https:\/\/filipe.saraiva.tec.br\/blog\/wp-content\/uploads\/2013\/09\/python_backend_variable_management_usecase8-300x161.png 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\"><strong>Conclusions<\/strong><\/p>\n<p style=\"text-align: justify;\">It is working now but I need some more tests, in special the save\/load python objects defined by user and modules.<\/p>\n<p style=\"text-align: justify;\">I would like to see some feedback from you. The code is hosted in python-backend branch from Cantor repository, so you can test it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In last weeks I developed some new features to python backend for Cantor. In this post I will write about two of their: the help and the variable management, implemented as panels. \u00a0Help Panel on left; Variable Management Panel on right Help panel Help panel shows the help output in a separated panel, facilitating the&hellip;&nbsp;<a href=\"https:\/\/filipe.saraiva.tec.br\/blog\/?p=1122\" class=\"\" rel=\"bookmark\">Continue a ler &raquo;<span class=\"screen-reader-text\">Side panels in Python Backend for Cantor: Help and Variable Management<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9],"tags":[58,48,11,47,101,26,51,109,104,41,52,108,80],"class_list":["post-1122","post","type-post","status-publish","format-standard","hentry","category-software-livre","tag-cantor","tag-comunidade","tag-desenvolvimento","tag-gsoc","tag-gsoc2013-python-backend","tag-kde","tag-planet-mageia-english","tag-planet-python","tag-planet-scipy","tag-planeta-psl-pi","tag-planetkde-english","tag-python","tag-python-backend"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1p2Jh-i6","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1122"}],"version-history":[{"count":6,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1122\/revisions"}],"predecessor-version":[{"id":1140,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1122\/revisions\/1140"}],"wp:attachment":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}