"""
====
mudu
====

A Python package for unit and dimension handling, unit conversion, units arithemtic, with \\
support for custom units definition.

To read a well written web version of the package documentation, go to your cli and try 

.. code-block:: shell

    mudu --doc
"""

from .base import (
    LENGTH,
    MASS,
    TIME,
    PLANE_ANGLE,
    SOLID_ANGLE,
    THERMODYNAMIC_TEMPERATURE,
    ELECTRIC_CURRENT,
    AMOUNT_OF_SUBSTANCE,
    LUMINOUS_INTENSITY,
    FORCE,
    ENERGY,
    DENSITY,
    GENERIC_DIMENSION,
    GENERIC_QUANTITY,
    GENERIC_UNIT,
    DIMENSIONLESS,
    DIMENSIONLESS_UNIT,
    GIGA,
    MEGA,
    KILO,
    CENTI,
    MILLI,
    MICRO,
    NANO,
    PICO,
    FEMTO,
    ATTO,
    _UnitType,
    OrderUnit,
)

from .units import (
    INCH,
    METER,
    KILOMETER,
    FEET,
    YARD,
    MILE,
    NAUTICAL_MILE,
    GRAM,
    KILOGRAM,
    POUND,
    SLUG,
    SHORT_TON,
    LONG_TON,
    METRIC_TON,
    SECOND,
    MINUTE,
    HOUR,
    KELVIN,
    RANKINE,
    CELSIUS,
    FARENHEIT,
    DEGREE,
    RADIAN,
    STERADIAN,
    AMPERE,
    MOLE,
    CANDELA,
    NEWTON,
    POUND_FORCE,
    POUNDAL,
    DYNE,
    PASCAL,
    PSI,
    mmHg,
    inHg,
    BAR,
    ATM,
    POUND_PER_SQUARE_FOOT,
    JOULE,
    BRITISH_THERMAL_UNIT,
    CALORIE,
    WATT_HOUR,
    ELECTRON_VOLT,
    KILOGRAM_PER_CUBIC_METER,
    GRAM_PER_CUBIC_CENTIMETER,
    GRAM_PER_CUBIC_MILLILITER,
    POUND_PER_CUBIC_FOOT,
    POUND_PER_CUBIC_INCH,
    SLUG_PER_CUBIC_FOOT,
    WATT,
    HORSEPOWER,
    BTU_PER_HOUR,
    VOLT,
    FARAD,
    HENRY,
    WEBER,
    OHMS,
    TESLA,
    SIEMENS,
    LUX,
    BECQUEREL,
    CURIE,
    GRAY,
    RAD,
    SIEVERT,
    REM,
)

from .dimensions import (
    _DimensionUnitBase,
    _DimensionType,
    DerivedQuantity,
    custom_unit,
    GenericUnit,
    GenericUnit2,
    Length,
    Mass,
    Time,
    Temperature,
    Angle,
    SolidAngle,
    ElectricCurrent,
    AmountOfSubstance,
    LuminousIntensity,
    Force,
    Pressure,
    Energy,
    Density,
    Power,
    Voltage,
    Capacitance,
    Inductance,
    MagneticFlux,
    Resistance,
    Conductance,
    MageneticFieldStrength,
    Illuminance,
    Radioactivity,
    AbsorbedDose,
    DoseEquivalent,
)

from .exceptions import (
    DimensionError,
    ConversionError,
    NotIterableError,
    SequenceOperationErrorr,
    OperationNotAvailable,
)
