[py-svn] r37838 - py/trunk/py/execnet
fijal at codespeak.net
fijal at codespeak.net
Sat Feb 3 00:32:37 CET 2007
Author: fijal
Date: Sat Feb 3 00:32:35 2007
New Revision: 37838
Modified:
py/trunk/py/execnet/rsync.py
Log:
Privatize attributes of rsync.py
Modified: py/trunk/py/execnet/rsync.py
==============================================================================
--- py/trunk/py/execnet/rsync.py (original)
+++ py/trunk/py/execnet/rsync.py Sat Feb 3 00:32:35 2007
@@ -18,11 +18,11 @@
def __init__(self, callback=None, **options):
for name in options:
assert name in ('delete')
- self.options = options
- self.callback = callback
- self.channels = {}
- self.receivequeue = Queue()
- self.links = []
+ self._options = options
+ self._callback = callback
+ self._channels = {}
+ self._receivequeue = Queue()
+ self._links = []
def filter(self, path):
return True
@@ -32,32 +32,32 @@
and a remote destination directory.
"""
def itemcallback(req):
- self.receivequeue.put((channel, req))
+ self._receivequeue.put((channel, req))
channel = gateway.remote_exec(REMOTE_SOURCE)
channel.setcallback(itemcallback, endmarker = None)
- channel.send((str(destdir), self.options))
- self.channels[channel] = finishedcallback
+ channel.send((str(destdir), self._options))
+ self._channels[channel] = finishedcallback
def send(self, sourcedir):
""" Sends a sourcedir to all added targets.
"""
- self.sourcedir = str(sourcedir)
+ self._sourcedir = str(sourcedir)
# normalize a trailing '/' away
- self.sourcedir = os.path.dirname(os.path.join(self.sourcedir, 'x'))
+ self._sourcedir = os.path.dirname(os.path.join(self._sourcedir, 'x'))
# send directory structure and file timestamps/sizes
- self._send_directory_structure(self.sourcedir)
+ self._send_directory_structure(self._sourcedir)
# paths and to_send are only used for doing
# progress-related callbacks
- self.paths = {}
- self.to_send = {}
+ self._paths = {}
+ self._to_send = {}
# send modified file to clients
- while self.channels:
- channel, req = self.receivequeue.get()
+ while self._channels:
+ channel, req = self._receivequeue.get()
if req is None:
# end-of-channel
- if channel in self.channels:
+ if channel in self._channels:
# too early! we must have got an error
channel.waitclose()
# or else we raise one
@@ -66,25 +66,25 @@
else:
command, data = req
if command == "links":
- for link in self.links:
+ for link in self._links:
channel.send(link)
# completion marker, this host is done
channel.send(42)
elif command == "done":
- finishedcallback = self.channels.pop(channel)
+ finishedcallback = self._channels.pop(channel)
if finishedcallback:
finishedcallback()
elif command == "ack":
- if self.callback:
- self.callback("ack", self.paths[data], channel)
+ if self._callback:
+ self._callback("ack", self._paths[data], channel)
elif command == "list_done":
# sum up all to send
- if self.callback:
- s = sum([self.paths[i] for i in self.to_send[channel]])
- self.callback("list", s, channel)
+ if self._callback:
+ s = sum([self._paths[i] for i in self._to_send[channel]])
+ self._callback("list", s, channel)
elif command == "send":
modified_rel_path, checksum = data
- modifiedpath = os.path.join(self.sourcedir, *modified_rel_path)
+ modifiedpath = os.path.join(self._sourcedir, *modified_rel_path)
try:
f = open(modifiedpath, 'rb')
data = f.read()
@@ -94,12 +94,12 @@
# provide info to progress callback function
modified_rel_path = "/".join(modified_rel_path)
if data is not None:
- self.paths[modified_rel_path] = len(data)
+ self._paths[modified_rel_path] = len(data)
else:
- self.paths[modified_rel_path] = 0
- if channel not in self.to_send:
- self.to_send[channel] = []
- self.to_send[channel].append(modified_rel_path)
+ self._paths[modified_rel_path] = 0
+ if channel not in self._to_send:
+ self._to_send[channel] = []
+ self._to_send[channel].append(modified_rel_path)
if data is not None:
f.close()
@@ -118,11 +118,11 @@
assert "Unknown command %s" % command
def _broadcast(self, msg):
- for channel in self.channels:
+ for channel in self._channels:
channel.send(msg)
def _send_link(self, basename, linkpoint):
- self.links.append(("link", basename, linkpoint))
+ self._links.append(("link", basename, linkpoint))
def _send_directory_structure(self, path):
try:
@@ -147,13 +147,13 @@
self._send_directory_structure(p)
elif stat.S_ISLNK(st.st_mode):
linkpoint = os.readlink(path)
- basename = path[len(self.sourcedir) + 1:]
+ basename = path[len(self._sourcedir) + 1:]
if not linkpoint.startswith(os.sep):
# relative link, just send it
# XXX: do sth with ../ links
self._send_link(basename, linkpoint)
- elif linkpoint.startswith(self.sourcedir):
- self._send_link(basename, linkpoint[len(self.sourcedir) + 1:])
+ elif linkpoint.startswith(self._sourcedir):
+ self._send_link(basename, linkpoint[len(self._sourcedir) + 1:])
else:
self._send_link(basename, linkpoint)
self._broadcast(None)
More information about the py-svn
mailing list