In some countries length is measured in feet while in other countries it is measured in meters. If you're going to translate these units you want to be careful though, because a mere typo might ruin everything. That's why it might be better to use a package like pint.

You can pip install it via:

```
pip install pint
```

Once installed, you can start using the unit registry inside of pint.

```
import pint
ureg = pint.UnitRegistry()
```

This unit registry is the main object that you'll interact with. It allows you to define quantities that have a magnitude and a unit attached. For example, you can add meters and centimeters together by just using arithmetic.

```
3 * ureg.meter + 4 * ureg.cm
# 3.04 meter
```

The result of `3 * ureg.meter + 4 * ureg.cm`

is itself an object that can be
used to translate the quantity to another unit.

```
(3 * ureg.meter + 4 * ureg.cm).to(ureg.feet)
# 9.9737 foot
```

Pint also allows you to create units dynamically. Speed, for example, is defined by distance divided by time.

```
60 * ureg.miles / ureg.hour
# 60.0 mile/hour
```

You can translate this to meters per minute, just like before!

```
(60 * ureg.miles / ureg.hour).to(ureg.meters/ureg.minute)
# 1609.344 meter/minute
```

You can also use strings to define units. If you'd like. Sometimes this is more convenient.

```
ureg("meter/second**2") * 10 * ureg("seconds")
# 10.0 meter/second
```

A final thing that's worth pointing out is that you can also define your own units.

```
ureg.define("dog_year = 52 * day = dy")
(5 * ureg("years").to(ureg("dog_year")))
# 35.1201 dog_year
```

There are *lots* of units available in the library so certainly feel free to explore. The
final thing that's worth pointing out is that you can also fetch the properies of a quantity
via;

```
(60 * ureg.miles / ureg.hour).magnitude
# 60.0
(60 * ureg.miles / ureg.hour).units
# mile/hour
(60 * ureg.miles / ureg.hour).dimensionality
# <UnitsContainer({'[length]': 1, '[time]': -1})>
```

Back to main.