Metadata-Version: 2.4 Name: act-workflow Version: 4.8.387 Summary: A library for executing workflow nodes based on Actfile configuration Home-page: https://github.com/tajalagawani/actpip Author: Taj Noah Author-email: mail@tajnoah.me License: MIT Classifier: Development Status :: 3 - Alpha Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Requires-Python: >=3.7 Description-Content-Type: text/markdown Requires-Dist: aiohappyeyeballs==2.4.3 Requires-Dist: aiohttp==3.10.10 Requires-Dist: aiosignal==1.3.1 Requires-Dist: annotated-types==0.7.0 Requires-Dist: anyio<5.0.0 Requires-Dist: async-timeout==4.0.3 Requires-Dist: attrs==24.2.0 Requires-Dist: certifi==2024.8.30 Requires-Dist: charset-normalizer==3.4.0 Requires-Dist: dataclasses-json==0.6.7 Requires-Dist: distro==1.9.0 Requires-Dist: exceptiongroup==1.2.2 Requires-Dist: frozenlist==1.4.1 Requires-Dist: h11==0.14.0 Requires-Dist: httpcore==1.0.6 Requires-Dist: httpx<1.0.0,>=0.28.1 Requires-Dist: idna==3.10 Requires-Dist: jiter==0.6.1 Requires-Dist: jsonpatch==1.33 Requires-Dist: jsonpointer==3.0.0 Requires-Dist: langchain==0.3.3 Requires-Dist: langchain-community==0.3.2 Requires-Dist: langchain-core==0.3.11 Requires-Dist: langchain-openai==0.2.2 Requires-Dist: langchain-text-splitters==0.3.0 Requires-Dist: langsmith==0.1.135 Requires-Dist: marshmallow==3.22.0 Requires-Dist: multidict==6.1.0 Requires-Dist: mypy-extensions==1.0.0 Requires-Dist: numpy==1.26.4 Requires-Dist: openai==1.51.2 Requires-Dist: orjson==3.10.7 Requires-Dist: packaging==24.1 Requires-Dist: propcache==0.2.0 Requires-Dist: pydantic==2.9.2 Requires-Dist: pydantic-settings==2.6.0 Requires-Dist: pydantic_core==2.23.4 Requires-Dist: python-dotenv==1.0.1 Requires-Dist: PyYAML==6.0.2 Requires-Dist: regex==2024.9.11 Requires-Dist: requests==2.32.3 Requires-Dist: requests-toolbelt==1.0.0 Requires-Dist: sniffio==1.3.1 Requires-Dist: SQLAlchemy==2.0.36 Requires-Dist: tenacity==8.5.0 Requires-Dist: tiktoken==0.8.0 Requires-Dist: tqdm==4.66.5 Requires-Dist: typing-inspect==0.9.0 Requires-Dist: typing_extensions==4.12.2 Requires-Dist: yarl==1.15.4 Requires-Dist: slack-sdk==3.33.1 Requires-Dist: colorama>=0.4.6 Requires-Dist: tabulate==0.9.0 Requires-Dist: psutil>=5.8.0 Requires-Dist: anthropic==0.49.0 Requires-Dist: neo4j==5.28.1 Requires-Dist: boto3==1.37.6 Provides-Extra: dev Requires-Dist: pytest>=6.2.5; extra == "dev" Requires-Dist: mypy>=0.910; extra == "dev" Requires-Dist: flake8>=3.9.2; extra == "dev" Dynamic: author Dynamic: author-email Dynamic: classifier Dynamic: description Dynamic: description-content-type Dynamic: home-page Dynamic: license Dynamic: provides-extra Dynamic: requires-dist Dynamic: requires-python Dynamic: summary I. Control Flow Nodes (Controlling the execution path) If: (As implemented) Conditionally executes different paths based on a boolean comparison. Switch: Multi-way branching based on the value of an input (like a case statement). Takes an input value and routes to different outputs based on matching cases, plus a default path. ForEach (Item): Iterates over a list input, executing a sub-path for each item in the list. Outputs the results from each iteration. ForEach (Index): Similar to ForEach (Item), but also provides the current index to the sub-path. While Loop: Executes a sub-path repeatedly while a specified condition (checked at the start) remains true. Requires careful design to avoid infinite loops. Do While Loop: Executes a sub-path once, and then repeatedly while a specified condition (checked at the end) remains true. Merge: Waits for one of multiple incoming paths to complete and then continues the flow. Useful after an If/Switch. Join (Wait All): Waits for all of multiple incoming paths (e.g., from a parallel execution) to complete before continuing. Often outputs combined results. Fork (Parallel): Executes multiple downstream paths concurrently. Often paired with a Join node later. Delay: Pauses the workflow execution for a specified duration (e.g., seconds, milliseconds). Terminate Workflow: Explicitly stops the workflow execution, optionally setting a final status (success/failure) and message/output. Sub-Workflow / Call Workflow: Executes another defined Actfile workflow, potentially passing inputs and receiving outputs. Try/Catch: Defines a block of nodes to execute. If an error occurs within the 'try' path, execution jumps to a 'catch' path, providing error details. A 'finally' path could also be added. Rate Limit: Limits the execution frequency of a downstream path (e.g., max 5 times per second). II. Data Manipulation Nodes (Transforming and managing data) Set Variable: (As implemented) Explicitly stores a value (static or from input/placeholders) under a specific key name in its result, making it easily accessible later. Get Variable: (Could be implicit via placeholders, but explicit might be useful) Retrieves a value previously stored by a Set Variable node or from the initial input. Often redundant if placeholder resolution is robust. Delete Variable: Removes a variable from the context (less common, might complicate state). Transform (JSONata): Transforms input data (usually JSON/dict) using the powerful JSONata query and transformation language. Template: Renders a string using a templating engine (like Jinja2) and input data, useful for creating dynamic messages, code snippets, or configurations. Merge Dictionaries: Combines two or more input dictionaries into one. Needs options for handling duplicate keys (overwrite, error, ignore). Merge Lists: Concatenates two or more input lists into one. Append To List: Adds one or more items to an existing list. Get List Item: Retrieves an item from a list by its index (e.g., 0, -1). Get List Slice: Extracts a sub-section of a list based on start/end indices. List Length: Returns the number of items in a list. Split String: Splits a string into a list based on a delimiter. Join List: Joins items of a list into a single string using a specified separator. Select Path (JSONPath): Extracts specific data from a JSON object/dict using a JSONPath expression. Parse JSON: Converts a JSON string input into a structured object/dictionary or list. Stringify JSON: Converts a structured object/dictionary or list into a JSON string representation. Format Date/Time: Formats a date/time input (e.g., ISO string, timestamp) into a specified string format. Format Number: Formats a number input (e.g., adding commas, setting decimal places). Convert Type: Explicitly converts a value from one basic type to another (e.g., string to integer, integer to boolean). Needs error handling for invalid conversions. Regex Extract: Extracts parts of a string that match a regular expression pattern (using capture groups). Regex Match: Checks if an input string fully matches a regular expression pattern (returns boolean). Create Dictionary: Creates a new dictionary object from specified key-value pairs. Get Dictionary Value: Retrieves the value associated with a specific key in a dictionary. Handles missing keys gracefully (e.g., return null or default). Set Dictionary Value: Adds or updates a key-value pair within an existing dictionary. III. Utility Nodes (General purpose helpers) Log Message: (As implemented) Logs a message to the system logs at a specified level. Comment / No-Op: Does nothing functionally but allows adding documentation or breakpoints directly within the workflow graph. Generate Error: Intentionally throws an error with a specified message. Useful for testing error handling paths (Try/Catch). Timestamp: Outputs the current date/time in a specified format (e.g., ISO 8601, Unix timestamp). Basic Math: Performs simple arithmetic operations (+, -, *, /, %, power) on numeric inputs. String Operation: Performs common string manipulations (upper, lower, trim, length, substring, replace). Random Number: Generates a random number within a specified range. Random String: Generates a random string of a specified length and character set. Generate UUID: Generates a universally unique identifier (UUID). Hash Data: Computes a hash (e.g., MD5, SHA-256) of an input string or data. Validate Schema: Validates input data against a provided JSON Schema definition. Returns boolean or throws error on failure. Get Data Type: Returns the data type of an input value as a string (e.g., "string", "number", "list", "object", "boolean", "null").