Use run_shell with Python heredoc when execute_code_sandbox or read_file fail
53
58%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
High
Do not use without reviewing
Fix and improve this skill with Tessl
tessl review fix ./benchmarks/gdpval/skills/fallback-python-shell/SKILL.mdUse this fallback pattern when:
execute_code_sandbox returns 'unknown error'read_file returns 'unknown error' for supported formatsRun Python code through run_shell using a heredoc. This bypasses sandbox execution issues while maintaining Python's full capabilities for file I/O and data processing.
python3 << 'EOF'
# Your Python code here
import json
import os
# Example: Read and process a file
with open('/path/to/file.txt', 'r') as f:
content = f.read()
print(content)
EOFpython3 << 'EOF' (quoted EOF prevents variable expansion in the heredoc)EOF on its own line with no leading/trailing whitespacepython3 << 'EOF'
import json
# Read text file
with open('document.txt', 'r') as f:
content = f.read()
print(content)
# Read JSON file
with open('data.json', 'r') as f:
data = json.load(f)
print(json.dumps(data, indent=2))
EOFpython3 << 'EOF'
import pandas as pd
# Read Excel file
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
print(df.to_string())
print(f"Shape: {df.shape}")
# Read CSV
df = pd.read_csv('data.csv')
print(df.head(10))
EOFpython3 << 'EOF'
import fitz # PyMuPDF
doc = fitz.open('document.pdf')
for page_num in range(len(doc)):
page = doc[page_num]
text = page.get_text()
print(f"=== Page {page_num + 1} ===")
print(text)
doc.close()
EOFpython3 << 'EOF'
from docx import Document
doc = Document('document.docx')
for para in doc.paragraphs:
print(para.text)
EOFpython3 << 'EOF'
import pandas as pd
import numpy as np
df = pd.read_csv('data.csv')
# Basic statistics
print(f"Shape: {df.shape}")
print(f"Columns: {list(df.columns)}")
print(df.describe())
# Filter and aggregate
result = df.groupby('category').agg({'value': 'sum'})
print(result)
EOFError Handling: Wrap file operations in try/except blocks
python3 << 'EOF'
try:
with open('file.txt', 'r') as f:
content = f.read()
print(content)
except FileNotFoundError:
print("ERROR: File not found")
except Exception as e:
print(f"ERROR: {e}")
EOFLarge Output: For large files, process in chunks or print summaries
python3 << 'EOF'
with open('large_file.csv', 'r') as f:
for i, line in enumerate(f):
if i < 10:
print(line.strip())
else:
print("... truncated ...")
break
EOFWorking Directory: Remember run_shell executes in the current working directory. Use absolute paths or ensure you're in the right directory.
Multiple Steps: Chain related operations in a single heredoc rather than multiple calls
python3 << 'EOF'
# Do all related work in one call
with open('input.json') as f:
data = json.load(f)
processed = [transform(x) for x in data]
with open('output.json', 'w') as f:
json.dump(processed, f)
print("Processing complete")
EOFopen('file.txt', 'r', encoding='utf-8')c5a9c4b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.