xarray.backends.CachingFileManager (original) (raw)

class xarray.backends.CachingFileManager(opener, *args, mode=, kwargs=None, lock=None, cache=None, manager_id=None, ref_counts=None)[source]#

Wrapper for automatically opening and closing file objects.

Unlike files, CachingFileManager objects can be safely pickled and passed between processes. They should be explicitly closed to release resources, but a per-process least-recently-used cache for open files ensures that you can safely create arbitrarily large numbers of FileManager objects.

Don’t directly close files acquired from a FileManager. Instead, call FileManager.close(), which ensures that closed files are removed from the cache as well.

Example usage:

manager = FileManager(open, "example.txt", mode="w") f = manager.acquire() f.write(...) manager.close() # ensures file is closed

Note that as long as previous files are still cached, acquiring a file multiple times from the same FileManager is essentially free:

f1 = manager.acquire() f2 = manager.acquire() assert f1 is f2

__init__(opener, *args, mode=, kwargs=None, lock=None, cache=None, manager_id=None, ref_counts=None)[source]#

Initialize a CachingFileManager.

The cache, manager_id and ref_counts arguments exist solely to facilitate dependency injection, and should only be set for tests.

Parameters:

Methods