<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def chosen_angle_to_canonical_half_turns( half_turns: Optional[Union[sympy.Basic, float]] = None, rads: Optional[float] = None, degs: Optional[float] = None, default: float = 1.0, ) -> Union[sympy.Basic, float]: """Returns a canonicalized half_turns based on the given arguments. At most one of half_turns, rads, degs must be specified. If none are specified, the output defaults to half_turns=1. Args: half_turns: The number of half turns to rotate by. rads: The number of radians to rotate by. degs: The number of degrees to rotate by default: The half turns angle to use if nothing else is specified. Returns: A number of half turns. """

    return canonicalize_half_turns(
            chosen_angle_to_half_turns(
                half_turns=half_turns,
                rads=rads,
                degs=degs,
                default=default))