Skip to main content

Polymo

Turn any REST API into a standalone pyspark connector script — no runtime, just generated code.

test docs PyPI - Python Version

Welcome to Polymo

Polymo turns a REST API into a standalone Lakeflow Declarative Pipelines script. Fill out the Builder UI form, preview real responses, and export — zero polymo runtime dependency, no config to load, nothing to import from polymo at all. The script only needs requests, the standard library, and pyspark.

The builder generates standalone scripts

For example, pointing the builder at https://jsonplaceholder.typicode.com/posts generates the following (elided below for brevity — the real file also includes retry/backoff and response-normalization helpers):

"""posts — generated by the polymo builder.

Standalone Lakeflow Declarative Pipelines source. polymo is NOT needed
at runtime; edit this file freely.
"""

BASE_URL: str = "https://jsonplaceholder.typicode.com"
PATH: str = "/posts"
PARAMS: dict[str, Any] = {"_limit": 20}

# … fetch/retry helpers elided …

# … inline Data Source (RestSource/_Reader) elided; the batch @dp.table
# below ingests through it, same as Lakeflow requires for the streaming
# variant …

spark.dataSource.register(RestSource)


@dp.table(name="posts")
def posts():
    return spark.read.format("posts_source").load()

See docs/superpowers/specs/2026-08-28-codegen-pivot-design.md for the full design behind this pivot.

Polymo Builder UI - connector preview screen

How does it work?

Open the Builder UI, describe your API (base URL, path, pagination, auth, schema — all optional except the URL and path), and preview it against the real API. When you're happy, switch to the Generated Code tab and download the script. Every field you fill in is baked into that script as a plain Python constant or a small block of generated code — there is nothing left to configure at runtime, and no polymo import anywhere in the output.

Ready to run it on Databricks? Switch to the Deploy tab instead: pick a CLI profile → catalog → schema, click Bootstrap to write a full Databricks Asset Bundle project (same generated code, laid out under src/), then Deploy and Run to drive databricks bundle deploy/run without leaving the Builder. Requires the Databricks CLI and a ~/.databrickscfg profile — see Deploy to Databricks for the full walkthrough, including how auth secrets can reference a Databricks secret scope instead of a placeholder.

See the Connector options reference for what every Builder field generates, and the Builder UI walkthrough for a guided tour of the form.

Migrating from polymo 0.x?

The YAML runtime (spark.read.format("polymo"), PolymoConfig, polymo smoke) is gone in 1.0. See docs/migration-1.0.md for what changed, and pin polymo<1.0 (0.11.0 is the last release with the old runtime) if you're not ready to move yet.

How to start?

pip install polymo

This installs everything you need, Builder UI included — FastAPI, Uvicorn, PySpark, PyArrow, and requests all come along, so there's nothing extra to opt into.

Note that polymo is never a dependency of the scripts it generates — nothing you export needs polymo installed to run.

Launch the builder UI

polymo

Or without installing it first:

uvx polymo

(Optional) Run the Builder in Docker

docker compose up --build builder

Where to Next

Read the docs here

Other material:

Contributing

It's still early days, but Polymo already supports a lot of features! Is there something missing? Raise an issue or contribute!

Contributions and early feedback welcome!


If Polymo helped, a ⭐ makes my day

Metadata

Release files for polymo 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for polymo 1.4.0
File Size Uploaded
polymo-1.4.0.tar.gz 200.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for polymo 1.4.0
File Interpreter ABI Platform
polymo-1.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 411.8 kB

Release files / polymo-1.4.0.tar.gz

Download URL polymo-1.4.0.tar.gz
Size 200.1 kB
Tags Source
SHA-256 checksum
How to use checksums
302b88cfc09e95a9816813e9ed81bc8cc6f65f28b5212cb0faf3f73ef9d39e3c
BLAKE2b-256 checksum
How to use checksums
e060664eb98c9cb54d6ddb590740880d0905b8c6eb2cb3243f9ab664c73cec14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / polymo-1.4.0-py3-none-any.whl

Download URL polymo-1.4.0-py3-none-any.whl
Size 211.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92a6724a39cd43fc7b3640dfd0b86ad5f59bffa3e2ddf48d8b98b48e18ab5e0f
BLAKE2b-256 checksum
How to use checksums
fe5abcaba13087109954263008ce6ac437a2ed02ee0f79ccf41bad07aceac988
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

This release

1.4.0 This release

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.8.4

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page