From ba815d1315d920f6c9e6168be4d9f278a3c1e9f8 Mon Sep 17 00:00:00 2001 From: Nour Yosri Date: Fri, 14 Feb 2025 11:53:07 -0800 Subject: [PATCH] Add missing units --- tunits/core/cython/base_unit_data.pyx | 2 + tunits/core/cython/derived_unit_data.pyx | 1 + tunits/core/cython/dimension.pyx | 10 +- tunits/core/cython/physical_constant_data.pyx | 1 + tunits/units.py | 2443 +++++++++-------- 5 files changed, 1236 insertions(+), 1221 deletions(-) diff --git a/tunits/core/cython/base_unit_data.pyx b/tunits/core/cython/base_unit_data.pyx index ab229dd..d6f9b6e 100644 --- a/tunits/core/cython/base_unit_data.pyx +++ b/tunits/core/cython/base_unit_data.pyx @@ -51,6 +51,8 @@ __SI_BASE_UNITS = [ __OTHER_BASE_UNITS = [ BaseUnitData('dB', 'decibel', use_prefixes=False), BaseUnitData('dBm', 'decibel-milliwatt', use_prefixes=False), + BaseUnitData('degC', 'celsius', use_prefixes=False), + BaseUnitData('degF', 'fahrenheit', use_prefixes=False), ] ALL_BASE_UNITS = __SI_BASE_UNITS + __OTHER_BASE_UNITS diff --git a/tunits/core/cython/derived_unit_data.pyx b/tunits/core/cython/derived_unit_data.pyx index d731a6b..c9091ee 100644 --- a/tunits/core/cython/derived_unit_data.pyx +++ b/tunits/core/cython/derived_unit_data.pyx @@ -113,6 +113,7 @@ __OTHER_UNITS = [ DerivedUnitData('ton', None, 'lb', 2000), # Pressure. DerivedUnitData('psi', 'pounds_per_square_inch', 'Pa', 6894.75729317), + DerivedUnitData('bar', 'barometric_pressure', 'Pa', 1e5), ] # Units that aren't technically exact, but close enough for our purposes. diff --git a/tunits/core/cython/dimension.pyx b/tunits/core/cython/dimension.pyx index fc7ee23..b6ee7cb 100644 --- a/tunits/core/cython/dimension.pyx +++ b/tunits/core/cython/dimension.pyx @@ -18,13 +18,13 @@ This module creates the dimension abstraction which allows the creation of value that belong to a dimension (e.g. t: Time, x: Length, ...etc). This allows us to use static types to check code correctness (e.g. time_method(t: Time)). -To add a new dimension, create 3 classes: +To add a new dimension, create 3 classes: - `class _NewDimension(Dimension):` which implements the abstract methods from the abstract `Dimension` class. - `class NewDimension(_NewDimension, ValueWithDimension)` which represents scalar values and doesn't need to implement any methods. - `class AccelerationArray(_Acceleration, ArrayWithDimension)` which represents - an array of values sharing the same dimension and + an array of values sharing the same dimension and """ import abc @@ -696,7 +696,11 @@ class _Temperature(Dimension): @staticmethod @cache def valid_base_units() -> tuple[Value, ...]: - return (default_unit_database.known_units['kelvin'],) + return ( + default_unit_database.known_units['kelvin'], + default_unit_database.known_units['celsius'], + default_unit_database.known_units['fahrenheit'], + ) def _value_class(self) -> type[Value]: return Temperature diff --git a/tunits/core/cython/physical_constant_data.pyx b/tunits/core/cython/physical_constant_data.pyx index f19ae07..5996fce 100644 --- a/tunits/core/cython/physical_constant_data.pyx +++ b/tunits/core/cython/physical_constant_data.pyx @@ -69,6 +69,7 @@ _DERIVED_CONSTANTS = [ # degrees Rankine PhysicalConstantData('degR', None, 5.0 / 9.0, 'K'), PhysicalConstantData('bohr_magneton', None, 9.2740096820e-24, 'J/T'), + PhysicalConstantData('R_k', 'resistance_quantum', 25812.78277321444, 'ohm'), # h/e^2 ] ALL_PHYSICAL_CONSTANT_DATA = _PHYSICAL_CONSTANTS + _DERIVED_CONSTANTS diff --git a/tunits/units.py b/tunits/units.py index 2266c37..e9b60c5 100644 --- a/tunits/units.py +++ b/tunits/units.py @@ -146,6 +146,7 @@ Prad = core.Angle(core.default_unit_database.known_units['Prad']) Ps = core.Time(core.default_unit_database.known_units['Ps']) Psr = core.Angle(core.default_unit_database.known_units['Psr']) +R_k = core.Resistance(core.default_unit_database.known_units['R_k']) S = core.ElectricalConductance(core.default_unit_database.known_units['S']) T = core.MagneticFluxDensity(core.default_unit_database.known_units['T']) TA = core.ElectricCurrent(core.default_unit_database.known_units['TA']) @@ -291,6 +292,7 @@ attoweber = core.MagneticFlux(core.default_unit_database.known_units['attoweber']) avogadro_constant = core.default_unit_database.known_units['avogadro_constant'] b = core.Area(core.default_unit_database.known_units['b']) +bar = core.Pressure(core.default_unit_database.known_units['bar']) barn = core.Area(core.default_unit_database.known_units['barn']) becquerel = core.Frequency(core.default_unit_database.known_units['becquerel']) bohr_magneton = core.default_unit_database.known_units['bohr_magneton'] @@ -436,6 +438,8 @@ deciwatt = core.Power(core.default_unit_database.known_units['deciwatt']) deciweber = core.MagneticFlux(core.default_unit_database.known_units['deciweber']) deg = core.Angle(core.default_unit_database.known_units['deg']) +degC = core.Temperature(core.default_unit_database.known_units['degC']) +degF = core.Temperature(core.default_unit_database.known_units['degF']) degR = core.Temperature(core.default_unit_database.known_units['degR']) dekaampere = core.ElectricCurrent(core.default_unit_database.known_units['dekaampere']) dekabecquerel = core.Frequency(core.default_unit_database.known_units['dekabecquerel']) @@ -1241,1223 +1245,1226 @@ zs = core.Time(core.default_unit_database.known_units['zs']) zsr = core.Angle(core.default_unit_database.known_units['zsr']) - __all__ = [ - 'A', - 'Ang', - 'Bohr', - 'Bq', - 'C', - 'EA', - 'EBq', - 'EC', - 'EF', - 'EGauss', - 'EH', - 'EHz', - 'EJ', - 'EK', - 'EN', - 'EOhm', - 'EPa', - 'ES', - 'ET', - 'EV', - 'EW', - 'EWb', - 'Ecd', - 'Eg', - 'El', - 'Elm', - 'Elx', - 'Em', - 'Emol', - 'Erad', - 'Es', - 'Esr', - 'F', - 'G', - 'GA', - 'GBq', - 'GC', - 'GF', - 'GGauss', - 'GH', - 'GHz', - 'GJ', - 'GK', - 'GN', - 'GOhm', - 'GPa', - 'GS', - 'GT', - 'GV', - 'GW', - 'GWb', - 'Gauss', - 'Gcd', - 'Gg', - 'Gl', - 'Glm', - 'Glx', - 'Gm', - 'Gmol', - 'Grad', - 'Gs', - 'Gsr', - 'H', - 'Hartree', - 'Hz', - 'J', - 'K', - 'MA', - 'MBq', - 'MC', - 'MF', - 'MGauss', - 'MH', - 'MHz', - 'MJ', - 'MK', - 'MN', - 'MOhm', - 'MPa', - 'MS', - 'MT', - 'MV', - 'MW', - 'MWb', - 'Mcd', - 'Mg', - 'Ml', - 'Mlm', - 'Mlx', - 'Mm', - 'Mmol', - 'Mrad', - 'Ms', - 'Msr', - 'N', - 'Nav', - 'Ohm', - 'PA', - 'PBq', - 'PC', - 'PF', - 'PGauss', - 'PH', - 'PHz', - 'PJ', - 'PK', - 'PN', - 'POhm', - 'PPa', - 'PS', - 'PT', - 'PV', - 'PW', - 'PWb', - 'Pa', - 'Pcd', - 'Pg', - 'Pl', - 'Plm', - 'Plx', - 'Pm', - 'Pmol', - 'Prad', - 'Ps', - 'Psr', - 'S', - 'T', - 'TA', - 'TBq', - 'TC', - 'TF', - 'TGauss', - 'TH', - 'THz', - 'TJ', - 'TK', - 'TN', - 'TOhm', - 'TPa', - 'TS', - 'TT', - 'TV', - 'TW', - 'TWb', - 'Tcd', - 'Tg', - 'Tl', - 'Tlm', - 'Tlx', - 'Tm', - 'Tmol', - 'Trad', - 'Ts', - 'Tsr', - 'V', - 'W', - 'Wb', - 'YA', - 'YBq', - 'YC', - 'YF', - 'YGauss', - 'YH', - 'YHz', - 'YJ', - 'YK', - 'YN', - 'YOhm', - 'YPa', - 'YS', - 'YT', - 'YV', - 'YW', - 'YWb', - 'Ycd', - 'Yg', - 'Yl', - 'Ylm', - 'Ylx', - 'Ym', - 'Ymol', - 'Yrad', - 'Ys', - 'Ysr', - 'ZA', - 'ZBq', - 'ZC', - 'ZF', - 'ZGauss', - 'ZH', - 'ZHz', - 'ZJ', - 'ZK', - 'ZN', - 'ZOhm', - 'ZPa', - 'ZS', - 'ZT', - 'ZV', - 'ZW', - 'ZWb', - 'Zcd', - 'Zg', - 'Zl', - 'Zlm', - 'Zlx', - 'Zm', - 'Zmol', - 'Zrad', - 'Zs', - 'Zsr', - 'aA', - 'aBq', - 'aC', - 'aF', - 'aGauss', - 'aH', - 'aHz', - 'aJ', - 'aK', - 'aN', - 'aOhm', - 'aPa', - 'aS', - 'aT', - 'aV', - 'aW', - 'aWb', - 'acd', - 'ag', - 'al', - 'alm', - 'alx', - 'am', - 'amol', - 'ampere', - 'amu', - 'angstrom', - 'arad', - 'asr', - 'atomic_mass_unit', - 'attoampere', - 'attobecquerel', - 'attocandela', - 'attocoulomb', - 'attofarad', - 'attogauss', - 'attogram', - 'attohenry', - 'attohertz', - 'attojoule', - 'attokelvin', - 'attoliter', - 'attolumen', - 'attolux', - 'attometer', - 'attomole', - 'attonewton', - 'attoohm', - 'attopascal', - 'attoradian', - 'attosecond', - 'attosiemens', - 'attosteradian', - 'attotesla', - 'attovolt', - 'attowatt', - 'attoweber', - 'avogadro_constant', - 'b', - 'barn', - 'becquerel', - 'bohr_magneton', - 'bohr_radius', - 'boltzmann_constant', - 'british_gallon', - 'c', - 'cA', - 'cBq', - 'cC', - 'cF', - 'cGauss', - 'cH', - 'cHz', - 'cJ', - 'cK', - 'cN', - 'cOhm', - 'cPa', - 'cS', - 'cT', - 'cV', - 'cW', - 'cWb', - 'candela', - 'ccd', - 'cd', - 'centiampere', - 'centibecquerel', - 'centicandela', - 'centicoulomb', - 'centifarad', - 'centigauss', - 'centigram', - 'centihenry', - 'centihertz', - 'centijoule', - 'centikelvin', - 'centiliter', - 'centilumen', - 'centilux', - 'centimeter', - 'centimole', - 'centinewton', - 'centiohm', - 'centipascal', - 'centiradian', - 'centisecond', - 'centisiemens', - 'centisteradian', - 'centitesla', - 'centivolt', - 'centiwatt', - 'centiweber', - 'cg', - 'cl', - 'clm', - 'clx', - 'cm', - 'cmol', - 'coulomb', - 'crad', - 'cs', - 'csr', - 'cup', - 'cyc', - 'cycle', - 'd', - 'dA', - 'dB', - 'dBm', - 'dBq', - 'dC', - 'dF', - 'dGauss', - 'dH', - 'dHz', - 'dJ', - 'dK', - 'dN', - 'dOhm', - 'dPa', - 'dS', - 'dT', - 'dV', - 'dW', - 'dWb', - 'daA', - 'daBq', - 'daC', - 'daF', - 'daGauss', - 'daH', - 'daHz', - 'daJ', - 'daK', - 'daN', - 'daOhm', - 'daPa', - 'daS', - 'daT', - 'daV', - 'daW', - 'daWb', - 'dacd', - 'dag', - 'dal', - 'dalm', - 'dalx', - 'dam', - 'damol', - 'darad', - 'das', - 'dasr', - 'day', - 'dcd', - 'deciampere', - 'decibecquerel', - 'decibel', - 'decicandela', - 'decicoulomb', - 'decifarad', - 'decigauss', - 'decigram', - 'decihenry', - 'decihertz', - 'decijoule', - 'decikelvin', - 'deciliter', - 'decilumen', - 'decilux', - 'decimeter', - 'decimole', - 'decinewton', - 'deciohm', - 'decipascal', - 'deciradian', - 'decisecond', - 'decisiemens', - 'decisteradian', - 'decitesla', - 'decivolt', - 'deciwatt', - 'deciweber', - 'deg', - 'degR', - 'dekaampere', - 'dekabecquerel', - 'dekacandela', - 'dekacoulomb', - 'dekafarad', - 'dekagauss', - 'dekagram', - 'dekahenry', - 'dekahertz', - 'dekajoule', - 'dekakelvin', - 'dekaliter', - 'dekalumen', - 'dekalux', - 'dekameter', - 'dekamole', - 'dekanewton', - 'dekaohm', - 'dekapascal', - 'dekaradian', - 'dekasecond', - 'dekasiemens', - 'dekasteradian', - 'dekatesla', - 'dekavolt', - 'dekawatt', - 'dekaweber', - 'dg', - 'dl', - 'dlm', - 'dlx', - 'dm', - 'dmol', - 'drad', - 'ds', - 'dsr', - 'e', - 'electron_mass', - 'elementary_charge', - 'eps0', - 'exaampere', - 'exabecquerel', - 'exacandela', - 'exacoulomb', - 'exafarad', - 'exagauss', - 'exagram', - 'exahenry', - 'exahertz', - 'exajoule', - 'exakelvin', - 'exaliter', - 'exalumen', - 'exalux', - 'exameter', - 'examole', - 'exanewton', - 'exaohm', - 'exapascal', - 'exaradian', - 'exasecond', - 'exasiemens', - 'exasteradian', - 'exatesla', - 'exavolt', - 'exawatt', - 'exaweber', - 'fA', - 'fBq', - 'fC', - 'fF', - 'fGauss', - 'fH', - 'fHz', - 'fJ', - 'fK', - 'fN', - 'fOhm', - 'fPa', - 'fS', - 'fT', - 'fV', - 'fW', - 'fWb', - 'farad', - 'fcd', - 'femtoampere', - 'femtobecquerel', - 'femtocandela', - 'femtocoulomb', - 'femtofarad', - 'femtogauss', - 'femtogram', - 'femtohenry', - 'femtohertz', - 'femtojoule', - 'femtokelvin', - 'femtoliter', - 'femtolumen', - 'femtolux', - 'femtometer', - 'femtomole', - 'femtonewton', - 'femtoohm', - 'femtopascal', - 'femtoradian', - 'femtosecond', - 'femtosiemens', - 'femtosteradian', - 'femtotesla', - 'femtovolt', - 'femtowatt', - 'femtoweber', - 'fg', - 'fl', - 'flm', - 'floz', - 'fluid_ounce', - 'flx', - 'fm', - 'fmol', - 'foot', - 'frad', - 'fs', - 'fsr', - 'ft', - 'g', - 'galUK', - 'galUS', - 'gauss', - 'gigaampere', - 'gigabecquerel', - 'gigacandela', - 'gigacoulomb', - 'gigafarad', - 'gigagauss', - 'gigagram', - 'gigahenry', - 'gigahertz', - 'gigajoule', - 'gigakelvin', - 'gigaliter', - 'gigalumen', - 'gigalux', - 'gigameter', - 'gigamole', - 'giganewton', - 'gigaohm', - 'gigapascal', - 'gigaradian', - 'gigasecond', - 'gigasiemens', - 'gigasteradian', - 'gigatesla', - 'gigavolt', - 'gigawatt', - 'gigaweber', - 'gram', - 'gravitational_constant', - 'h', - 'hA', - 'hBq', - 'hC', - 'hF', - 'hGauss', - 'hH', - 'hHz', - 'hJ', - 'hK', - 'hN', - 'hOhm', - 'hPa', - 'hS', - 'hT', - 'hV', - 'hW', - 'hWb', - 'ha', - 'hbar', - 'hcd', - 'hectare', - 'hectoampere', - 'hectobecquerel', - 'hectocandela', - 'hectocoulomb', - 'hectofarad', - 'hectogauss', - 'hectogram', - 'hectohenry', - 'hectohertz', - 'hectojoule', - 'hectokelvin', - 'hectoliter', - 'hectolumen', - 'hectolux', - 'hectometer', - 'hectomole', - 'hectonewton', - 'hectoohm', - 'hectopascal', - 'hectoradian', - 'hectosecond', - 'hectosiemens', - 'hectosteradian', - 'hectotesla', - 'hectovolt', - 'hectowatt', - 'hectoweber', - 'henry', - 'hertz', - 'hg', - 'hl', - 'hlm', - 'hlx', - 'hm', - 'hmol', - 'hour', - 'hplanck', - 'hrad', - 'hs', - 'hsr', - 'inch', - 'joule', - 'k', - 'kA', - 'kBq', - 'kC', - 'kF', - 'kGauss', - 'kH', - 'kHz', - 'kJ', - 'kK', - 'kN', - 'kOhm', - 'kPa', - 'kS', - 'kT', - 'kV', - 'kW', - 'kWb', - 'kcd', - 'kelvin', - 'kg', - 'kiloampere', - 'kilobecquerel', - 'kilocandela', - 'kilocoulomb', - 'kilofarad', - 'kilogauss', - 'kilogram', - 'kilohenry', - 'kilohertz', - 'kilojoule', - 'kilokelvin', - 'kiloliter', - 'kilolumen', - 'kilolux', - 'kilometer', - 'kilomole', - 'kilonewton', - 'kiloohm', - 'kilopascal', - 'kiloradian', - 'kilosecond', - 'kilosiemens', - 'kilosteradian', - 'kilotesla', - 'kilovolt', - 'kilowatt', - 'kiloweber', - 'kl', - 'klm', - 'klx', - 'km', - 'kmol', - 'krad', - 'ks', - 'ksr', - 'l', - 'lb', - 'light_year', - 'liter', - 'lm', - 'lumen', - 'lux', - 'lx', - 'ly', - 'lyr', - 'm', - 'mA', - 'mBq', - 'mC', - 'mF', - 'mGauss', - 'mH', - 'mHz', - 'mJ', - 'mK', - 'mN', - 'mOhm', - 'mPa', - 'mS', - 'mT', - 'mV', - 'mW', - 'mWb', - 'mcd', - 'me', - 'megaampere', - 'megabecquerel', - 'megacandela', - 'megacoulomb', - 'megafarad', - 'megagauss', - 'megagram', - 'megahenry', - 'megahertz', - 'megajoule', - 'megakelvin', - 'megaliter', - 'megalumen', - 'megalux', - 'megameter', - 'megamole', - 'meganewton', - 'megaohm', - 'megapascal', - 'megaradian', - 'megasecond', - 'megasiemens', - 'megasteradian', - 'megatesla', - 'megavolt', - 'megawatt', - 'megaweber', - 'meter', - 'mg', - 'microampere', - 'microbecquerel', - 'microcandela', - 'microcoulomb', - 'microfarad', - 'microgauss', - 'microgram', - 'microhenry', - 'microhertz', - 'microjoule', - 'microkelvin', - 'microliter', - 'microlumen', - 'microlux', - 'micrometer', - 'micromole', - 'micronewton', - 'microohm', - 'micropascal', - 'microradian', - 'microsecond', - 'microsiemens', - 'microsteradian', - 'microtesla', - 'microvolt', - 'microwatt', - 'microweber', - 'milliampere', - 'millibecquerel', - 'millicandela', - 'millicoulomb', - 'millifarad', - 'milligauss', - 'milligram', - 'millihenry', - 'millihertz', - 'millijoule', - 'millikelvin', - 'milliliter', - 'millilumen', - 'millilux', - 'millimeter', - 'millimole', - 'millinewton', - 'milliohm', - 'millipascal', - 'milliradian', - 'millisecond', - 'millisiemens', - 'millisteradian', - 'millitesla', - 'millivolt', - 'milliwatt', - 'milliweber', - 'minute', - 'ml', - 'mlm', - 'mlx', - 'mm', - 'mmol', - 'mol', - 'mole', - 'mp', - 'mrad', - 'ms', - 'msr', - 'mu0', - 'nA', - 'nBq', - 'nC', - 'nF', - 'nGauss', - 'nH', - 'nHz', - 'nJ', - 'nK', - 'nN', - 'nOhm', - 'nPa', - 'nS', - 'nT', - 'nV', - 'nW', - 'nWb', - 'nanoampere', - 'nanobecquerel', - 'nanocandela', - 'nanocoulomb', - 'nanofarad', - 'nanogauss', - 'nanogram', - 'nanohenry', - 'nanohertz', - 'nanojoule', - 'nanokelvin', - 'nanoliter', - 'nanolumen', - 'nanolux', - 'nanometer', - 'nanomole', - 'nanonewton', - 'nanoohm', - 'nanopascal', - 'nanoradian', - 'nanosecond', - 'nanosiemens', - 'nanosteradian', - 'nanotesla', - 'nanovolt', - 'nanowatt', - 'nanoweber', - 'nautical_mile', - 'ncd', - 'newton', - 'ng', - 'nl', - 'nlm', - 'nlx', - 'nm', - 'nmi', - 'nmol', - 'nrad', - 'ns', - 'nsr', - 'ohm', - 'ounce', - 'oz', - 'pA', - 'pBq', - 'pC', - 'pF', - 'pGauss', - 'pH', - 'pHz', - 'pJ', - 'pK', - 'pN', - 'pOhm', - 'pPa', - 'pS', - 'pT', - 'pV', - 'pW', - 'pWb', - 'pascal', - 'pcd', - 'petaampere', - 'petabecquerel', - 'petacandela', - 'petacoulomb', - 'petafarad', - 'petagauss', - 'petagram', - 'petahenry', - 'petahertz', - 'petajoule', - 'petakelvin', - 'petaliter', - 'petalumen', - 'petalux', - 'petameter', - 'petamole', - 'petanewton', - 'petaohm', - 'petapascal', - 'petaradian', - 'petasecond', - 'petasiemens', - 'petasteradian', - 'petatesla', - 'petavolt', - 'petawatt', - 'petaweber', - 'pg', - 'picoampere', - 'picobecquerel', - 'picocandela', - 'picocoulomb', - 'picofarad', - 'picogauss', - 'picogram', - 'picohenry', - 'picohertz', - 'picojoule', - 'picokelvin', - 'picoliter', - 'picolumen', - 'picolux', - 'picometer', - 'picomole', - 'piconewton', - 'picoohm', - 'picopascal', - 'picoradian', - 'picosecond', - 'picosiemens', - 'picosteradian', - 'picotesla', - 'picovolt', - 'picowatt', - 'picoweber', - 'pint', - 'pl', - 'planck_constant', - 'plm', - 'plx', - 'pm', - 'pmol', - 'pound', - 'pounds_per_square_inch', - 'prad', - 'proton_mass', - 'ps', - 'psi', - 'psr', - 'qt', - 'quart', - 'rad', - 'radian', - 'reduced_planck_constant', - 'rootHz', - 's', - 'second', - 'siemens', - 'speed_of_light', - 'sqrtHz', - 'sr', - 'steradian', - 'tablespoon', - 'tbsp', - 'teaspoon', - 'teraampere', - 'terabecquerel', - 'teracandela', - 'teracoulomb', - 'terafarad', - 'teragauss', - 'teragram', - 'terahenry', - 'terahertz', - 'terajoule', - 'terakelvin', - 'teraliter', - 'teralumen', - 'teralux', - 'terameter', - 'teramole', - 'teranewton', - 'teraohm', - 'terapascal', - 'teraradian', - 'terasecond', - 'terasiemens', - 'terasteradian', - 'teratesla', - 'teravolt', - 'terawatt', - 'teraweber', - 'tesla', - 'ton', - 'tsp', - 'uA', - 'uBq', - 'uC', - 'uF', - 'uGauss', - 'uH', - 'uHz', - 'uJ', - 'uK', - 'uN', - 'uOhm', - 'uPa', - 'uS', - 'uT', - 'uV', - 'uW', - 'uWb', - 'ucd', - 'ug', - 'ul', - 'ulm', - 'ulx', - 'um', - 'umol', - 'urad', - 'us', - 'us_gallon', - 'usr', - 'vacuum_permeability', - 'vacuum_permittivity', - 'volt', - 'watt', - 'weber', - 'week', - 'wk', - 'yA', - 'yBq', - 'yC', - 'yF', - 'yGauss', - 'yH', - 'yHz', - 'yJ', - 'yK', - 'yN', - 'yOhm', - 'yPa', - 'yS', - 'yT', - 'yV', - 'yW', - 'yWb', - 'yard', - 'ycd', - 'yd', - 'year', - 'yg', - 'yl', - 'ylm', - 'ylx', - 'ym', - 'ymol', - 'yoctoampere', - 'yoctobecquerel', - 'yoctocandela', - 'yoctocoulomb', - 'yoctofarad', - 'yoctogauss', - 'yoctogram', - 'yoctohenry', - 'yoctohertz', - 'yoctojoule', - 'yoctokelvin', - 'yoctoliter', - 'yoctolumen', - 'yoctolux', - 'yoctometer', - 'yoctomole', - 'yoctonewton', - 'yoctoohm', - 'yoctopascal', - 'yoctoradian', - 'yoctosecond', - 'yoctosiemens', - 'yoctosteradian', - 'yoctotesla', - 'yoctovolt', - 'yoctowatt', - 'yoctoweber', - 'yottaampere', - 'yottabecquerel', - 'yottacandela', - 'yottacoulomb', - 'yottafarad', - 'yottagauss', - 'yottagram', - 'yottahenry', - 'yottahertz', - 'yottajoule', - 'yottakelvin', - 'yottaliter', - 'yottalumen', - 'yottalux', - 'yottameter', - 'yottamole', - 'yottanewton', - 'yottaohm', - 'yottapascal', - 'yottaradian', - 'yottasecond', - 'yottasiemens', - 'yottasteradian', - 'yottatesla', - 'yottavolt', - 'yottawatt', - 'yottaweber', - 'yr', - 'yrad', - 'ys', - 'ysr', - 'zA', - 'zBq', - 'zC', - 'zF', - 'zGauss', - 'zH', - 'zHz', - 'zJ', - 'zK', - 'zN', - 'zOhm', - 'zPa', - 'zS', - 'zT', - 'zV', - 'zW', - 'zWb', - 'zcd', - 'zeptoampere', - 'zeptobecquerel', - 'zeptocandela', - 'zeptocoulomb', - 'zeptofarad', - 'zeptogauss', - 'zeptogram', - 'zeptohenry', - 'zeptohertz', - 'zeptojoule', - 'zeptokelvin', - 'zeptoliter', - 'zeptolumen', - 'zeptolux', - 'zeptometer', - 'zeptomole', - 'zeptonewton', - 'zeptoohm', - 'zeptopascal', - 'zeptoradian', - 'zeptosecond', - 'zeptosiemens', - 'zeptosteradian', - 'zeptotesla', - 'zeptovolt', - 'zeptowatt', - 'zeptoweber', - 'zettaampere', - 'zettabecquerel', - 'zettacandela', - 'zettacoulomb', - 'zettafarad', - 'zettagauss', - 'zettagram', - 'zettahenry', - 'zettahertz', - 'zettajoule', - 'zettakelvin', - 'zettaliter', - 'zettalumen', - 'zettalux', - 'zettameter', - 'zettamole', - 'zettanewton', - 'zettaohm', - 'zettapascal', - 'zettaradian', - 'zettasecond', - 'zettasiemens', - 'zettasteradian', - 'zettatesla', - 'zettavolt', - 'zettawatt', - 'zettaweber', - 'zg', - 'zl', - 'zlm', - 'zlx', - 'zm', - 'zmol', - 'zrad', - 'zs', - 'zsr', - 'phi0', + "A", + "Ang", + "Bohr", + "Bq", + "C", + "EA", + "EBq", + "EC", + "EF", + "EGauss", + "EH", + "EHz", + "EJ", + "EK", + "EN", + "EOhm", + "EPa", + "ES", + "ET", + "EV", + "EW", + "EWb", + "Ecd", + "Eg", + "El", + "Elm", + "Elx", + "Em", + "Emol", + "Erad", + "Es", + "Esr", + "F", + "G", + "GA", + "GBq", + "GC", + "GF", + "GGauss", + "GH", + "GHz", + "GJ", + "GK", + "GN", + "GOhm", + "GPa", + "GS", + "GT", + "GV", + "GW", + "GWb", + "Gauss", + "Gcd", + "Gg", + "Gl", + "Glm", + "Glx", + "Gm", + "Gmol", + "Grad", + "Gs", + "Gsr", + "H", + "Hartree", + "Hz", + "J", + "K", + "MA", + "MBq", + "MC", + "MF", + "MGauss", + "MH", + "MHz", + "MJ", + "MK", + "MN", + "MOhm", + "MPa", + "MS", + "MT", + "MV", + "MW", + "MWb", + "Mcd", + "Mg", + "Ml", + "Mlm", + "Mlx", + "Mm", + "Mmol", + "Mrad", + "Ms", + "Msr", + "N", + "Nav", + "Ohm", + "PA", + "PBq", + "PC", + "PF", + "PGauss", + "PH", + "PHz", + "PJ", + "PK", + "PN", + "POhm", + "PPa", + "PS", + "PT", + "PV", + "PW", + "PWb", + "Pa", + "Pcd", + "Pg", + "Pl", + "Plm", + "Plx", + "Pm", + "Pmol", + "Prad", + "Ps", + "Psr", + "R_k", + "S", + "T", + "TA", + "TBq", + "TC", + "TF", + "TGauss", + "TH", + "THz", + "TJ", + "TK", + "TN", + "TOhm", + "TPa", + "TS", + "TT", + "TV", + "TW", + "TWb", + "Tcd", + "Tg", + "Tl", + "Tlm", + "Tlx", + "Tm", + "Tmol", + "Trad", + "Ts", + "Tsr", + "V", + "W", + "Wb", + "YA", + "YBq", + "YC", + "YF", + "YGauss", + "YH", + "YHz", + "YJ", + "YK", + "YN", + "YOhm", + "YPa", + "YS", + "YT", + "YV", + "YW", + "YWb", + "Ycd", + "Yg", + "Yl", + "Ylm", + "Ylx", + "Ym", + "Ymol", + "Yrad", + "Ys", + "Ysr", + "ZA", + "ZBq", + "ZC", + "ZF", + "ZGauss", + "ZH", + "ZHz", + "ZJ", + "ZK", + "ZN", + "ZOhm", + "ZPa", + "ZS", + "ZT", + "ZV", + "ZW", + "ZWb", + "Zcd", + "Zg", + "Zl", + "Zlm", + "Zlx", + "Zm", + "Zmol", + "Zrad", + "Zs", + "Zsr", + "aA", + "aBq", + "aC", + "aF", + "aGauss", + "aH", + "aHz", + "aJ", + "aK", + "aN", + "aOhm", + "aPa", + "aS", + "aT", + "aV", + "aW", + "aWb", + "acd", + "ag", + "al", + "alm", + "alx", + "am", + "amol", + "ampere", + "amu", + "angstrom", + "arad", + "asr", + "atomic_mass_unit", + "attoampere", + "attobecquerel", + "attocandela", + "attocoulomb", + "attofarad", + "attogauss", + "attogram", + "attohenry", + "attohertz", + "attojoule", + "attokelvin", + "attoliter", + "attolumen", + "attolux", + "attometer", + "attomole", + "attonewton", + "attoohm", + "attopascal", + "attoradian", + "attosecond", + "attosiemens", + "attosteradian", + "attotesla", + "attovolt", + "attowatt", + "attoweber", + "avogadro_constant", + "b", + "bar", + "barn", + "becquerel", + "bohr_magneton", + "bohr_radius", + "boltzmann_constant", + "british_gallon", + "c", + "cA", + "cBq", + "cC", + "cF", + "cGauss", + "cH", + "cHz", + "cJ", + "cK", + "cN", + "cOhm", + "cPa", + "cS", + "cT", + "cV", + "cW", + "cWb", + "candela", + "ccd", + "cd", + "centiampere", + "centibecquerel", + "centicandela", + "centicoulomb", + "centifarad", + "centigauss", + "centigram", + "centihenry", + "centihertz", + "centijoule", + "centikelvin", + "centiliter", + "centilumen", + "centilux", + "centimeter", + "centimole", + "centinewton", + "centiohm", + "centipascal", + "centiradian", + "centisecond", + "centisiemens", + "centisteradian", + "centitesla", + "centivolt", + "centiwatt", + "centiweber", + "cg", + "cl", + "clm", + "clx", + "cm", + "cmol", + "coulomb", + "crad", + "cs", + "csr", + "cup", + "cyc", + "cycle", + "d", + "dA", + "dB", + "dBm", + "dBq", + "dC", + "dF", + "dGauss", + "dH", + "dHz", + "dJ", + "dK", + "dN", + "dOhm", + "dPa", + "dS", + "dT", + "dV", + "dW", + "dWb", + "daA", + "daBq", + "daC", + "daF", + "daGauss", + "daH", + "daHz", + "daJ", + "daK", + "daN", + "daOhm", + "daPa", + "daS", + "daT", + "daV", + "daW", + "daWb", + "dacd", + "dag", + "dal", + "dalm", + "dalx", + "dam", + "damol", + "darad", + "das", + "dasr", + "day", + "dcd", + "deciampere", + "decibecquerel", + "decibel", + "decicandela", + "decicoulomb", + "decifarad", + "decigauss", + "decigram", + "decihenry", + "decihertz", + "decijoule", + "decikelvin", + "deciliter", + "decilumen", + "decilux", + "decimeter", + "decimole", + "decinewton", + "deciohm", + "decipascal", + "deciradian", + "decisecond", + "decisiemens", + "decisteradian", + "decitesla", + "decivolt", + "deciwatt", + "deciweber", + "deg", + "degC", + "degF", + "degR", + "dekaampere", + "dekabecquerel", + "dekacandela", + "dekacoulomb", + "dekafarad", + "dekagauss", + "dekagram", + "dekahenry", + "dekahertz", + "dekajoule", + "dekakelvin", + "dekaliter", + "dekalumen", + "dekalux", + "dekameter", + "dekamole", + "dekanewton", + "dekaohm", + "dekapascal", + "dekaradian", + "dekasecond", + "dekasiemens", + "dekasteradian", + "dekatesla", + "dekavolt", + "dekawatt", + "dekaweber", + "dg", + "dl", + "dlm", + "dlx", + "dm", + "dmol", + "drad", + "ds", + "dsr", + "e", + "electron_mass", + "elementary_charge", + "eps0", + "exaampere", + "exabecquerel", + "exacandela", + "exacoulomb", + "exafarad", + "exagauss", + "exagram", + "exahenry", + "exahertz", + "exajoule", + "exakelvin", + "exaliter", + "exalumen", + "exalux", + "exameter", + "examole", + "exanewton", + "exaohm", + "exapascal", + "exaradian", + "exasecond", + "exasiemens", + "exasteradian", + "exatesla", + "exavolt", + "exawatt", + "exaweber", + "fA", + "fBq", + "fC", + "fF", + "fGauss", + "fH", + "fHz", + "fJ", + "fK", + "fN", + "fOhm", + "fPa", + "fS", + "fT", + "fV", + "fW", + "fWb", + "farad", + "fcd", + "femtoampere", + "femtobecquerel", + "femtocandela", + "femtocoulomb", + "femtofarad", + "femtogauss", + "femtogram", + "femtohenry", + "femtohertz", + "femtojoule", + "femtokelvin", + "femtoliter", + "femtolumen", + "femtolux", + "femtometer", + "femtomole", + "femtonewton", + "femtoohm", + "femtopascal", + "femtoradian", + "femtosecond", + "femtosiemens", + "femtosteradian", + "femtotesla", + "femtovolt", + "femtowatt", + "femtoweber", + "fg", + "fl", + "flm", + "floz", + "fluid_ounce", + "flx", + "fm", + "fmol", + "foot", + "frad", + "fs", + "fsr", + "ft", + "g", + "galUK", + "galUS", + "gauss", + "gigaampere", + "gigabecquerel", + "gigacandela", + "gigacoulomb", + "gigafarad", + "gigagauss", + "gigagram", + "gigahenry", + "gigahertz", + "gigajoule", + "gigakelvin", + "gigaliter", + "gigalumen", + "gigalux", + "gigameter", + "gigamole", + "giganewton", + "gigaohm", + "gigapascal", + "gigaradian", + "gigasecond", + "gigasiemens", + "gigasteradian", + "gigatesla", + "gigavolt", + "gigawatt", + "gigaweber", + "gram", + "gravitational_constant", + "h", + "hA", + "hBq", + "hC", + "hF", + "hGauss", + "hH", + "hHz", + "hJ", + "hK", + "hN", + "hOhm", + "hPa", + "hS", + "hT", + "hV", + "hW", + "hWb", + "ha", + "hbar", + "hcd", + "hectare", + "hectoampere", + "hectobecquerel", + "hectocandela", + "hectocoulomb", + "hectofarad", + "hectogauss", + "hectogram", + "hectohenry", + "hectohertz", + "hectojoule", + "hectokelvin", + "hectoliter", + "hectolumen", + "hectolux", + "hectometer", + "hectomole", + "hectonewton", + "hectoohm", + "hectopascal", + "hectoradian", + "hectosecond", + "hectosiemens", + "hectosteradian", + "hectotesla", + "hectovolt", + "hectowatt", + "hectoweber", + "henry", + "hertz", + "hg", + "hl", + "hlm", + "hlx", + "hm", + "hmol", + "hour", + "hplanck", + "hrad", + "hs", + "hsr", + "inch", + "joule", + "k", + "kA", + "kBq", + "kC", + "kF", + "kGauss", + "kH", + "kHz", + "kJ", + "kK", + "kN", + "kOhm", + "kPa", + "kS", + "kT", + "kV", + "kW", + "kWb", + "kcd", + "kelvin", + "kg", + "kiloampere", + "kilobecquerel", + "kilocandela", + "kilocoulomb", + "kilofarad", + "kilogauss", + "kilogram", + "kilohenry", + "kilohertz", + "kilojoule", + "kilokelvin", + "kiloliter", + "kilolumen", + "kilolux", + "kilometer", + "kilomole", + "kilonewton", + "kiloohm", + "kilopascal", + "kiloradian", + "kilosecond", + "kilosiemens", + "kilosteradian", + "kilotesla", + "kilovolt", + "kilowatt", + "kiloweber", + "kl", + "klm", + "klx", + "km", + "kmol", + "krad", + "ks", + "ksr", + "l", + "lb", + "light_year", + "liter", + "lm", + "lumen", + "lux", + "lx", + "ly", + "lyr", + "m", + "mA", + "mBq", + "mC", + "mF", + "mGauss", + "mH", + "mHz", + "mJ", + "mK", + "mN", + "mOhm", + "mPa", + "mS", + "mT", + "mV", + "mW", + "mWb", + "mcd", + "me", + "megaampere", + "megabecquerel", + "megacandela", + "megacoulomb", + "megafarad", + "megagauss", + "megagram", + "megahenry", + "megahertz", + "megajoule", + "megakelvin", + "megaliter", + "megalumen", + "megalux", + "megameter", + "megamole", + "meganewton", + "megaohm", + "megapascal", + "megaradian", + "megasecond", + "megasiemens", + "megasteradian", + "megatesla", + "megavolt", + "megawatt", + "megaweber", + "meter", + "mg", + "microampere", + "microbecquerel", + "microcandela", + "microcoulomb", + "microfarad", + "microgauss", + "microgram", + "microhenry", + "microhertz", + "microjoule", + "microkelvin", + "microliter", + "microlumen", + "microlux", + "micrometer", + "micromole", + "micronewton", + "microohm", + "micropascal", + "microradian", + "microsecond", + "microsiemens", + "microsteradian", + "microtesla", + "microvolt", + "microwatt", + "microweber", + "milliampere", + "millibecquerel", + "millicandela", + "millicoulomb", + "millifarad", + "milligauss", + "milligram", + "millihenry", + "millihertz", + "millijoule", + "millikelvin", + "milliliter", + "millilumen", + "millilux", + "millimeter", + "millimole", + "millinewton", + "milliohm", + "millipascal", + "milliradian", + "millisecond", + "millisiemens", + "millisteradian", + "millitesla", + "millivolt", + "milliwatt", + "milliweber", + "minute", + "ml", + "mlm", + "mlx", + "mm", + "mmol", + "mol", + "mole", + "mp", + "mrad", + "ms", + "msr", + "mu0", + "nA", + "nBq", + "nC", + "nF", + "nGauss", + "nH", + "nHz", + "nJ", + "nK", + "nN", + "nOhm", + "nPa", + "nS", + "nT", + "nV", + "nW", + "nWb", + "nanoampere", + "nanobecquerel", + "nanocandela", + "nanocoulomb", + "nanofarad", + "nanogauss", + "nanogram", + "nanohenry", + "nanohertz", + "nanojoule", + "nanokelvin", + "nanoliter", + "nanolumen", + "nanolux", + "nanometer", + "nanomole", + "nanonewton", + "nanoohm", + "nanopascal", + "nanoradian", + "nanosecond", + "nanosiemens", + "nanosteradian", + "nanotesla", + "nanovolt", + "nanowatt", + "nanoweber", + "nautical_mile", + "ncd", + "newton", + "ng", + "nl", + "nlm", + "nlx", + "nm", + "nmi", + "nmol", + "nrad", + "ns", + "nsr", + "ohm", + "ounce", + "oz", + "pA", + "pBq", + "pC", + "pF", + "pGauss", + "pH", + "pHz", + "pJ", + "pK", + "pN", + "pOhm", + "pPa", + "pS", + "pT", + "pV", + "pW", + "pWb", + "pascal", + "pcd", + "petaampere", + "petabecquerel", + "petacandela", + "petacoulomb", + "petafarad", + "petagauss", + "petagram", + "petahenry", + "petahertz", + "petajoule", + "petakelvin", + "petaliter", + "petalumen", + "petalux", + "petameter", + "petamole", + "petanewton", + "petaohm", + "petapascal", + "petaradian", + "petasecond", + "petasiemens", + "petasteradian", + "petatesla", + "petavolt", + "petawatt", + "petaweber", + "pg", + "phi0", + "picoampere", + "picobecquerel", + "picocandela", + "picocoulomb", + "picofarad", + "picogauss", + "picogram", + "picohenry", + "picohertz", + "picojoule", + "picokelvin", + "picoliter", + "picolumen", + "picolux", + "picometer", + "picomole", + "piconewton", + "picoohm", + "picopascal", + "picoradian", + "picosecond", + "picosiemens", + "picosteradian", + "picotesla", + "picovolt", + "picowatt", + "picoweber", + "pint", + "pl", + "planck_constant", + "plm", + "plx", + "pm", + "pmol", + "pound", + "pounds_per_square_inch", + "prad", + "proton_mass", + "ps", + "psi", + "psr", + "qt", + "quart", + "rad", + "radian", + "reduced_planck_constant", + "rootHz", + "s", + "second", + "siemens", + "speed_of_light", + "sqrtHz", + "sr", + "steradian", + "tablespoon", + "tbsp", + "teaspoon", + "teraampere", + "terabecquerel", + "teracandela", + "teracoulomb", + "terafarad", + "teragauss", + "teragram", + "terahenry", + "terahertz", + "terajoule", + "terakelvin", + "teraliter", + "teralumen", + "teralux", + "terameter", + "teramole", + "teranewton", + "teraohm", + "terapascal", + "teraradian", + "terasecond", + "terasiemens", + "terasteradian", + "teratesla", + "teravolt", + "terawatt", + "teraweber", + "tesla", + "ton", + "tsp", + "uA", + "uBq", + "uC", + "uF", + "uGauss", + "uH", + "uHz", + "uJ", + "uK", + "uN", + "uOhm", + "uPa", + "uS", + "uT", + "uV", + "uW", + "uWb", + "ucd", + "ug", + "ul", + "ulm", + "ulx", + "um", + "umol", + "urad", + "us", + "us_gallon", + "usr", + "vacuum_permeability", + "vacuum_permittivity", + "volt", + "watt", + "weber", + "week", + "wk", + "yA", + "yBq", + "yC", + "yF", + "yGauss", + "yH", + "yHz", + "yJ", + "yK", + "yN", + "yOhm", + "yPa", + "yS", + "yT", + "yV", + "yW", + "yWb", + "yard", + "ycd", + "yd", + "year", + "yg", + "yl", + "ylm", + "ylx", + "ym", + "ymol", + "yoctoampere", + "yoctobecquerel", + "yoctocandela", + "yoctocoulomb", + "yoctofarad", + "yoctogauss", + "yoctogram", + "yoctohenry", + "yoctohertz", + "yoctojoule", + "yoctokelvin", + "yoctoliter", + "yoctolumen", + "yoctolux", + "yoctometer", + "yoctomole", + "yoctonewton", + "yoctoohm", + "yoctopascal", + "yoctoradian", + "yoctosecond", + "yoctosiemens", + "yoctosteradian", + "yoctotesla", + "yoctovolt", + "yoctowatt", + "yoctoweber", + "yottaampere", + "yottabecquerel", + "yottacandela", + "yottacoulomb", + "yottafarad", + "yottagauss", + "yottagram", + "yottahenry", + "yottahertz", + "yottajoule", + "yottakelvin", + "yottaliter", + "yottalumen", + "yottalux", + "yottameter", + "yottamole", + "yottanewton", + "yottaohm", + "yottapascal", + "yottaradian", + "yottasecond", + "yottasiemens", + "yottasteradian", + "yottatesla", + "yottavolt", + "yottawatt", + "yottaweber", + "yr", + "yrad", + "ys", + "ysr", + "zA", + "zBq", + "zC", + "zF", + "zGauss", + "zH", + "zHz", + "zJ", + "zK", + "zN", + "zOhm", + "zPa", + "zS", + "zT", + "zV", + "zW", + "zWb", + "zcd", + "zeptoampere", + "zeptobecquerel", + "zeptocandela", + "zeptocoulomb", + "zeptofarad", + "zeptogauss", + "zeptogram", + "zeptohenry", + "zeptohertz", + "zeptojoule", + "zeptokelvin", + "zeptoliter", + "zeptolumen", + "zeptolux", + "zeptometer", + "zeptomole", + "zeptonewton", + "zeptoohm", + "zeptopascal", + "zeptoradian", + "zeptosecond", + "zeptosiemens", + "zeptosteradian", + "zeptotesla", + "zeptovolt", + "zeptowatt", + "zeptoweber", + "zettaampere", + "zettabecquerel", + "zettacandela", + "zettacoulomb", + "zettafarad", + "zettagauss", + "zettagram", + "zettahenry", + "zettahertz", + "zettajoule", + "zettakelvin", + "zettaliter", + "zettalumen", + "zettalux", + "zettameter", + "zettamole", + "zettanewton", + "zettaohm", + "zettapascal", + "zettaradian", + "zettasecond", + "zettasiemens", + "zettasteradian", + "zettatesla", + "zettavolt", + "zettawatt", + "zettaweber", + "zg", + "zl", + "zlm", + "zlx", + "zm", + "zmol", + "zrad", + "zs", + "zsr", ]