MCPcopy
hub / github.com/pydata/xarray / combine_locks

Function combine_locks

xarray/backends/locks.py:261–276  ·  view source on GitHub ↗

Combine a sequence of locks into a single lock.

(locks: Sequence[Lock])

Source from the content-addressed store, hash-verified

259
260
261def combine_locks(locks: Sequence[Lock]) -> Lock:
262 """Combine a sequence of locks into a single lock."""
263 all_locks: list[Lock] = []
264 for lock in locks:
265 if isinstance(lock, CombinedLock):
266 all_locks.extend(lock.locks)
267 elif lock is not None:
268 all_locks.append(lock)
269
270 num_locks = len(all_locks)
271 if num_locks > 1:
272 return CombinedLock(all_locks)
273 elif num_locks == 1:
274 return all_locks[0]
275 else:
276 return DummyLock()
277
278
279def ensure_lock(lock: Lock | None | Literal[False]) -> Lock:

Callers 3

netCDF4_.pyFile · 0.90
openMethod · 0.90
openMethod · 0.90

Calls 2

CombinedLockClass · 0.85
DummyLockClass · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…