[X] I have checked that this issue has not already been reported.
[X] I have confirmed this bug exists on the latest version of actualpy.
Reproducible example
from actual import Actual
with Actual(base_url="http://localhost:5006", password="mypass", file="My budget") as actual:
actual.run_rules()
from actual import Actual
from actual.queries import get_ruleset, get_transactions
with Actual(base_url="http://localhost:5006", password="mypass", file="My budget") as actual:
rs = get_ruleset(actual.session)
transactions = get_transactions(actual.session)
for rule in rs:
for t in transactions:
if rule.evaluate(t):
print(f"Rule {rule} matches for {t}")
Log output
Traceback (most recent call last):
File "/mnt/cache/appdata/scripts/actual-test.py", line 8, in <module>
actual.run_rules()
File "/mnt/cache/appdata/scripts/.venv/lib64/python3.9/site-packages/actual/__init__.py", line 401, in run_rules
ruleset = get_ruleset(self.session)
File "/mnt/cache/appdata/scripts/.venv/lib64/python3.9/site-packages/actual/queries.py", line 586, in get_ruleset
conditions = TypeAdapter(list[Condition]).validate_json(rule.conditions)
File "/mnt/cache/appdata/scripts/.venv/lib64/python3.9/site-packages/pydantic/type_adapter.py", line 142, in wrapped
return func(self, *args, **kwargs)
File "/mnt/cache/appdata/scripts/.venv/lib64/python3.9/site-packages/pydantic/type_adapter.py", line 391, in validate_json
return self.validator.validate_json(data, strict=strict, context=context)
pydantic_core._pydantic_core.ValidationError: 8 validation errors for list[function-after[check_operation_type(), function-after[convert_value(), Condition]]]
3.value.int
Input should be a valid integer [type=int_type, input_value={'num1': -6000, 'num2': -100000}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/int_type
3.value.float
Input should be a valid number [type=float_type, input_value={'num1': -6000, 'num2': -100000}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/float_type
3.value.str
Input should be a valid string [type=string_type, input_value={'num1': -6000, 'num2': -100000}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
3.value.list[str]
Input should be a valid array [type=list_type, input_value={'num1': -6000, 'num2': -100000}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/list_type
3.value.function-after[validate_end_date(), Schedule].start
Field required [type=missing, input_value={'num1': -6000, 'num2': -100000}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/missing
3.value.list[BaseModel]
Input should be a valid array [type=list_type, input_value={'num1': -6000, 'num2': -100000}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/list_type
3.value.BaseModel.id
Field required [type=missing, input_value={'num1': -6000, 'num2': -100000}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/missing
3.value.date
Input should be a valid date [type=date_type, input_value={'num1': -6000, 'num2': -100000}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/date_type
Issue description
The issue primarily happens around rule evaluation
Checks
Reproducible example
Log output
Issue description
The issue primarily happens around rule evaluation
Expected behavior
Rules are evaluated and run
Installed versions