Compare commits

...

16 Commits

Author SHA1 Message Date
Zamil Majdy 12bd53f0ab
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-19 07:27:08 +04:00
Zamil Majdy a16a2c7ec9
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-18 17:14:29 +04:00
Zamil Majdy 2f61b3a5c6
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-15 14:46:18 +04:00
Zamil Majdy 8830a7f412
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-15 14:26:26 +04:00
Zamil Majdy a035b937ac
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-15 13:28:46 +04:00
Zamil Majdy 009b369a57
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-14 15:53:14 +04:00
Zamil Majdy a0ecaa3e4d
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-14 16:42:53 +07:00
Zamil Majdy 04dbc16df8
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-14 08:33:12 +07:00
Zamil Majdy 7e1be857f0
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-13 14:55:15 +07:00
Zamil Majdy 252cd2aa1e
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-12 21:15:19 +07:00
Zamil Majdy 6d3503b0f2 Merge branch 'zamilmajdy/fix-iteration-and-timer-block' of github.com:Significant-Gravitas/AutoGPT into zamilmajdy/fix-iteration-and-timer-block 2024-11-12 13:06:20 +07:00
Zamil Majdy 80d25ba9fd Merge branch 'dev' of github.com:Significant-Gravitas/AutoGPT into zamilmajdy/fix-iteration-and-timer-block 2024-11-12 13:05:35 +07:00
Zamil Majdy dff3e9fefb
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-12 10:45:56 +07:00
Zamil Majdy eba8acf13f
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-11 18:11:27 +07:00
Zamil Majdy 976c8d5afb
Merge branch 'dev' into zamilmajdy/fix-iteration-and-timer-block 2024-11-08 19:09:00 +07:00
Zamil Majdy 57ddeb4574 fix(backend): Fix iteration and timer block 2024-11-08 16:53:26 +07:00
2 changed files with 43 additions and 17 deletions

View File

@ -2,13 +2,28 @@ from typing import Any
from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema
from backend.data.model import SchemaField from backend.data.model import SchemaField
from backend.util.json import json
class StepThroughItemsBlock(Block): class StepThroughItemsBlock(Block):
class Input(BlockSchema): class Input(BlockSchema):
items: list | dict = SchemaField( items: list = SchemaField(
advanced=False,
description="The list or dictionary of items to iterate over", description="The list or dictionary of items to iterate over",
placeholder="[1, 2, 3, 4, 5] or {'key1': 'value1', 'key2': 'value2'}", placeholder="[1, 2, 3, 4, 5] or {'key1': 'value1', 'key2': 'value2'}",
default=[],
)
items_object: dict = SchemaField(
advanced=False,
description="The list or dictionary of items to iterate over",
placeholder="[1, 2, 3, 4, 5] or {'key1': 'value1', 'key2': 'value2'}",
default={},
)
items_str: str = SchemaField(
advanced=False,
description="The list or dictionary of items to iterate over",
placeholder="[1, 2, 3, 4, 5] or {'key1': 'value1', 'key2': 'value2'}",
default="",
) )
class Output(BlockSchema): class Output(BlockSchema):
@ -39,7 +54,13 @@ class StepThroughItemsBlock(Block):
) )
def run(self, input_data: Input, **kwargs) -> BlockOutput: def run(self, input_data: Input, **kwargs) -> BlockOutput:
items = input_data.items for data in [input_data.items, input_data.items_object, input_data.items_str]:
if not data:
continue
if isinstance(data, str):
items = json.loads(data)
else:
items = data
if isinstance(items, dict): if isinstance(items, dict):
# If items is a dictionary, iterate over its values # If items is a dictionary, iterate over its values
for item in items.values(): for item in items.values():

View File

@ -140,20 +140,25 @@ class GetCurrentDateAndTimeBlock(Block):
class CountdownTimerBlock(Block): class CountdownTimerBlock(Block):
class Input(BlockSchema): class Input(BlockSchema):
input_message: Any = SchemaField( input_message: Any = SchemaField(
advanced=False,
description="Message to output after the timer finishes", description="Message to output after the timer finishes",
default="timer finished", default="timer finished",
) )
seconds: Union[int, str] = SchemaField( seconds: Union[int, str] = SchemaField(
description="Duration in seconds", default=0 advanced=False, description="Duration in seconds", default=0
) )
minutes: Union[int, str] = SchemaField( minutes: Union[int, str] = SchemaField(
description="Duration in minutes", default=0 advanced=False, description="Duration in minutes", default=0
)
hours: Union[int, str] = SchemaField(
advanced=False, description="Duration in hours", default=0
)
days: Union[int, str] = SchemaField(
advanced=False, description="Duration in days", default=0
) )
hours: Union[int, str] = SchemaField(description="Duration in hours", default=0)
days: Union[int, str] = SchemaField(description="Duration in days", default=0)
class Output(BlockSchema): class Output(BlockSchema):
output_message: str = SchemaField( output_message: Any = SchemaField(
description="Message after the timer finishes" description="Message after the timer finishes"
) )