
On Fri, 15 Aug 2008, Fisher, SM (Steve) wrote:
I don't find that: bytes_read = f.read (buffer, len) is very pythonesqe. Surely it should be buffer = f.read() and len(buffer) will tell you what you have got.
But how can you then specify that you want to read 20 bytes, instead of the whole 20GB file?
buffer = f.read(20)
I feel that the proposed calling sequence looks too C like
But how is the distinction made between saga-implementation managed buffers and application managed buffers? If buffer is a saga managed one and you did a f.read(20), where does the data go?
This seems an unnecessary complication - why not just change the PYTHONPATH to change implementation. I like the way the email package is structured into modules. You import what you need and you don't have strange things going on behind your back - potentially polluting your namespace.
Well, I use the environment variable for the name of the library. So multiple python-saga language bindings can exist in the same path. And for some reason jython does not use the PYTHONPATH variable. It uses a -Dpython.path flag which is given to the jvm. A separate variable is usable by everyone. There is not much magic going on. It cuts the implementation name from saga.<imp_name>.package.class(). So you don;t have to rewrite your python program if you use a different implementation. What do you mean with polluting the name space? All the saga classes might (well, probably are going to) be defined and loaded, but they all stay behind saga. I don't expect any other saga library to be loaded. Paul.