YAML Template
This template demonstrates a typical Gromet YAML config with detailed inline comments explaining each field and option.
script_name: "Excel Invoice Merger"
script_description: |
Merge multiple Excel invoice files into a single consolidated report,
summarizing totals and highlighting discrepancies.
python_version: "3.13"
dependencies:
- pandas==2.2.2
- openpyxl==3.1.2
inputs:
- arg: input_file
title: Upload Excel File
required: true
type: file
extensions: [xlsx, xls]
- arg: simple_text
title: Label
type: text
placeholder: "Experiment 42"
- arg: environment
title: Environment
type: dropdown
required: true
options:
- value: dev
label: Development
- value: staging
label: Staging
- value: prod
label: Production
- arg: assignee
title: Assign User
type: multiselect
users:
- id: "u123"
displayName: "Alice Lee"
- id: "u456"
displayName: "Bob Zhang"
- arg: schedule_date
title: Execution Date
type: date
required: true
- arg: notes
title: Add Notes
type: textarea
placeholder: "Optional context here"
Notes on Fields
script_name
/script_description
: For display and documentation purposes.python_version
: Must be one of the supported versions (3.9 to 3.12).dependencies
:Pin versions exactly with
==
for reproducible installs.Use
>=
or~=
for flexible version ranges.No version means the latest from PyPI will be installed.
Only list third-party packages that need to be installed via pip. Do not include built-in Python libraries such as
os
ortime
. These should still be imported manually in the Python script.dependencies: - pandas==2.2.2 - openpyxl==3.1.2
# Add your imports below import pandas import openpyxl import time import os def main(input_file=None): for i in range(10, 0, -1): print(i) time.sleep(1) print("Blastoff! 🚀")
inputs
:arg
: must exactly match your Pythonmain()
function parameter.required
: iftrue
, user must provide this input; iffalse
or omitted, input is optional andNone
if missing.file
: input passed as local file path string.text
/textarea
: input passed as a string.dropdown
: input passed as selected option’svalue
string.multiselect
: input passed as a list of selected user IDs (string[]
).date
: input passed as a string formattedYYYY-MM-DD
.
Customise this template according to your script’s needs, and remember to keep arg
names aligned with your Python function parameters!
Last updated