def _convert_to_unit(o, default_unit):

    assert not isinstance(default_unit, units.Quantity)

    if isinstance(o, units.Quantity):
        return o.rescale(default_unit)
    elif is_float(o) or is_int(o):
        return o * morphforge.units.parse_unit_str(default_unit)#.rescale(default_unit)
    elif isinstance(o, (str, unicode)) and ':' in o:
        return qty(o).rescale(default_unit)
    else:
        raise ValueError()
def _convert_to_unit(o, default_unit):

    assert not isinstance(default_unit, pq.quantity.Quantity)

    if isinstance(o, pq.quantity.Quantity):
        return o.rescale(default_unit)
    elif is_float(o) or is_int(o):
        return o * morphforge.core.quantities.unit_string_parser.parse(default_unit).rescale(default_unit)
    elif isinstance(o, (str, unicode)) and ':' in o:
        return unit(o).rescale(default_unit)
    else:
        raise ValueError()