[Checkins] SVN: Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py * Integrate memberinfo into object info as they actually provide the
Uli Fouquet
uli at gnufix.de
Fri Feb 12 18:05:25 EST 2010
Log message for revision 108959:
* Integrate memberinfo into object info as they actually provide the
same sort of info.
* Turn ObjectInfo into a regular object in order to allow views for it.
* Add adapter factory for ObjectInfo.
Changed:
U Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py
-=-
Modified: Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py
===================================================================
--- Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py 2010-02-12 22:48:05 UTC (rev 108958)
+++ Sandbox/ulif/grokui.zodbbrowser/src/grokui/zodbbrowser/objectinfo.py 2010-02-12 23:05:25 UTC (rev 108959)
@@ -9,16 +9,15 @@
from ZODB.utils import p64, u64, tid_repr
from grokui.zodbbrowser.interfaces import IObjectInfo
-class ObjectInfo(grok.Adapter):
+class ObjectInfo(object):
"""Infos about objects.
"""
- grok.context(Interface)
- grok.provides(IObjectInfo)
+ grok.implements(IObjectInfo)
- def __init__(self, context, obj_name=None, parent_oid=None):
+ def __init__(self, context):
self.obj = removeAllProxies(context)
- self.name = obj_name
- self.parent_oid = parent_oid
+ self.name = None
+ self.parent_oid = None
def getOID(self):
try:
@@ -28,7 +27,7 @@
return None
def getName(self):
- return getattr(self.obj, '__name__', 'CH' + str(self.name))
+ return getattr(self.obj, '__name__', str(self.name))
def getParent(self):
return getattr(self.obj, '__parent__', None)
@@ -42,16 +41,14 @@
def getMembers(self):
result = []
+ oid = self.getOID()
for name, obj in inspect.getmembers(self.obj):
- result.append(MemberInfo(name, self.obj, obj))
+ member = IObjectInfo(obj)
+ member.name = name
+ member.parent_oid = oid
+ result.append(member)
return result
-class MemberInfo(object):
- def __init__(self, name, parent, obj):
- self.name = name
- self.parent = parent
- self.obj = removeAllProxies(obj)
-
@property
def linkable(self):
if self.oid is not None:
@@ -89,7 +86,6 @@
descr = inspect.getdoc(self.obj)
return descr
-
@property
def type_string(self):
try:
@@ -107,3 +103,9 @@
signature = u'(...)'
return '%s%s' % (self.name, signature)
+
+ at grok.adapter(Interface)
+ at grok.implementer(IObjectInfo)
+def info_for_object(obj):
+ # Adapter factory for object infos.
+ return ObjectInfo(obj)
More information about the checkins
mailing list