MCPcopy
hub / github.com/pydata/xarray / _diff_mapping_repr

Function _diff_mapping_repr

xarray/core/formatting.py:851–964  ·  view source on GitHub ↗
(
    a_mapping,
    b_mapping,
    compat,
    title,
    summarizer,
    col_width=None,
    a_indexes=None,
    b_indexes=None,
)

Source from the content-addressed store, hash-verified

849
850
851def _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]),

Callers 1

diff_coords_reprFunction · 0.85

Calls 7

compare_attrFunction · 0.85
summarize_attrFunction · 0.85
extra_items_reprFunction · 0.85
itemsMethod · 0.80
lowerMethod · 0.80
updateMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…