Skip to content

Commit e345d27

Browse files
authored
Merge pull request #15 from SymbolicML/fix-upreferred
Fix upreferred issue by loading at runtime
2 parents a7acb3c + 2e82902 commit e345d27

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

ext/DynamicQuantitiesUnitfulExt.jl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,20 @@ else
1111
end
1212

1313
# This lets the user override the preferred units:
14-
const UNITFUL_EQUIVALENCIES = let basic = (length=u"m", mass=u"kg", time=u"s", current=u"A", temperature=u"K", luminosity=u"cd", amount=u"mol")
15-
NamedTuple((k => Unitful.upreferred(basic[k]) for k in keys(basic)))
14+
function unitful_equivalences()
15+
si_units = (length=u"m", mass=u"kg", time=u"s", current=u"A", temperature=u"K", luminosity=u"cd", amount=u"mol")
16+
return NamedTuple((k => Unitful.upreferred(si_units[k]) for k in keys(si_units)))
1617
end
1718

1819
Base.convert(::Type{Unitful.Quantity}, x::DynamicQuantities.Quantity) =
1920
let
2021
cumulator = DynamicQuantities.ustrip(x)
2122
dims = DynamicQuantities.dimension(x)
23+
equiv = unitful_equivalences()
2224
for dim in keys(dims)
2325
value = dims[dim]
2426
iszero(value) && continue
25-
cumulator *= UNITFUL_EQUIVALENCIES[dim]^value
27+
cumulator *= equiv[dim]^value
2628
end
2729
cumulator
2830
end
@@ -58,4 +60,4 @@ function _map_dim_name_to_dynamic_units(::Type{Unitful.Dimension{D}}) where {D}
5860
end
5961

6062

61-
end
63+
end

0 commit comments

Comments
 (0)