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"
) )