def check_metric_imperial(value, units_from, units_to, decimal_places): dict = unit_dictionary.dictionary() # Dictionary object metric_dict = dict.metric_dict() # Universal Metric unit dictionary imperial_dist_dict = dict.imperial_dist_dict() # Imperial length dictionary imperial_vol_dict = dict.imperial_vol_dict() # Imperial volume dictionary imperial_mass_dict = dict.imperial_mass_dict() # Imperial mass dictionary metric_base = None imperial_base = None # Removes the type of conversion: length (m), volume (l), mass (g) metric_units_from = units_from[ 0:len(units_from) - 1] if len(units_from) > 1 else None metric_units_to = units_to[ 0:len(units_to) - 1] if len(units_to) > 1 else None # Metric and Imperial distances if metric_units_from in metric_dict and units_to in imperial_dist_dict: metric_base = metric_dict.get(metric_units_from, None) imperial_base = imperial_dist_dict.get(units_to, None) value = metric_to_imperial(value, metric_base, imperial_base, 39.3701) return str(round(value, decimal_places)) + units_to elif units_from in imperial_dist_dict and metric_units_to in metric_dict: imperial_base = imperial_dist_dict.get(units_from, None) metric_base = metric_dict.get(metric_units_to, None) value = imperial_to_metric(value, metric_base, imperial_base, .0254) return str(round(value, decimal_places)) + units_to # Metric and Imperial volumes if metric_units_from in metric_dict and units_to in imperial_vol_dict: metric_base = metric_dict.get(metric_units_from, None) imperial_base = imperial_vol_dict.get(units_to, None) value = metric_to_imperial(value, metric_base, imperial_base, 33.814) return str(round(value, decimal_places)) + units_to elif units_from in imperial_vol_dict and metric_units_to in metric_dict: imperial_base = imperial_vol_dict.get(units_from, None) metric_base = metric_dict.get(metric_units_to, None) value = imperial_to_metric(value, metric_base, imperial_base, .0295735) return str(round(value, decimal_places)) + units_to # Metric and Imperial masses if metric_units_from in metric_dict and units_to in imperial_mass_dict: metric_base = metric_dict.get(metric_units_from, None) imperial_base = imperial_mass_dict.get(units_to, None) value = metric_to_imperial( value, metric_base, imperial_base, .00220462) return str(round(value, decimal_places)) + units_to elif units_from in imperial_mass_dict and metric_units_to in metric_dict: imperial_base = imperial_mass_dict.get(units_from, None) metric_base = metric_dict.get(metric_units_to, None) value = imperial_to_metric(value, metric_base, imperial_base, 453.592) return str(round(value, decimal_places)) + units_to return False
def check_time(value, units_from, units_to, decimal_places): dict = unit_dictionary.dictionary() # Dictionary object time_dict = dict.time_dict() # Time unit dictionary # Metric and Imperial distances if units_from in time_dict and units_to in time_dict: units_from_base = time_dict.get( units_from, None) # Conversion to seconds units_to_base = time_dict.get( units_to, None) # Conversion from seconds value = convert_time(value, units_from_base, units_to_base) return str(round(value, decimal_places)) + units_to return False