#. The very *first* call always retrieves the *full* suite definition
#. The second and subsequent calls *may* return delta/incremental *or* less typically the full suite definition.
If there there only event, meter,label and state changes in the server, then calling sync_local(), will retrieve these *small* incremental changes and synchronise them with thesuite definition held in the ecflow.Client() object.
Typically these changes are a very small fraction, when compared with the full suite. This is the normal scenario.
The incremental sync reduces the network bandwidth and hence improves speed.
If however the user make large scale changes, i.e. by deleting or adding nodes, then sync_local() will return the full suite definition.
Hence if your python code needs to continually poll the server, please use the same ecflow.Client() object and *always* use sync_local().
try: ci = Client() # use default host(ECF_NODE) & port(ECF_PORT) ci.sync_local() # Very first call gets the full Defs client_defs = ci.get_defs() # End user access to the returned Defs ... after a period of time ci.sync_local() # Subsequent calls retrieve incremental or full suite, but typically incremental if ci.in_sync(): # returns true if server changed and changes applied to client print 'Client is now in sync with server' client_defs = ci.get_defs() # End user access to the returned Defs except RuntimeError, e: print str(e)