Just a quick inquiry:
Does anybody know how dependent AiiDA plugins are on *dereference=True
option in either of the copy()
, get()
, or put()
methods of the ssh transport plugin?
*Dereferencing causes these methods to act on the files symbolic links point to, instead of the links themselves.
Now I see, in the ssh plugin for example, copy()
is always used with dereference=False
while put()
and get()
are usually used with dereference=True
.
What I found strange is that all the three ignore dereferencing symlinks pointing to a directory, even if dereference=True
. I think we need to document this behavior.
One more problem is, copy(dereference=False)
does not handle symlinks with relative paths correctly. It seems they are not converted to absolute paths before copying, which can cause them to break afterwards.
I’ll create an issue for these points on GitHub.
Still I’m not clear how and if other plugins, qe
, vasp
, etc… are using dereferencing
feature.
But apparently, since nothing has broken so far, I think the above explanation is the mostly expected behavior from a transport plugin.