webrobot-python-extension

Write and register Python row-transform functions for WebRobot pipeline stages.

Updated Apr 29, 2026
One-click install
npx skills add https://github.com/WebRobot-Ltd/claude-code-webrobot-skills --skill webrobot-python-extension-webrobot-ltd
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: webrobot-python-extension
Source: https://github.com/WebRobot-Ltd/claude-code-webrobot-skills/tree/main/skills/webrobot-python-extension
Command: npx skills add https://github.com/WebRobot-Ltd/claude-code-webrobot-skills --skill webrobot-python-extension-webrobot-ltd

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding custom row-level logic to a WebRobot pipeline normally requires building and deploying a compiled Scala plugin. This Skill lets you write lightweight Python functions that run as pipeline stages, either embedded inline in the pipeline YAML or registered once via API and reused across agents. ## Core Features & Use Cases - Inline Python Extensions: Embed python_row_transform functions directly in the pipeline YAML under python_extensions.stages for prototyping and one-off pipelines. - Registered Extensions: Register functions via the WebRobot API so multiple agents and teams can reference the same logic by name. - Hybrid Mode: Combine database-registered shared logic with pipeline-specific inline functions for production pipelines. - Use Case: You scrape product pages and need to parse prices like "€1.299,00" into a numeric amount plus currency code. Write a parse_price Python function, embed it in the YAML, reference it as python_row_transform:parse_price, and validate the manifest before deploying. ## Quick Start Ask the AI to write a Python row transform that parses a price field into amount and currency and embed it into your WebRobot pipeline YAML.

Frequently Asked Questions about webrobot-python-extension

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add custom Python logic to a WebRobot pipeline?

Write a Python function that takes a row dict and returns the row with new fields, then embed it under python_extensions.stages in the pipeline YAML. Reference it in the pipeline as python_row_transform:<function_name> and validate the manifest before deploying.

What is the difference between inline and registered Python extensions?

Inline extensions embed the function code directly in the pipeline YAML, suiting prototypes and single-use pipelines. Registered extensions are stored via the API and referenced by name, letting multiple agents share the same logic.

When should I use a Scala ETL plugin instead of a Python extension?

Use a Scala plugin when the stage must be reused across organizations, versioned independently, or needs direct database access through WebroStageContext. Python extensions run as Spark UDFs without database, LLM facade, or MinIO access.

Can Python extensions use Spark or external libraries?

No SparkSession or spark references are allowed in the function signature; the engine injects context automatically. Only the standard library and pre-installed packages like requests, bs4, re, json, and math are available.

Why does my Python extension fail at runtime on the analytics engine?

On the entry-tier analytics engine, extensions run in-process over Polars and are gated by WEBROBOT_PYTHON_EXTENSIONS_ENABLED plus an AST guard. Code containing imports outside allowed patterns, dunder access, exec, or file IO will be rejected.