Adds a scalar union type that to allow loading values from environment variables.
This is mostly q mgmt because this yields interesting points of discussion.
Consider any other names other than StringSource?
not your fault, but seems like we should rename these to String, Int etc
lack of custom config types kind painful. i wonder what the best way to model this is
the impedance mismatch between validate_config returning a result object and the contract requiring a throw is.... annoying.
wrap this in context manager or try finally and undo the pollution
naming kind of rough here. a bit unclear of the semantics of why another post process pass is needed.
it might be helpful to have a function that encapsulate all the ifs, name it something meaningful. Would also prevent the reassignment of the variable which would be slightly nicer