(
a_mapping,
b_mapping,
compat,
title,
summarizer,
col_width=None,
a_indexes=None,
b_indexes=None,
)
| 849 | |
| 850 | |
| 851 | def _diff_mapping_repr( |
| 852 | a_mapping, |
| 853 | b_mapping, |
| 854 | compat, |
| 855 | title, |
| 856 | summarizer, |
| 857 | col_width=None, |
| 858 | a_indexes=None, |
| 859 | b_indexes=None, |
| 860 | ): |
| 861 | def compare_attr(a, b): |
| 862 | if is_duck_array(a) or is_duck_array(b): |
| 863 | return array_equiv(a, b) |
| 864 | else: |
| 865 | return a == b |
| 866 | |
| 867 | def extra_items_repr(extra_keys, mapping, ab_side, kwargs): |
| 868 | extra_repr = [ |
| 869 | summarizer(k, mapping[k], col_width, **kwargs[k]) for k in extra_keys |
| 870 | ] |
| 871 | if extra_repr: |
| 872 | header = f"{title} only on the {ab_side} object:" |
| 873 | return [header] + extra_repr |
| 874 | else: |
| 875 | return [] |
| 876 | |
| 877 | a_keys = set(a_mapping) |
| 878 | b_keys = set(b_mapping) |
| 879 | |
| 880 | summary = [] |
| 881 | |
| 882 | diff_items = [] |
| 883 | |
| 884 | a_summarizer_kwargs = defaultdict(dict) |
| 885 | if a_indexes is not None: |
| 886 | a_summarizer_kwargs = {k: {"is_index": k in a_indexes} for k in a_mapping} |
| 887 | b_summarizer_kwargs = defaultdict(dict) |
| 888 | if b_indexes is not None: |
| 889 | b_summarizer_kwargs = {k: {"is_index": k in b_indexes} for k in b_mapping} |
| 890 | |
| 891 | for k in a_keys & b_keys: |
| 892 | try: |
| 893 | # compare xarray variable |
| 894 | if not callable(compat): |
| 895 | compatible = getattr(a_mapping[k].variable, compat)( |
| 896 | b_mapping[k].variable |
| 897 | ) |
| 898 | else: |
| 899 | compatible = compat(a_mapping[k].variable, b_mapping[k].variable) |
| 900 | is_variable = True |
| 901 | except AttributeError: |
| 902 | # compare attribute value |
| 903 | compatible = compare_attr(a_mapping[k], b_mapping[k]) |
| 904 | is_variable = False |
| 905 | |
| 906 | if not compatible: |
| 907 | temp = [ |
| 908 | summarizer(k, a_mapping[k], col_width, **a_summarizer_kwargs[k]), |
no test coverage detected
searching dependent graphs…