Spark Python Data Source
databricks/databricks-agent-skills
Build custom Python data sources for Apache Spark using the PySpark DataSource API — batch and streaming readers/writers for external systems.
Integrate Polar billing in server-side Python applications using the versioned Polar and PolarAsync clients.
$ npx skills add polarsource/polar --skill polar-python-sdk -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install polarsource/polar polar-python-sdk --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .claude/skills && cp -r skills-src/sdk/python/polar/.agents/skills/polar-python-sdk .claude/skills/polar-python-sdk && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "polar-python-sdk" agent skill from https://github.com/polarsource/polar/tree/main/sdk/python/polar/.agents/skills/polar-python-sdk into .claude/skills/polar-python-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polar-python-sdk", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/polarsource/polar/tree/main/sdk/python/polar/.agents/skills/polar-python-sdkType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add polarsource/polar --skill polar-python-sdk -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install polarsource/polar polar-python-sdk --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .agents/skills && cp -r skills-src/sdk/python/polar/.agents/skills/polar-python-sdk .agents/skills/polar-python-sdk && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "polar-python-sdk" agent skill from https://github.com/polarsource/polar/tree/main/sdk/python/polar/.agents/skills/polar-python-sdk into .agents/skills/polar-python-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polar-python-sdk", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add polarsource/polar --skill polar-python-sdk -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install polarsource/polar polar-python-sdk --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/sdk/python/polar/.agents/skills/polar-python-sdk .cursor/skills/polar-python-sdk && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "polar-python-sdk" agent skill from https://github.com/polarsource/polar/tree/main/sdk/python/polar/.agents/skills/polar-python-sdk into .cursor/skills/polar-python-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polar-python-sdk", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/polarsource/polar.git --path sdk/python/polar/.agents/skills/polar-python-sdk--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add polarsource/polar --skill polar-python-sdk -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install polarsource/polar polar-python-sdk --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/sdk/python/polar/.agents/skills/polar-python-sdk .gemini/skills/polar-python-sdk && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "polar-python-sdk" agent skill from https://github.com/polarsource/polar/tree/main/sdk/python/polar/.agents/skills/polar-python-sdk into .gemini/skills/polar-python-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polar-python-sdk", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install polarsource/polar polar-python-sdkInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add polarsource/polar --skill polar-python-sdk -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .github/skills && cp -r skills-src/sdk/python/polar/.agents/skills/polar-python-sdk .github/skills/polar-python-sdk && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "polar-python-sdk" agent skill from https://github.com/polarsource/polar/tree/main/sdk/python/polar/.agents/skills/polar-python-sdk into .github/skills/polar-python-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polar-python-sdk", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add polarsource/polar --skill polar-python-sdk -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install polarsource/polar polar-python-sdk --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/sdk/python/polar/.agents/skills/polar-python-sdk .opencode/skills/polar-python-sdk && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "polar-python-sdk" agent skill from https://github.com/polarsource/polar/tree/main/sdk/python/polar/.agents/skills/polar-python-sdk into .opencode/skills/polar-python-sdk/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polar-python-sdk", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
polar-python-sdkIntegrate Polar billing in server-side Python applications using the versioned Polar and PolarAsync clients.
Polar Python SDK is an agent skill from polarsource/polar. Integrate Polar billing in server-side Python applications using the versioned Polar and PolarAsync clients. Use when implementing Polar customers and external IDs, checkout or customer portal sessions, customer-state entitlement checks, webhook validation and processing, API error handling, usage-event ingestion and metered billing, or migrating an application from the old Polar Python SDK.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `agents/openai.yaml`, `references/migration-from-v0.md` and `references/usage-events.md`).
It sits in Data & Analytics, covering DataFrames. It works with Python. The repository describes itself as: Polar — A billing platform for the intelligence era. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 599c727. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
POLAR_ACCESS_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Polar Python SDK loads about 1.8k tokens when it runs, and up to ~4.8k if it reads all its reference files. Until then it costs about 103 tokens; SKILL.md has 698 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from polarsource/polar at commit 599c727, republished under its Apache-2.0 licence (© polarsource). 698 words, ~1,832 tokens.
.claude/skills/polar-python-sdk/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Use the generated, versioned Polar SDK without inventing methods or parameters.
polar-sdk version and preserve the API version already selected by the application.TypedDict definitions, output dataclasses, and endpoint-specific errors before writing calls.Polar in synchronous code and PolarAsync in asynchronous code. Do not mix blocking SDK calls into an async request path.Polar(..., organization_id=...) or pass organization_id, and confirm the required endpoint scopes.Read Migration from the <1.0.0 SDK before changing an application that imports polar_sdk, calls _async operation variants, or paginates with .next(). Do not mix old and new client, model, pagination, error, or webhook conventions.
Keep production and sandbox access tokens separate. Never expose an organization access token in browser, mobile, or other public client code. Pass environment="sandbox" while testing; omit it or pass environment="production" in production.
import os
from polar.v2026_10 import Polar
with Polar(
os.environ["POLAR_ACCESS_TOKEN"],
environment="sandbox",
) as polar:
customer_state = polar.customers.get_state_external("usr_123")For a long-running service, create one client during application startup, reuse its connection pool, and close it during application shutdown. Do not create a new client for every incoming request.
Use the async client with an application-lifetime async context in async services:
import os
from polar.v2026_10 import PolarAsync
async def load_customer_state() -> None:
async with PolarAsync(os.environ["POLAR_ACCESS_TOKEN"]) as polar:
customer_state = await polar.customers.get_state_external("usr_123")
print(customer_state)TypedDict schemas.iter_* for paginated endpoints. Use for with Polar and async for with PolarAsync; each additional page performs another API request.Use the application's immutable user or organization identifier as the Polar customer external_id. It is unique within a Polar organization. It may be assigned later when initially unset, but it cannot be changed or removed once set.
customer = polar.customers.create(
external_id="usr_123",
email="user@example.com",
)
customer_state = polar.customers.get_state_external("usr_123")Handle concurrent creation safely. A preflight lookup followed by creation is not atomic; if creation reports an existing email or external ID, fetch and reconcile the existing customer rather than creating a second mapping.
Create checkout sessions on the server and send only the returned URL to the browser. Prefer external_customer_id so a completed checkout is reconciled with the application's customer.
checkout = polar.checkouts.create(
products=[os.environ["POLAR_PRODUCT_ID"]],
external_customer_id="usr_123",
success_url="https://example.com/billing/success?checkout_id={CHECKOUT_ID}",
return_url="https://example.com/settings/billing",
)
redirect_to(checkout.url)Do not treat the success redirect as proof of payment or entitlement. Confirm access through customer state or a verified webhook.
Create short-lived customer portal sessions only for an authenticated customer:
session = polar.customer_sessions.create(
external_customer_id="usr_123",
return_url="https://example.com/settings/billing",
)
redirect_to(session.customer_portal_url)Validate return URLs and never let an untrusted caller choose another customer's external ID.
Prefer a feature_flag benefit attached to the relevant products over inferring access from subscription statuses. Reconcile both access grants and access revocations.
from polar.v2026_10.outputs import CustomerState
def has_feature_access(customer_state: CustomerState, benefit_id: str) -> bool:
return any(
grant.benefit_id == benefit_id for grant in customer_state.granted_benefits
)
customer_state = polar.customers.get_state_external("usr_123")
set_feature_access(
customer_external_id="usr_123",
enabled=has_feature_access(
customer_state,
os.environ["POLAR_BENEFIT_ID"],
),
)Make set_feature_access an idempotent application write. A missing benefit must disable access, not merely skip a grant operation.
For webhook-driven synchronization, use benefit-grant events for an incremental local grant ledger or customer.state_changed for complete snapshot reconciliation. Read Webhook processing before implementing or modifying a receiver.
Read Usage-event ingestion before implementing metered billing. In particular:
customer_id or external_customer_id.external_id.external_id when retrying so Polar can deduplicate the event.inserted and duplicates in the ingestion result.Handle generated endpoint-specific errors before broad SDK errors. Classify common base errors as follows:
PolarNetworkError: retry only when the operation is safe or carries a stable deduplication identifier.PolarRateLimitError: apply bounded backoff and honor retry_after when present.PolarServerError: retry selected 5xx failures with bounded exponential backoff and jitter.PolarClientError: do not blindly retry authentication, authorization, validation, or not-found failures.Never create a new usage-event external_id during a retry. For other mutations, use an endpoint-supported idempotency mechanism or application-level reconciliation before retrying.
© polarsource, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in sdk/python/polar/.agents/skills/polar-python-sdk of polarsource/polar.
Open the folder on GitHubat commit 599c727
Polar Python SDK next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Polar Python SDK this skillpolarsource/polar | 10k | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Spark Python Data Sourcedatabricks/databricks-agent-skills | 345 | — | ~2.1k | Automated safety check: Pass | Custom licence | |
| Chdb Datastorevemetric/vemetric | 394 | 2 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| CSV Data Summarizercoffeefuelbump/csv-data-summarizer-claude-skill | 468 | 2 repos | ~1.4k | Automated safety check: Pass | None | |
| Python Executorcortega26/chile-hub | 113 | 2 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Retentioneering Product Analyticsretentioneering/retentioneering-tools | 920 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 |
databricks/databricks-agent-skills
Build custom Python data sources for Apache Spark using the PySpark DataSource API — batch and streaming readers/writers for external systems.
vemetric/vemetric
A skill your agent uses when the user has tabular data (pandas DataFrame, parquet, csv, Arrow, json) and wants to filter, group, aggregate, join, or speed up slow pandas.
coffeefuelbump/csv-data-summarizer-claude-skill
Analyzes CSV files, generates summary stats, and plots quick visualizations using Python and pandas.
cortega26/chile-hub
Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh).
retentioneering/retentioneering-tools
Analyze event logs, clickstreams, user paths, product funnels, retention, behavioral segments, transition graphs, step matrices, sequence patterns, and customer journeys using Retentioneering.
Jeffallan/claude-skills
Handles pandas DataFrame work: cleaning, merging, groupby aggregation, pivots, time-series resampling and memory tuning, with checks on dtypes, shapes and nulls.
polarsource/polar
Integrate Polar billing in server-side TypeScript applications using the versioned createPolar and createPolarCore clients.
polarsource/polar
Check a code change against the repo's Accepted Architecture Decision Records (ADRs) in handbook/engineering/decisions/ and report violations with citations.
polarsource/polar
Review changes to Polar's API contract — Pydantic schemas, FastAPI endpoints, OpenAPI output and the generated SDKs.
polarsource/polar
Review a diff that touches Polar's billing domain — subscriptions, cycles and crons, orders, billing entries, meters and usage, discounts, checkout, payments and dunning, refunds, disputes, payouts…
polarsource/polar
Prepare an interview task for a candidate, as part of our hiring process.
polarsource/polar
Open or update a draft GitHub pull request after Polar-specific review and cubic CLI review.
Works with
Categories
Integrate Polar billing in server-side Python applications using the versioned Polar and PolarAsync clients. Polar Python SDK is an agent skill from polarsource/polar. Integrate Polar billing in server-side Python applications using the versioned Polar and PolarAsync clients.
Polar Python SDK fits situations like: implementing Polar customers and external IDs; customer portal sessions; customer-state entitlement checks; webhook validation and processing.
Run `npx skills add polarsource/polar --skill polar-python-sdk -a claude-code`. Or copy the skill folder (sdk/python/polar/.agents/skills/polar-python-sdk in polarsource/polar) into .claude/skills/polar-python-sdk in your project. Claude Code loads it when a task matches its description.
Run `npx skills add polarsource/polar --skill polar-python-sdk -a codex`. Or copy the skill folder (sdk/python/polar/.agents/skills/polar-python-sdk in polarsource/polar) into .agents/skills/polar-python-sdk in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add polarsource/polar --skill polar-python-sdk -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/polar-python-sdk, .gemini/skills/polar-python-sdk, .github/skills/polar-python-sdk and .opencode/skills/polar-python-sdk in your project.
Going by SKILL.md and its folder, Polar Python SDK needs credentials named POLAR_ACCESS_TOKEN. Our summary lists: Python 3; A credential in POLAR_ACCESS_TOKEN.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Polar Python SDK is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Polar Python SDK: Spark Python Data Source (databricks/databricks-agent-skills, 345 stars), Chdb Datastore (vemetric/vemetric, 394 stars), CSV Data Summarizer (coffeefuelbump/csv-data-summarizer-claude-skill, 468 stars) and Python Executor (cortega26/chile-hub, 113 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
polarsource (a GitHub organization) maintains it in polarsource/polar, which has 10,336 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 7, 2026.
Source: polarsource/polar on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.