Change log for Pyro =================== From 0.2 -> 0.3 =============== - MAJOR: added Dynamic Proxies! Clients don't need to have a precompiled proxy file available any more! Check out core.getProxyForURI/DynamicProxy. - MAJOR: reworked the configuration possibilities. Check out __init__.py. * Moved config items to a class in __init__.py. They are accessed using 'Pyro.config.'. * Made the port and broadcast port configurable independently. The command lines now accept options to specify either or both ports. * naming: added delay in broadcast loop (wait a little for replies to arrive), Naming Service now returns PyroErrors instead of regular exceptions. * core: Cleaned up the Pyro exception passing, added DynamicProxy and getProxyForURI * pyroc: fixed bug in method output code (could forget a comma) * nsc: fully rewrote the parsing code to use the util.ArgVParser * scripts: the Window .bat files now use %$ * added util.py, which contains a basic sys.argv parser like getopt() From 0.3 -> 0.4 =============== * naming: changed broadcast server to reflect changes in Python 1.5.2's SocketServer module. Pyro now requires this new SocketServer module (which works with previous Python versions, too, so you could only replace the SocketServer module and keep the rest of your Python installation intact). * naming: fixed bugs when reporting exceptions ('entry already exists' and 'not found'). * util: added getUUID function, and a script genuuid. * core: Pyro objects are now identified by a full UUID, instead of a simple Python id(). This should prevent nasty object ID problems, especially later when persistent naming and object activation will be implemented. From 0.4 -> 0.5 =============== * MAJOR: the Pyro Naming Service now is a Pyro object itself, too. It can be accessed through its Pyro interface. * More specific exceptions (ProtocolError, URIError, DaemonError, NamingError...) * It is now possible to connect objects without the presence of a Naming Service. * core: the Daemon can now handle requests for others too, by a callback mechanism. Also removed up the server-side exception trace info when the exception is generated on purpose, and added a nice message when the daemon cannot be started. * naming: many changes to make the Name Server a Pyro object itself. Finding the NS is now done through the NameServerLocator, which returns a regular Pyro proxy for the NS. No NameServerClient is needed anymore. * util: tweaked the way the timestamp in URIs is generated. * config: more configurable items. * scripts: Pyroc.bat now uses %$, too From 0.5 -> 0.6 =============== * Added xnsc, a naming service control tool with a GUI (uses Tkinter). * The naming service can be launched in 'persistent mode': it will keep the naming directory in a persistent database on disk. EXPERIMENTAL! * core: added 2 configuration variables in Pyro.config: PYRO_PATH and PYRO_STORAGE. * core: added method to ObjBase to set a fixed (persistent) object UUID. * core: slight change in the init code of PyroURI, it can now be created directly from a URI string, instead of using initFromString. * core: the Daemon now has preliminary support for persistent objects: connectPersistent and disconnectPersistent methods were added. LIKELY TO CHANGE! * naming: added a persistent name server class PersistentNameServer. Also added some code to deal with this when using the 'ns' command line tool: a new option '-db' has been added to specify persistent mode. * naming: the broadcast server now binds on '' instead of the hostname. This appears to be more compatible (on some systems it was impossible to connect to the broadcast server). * naming: implemented graceful shutdown command. The server also uses a timeout loop for the requests (because otherwise ^C wouldn't break gracefully on WinNT - Duh). * scripts: nsc (and xnsc) now print a sorted list (and have the shutdown command). * scripts: the .bat files now won't echo the python command anymore (@echo off). * utils: ArgParser changed to use 'None' instead of '1' when no arguments are given to a certain option. * test: testclient will use dynamic proxy automatically if no static proxy is found. Also, it will try a direct connect if the NS lookup by broadcast fails.