# HG changeset patch # User Jason R. Coombs # Date 1679433429 14400 # Node ID 2cd959fe631aae3fab459a15eba71f23f5cee6de # Parent c0fbd63d66a755d3d97826ddf203d4d9556c06ba extras: extract function for projecting names from a gettable object diff -r c0fbd63d66a7 -r 2cd959fe631a hgext/rebase.py --- a/hgext/rebase.py Sat Mar 25 23:02:33 2023 +0100 +++ b/hgext/rebase.py Tue Mar 21 17:17:09 2023 -0400 @@ -84,13 +84,19 @@ return 1 +graft_extras = b'source', b'intermediate-source' + + +def _project(orig, names): + """Project a subset of names from orig.""" + values = (orig.get(name, None) for name in names) + return { + name: value for name, value in zip(names, values) if value is not None + } + + def _savegraft(ctx, extra): - s = ctx.extra().get(b'source', None) - if s is not None: - extra[b'source'] = s - s = ctx.extra().get(b'intermediate-source', None) - if s is not None: - extra[b'intermediate-source'] = s + extra.update(_project(ctx.extra(), graft_extras)) def _savebranch(ctx, extra):