(items, *,
columns=None,
groupby='kind',
sort=True,
showempty=False,
verbose=False,
)
| 480 | |
| 481 | |
| 482 | def render_table(items, *, |
| 483 | columns=None, |
| 484 | groupby='kind', |
| 485 | sort=True, |
| 486 | showempty=False, |
| 487 | verbose=False, |
| 488 | ): |
| 489 | if groupby is None: |
| 490 | groupby = 'kind' |
| 491 | if showempty is None: |
| 492 | showempty = False |
| 493 | |
| 494 | if groupby: |
| 495 | (collated, groupby, maxfilename, maxname, maxextra, |
| 496 | ) = _collate(items, groupby, showempty) |
| 497 | for grouping in GROUPINGS: |
| 498 | maxextra[grouping] = max(len(g) for g in GROUPINGS[grouping]) |
| 499 | |
| 500 | _, extra = _resolve_full_groupby(groupby) |
| 501 | extras = [extra] |
| 502 | markers = {extra: _MARKERS[extra]} |
| 503 | |
| 504 | groups = GROUPINGS[groupby] |
| 505 | else: |
| 506 | # XXX Support no grouping? |
| 507 | raise NotImplementedError |
| 508 | |
| 509 | if columns: |
| 510 | def get_extra(item): |
| 511 | return {extra: getattr(item, extra) |
| 512 | for extra in ('kind', 'level')} |
| 513 | else: |
| 514 | if verbose: |
| 515 | extracols = [f'{extra}:{maxextra[extra]}' |
| 516 | for extra in extras] |
| 517 | def get_extra(item): |
| 518 | return {extra: getattr(item, extra) |
| 519 | for extra in extras} |
| 520 | elif len(extras) == 1: |
| 521 | extra, = extras |
| 522 | extracols = [f'{m}:1' for m in markers[extra]] |
| 523 | def get_extra(item): |
| 524 | return {m: m if getattr(item, extra) == markers[extra][m] else '' |
| 525 | for m in markers[extra]} |
| 526 | else: |
| 527 | raise NotImplementedError |
| 528 | #extracols = [[f'{m}:1' for m in markers[extra]] |
| 529 | # for extra in extras] |
| 530 | #def get_extra(item): |
| 531 | # values = {} |
| 532 | # for extra in extras: |
| 533 | # cur = markers[extra] |
| 534 | # for m in cur: |
| 535 | # values[m] = m if getattr(item, m) == cur[m] else '' |
| 536 | # return values |
| 537 | columns = [ |
| 538 | f'filename:{maxfilename}', |
| 539 | f'name:{maxname}', |
no test coverage detected
searching dependent graphs…