[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