@@ -1010,19 +1010,18 @@ def __repr__(self):
1010
1010
coords = self ._obj .coords
1011
1011
dims = self ._obj .dims
1012
1012
1013
- def make_text_section (subtitle , vardict , valid_values , valid_keys = None ):
1013
+ def make_text_section (subtitle , vardict , valid_values , default_keys = None ):
1014
1014
1015
1015
star = " * "
1016
1016
tab = len (star ) * " "
1017
1017
subtitle = f"- { subtitle } :"
1018
1018
1019
- # Sort keys
1020
- if not valid_keys :
1021
- # Alphabetical order
1022
- vardict = {key : vardict [key ] for key in sorted (vardict )}
1023
- else :
1024
- # Hardcoded order
1025
- vardict = {key : vardict [key ] for key in valid_keys if key in vardict }
1019
+ # Sort keys if there aren't extra keys,
1020
+ # preserve default keys order otherwise.
1021
+ default_keys = [] if not default_keys else list (default_keys )
1022
+ extra_keys = list (set (vardict ) - set (default_keys ))
1023
+ ordered_keys = sorted (vardict ) if extra_keys else default_keys
1024
+ vardict = {key : vardict [key ] for key in ordered_keys if key in vardict }
1026
1025
1027
1026
# Keep only valid values (e.g., coords or data_vars)
1028
1027
vardict = {
@@ -1037,9 +1036,9 @@ def make_text_section(subtitle, vardict, valid_values, valid_keys=None):
1037
1036
for key , value in vardict .items ()
1038
1037
]
1039
1038
1040
- # Add valid keys missing followed by n/a
1041
- if valid_keys :
1042
- missing_keys = [key for key in valid_keys if key not in vardict ]
1039
+ # Append missing default keys followed by n/a
1040
+ if default_keys :
1041
+ missing_keys = [key for key in default_keys if key not in vardict ]
1043
1042
if missing_keys :
1044
1043
rows += [tab + ", " .join (missing_keys ) + ": n/a" ]
1045
1044
elif not rows :
0 commit comments