Download sheets.py from babaTEEpe/mali: direct link, hf CLI and curl.
- Browser
- Download file 1.14 kB
-
https://huggingface.co/spaces/babaTEEpe/mali/resolve/main/sheets.py
- Command line
-
hf download hf://spaces/babaTEEpe/mali/sheets.py
-
curl -L -o sheets.py https://huggingface.co/spaces/babaTEEpe/mali/resolve/main/sheets.py
1.14 kB
| from google.oauth2.credentials import Credentials | |
| from googleapiclient.discovery import build | |
| import re | |
| def get_sheets_service(user_token): | |
| creds = Credentials(**user_token) | |
| return build('sheets', 'v4', credentials=creds) | |
| def extract_spreadsheet_id(url): | |
| """Extracts the spreadsheet ID from a Google Sheets URL.""" | |
| match = re.search(r"/d/([a-zA-Z0-9-_]+)", url) | |
| return match.group(1) if match else None | |
| def get_sheet_data(service, spreadsheet_id, range_name="Sheet1!A:Z"): | |
| """Fetches all data from a specific range in a Google Sheet.""" | |
| sheet = service.spreadsheets() | |
| result = sheet.values().get(spreadsheetId=spreadsheet_id, range=range_name).execute() | |
| values = result.get('values', []) | |
| if not values: | |
| return [] | |
| # First row is headers | |
| headers = values[0] | |
| data = [] | |
| for row in values[1:]: | |
| # Map row values to headers | |
| item = {} | |
| for i, header in enumerate(headers): | |
| if i < len(row): | |
| item[header] = row[i] | |
| else: | |
| item[header] = "" | |
| data.append(item) | |
| return data | |