Is there an existing function in one of the libraries you mention that has the desired behavior (in the context of that library)? That would help.
Yes, and we are currently parsing and evaluating strings to convey the meaning. Patsy is currently used by statsmodels to parse strings in the following way: ``` from patsy import ModelDesc, Term, EvalFactor ModelDesc([Term([EvalFactor("y")])], [Term([]), Term([EvalFactor("a")]), Term([EvalFactor("a"), EvalFactor("b")]), Term([EvalFactor("np.log(x)")]) ]) ``` "Compare to what you get from parsing the above formula:" ``` ModelDesc.from_formula("y ~ a + a:b + np.log(x)") ``` In the past when we have been eval'ing strings, we added functionality so users could avoid it (`getattr`, et. al.). Sympy is rather new, but I think they'd appreciate it since they have an entire subpackage for distributions: https://docs.sympy.org/latest/modules/stats.html I do envision other usages, but these are the strongest cases I have right now.