11from collections import defaultdict , namedtuple
2+ from contextlib import suppress
23from functools import cached_property
34from itertools import chain , groupby
45
@@ -473,6 +474,7 @@ def generate_buffers(clusters, key, sregistry, options, **kwargs):
473474 buf = next ((b for b , cg in by_buf .items ()
474475 if _fits_buffer (f , cg + g , b )), None )
475476
477+ < << << << HEAD
476478 if buf is None :
477479 # No compatible buffer; create a dedicated one
478480 buf = _select_buffer (
@@ -481,6 +483,15 @@ def generate_buffers(clusters, key, sregistry, options, **kwargs):
481483
482484 mapper [(f , k )] = buf
483485 groups [(f , k )] = g
486+ == == == =
487+ # Finally create the actual buffer
488+ # FIXME: A better refactor would stash callback on the original `f`
489+ cls = callback or Array
490+ name = sregistry .make_name (prefix = f'{ f .name } b' )
491+ mapper [f ] = cls (name = name , dimensions = dimensions , dtype = f .dtype ,
492+ grid = f .grid , halo = f .halo ,
493+ space = 'mapped' , mapped = f , f = f , ** extra_kwargs )
494+ >> >> >> > f4fb4cce1 (lint : Ruff (and flake8 ))
484495
485496 return mapper
486497
0 commit comments