| Name | Description |
|--------------------------|---------------------------------------------------------------------------------------|
| Google.CreateSpreadsheet | Create a new spreadsheet with the provided
title and data in its first sheet |
| Google.GetSpreadsheet | Get the user entered and formatted data for
all sheets in the spreadsheet |
| Google.WriteToCell | Write a value to a single cell in a spreadsheet.
|
## Google.CreateSpreadsheet
This tool can create a new spreadsheet with data in its first sheet
This tool takes in the data as a JSON string. Here's an example input:
```
// Good at large payloads, sparse payloads, and contiguous data payloads.
// For example data[1]["D"] represents the value of the cell in the first row in the D column
{
// All data in row 1
1: {
"A": 42,
"B": 2,
"D":"=A1+B1"
},
// All data in row 54
54: {
"A": "my string",
"QQ": "my far away string"
}
}
```
The above data format performed better on evals than the other two that
I tested:
```
// Performed poorly at sparse data and also at larger amounts of data
[
[42, 2, "", "=A1+B1"],
[],
[],
...,
["A": "my string", "", "", ..., "my far away string"]
]
```
```
// Good at small payloads and sparse payloads, but very bad at payloads with contiguous data
{
"A1": 42", "B1": 2, "D1": "=A1+B1", "A54": "my string", "QQ": "my far away string"
}
```
## Google.GetSpreadsheet
Gets the formatted values for all non empty cells in all sheets of the
spreadsheet. The data returned is in a similar format as the
`Google.CreateSpreadsheet` tool's `data` input parameter. The difference
is that `get_spreadsheet` will return the user entered value (=A1+B1)
and also the formatted value (23.4) for each cell.
## Google.WriteToCell
Writes to a single cell. At this point in time we do not support batch
updating a sheet.
24 lines
936 B
Python
24 lines
936 B
Python
import os
|
|
|
|
from arcade_google.models import GmailReplyToWhom
|
|
|
|
# The default reply in Gmail is to only the sender. Since Gmail also offers the possibility of
|
|
# changing the default to 'reply to all', we support both options through an env variable.
|
|
# https://support.google.com/mail/answer/6585?hl=en&sjid=15399867888091633568-SA#null
|
|
try:
|
|
GMAIL_DEFAULT_REPLY_TO = GmailReplyToWhom(
|
|
# Values accepted are defined in the arcade_google.tools.models.GmailReplyToWhom Enum
|
|
os.getenv("ARCADE_GMAIL_DEFAULT_REPLY_TO", GmailReplyToWhom.ONLY_THE_SENDER.value).lower()
|
|
)
|
|
except ValueError as e:
|
|
raise ValueError(
|
|
"Invalid value for ARCADE_GMAIL_DEFAULT_REPLY_TO: "
|
|
f"'{os.getenv('ARCADE_GMAIL_DEFAULT_REPLY_TO')}'. Expected one of "
|
|
f"{list(GmailReplyToWhom.__members__.keys())}"
|
|
) from e
|
|
|
|
|
|
DEFAULT_SEARCH_CONTACTS_LIMIT = 30
|
|
|
|
DEFAULT_SHEET_ROW_COUNT = 1000
|
|
DEFAULT_SHEET_COLUMN_COUNT = 26
|