ANN: DOOP (Distributed Pythontic MOO) 0.1.1

John Wiegley johnw@gnu.org
Thu, 16 Nov 2000 11:57:16 -0700


DOOP is a distributed, object-oriented MOO server written in Python.
It began with the POO source of last year, but has diverged greatly
from it.  This version is GPL, with the kind permission of the
original POO author, Joseph Strout.

The server is in pre-alpha stage at the moment, though most of the
functionality is working just fine.  I still have to hammer out some
of the scripts, and test the remoting/multi-threaded code under heavy
load.

You can try out a one-user version of the server at:

    http://doop.sourceforge.net

Just run the script "bootstrap", followed by "run".  Note that you
will need Pyro 1.4 to use DOOP, with the modifications below.

Suggestions are welcome!
  John Wiegley <johnw@gnu.org>

----------------------------------------------------------------------

--- Pyro-1_4/Pyro/__init__.py	Mon Aug  7 14:07:51 2000
+++ pyro/Pyro/__init__.py	Thu Nov 16 10:19:52 2000
@@ -27,13 +27,15 @@
 PYRO_VERSION = '1.4'
 
 
-import configuration, os
+import configuration, os, os.path
 
 config = configuration.Config()
 try:
 	confFile = os.environ['PYRO_CONFIG_FILE']
 except KeyError:
 	confFile = ''
+if not confFile and os.path.isfile("Pyro.conf"):
+	confFile = "Pyro.conf"
 config.setup(confFile)
 
 
--- Pyro-1_4/Pyro/core.py	Sun Oct 15 06:01:36 2000
+++ pyro/Pyro/core.py	Thu Nov 16 10:21:23 2000
@@ -60,7 +60,7 @@
 		if flags & RIF_Varargs:
 			# reconstruct the varargs from a tuple like (a,b,(va1,va2,va3...))
 			args=args[:-1]+args[-1]
-		if method in ('remote_hasattr', 'remote_getattr', 'remote_setattr'):
+		if method in dir(ObjBase):
 			return apply(getattr(self,method),args,keywords)
 		else:
 			return apply(getattr(self.delegate,method),args,keywords)
@@ -187,11 +187,6 @@
 	def __str__(self):
 		return repr(self)
 
-	# Note that a slightly faster way of calling is this:
-	#  instead of proxy.method(args...) use proxy('method',args...)
-	def __call__(self, method, *vargs, **kargs):
-		self._name.append(method)
-		return self.__invokePYRO__
 	def __invokePYRO__(self, *vargs, **kargs):
 		if self.adapter is None:
 			# delayed adapter binding.
.