Unit Converter
Convert between units across multiple physical dimensions.
Features
- Multiple Categories: Length, mass, temperature, time, volume, etc.
- Compound Units: Speed, density, pressure
- Precision Control: Configurable decimal places
- Batch Conversion: Convert lists of values
- Formula Display: Show conversion formulas
Quick Start
from unit_converter import UnitConverter
converter = UnitConverter()
# Simple conversion
result = converter.convert(100, "km", "miles")
print(f"100 km = {result:.2f} miles")
# With full details
result = converter.convert_with_details(72, "fahrenheit", "celsius")
print(result)
CLI Usage
# Basic conversion
python unit_converter.py 100 km miles
# Temperature
python unit_converter.py 98.6 fahrenheit celsius
# With precision
python unit_converter.py 1.5 kg lbs --precision 4
# List supported units
python unit_converter.py --list
# List units in category
python unit_converter.py --list length
# Show formula
python unit_converter.py 100 cm inches --formula
API Reference
UnitConverter Class
class UnitConverter:
def __init__(self)
# Conversion
def convert(self, value: float, from_unit: str, to_unit: str) -> float
def convert_with_details(self, value: float, from_unit: str, to_unit: str) -> dict
def batch_convert(self, values: list, from_unit: str, to_unit: str) -> list
# Information
def list_categories(self) -> list
def list_units(self, category: str = None) -> dict
def get_formula(self, from_unit: str, to_unit: str) -> str
def find_unit(self, query: str) -> list
Supported Categories
Length
| Unit | Aliases | |------|---------| | meter | m | | kilometer | km | | centimeter | cm | | millimeter | mm | | inch | in | | foot | ft | | yard | yd | | mile | mi | | nautical_mile | nm |
Mass
| Unit | Aliases | |------|---------| | kilogram | kg | | gram | g | | milligram | mg | | pound | lb, lbs | | ounce | oz | | ton | | | metric_ton | tonne |
Temperature
| Unit | Aliases | |------|---------| | celsius | c | | fahrenheit | f | | kelvin | k |
Time
| Unit | Aliases | |------|---------| | second | s, sec | | minute | min | | hour | h, hr | | day | d | | week | wk | | month | mo | | year | yr |
Volume
| Unit | Aliases | |------|---------| | liter | l | | milliliter | ml | | gallon | gal | | quart | qt | | pint | pt | | cup | | | fluid_ounce | fl_oz | | cubic_meter | m3 |
Area
| Unit | Aliases | |------|---------| | square_meter | m2, sqm | | square_kilometer | km2 | | square_foot | sqft, ft2 | | acre | | | hectare | ha |
Speed
| Unit | Aliases | |------|---------| | meters_per_second | m/s, mps | | kilometers_per_hour | km/h, kph | | miles_per_hour | mph | | knots | kt |
Digital Storage
| Unit | Aliases | |------|---------| | byte | b | | kilobyte | kb | | megabyte | mb | | gigabyte | gb | | terabyte | tb |
Energy
| Unit | Aliases | |------|---------| | joule | j | | kilojoule | kj | | calorie | cal | | kilocalorie | kcal | | watt_hour | wh | | kilowatt_hour | kwh |
Example Workflows
Batch Conversion
converter = UnitConverter()
weights_kg = [50, 75, 100, 125]
weights_lbs = converter.batch_convert(weights_kg, "kg", "lbs")
for kg, lbs in zip(weights_kg, weights_lbs):
print(f"{kg} kg = {lbs:.1f} lbs")
Find Compatible Units
converter = UnitConverter()
# Search for units
matches = converter.find_unit("meter")
# Returns: ['meter', 'kilometer', 'centimeter', ...]
Get Conversion Formula
converter = UnitConverter()
formula = converter.get_formula("celsius", "fahrenheit")
print(formula) # "F = (C × 9/5) + 32"
Output Format
convert_with_details()
{
"value": 100,
"from_unit": "km",
"to_unit": "miles",
"result": 62.1371,
"formula": "miles = km × 0.621371",
"category": "length"
}
Dependencies
No external dependencies - uses Python standard library.