Closed thedevtoni closed 2 years ago
Are you trying to figure out what the rule engine data type is for each of the values? If that's the case you can just pass your dictionary into type_resolver_from_dict
. For every value, if it's not a datatype already, it'll be resolved to one using DataType.from_value
.
In [1]: import rule_engine
In [2]: rule_engine.type_resolver_from_dict({
...: 'first_name': rule_engine.DataType.STRING,
...: 'age': rule_engine.DataType.FLOAT
...: })
Out[2]: functools.partial(<function _type_resolver at 0x7f3f7f1cb940>, {'first_name': <_DataTypeDef name=STRING python_type=str >, 'age': <_DataTypeDef name=FLOAT python_type=Decimal >})
In [3]: rule_engine.type_resolver_from_dict({
...: 'first_name': rule_engine.DataType.STRING,
...: 'age': rule_engine.DataType.FLOAT
...: })('first_name')
Out[3]: <_DataTypeDef name=STRING python_type=str >
In [4]: rule_engine.type_resolver_from_dict({
...: 'first_name': 'default',
...: 'age': 0
...: })('first_name')
Out[4]: <_DataTypeDef name=STRING python_type=str >
In [5]:
@zeroSteiner thanks for the guidance. I will check this part.
I end up implementing a method that returns methods with type_resolver.
In terms of performance is that better or is the dictionary solution better?
Thanks
I'm not entirely sure which option would have better performance.
Is there any possibility of adding something like we have to resolve the types but for values?