Source code for mendevi.plot.tools

"""Few tools to help display."""

import functools
import numbers

from mendevi.cst.profiles import PROFILES


[docs] @functools.cache def sorted_profiles() -> dict[str, int]: """Sort the profiles.""" profiles = sorted( PROFILES, key=lambda p: PROFILES[p]["resolution"][0]*PROFILES[p]["resolution"][1], ) return dict(zip(profiles, range(len(profiles)), strict=True))
[docs] def smartsort(item: object) -> object: """Make the order relationship more relevant.""" if isinstance(item, str): profiles = sorted_profiles() efforts = {"fast": 0, "medium": 1, "slow": 2} # optional for now because already ordered return {**profiles, **efforts}.get(item, item) if isinstance(item, numbers.Real): return item return str(item)