[SAGA-RG] SAGA Python Bindings

Andre Merzky andre at merzky.net
Mon Oct 1 19:39:38 EDT 2012


[moving to the list]

Hi Steve,


On Mon, Oct 1, 2012 at 2:34 PM, Steve Fisher <dr.s.m.fisher at gmail.com> wrote:
> Andre,
>
> Having started to implement SD in Python I thought I would take a look
> at the document described below. I found that anonymous accesss to the
> git repository would not work for me

This should totally work, with

  git clone http://redmine.ogf.org/git/standards/applications-area/saga-wg.git

I just created a dummy user account, and could get the files all
right.  Would you please let me know the error you see?  Thanks!


> so I extracted the files one by one

Oy Weh!


> and ran the make file only to discover that there is almost no
> content.

Much ado about nothing, ey? ;-)


> I presume that people are working on it - ( relying upon the power of
> GIT to work in  isolation ;-) ) . Does anybody have an up to date copy
> of the document - as dvi or pdf.

Well, the original mail stated:

  "hope to have a decent draft document *after* OGF36"

so, yes, this is just a skeleton right now.  We digged through the
mail archives and code repos though, to see what has been discussed
and agreed upon before.  I'll be adding that material to git during
this week.  That is what we want to wade through in Chicago, and fill
out that document.


> My main thought so far - is that the attribute interface should not be
> implemented in python. Just use a dictionary which can contain
> anything - including lists to represent vector attributes.

Well, there we go.  The last explicit statement I find about
attributes is in a mail following a phone confcall:

  Date:    Thu, 12 Nov 2009 11:12:27 +0100
  From:    Mathijs den Burger <mathijs at cs.vu.nl>
  To:      Manuel Franceschini <livewire at koltern.com>,
           Thilo Kielmann <kielmann at cs.vu.nl>,
           Andre Merzky <andre at merzky.net>
  Subject: Work plan for updating attributes in the SAGA Python bindings

  "It seems we have reached consensus about the use of SAGA attributes
  in the Python bindings: only use set_attribute() and
  get_attribute(), and forget about dictionaries and Python
  properties."


This was motivated in a previous OGF discussion, where the notes say:

  "Attribute Interface: possibly to ONLY set_attribute/get_attribute,
  even if that is not 100% pythonesque.  SAGA attribs *are* *not*
  called member attribs, but convey a different semantics.  Also, they
  are sometimes extensible, sometimes not, sometimes read/writable,
  sometimes readonly - all difficult to express in the 'native' Python
  way it seems.  Not to speak of async..."

Happy to hear your (and others) opinion...

As a data point: by now I implemented attributes in python for
different interfaces (properties, dictionary, plain SAGA), and can
express almost all semantics (vector/scalar, enum/string/int/... types,
extensible/not extensible, RO/RW/Final, etc) -- but not the async
operations.  Those will only work for the explicit SAGA calls, and I
can't see a way around it.

I am not saying this aapproach should be used, at all.  Just saying
that those parts *can* be implemented.  No real python disciple would
ever like it, of course -- typed properties!  Ugh! :-P


> I am very much in favour of getting this tied down ASAP - however we
> should not make the python API more complex than needed.

Ha! :-)

Best, Andre.



> Steve
>
> On 17 September 2012 13:21, Andre Merzky <andre at merzky.net> wrote:
>> Hi all,
>>
>> I think you all know that we (the former SAGA-C++ group) started to
>> re-implement SAGA in Python, for a variety of reasons.  Related to
>> that, we have an increased interest in actually defining these python
>> bindings cleanly.
>>
>> Over the last years, there have been a gazillion discussions over
>> these bindings, between the different interested groups, but so far
>> the result of that discussion has not been formalized.  Mark Santcroos
>> from Amsterdam an me intent to fix that gap over the next couple of
>> weeks, and hope to have a decent draft document after OGF36 in
>> Chicago.  We will base that document on the various meeting notes and
>> email threads, which we think represent the consensus of these past
>> discussions.
>>
>> We thus plan to use next OGF to re-discuss and finalize the binding,
>> and would be delighted if you would come along.  If that is not
>> possibly, we intent to share the draft document after OGF for comments
>> / corrections etc.  Feel free to follow up with the document evolution
>> on the saga-wg git repository
>> (http://redmine.ogf.org/projects/saga-wg/repository/revisions/master/show/documents/saga-binding-python;
>> use your OGF redmine account for r/w access).
>>
>> As far as I can see (and as far as I can remember), the agreed
>> bindings require relatively small changes to the bindings implemented
>> at VU Amsterdam, which, I think, is the same code base also used by
>> our friends at IN2P3.  We wanted to check who takes responsibility of
>> that code at this point, and if there is still commitment to actually
>> follow the OGF binding document, when that is finalized?
>>
>> Best, Andre.
>>
>> --
>> Nothing is really difficult...



-- 
Nothing is really difficult...


More information about the saga-rg mailing list