def iter_tables(all_stylediff_pairs, # type: List[StyleDiffSourcePairs]
enc='utf-8', # type: str
numhunks=1, # type: int
numlines=2, # type: int
wrapcolumn=0, # type: int
ccmode=CC_PROCESSES # type: str
):
# type: (...) -> Iterator[Tuple[List[str], int, int]]
def left_diff(sdp):
# type: (StyleDiffSourcePairs) -> str
return '\n'.join(set([sdtexts[1] for sdtexts in sdp.keys()]))
def sdkeys(item):
# type: (StyleDiffSourcePairs) -> List[bytes]
return list(item.keys())
idx = 0
grouped_sdpairs = itertools.groupby(all_stylediff_pairs, left_diff)
groups = [] # type: List[CallArgs]
grouped_sdp = sorted([(key, list(pairs)) for key, pairs in grouped_sdpairs])
for sdleft, stylediff_pairs in grouped_sdp:
args_lists = []
for sdpairs in sorted(stylediff_pairs, key=sdkeys):
for from_to_texts, pairs in sorted(sdpairs.items()):
args_lists.append((from_to_texts, pairs, numhunks, numlines, wrapcolumn, idx,
enc))
idx += 1
grouparg = (args_lists, ), {} # type: CallArgs
groups.append(grouparg)
for tidx, tables in enumerate(iter_parallel(calc_diff_groups, groups, ccmode=ccmode)):
yield tables, tidx, len(groups)
评论列表
文章目录