apply ruff formatting

This commit is contained in:
Taylor Wilsdon
2025-12-13 13:49:28 -08:00
parent 1d80a24ca4
commit 6b8352a354
50 changed files with 4010 additions and 2842 deletions

View File

@@ -1,3 +1,3 @@
"""
Google Forms MCP Tools module
"""
"""

View File

@@ -24,7 +24,7 @@ async def create_form(
user_google_email: str,
title: str,
description: Optional[str] = None,
document_title: Optional[str] = None
document_title: Optional[str] = None,
) -> str:
"""
Create a new form using the title given in the provided form message in the request.
@@ -40,11 +40,7 @@ async def create_form(
"""
logger.info(f"[create_form] Invoked. Email: '{user_google_email}', Title: {title}")
form_body: Dict[str, Any] = {
"info": {
"title": title
}
}
form_body: Dict[str, Any] = {"info": {"title": title}}
if description:
form_body["info"]["description"] = description
@@ -58,7 +54,9 @@ async def create_form(
form_id = created_form.get("formId")
edit_url = f"https://docs.google.com/forms/d/{form_id}/edit"
responder_url = created_form.get("responderUri", f"https://docs.google.com/forms/d/{form_id}/viewform")
responder_url = created_form.get(
"responderUri", f"https://docs.google.com/forms/d/{form_id}/viewform"
)
confirmation_message = f"Successfully created form '{created_form.get('info', {}).get('title', title)}' for {user_google_email}. Form ID: {form_id}. Edit URL: {edit_url}. Responder URL: {responder_url}"
logger.info(f"Form created successfully for {user_google_email}. ID: {form_id}")
@@ -68,11 +66,7 @@ async def create_form(
@server.tool()
@handle_http_errors("get_form", is_read_only=True, service_type="forms")
@require_google_service("forms", "forms")
async def get_form(
service,
user_google_email: str,
form_id: str
) -> str:
async def get_form(service, user_google_email: str, form_id: str) -> str:
"""
Get a form.
@@ -85,9 +79,7 @@ async def get_form(
"""
logger.info(f"[get_form] Invoked. Email: '{user_google_email}', Form ID: {form_id}")
form = await asyncio.to_thread(
service.forms().get(formId=form_id).execute
)
form = await asyncio.to_thread(service.forms().get(formId=form_id).execute)
form_info = form.get("info", {})
title = form_info.get("title", "No Title")
@@ -95,17 +87,23 @@ async def get_form(
document_title = form_info.get("documentTitle", title)
edit_url = f"https://docs.google.com/forms/d/{form_id}/edit"
responder_url = form.get("responderUri", f"https://docs.google.com/forms/d/{form_id}/viewform")
responder_url = form.get(
"responderUri", f"https://docs.google.com/forms/d/{form_id}/viewform"
)
items = form.get("items", [])
questions_summary = []
for i, item in enumerate(items, 1):
item_title = item.get("title", f"Question {i}")
item_type = item.get("questionItem", {}).get("question", {}).get("required", False)
item_type = (
item.get("questionItem", {}).get("question", {}).get("required", False)
)
required_text = " (Required)" if item_type else ""
questions_summary.append(f" {i}. {item_title}{required_text}")
questions_text = "\n".join(questions_summary) if questions_summary else " No questions found"
questions_text = (
"\n".join(questions_summary) if questions_summary else " No questions found"
)
result = f"""Form Details for {user_google_email}:
- Title: "{title}"
@@ -129,7 +127,7 @@ async def set_publish_settings(
user_google_email: str,
form_id: str,
publish_as_template: bool = False,
require_authentication: bool = False
require_authentication: bool = False,
) -> str:
"""
Updates the publish settings of a form.
@@ -143,11 +141,13 @@ async def set_publish_settings(
Returns:
str: Confirmation message of the successful publish settings update.
"""
logger.info(f"[set_publish_settings] Invoked. Email: '{user_google_email}', Form ID: {form_id}")
logger.info(
f"[set_publish_settings] Invoked. Email: '{user_google_email}', Form ID: {form_id}"
)
settings_body = {
"publishAsTemplate": publish_as_template,
"requireAuthentication": require_authentication
"requireAuthentication": require_authentication,
}
await asyncio.to_thread(
@@ -155,7 +155,9 @@ async def set_publish_settings(
)
confirmation_message = f"Successfully updated publish settings for form {form_id} for {user_google_email}. Publish as template: {publish_as_template}, Require authentication: {require_authentication}"
logger.info(f"Publish settings updated successfully for {user_google_email}. Form ID: {form_id}")
logger.info(
f"Publish settings updated successfully for {user_google_email}. Form ID: {form_id}"
)
return confirmation_message
@@ -163,10 +165,7 @@ async def set_publish_settings(
@handle_http_errors("get_form_response", is_read_only=True, service_type="forms")
@require_google_service("forms", "forms")
async def get_form_response(
service,
user_google_email: str,
form_id: str,
response_id: str
service, user_google_email: str, form_id: str, response_id: str
) -> str:
"""
Get one response from the form.
@@ -179,7 +178,9 @@ async def get_form_response(
Returns:
str: Response details including answers and metadata.
"""
logger.info(f"[get_form_response] Invoked. Email: '{user_google_email}', Form ID: {form_id}, Response ID: {response_id}")
logger.info(
f"[get_form_response] Invoked. Email: '{user_google_email}', Form ID: {form_id}, Response ID: {response_id}"
)
response = await asyncio.to_thread(
service.forms().responses().get(formId=form_id, responseId=response_id).execute
@@ -209,7 +210,9 @@ async def get_form_response(
- Answers:
{answers_text}"""
logger.info(f"Successfully retrieved response for {user_google_email}. Response ID: {response_id}")
logger.info(
f"Successfully retrieved response for {user_google_email}. Response ID: {response_id}"
)
return result
@@ -221,7 +224,7 @@ async def list_form_responses(
user_google_email: str,
form_id: str,
page_size: int = 10,
page_token: Optional[str] = None
page_token: Optional[str] = None,
) -> str:
"""
List a form's responses.
@@ -235,12 +238,11 @@ async def list_form_responses(
Returns:
str: List of responses with basic details and pagination info.
"""
logger.info(f"[list_form_responses] Invoked. Email: '{user_google_email}', Form ID: {form_id}")
logger.info(
f"[list_form_responses] Invoked. Email: '{user_google_email}', Form ID: {form_id}"
)
params = {
"formId": form_id,
"pageSize": page_size
}
params = {"formId": form_id, "pageSize": page_size}
if page_token:
params["pageToken"] = page_token
@@ -265,7 +267,11 @@ async def list_form_responses(
f" {i}. Response ID: {response_id} | Created: {create_time} | Last Submitted: {last_submitted_time} | Answers: {answers_count}"
)
pagination_info = f"\nNext page token: {next_page_token}" if next_page_token else "\nNo more pages."
pagination_info = (
f"\nNext page token: {next_page_token}"
if next_page_token
else "\nNo more pages."
)
result = f"""Form Responses for {user_google_email}:
- Form ID: {form_id}
@@ -273,5 +279,7 @@ async def list_form_responses(
- Responses:
{chr(10).join(response_details)}{pagination_info}"""
logger.info(f"Successfully retrieved {len(responses)} responses for {user_google_email}. Form ID: {form_id}")
return result
logger.info(
f"Successfully retrieved {len(responses)} responses for {user_google_email}. Form ID: {form_id}"
)
return result