The standard loading of complex objects (e.g., Trajectory) from a store loads proxy objects. And sometimes those proxies have other proxies within them (snapshot proxies have kinetics/statics proxies).
This is usually what we want: only load what you need when you need it. However, there may be cases when you really want the whole object, with no proxies. For example, loading an initial trajectory from a file, and the closing that file. If you do that with only proxies loaded, you'll get a NetCDF error if you need the actual objects later.
After discussion with @jhprinz today, we decided that it makes sense to have something like a load_full_object. I would propose that this would work like this:
storage.trajectories.load_full_object(0)
That makes it convenient, but unlikely to be confused with the default behavior.
The standard loading of complex objects (e.g.,
Trajectory) from a store loads proxy objects. And sometimes those proxies have other proxies within them (snapshot proxies have kinetics/statics proxies).This is usually what we want: only load what you need when you need it. However, there may be cases when you really want the whole object, with no proxies. For example, loading an initial trajectory from a file, and the closing that file. If you do that with only proxies loaded, you'll get a NetCDF error if you need the actual objects later.
After discussion with @jhprinz today, we decided that it makes sense to have something like a
load_full_object. I would propose that this would work like this:That makes it convenient, but unlikely to be confused with the default behavior.