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.model import SchemaField
from backend.util.json import json
class StepThroughItemsBlock(Block):
class Input(BlockSchema):
items: list | dict = SchemaField(
items: list = 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_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):
@@ -39,14 +54,20 @@ class StepThroughItemsBlock(Block):
)
def run(self, input_data: Input, **kwargs) -> BlockOutput:
items = input_data.items
if isinstance(items, dict):
# If items is a dictionary, iterate over its values
for item in items.values():
yield "item", item
yield "key", item
else:
# If items is a list, iterate over the list
for index, item in enumerate(items):
yield "item", item
yield "key", index
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 items is a dictionary, iterate over its values
for item in items.values():
yield "item", item
yield "key", item
else:
# If items is a list, iterate over the list
for index, item in enumerate(items):
yield "item", item
yield "key", index

View File

@@ -140,20 +140,25 @@ class GetCurrentDateAndTimeBlock(Block):
class CountdownTimerBlock(Block):
class Input(BlockSchema):
input_message: Any = SchemaField(
advanced=False,
description="Message to output after the timer finishes",
default="timer finished",
)
seconds: Union[int, str] = SchemaField(
description="Duration in seconds", default=0
advanced=False, description="Duration in seconds", default=0
)
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):
output_message: str = SchemaField(
output_message: Any = SchemaField(
description="Message after the timer finishes"
)