[Commits] (vajda) - added more epydoc to Item.py
commits at osafoundation.org
commits at osafoundation.org
Tue Jan 27 17:43:55 PST 2004
Commit by: vajda
Modified files:
osaf/chandler/Chandler/__hardhat__.py 1.146 1.147
osaf/chandler/Chandler/repository/__hardhat__.py None 1.1
osaf/chandler/Chandler/repository/item/Item.py 1.105 1.106
osaf/chandler/Chandler/repository/persistence/DBContainer.py 1.3 1.4
Log message:
- added more epydoc to Item.py
- added some more deadlock error recovery code in DBContainer.py
- repository now has its own __hardhat__.py that builds UUIDext and API docs
ViewCVS links:
http://cvs.osafoundation.org/index.cgi/osaf/chandler/Chandler/__hardhat__.py.diff?r1=text&tr1=1.146&r2=text&tr2=1.147
http://cvs.osafoundation.org/index.cgi/osaf/chandler/Chandler/repository/__hardhat__.py?rev=1.1&content-type=text/vnd.viewcvs-markup
http://cvs.osafoundation.org/index.cgi/osaf/chandler/Chandler/repository/item/Item.py.diff?r1=text&tr1=1.105&r2=text&tr2=1.106
http://cvs.osafoundation.org/index.cgi/osaf/chandler/Chandler/repository/persistence/DBContainer.py.diff?r1=text&tr1=1.3&r2=text&tr2=1.4
Index: osaf/chandler/Chandler/repository/item/Item.py
diff -u osaf/chandler/Chandler/repository/item/Item.py:1.105 osaf/chandler/Chandler/repository/item/Item.py:1.106
--- osaf/chandler/Chandler/repository/item/Item.py:1.105 Mon Jan 26 19:10:53 2004
+++ osaf/chandler/Chandler/repository/item/Item.py Tue Jan 27 17:43:23 2004
@@ -1,6 +1,6 @@
-__revision__ = "$Revision: 1.105 $"
-__date__ = "$Date: 2004/01/27 03:10:53 $"
+__revision__ = "$Revision: 1.106 $"
+__date__ = "$Date: 2004/01/28 01:43:23 $"
__copyright__ = "Copyright (c) 2002 Open Source Applications Foundation"
__license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
@@ -43,7 +43,6 @@
only the Chandler attributes are saved.
@type kind: an item
"""
-
super(Item, self).__init__()
self._status = Item.NEW
@@ -79,10 +78,26 @@
self._setKind(kind)
def __iter__(self):
+ """
+ Iterate over the children of this item.
+ """
return self.iterChildren()
def __repr__(self):
+ """
+ The debugging string representation of an item.
+
+ It follows the following format:
+
+ C{<classname (optional status): name uuid>}
+
+ where:
+ - C{classname} is the name of the class implementing the item
+ - C{optional status} is displayed when the item is stale or deleted
+ - C{name} is the item's name
+ - C{uuid} is the item's UUID
+ """
if self._status & Item.RAW:
return super(Item, self).__repr__()
@@ -98,10 +113,25 @@
self._uuid.str16())
def __getattr__(self, name):
+ """
+ This method is called by python when looking up a Chandler attribute.
+ @param name: the name of the attribute being accessed.
+ @type name: a string
+ """
return self.getAttributeValue(name)
def __setattr__(self, name, value):
+ """
+ This method is called whenever an attribute's value is set.
+
+ It resolves whether the attribute is a Chandler attribute or a regular
+ python attribute and dispatches to the relevant methods.
+ @param name: the name of the attribute being set.
+ @type name: a string
+ @param value: the value being set.
+ @type value: anything
+ """
if name[0] != '_':
if self._values.has_key(name):
@@ -116,6 +146,14 @@
return super(Item, self).__setattr__(name, value)
def __delattr__(self, name):
+ """
+ This method is called whenever an attribute's value is removed.
+
+ It resolves whether the attribute is a Chandler attribute or a regular
+ python attribute and dispatches to the relevant methods.
+ @param name: the name of the attribute being cleared.
+ @type name: a string
+ """
if self._values.has_key(name):
self.removeAttributeValue(name, _attrDict=self._values)
Index: osaf/chandler/Chandler/repository/persistence/DBContainer.py
diff -u osaf/chandler/Chandler/repository/persistence/DBContainer.py:1.3 osaf/chandler/Chandler/repository/persistence/DBContainer.py:1.4
--- osaf/chandler/Chandler/repository/persistence/DBContainer.py:1.3 Mon Jan 26 19:10:54 2004
+++ osaf/chandler/Chandler/repository/persistence/DBContainer.py Tue Jan 27 17:43:25 2004
@@ -1,6 +1,6 @@
-__revision__ = "$Revision: 1.3 $"
-__date__ = "$Date: 2004/01/27 03:10:54 $"
+__revision__ = "$Revision: 1.4 $"
+__date__ = "$Date: 2004/01/28 01:43:25 $"
__copyright__ = "Copyright (c) 2002 Open Source Applications Foundation"
__license__ = "http://osafoundation.org/Chandler_0.1_license_terms.htm"
@@ -57,6 +57,11 @@
return self._db.cursor(txn=self.store.txn, flags=DB_DIRTY_READ)
+ def _logDL(self, n):
+
+ self.store.repository.logger.info('detected deadlock: %d', n)
+
+
class RefContainer(DBContainer):
@@ -75,7 +80,7 @@
except DBNotFoundError:
return None
except DBLockDeadlockError:
- print 'restarting loadRef aborted by deadlock'
+ self._logDL(1)
continue
while value is not None and value[0].startswith(cursorKey):
@@ -104,7 +109,12 @@
return (key, uuid, previous, next, alias)
else:
- value = cursor.next()
+ while True:
+ try:
+ value = cursor.next()
+ break
+ except DBLockDeadlockError:
+ self._logDL(2)
return None
@@ -272,6 +282,13 @@
parentId = None
fn(UUID(uuid), version, docId, status, parentId)
- value = cursor.next()
+
+ while True:
+ try:
+ value = cursor.next()
+ break
+ except DBLockDeadlockError:
+ self._logDL(3)
+
finally:
cursor.close()
Index: osaf/chandler/Chandler/__hardhat__.py
diff -u osaf/chandler/Chandler/__hardhat__.py:1.146 osaf/chandler/Chandler/__hardhat__.py:1.147
--- osaf/chandler/Chandler/__hardhat__.py:1.146 Tue Jan 27 13:15:56 2004
+++ osaf/chandler/Chandler/__hardhat__.py Tue Jan 27 17:43:21 2004
@@ -19,6 +19,7 @@
'SOAPpy',
'pychecker',
'4suite',
+ 'Chandler/repository'
)
def build(buildenv):
@@ -72,20 +73,6 @@
0, 'output.txt')
- # Build UUID Extension and install it
- os.chdir(os.path.join("repository","util","ext"))
- if buildenv['version'] == 'release':
- hardhatlib.executeCommand(buildenv, info['name'],
- [buildenv['python'], 'setup.py', 'build', '--build-base=build_release', 'install'],
- "Building and installing UUIDext release")
- if buildenv['version'] == 'debug':
- hardhatlib.executeCommand(buildenv, info['name'],
- [buildenv['python_d'], 'setup.py', 'build', '--build-base=build_debug', '--debug', 'install', '--force'],
- "Building and installing UUIDext debug")
- os.chdir("../../..")
-
-
-
os.chdir("distrib")
if buildenv['os'] == 'posix' or buildenv['os'] == 'osx':
@@ -192,25 +179,6 @@
'/out', 'output.txt' ],
'Cleaning launcher ' + version,
0, 'output.txt')
-
-
- # Clean UUID Extension
- os.chdir(os.path.join("repository","util","ext"))
- if buildenv['version'] == 'release':
- hardhatlib.executeCommand(buildenv, info['name'],
- [buildenv['python'], 'setup.py', 'clean',
- '--build-base=build_release'],
- "Cleaning UUIDext release")
- if os.path.exists("build_release"):
- hardhatlib.rmdir_recursive("build_release")
- if buildenv['version'] == 'debug':
- hardhatlib.executeCommand(buildenv, info['name'],
- [buildenv['python_d'], 'setup.py', 'clean',
- '--build-base=build_debug'],
- "Cleaning UUIDext debug")
- if os.path.exists("build_debug"):
- hardhatlib.rmdir_recursive("build_debug")
- os.chdir("../../..")
def run(buildenv):
More information about the Commits
mailing list