zeroSteiner / rule-engine

A lightweight, optionally typed expression language with a custom grammar for matching arbitrary Python objects.
https://zerosteiner.github.io/rule-engine/
BSD 3-Clause "New" or "Revised" License
445 stars 54 forks source link

Get varible name from rule #4

Closed kaiwang0112006 closed 4 years ago

kaiwang0112006 commented 4 years ago

After building a rule like

rule = rule_engine.Rule('a>0.5')

Is there a build-in method that can reture the varible name of the rule, like

rule.get_var()
>>> 'a'
zeroSteiner commented 4 years ago

Yes, take a look at rule.context.symbols:

In [1]: import rule_engine                                                                                                                                                                                                                                                                                                                                                 

In [2]: rule = rule_engine.Rule('a>0.5')                                                                                                                                                                                                                                                                                                                                   

In [3]: rule.context                                                                                                                                                                                                                                                                                                                                                       
Out[3]: <rule_engine.engine.Context at 0x7f07cf52a350>

In [4]: rule.context.symbols                                                                                                                                                                                                                                                                                                                                               
Out[4]: {'a'}