Add behaviour to the remove methods to remove the transaction's path itself. This allows us to write Remove(path) to remove the specified path rather than having to slice the path ourselves.

This commit is contained in:
emellor@ewan committed 2005-09-18 14:42:13 +01:00
1 parent 00cac7da1c
commit c353c7fdd0
1 file changed
+12 -3
+12 -3
View File
@@ -89,10 +89,15 @@ class xstransact:
return xshandle().rm(path)
def remove(self, *args):
"""If no arguments are given, remove this transaction's path.
Otherwise, treat each argument as a subpath to this transaction's
path, and remove each of those instead.
"""
if len(args) == 0:
raise TypeError
for key in args:
self._remove(key)
xshandle().rm(self.path)
else:
for key in args:
self._remove(key)
def _list(self, key):
path = "%s/%s" % (self.path, key)
@@ -188,6 +193,10 @@ class xstransact:
Write = classmethod(Write)
def Remove(cls, path, *args):
"""If only one argument is given (path), remove it. Otherwise, treat
each further argument as a subpath to the given path, and remove each
of those instead. This operation is performed inside a transaction.
"""
while True:
t = cls(path)
try:
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.