[py-svn] r37785 - in py/trunk/py/execnet: . testing
hpk at codespeak.net
hpk at codespeak.net
Fri Feb 2 02:02:57 CET 2007
Author: hpk
Date: Fri Feb 2 02:02:55 2007
New Revision: 37785
Modified:
py/trunk/py/execnet/channel.py
py/trunk/py/execnet/gateway.py
py/trunk/py/execnet/message.py
py/trunk/py/execnet/register.py
py/trunk/py/execnet/testing/test_gateway.py
Log:
privatizing some more attributes
Modified: py/trunk/py/execnet/channel.py
==============================================================================
--- py/trunk/py/execnet/channel.py (original)
+++ py/trunk/py/execnet/channel.py Fri Feb 2 02:02:55 2007
@@ -37,10 +37,10 @@
def setcallback(self, callback, endmarker=NO_ENDMARKER_WANTED):
queue = self._items
- lock = self.gateway.channelfactory._receivelock
+ lock = self.gateway._channelfactory._receivelock
lock.acquire()
try:
- _callbacks = self.gateway.channelfactory._callbacks
+ _callbacks = self.gateway._channelfactory._callbacks
dictvalue = (callback, endmarker)
if _callbacks.setdefault(self.id, dictvalue) != dictvalue:
raise IOError("%r has callback already registered" %(self,))
@@ -58,7 +58,7 @@
callback(olditem)
if self._closed or self._receiveclosed.isSet():
# no need to keep a callback
- self.gateway.channelfactory._close_callback(self.id)
+ self.gateway._channelfactory._close_callback(self.id)
finally:
lock.release()
@@ -129,7 +129,7 @@
queue = self._items
if queue is not None:
queue.put(ENDMARKER)
- self.gateway.channelfactory._no_longer_opened(self.id)
+ self.gateway._channelfactory._no_longer_opened(self.id)
def waitclose(self, timeout=None):
""" wait until this channel is closed (or the remote side
Modified: py/trunk/py/execnet/gateway.py
==============================================================================
--- py/trunk/py/execnet/gateway.py (original)
+++ py/trunk/py/execnet/gateway.py Fri Feb 2 02:02:55 2007
@@ -10,7 +10,7 @@
# other modules) execute not only on the local side but
# also on any gateway's remote side. On such remote sides
# we cannot assume the py library to be there and
-# InstallableGateway.remote_bootstrap_gateway() (located
+# InstallableGateway._remote_bootstrap_gateway() (located
# in register.py) will take care to send source fragments
# to the other side. Yes, it is fragile but we have a
# few tests that try to catch when we mess up.
@@ -38,15 +38,15 @@
global registered_cleanup
self._execpool = WorkerPool(maxthreads=maxthreads)
## self.running = True
- self.io = io
+ self._io = io
self._outgoing = Queue.Queue()
- self.channelfactory = ChannelFactory(self, startcount)
+ self._channelfactory = ChannelFactory(self, startcount)
## self._exitlock = threading.Lock()
if not registered_cleanup:
atexit.register(cleanup_atexit)
registered_cleanup = True
_active_sendqueues[self._outgoing] = True
- self.pool = NamedThreadPool(receiver = self._thread_receiver,
+ self._pool = NamedThreadPool(receiver = self._thread_receiver,
sender = self._thread_sender)
def __repr__(self):
@@ -56,11 +56,11 @@
else:
addr = ''
try:
- r = (len(self.pool.getstarted('receiver'))
+ r = (len(self._pool.getstarted('receiver'))
and "receiving" or "not receiving")
- s = (len(self.pool.getstarted('sender'))
+ s = (len(self._pool.getstarted('sender'))
and "sending" or "not sending")
- i = len(self.channelfactory.channels())
+ i = len(self._channelfactory.channels())
except AttributeError:
r = s = "uninitialized"
i = "no"
@@ -98,7 +98,7 @@
from sys import exc_info
while 1:
try:
- msg = Message.readfrom(self.io)
+ msg = Message.readfrom(self._io)
self._trace("received <- %r" % msg)
msg.received(self)
except sysex:
@@ -110,7 +110,7 @@
break
finally:
self._outgoing.put(None)
- self.channelfactory._finished_receiving()
+ self._channelfactory._finished_receiving()
self._trace('leaving %r' % threading.currentThread())
def _thread_sender(self):
@@ -121,9 +121,9 @@
msg = self._outgoing.get()
try:
if msg is None:
- self.io.close_write()
+ self._io.close_write()
break
- msg.writeto(self.io)
+ msg.writeto(self._io)
except:
excinfo = exc_info()
self._traceex(excinfo)
@@ -140,7 +140,7 @@
l = []
for name, id in ('stdout', outid), ('stderr', errid):
if id:
- channel = self.channelfactory.new(outid)
+ channel = self._channelfactory.new(outid)
out = self._ThreadOut(sys, name)
out.setwritefunc(channel.send)
l.append((out, channel))
@@ -196,7 +196,7 @@
#
def newchannel(self):
""" return new channel object. """
- return self.channelfactory.new()
+ return self._channelfactory.new()
def remote_exec(self, source, stdout=None, stderr=None):
""" return channel object for communicating with the asynchronously
@@ -218,7 +218,7 @@
(source, outid, errid)))
return channel
- def remote_redirect(self, stdout=None, stderr=None):
+ def _remote_redirect(self, stdout=None, stderr=None):
""" return a handle representing a redirection of a remote
end's stdout to a local file object. with handle.close()
the redirection will be reverted.
@@ -262,7 +262,7 @@
## try:
## if self.running:
## self.running = False
-## if not self.pool.getstarted('sender'):
+## if not self._pool.getstarted('sender'):
## raise IOError("sender thread not alive anymore!")
## self._outgoing.put(None)
## self._trace("exit procedure triggered, pid %d " % (os.getpid(),))
@@ -279,7 +279,7 @@
def join(self, joinexec=True):
current = threading.currentThread()
- for x in self.pool.getstarted():
+ for x in self._pool.getstarted():
if x != current:
self._trace("joining %s" % x)
x.join()
Modified: py/trunk/py/execnet/message.py
==============================================================================
--- py/trunk/py/execnet/message.py (original)
+++ py/trunk/py/execnet/message.py Fri Feb 2 02:02:55 2007
@@ -62,32 +62,32 @@
class CHANNEL_OPEN(Message):
def received(self, gateway):
- channel = gateway.channelfactory.new(self.channelid)
+ channel = gateway._channelfactory.new(self.channelid)
gateway._local_schedulexec(channel=channel, sourcetask=self.data)
class CHANNEL_NEW(Message):
def received(self, gateway):
""" receive a remotely created new (sub)channel. """
newid = self.data
- newchannel = gateway.channelfactory.new(newid)
- gateway.channelfactory._local_receive(self.channelid, newchannel)
+ newchannel = gateway._channelfactory.new(newid)
+ gateway._channelfactory._local_receive(self.channelid, newchannel)
class CHANNEL_DATA(Message):
def received(self, gateway):
- gateway.channelfactory._local_receive(self.channelid, self.data)
+ gateway._channelfactory._local_receive(self.channelid, self.data)
class CHANNEL_CLOSE(Message):
def received(self, gateway):
- gateway.channelfactory._local_close(self.channelid)
+ gateway._channelfactory._local_close(self.channelid)
class CHANNEL_CLOSE_ERROR(Message):
def received(self, gateway):
- remote_error = gateway.channelfactory.RemoteError(self.data)
- gateway.channelfactory._local_close(self.channelid, remote_error)
+ remote_error = gateway._channelfactory.RemoteError(self.data)
+ gateway._channelfactory._local_close(self.channelid, remote_error)
class CHANNEL_LAST_MESSAGE(Message):
def received(self, gateway):
- gateway.channelfactory._local_last_message(self.channelid)
+ gateway._channelfactory._local_last_message(self.channelid)
classes = [x for x in locals().values() if hasattr(x, '__bases__')]
classes.sort(lambda x,y : cmp(x.__name__, y.__name__))
Modified: py/trunk/py/execnet/register.py
==============================================================================
--- py/trunk/py/execnet/register.py (original)
+++ py/trunk/py/execnet/register.py Fri Feb 2 02:02:55 2007
@@ -29,10 +29,10 @@
class InstallableGateway(gateway.Gateway):
""" initialize gateways on both sides of a inputoutput object. """
def __init__(self, io):
- self.remote_bootstrap_gateway(io)
+ self._remote_bootstrap_gateway(io)
super(InstallableGateway, self).__init__(io=io, startcount=1)
- def remote_bootstrap_gateway(self, io, extra=''):
+ def _remote_bootstrap_gateway(self, io, extra=''):
""" return Gateway with a asynchronously remotely
initialized counterpart Gateway (which may or may not succeed).
Note that the other sides gateways starts enumerating
@@ -84,7 +84,7 @@
cmd = '%s -u -c "exec input()"' % python
super(PopenGateway, self).__init__(cmd)
- def remote_bootstrap_gateway(self, io, extra=''):
+ def _remote_bootstrap_gateway(self, io, extra=''):
# XXX the following hack helps us to import the same version
# of the py lib and other dependcies, but only works for
# PopenGateways because we can assume to have access to
@@ -126,7 +126,7 @@
""")),
""
])
- super(PopenGateway, self).remote_bootstrap_gateway(io, s)
+ super(PopenGateway, self)._remote_bootstrap_gateway(io, s)
class SocketGateway(InstallableGateway):
def __init__(self, host, port):
Modified: py/trunk/py/execnet/testing/test_gateway.py
==============================================================================
--- py/trunk/py/execnet/testing/test_gateway.py (original)
+++ py/trunk/py/execnet/testing/test_gateway.py Fri Feb 2 02:02:55 2007
@@ -62,13 +62,13 @@
def setup_class(cls):
cls.gw = py.execnet.PopenGateway()
- def teardown_class(cls):
- cls.gw.exit()
+ #def teardown_class(cls):
+ # cls.gw.exit()
class BasicRemoteExecution:
def test_correct_setup(self):
for x in 'sender', 'receiver':
- assert self.gw.pool.getstarted(x)
+ assert self.gw._pool.getstarted(x)
def test_repr_doesnt_crash(self):
assert isinstance(repr(self), str)
@@ -127,13 +127,13 @@
py.test.raises(channel.RemoteError, channel.receive)
def test_channel__local_close(self):
- channel = self.gw.channelfactory.new()
- self.gw.channelfactory._local_close(channel.id)
+ channel = self.gw._channelfactory.new()
+ self.gw._channelfactory._local_close(channel.id)
channel.waitclose(0.1)
def test_channel__local_close_error(self):
- channel = self.gw.channelfactory.new()
- self.gw.channelfactory._local_close(channel.id,
+ channel = self.gw._channelfactory.new()
+ self.gw._channelfactory._local_close(channel.id,
channel.RemoteError("error"))
py.test.raises(channel.RemoteError, channel.waitclose, 0.01)
@@ -177,10 +177,10 @@
# check that the both sides previous channels are really gone
channel.waitclose(0.3)
- assert channel.id not in self.gw.channelfactory._channels
- #assert c.id not in self.gw.channelfactory
+ assert channel.id not in self.gw._channelfactory._channels
+ #assert c.id not in self.gw._channelfactory
newchan = self.gw.remote_exec('''
- assert %d not in channel.gateway.channelfactory._channels
+ assert %d not in channel.gateway._channelfactory._channels
''' % (channel.id))
newchan.waitclose(0.3)
@@ -278,7 +278,7 @@
def test_remote_redirect_stdout(self):
out = py.std.StringIO.StringIO()
- handle = self.gw.remote_redirect(stdout=out)
+ handle = self.gw._remote_redirect(stdout=out)
c = self.gw.remote_exec("print 42")
c.waitclose(1.0)
handle.close()
More information about the py-svn
mailing list