irods / python-irodsclient

A Python API for iRODS
Other
62 stars 73 forks source link

properly sequenced object shutdown for modules using Python client #614

Open d-w-moore opened 2 months ago

d-w-moore commented 2 months ago

(PRC = Python iRODS Client) Some modules (Example: irods-fs) may leverage PRC-level objects, but possibly sit at a different (likely higher) abstraction level , and so it would be common for these modules' authors to prefer that their objects finalization should occur as prelude or perhaps even postlude to PRC objects' shutdown.

in the case of irods-fs for example, their handles are higher-level and should be closed first, before PRC internal shutdown functions execute. (PRC internally shuts down network connections in certain situations, e.g. to guarantee saving of data object content written but not yet flushed, and to return data objects to an unlocked status.) We should provide an interface to guarantee all of this can happen in the proper sequence.

Example from some_module_using_prc:

d-w-moore commented 1 week ago

This is implemented in https://github.com/d-w-moore/python-irodsclient/tree/614.m . It does not, however, need to be connected with v3.0.0 in any way. No one is asking for it except me.

trel commented 1 week ago

Add a test to that branch? and we're good to merge for 3.0.0?