Google Spreadsheets Python API v4
76
{
"context": "Evaluates how well the solution uses pygsheets developer metadata APIs to register, query, update, and remove metadata across spreadsheet and worksheet scopes. Emphasis is on calling pygsheets helpers or custom batch requests rather than reinventing HTTP flows, ensuring correct use of metadata IDs and locations.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Connect & open",
"description": "Authenticates via `pygsheets.authorize` (or service account equivalents) and opens the target spreadsheet with `Client.open_by_key`/`open` before metadata operations, avoiding raw HTTP clients.",
"max_score": 15
},
{
"name": "Create metadata",
"description": "Creates spreadsheet- and sheet-level developer metadata using pygsheets helpers like `Spreadsheet.add_developer_metadata`/`Worksheet.add_developer_metadata` or a `custom_request` containing `createDeveloperMetadata`, correctly setting `DeveloperMetadataLocation` for sheet IDs and capturing metadata IDs from responses.",
"max_score": 25
},
{
"name": "Search/filter",
"description": "Retrieves metadata via `Spreadsheet.search_developer_metadata`/`list_developer_metadata` or `custom_request` to `developerMetadata:search`, using `DeveloperMetadataLookup` with key prefix and location filters exactly as specified instead of manual filtering or caching.",
"max_score": 20
},
{
"name": "Update entries",
"description": "Updates existing metadata values by targeting metadata IDs with `Spreadsheet.update_developer_metadata` or batch `updateDeveloperMetadata` through `custom_request`, ensuring only the keyed entries in the specified location are changed.",
"max_score": 20
},
{
"name": "Delete scoped",
"description": "Removes metadata via `Spreadsheet.delete_developer_metadata` or `custom_request` `deleteDeveloperMetadata`, correctly scoping deletions to the requested sheet or spreadsheet and returning accurate deletion counts.",
"max_score": 20
}
]
}Install with Tessl CLI
npx tessl i tessl/pypi-pygsheetsdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10