[Erp5-report] r19585 - in /experimental/bt5/erp5_forge_experimental: ExtensionTemplateItem/...
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Feb 29 13:55:26 CET 2008
Author: luke
Date: Fri Feb 29 13:55:25 2008
New Revision: 19585
URL: http://svn.erp5.org?rev=19585&view=rev
Log:
2008-02-29 shufla
* some introspection system - fetching docstrings from Script (Python)
Added:
experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringAsList.xml
experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringMethod.xml
Modified:
experimental/bt5/erp5_forge_experimental/ExtensionTemplateItem/ForgeExperimentalTools.py
experimental/bt5/erp5_forge_experimental/bt/change_log
experimental/bt5/erp5_forge_experimental/bt/revision
experimental/bt5/erp5_forge_experimental/bt/version
Modified: experimental/bt5/erp5_forge_experimental/ExtensionTemplateItem/ForgeExperimentalTools.py
URL: http://svn.erp5.org/experimental/bt5/erp5_forge_experimental/ExtensionTemplateItem/ForgeExperimentalTools.py?rev=19585&r1=19584&r2=19585&view=diff
==============================================================================
--- experimental/bt5/erp5_forge_experimental/ExtensionTemplateItem/ForgeExperimentalTools.py (original)
+++ experimental/bt5/erp5_forge_experimental/ExtensionTemplateItem/ForgeExperimentalTools.py Fri Feb 29 13:55:25 2008
@@ -46,3 +46,21 @@
if regexp is not None:
return [q for q in dir_list if re.match(regexp,q)]
return dir_list
+
+def getPythonScriptDocString(script):
+ """Fetches Python (Script) docstring by analysing its body"""
+
+ docstring = ""
+ script_body = script.__dict__['_body']
+
+ body_start = script_body[0]
+
+ if body_start not in ['"',"'"]:
+ return docstring
+
+ if len(script_body.split(3*body_start)) > 1:
+ # for scripts with docstring """ or '''
+ return script_body.split(3*body_start)[1]
+ else:
+ # for scripts with docstring " or '
+ return script_body.split(body_start)[1]
Added: experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringAsList.xml
URL: http://svn.erp5.org/experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringAsList.xml?rev=19585&view=auto
==============================================================================
--- experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringAsList.xml (added)
+++ experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringAsList.xml Fri Feb 29 13:55:25 2008
@@ -1,0 +1,156 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+ <tuple/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>Python_magic</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>Script_magic</string> </key>
+ <value> <int>3</int> </value>
+ </item>
+ <item>
+ <key> <string>__ac_local_roles__</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_bind_names</string> </key>
+ <value>
+ <object>
+ <klass>
+ <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+ </klass>
+ <tuple/>
+ <state>
+ <dictionary>
+ <item>
+ <key> <string>_asgns</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>name_container</string> </key>
+ <value> <string>container</string> </value>
+ </item>
+ <item>
+ <key> <string>name_context</string> </key>
+ <value> <string>context</string> </value>
+ </item>
+ <item>
+ <key> <string>name_m_self</string> </key>
+ <value> <string>script</string> </value>
+ </item>
+ <item>
+ <key> <string>name_subpath</string> </key>
+ <value> <string>traverse_subpath</string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ </dictionary>
+ </state>
+ </object>
+ </value>
+ </item>
+ <item>
+ <key> <string>_body</string> </key>
+ <value> <string>"""Returns docstring of Script (Python)\n
+Generates list:\n
+ * first element - first line\n
+ * second element - rest of lines\n
+"""\n
+script = context.restrictedTraverse(script_url)\n
+script.log(context)\n
+portal = context.getPortalObject()\n
+\n
+line_list = portal.ScriptPython_getDocstringMethod(script).split(\'\\n\')\n
+\n
+return [line_list[0],\'\\n\'.join(line_list[1:])]\n
+</string> </value>
+ </item>
+ <item>
+ <key> <string>_code</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_filepath</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_params</string> </key>
+ <value> <string>script_url</string> </value>
+ </item>
+ <item>
+ <key> <string>errors</string> </key>
+ <value>
+ <tuple/>
+ </value>
+ </item>
+ <item>
+ <key> <string>func_code</string> </key>
+ <value>
+ <object>
+ <klass>
+ <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+ </klass>
+ <tuple/>
+ <state>
+ <dictionary>
+ <item>
+ <key> <string>co_argcount</string> </key>
+ <value> <int>1</int> </value>
+ </item>
+ <item>
+ <key> <string>co_varnames</string> </key>
+ <value>
+ <tuple>
+ <string>script_url</string>
+ <string>_getattr_</string>
+ <string>context</string>
+ <string>script</string>
+ <string>portal</string>
+ <string>line_list</string>
+ <string>_getitem_</string>
+ </tuple>
+ </value>
+ </item>
+ </dictionary>
+ </state>
+ </object>
+ </value>
+ </item>
+ <item>
+ <key> <string>func_defaults</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>ScriptPython_getDocstringAsList</string> </value>
+ </item>
+ <item>
+ <key> <string>warnings</string> </key>
+ <value>
+ <tuple/>
+ </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Added: experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringMethod.xml
URL: http://svn.erp5.org/experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringMethod.xml?rev=19585&view=auto
==============================================================================
--- experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringMethod.xml (added)
+++ experimental/bt5/erp5_forge_experimental/SkinTemplateItem/portal_skins/erp5_forge_experimental/ScriptPython_getDocstringMethod.xml Fri Feb 29 13:55:25 2008
@@ -1,0 +1,37 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
+ <tuple/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>__ac_local_roles__</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_function</string> </key>
+ <value> <string>getPythonScriptDocString</string> </value>
+ </item>
+ <item>
+ <key> <string>_module</string> </key>
+ <value> <string>ForgeExperimentalTools</string> </value>
+ </item>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>ScriptPython_getDocstringMethod</string> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string></string> </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Modified: experimental/bt5/erp5_forge_experimental/bt/change_log
URL: http://svn.erp5.org/experimental/bt5/erp5_forge_experimental/bt/change_log?rev=19585&r1=19584&r2=19585&view=diff
==============================================================================
--- experimental/bt5/erp5_forge_experimental/bt/change_log (original)
+++ experimental/bt5/erp5_forge_experimental/bt/change_log Fri Feb 29 13:55:25 2008
@@ -1,3 +1,6 @@
+2008-02-29 shufla
+* some introspection system - fetching docstrings from Script (Python)
+
2008-02-25 shufla
* pdb and dir functionality added
Modified: experimental/bt5/erp5_forge_experimental/bt/revision
URL: http://svn.erp5.org/experimental/bt5/erp5_forge_experimental/bt/revision?rev=19585&r1=19584&r2=19585&view=diff
==============================================================================
--- experimental/bt5/erp5_forge_experimental/bt/revision (original)
+++ experimental/bt5/erp5_forge_experimental/bt/revision Fri Feb 29 13:55:25 2008
@@ -1,1 +1,1 @@
-17
+19
Modified: experimental/bt5/erp5_forge_experimental/bt/version
URL: http://svn.erp5.org/experimental/bt5/erp5_forge_experimental/bt/version?rev=19585&r1=19584&r2=19585&view=diff
==============================================================================
--- experimental/bt5/erp5_forge_experimental/bt/version (original)
+++ experimental/bt5/erp5_forge_experimental/bt/version Fri Feb 29 13:55:25 2008
@@ -1,1 +1,1 @@
-1.2.1
+1.2.2
More information about the Erp5-report
mailing list