def cast_naive_datetime_to_tz(dt, tz=UTC()):
    """If datetime is tz-naive, set it to ``tz``. If datetime is tz-aware, return it
    unmodified.

    Args:
      dt : datetime
        tz-naive or tz-aware datetime.

      tz : datetime.tzinfo
        The timezone to which to adjust tz-naive datetime.

    Returns:
      datetime
        tz-aware datetime.

    Warning:
      This will change the actual moment in time that is represented if the datetime is
      naive and represents a date and time not in ``tz``.

    See Also:
      ``normalize_datetime_to_utc()``

    """
    if has_tz(dt):
        return dt
    return dt.replace(tzinfo=tz)
If datetime is tz-naive, set it to ``tz``. If datetime is tz-aware, return it
    unmodified.

    Args:
      dt : datetime
        tz-naive or tz-aware datetime.

      tz : datetime.tzinfo
        The timezone to which to adjust tz-naive datetime.

    Returns:
      datetime
        tz-aware datetime.

    Warning:
      This will change the actual moment in time that is represented if the datetime is
      naive and represents a date and time not in ``tz``.

    See Also:
      ``normalize_datetime_to_utc()``