Skip to main content

prism logo

PyPI

CI Linux CI MacOS Checked with mypy Checked with flake8

👋 Welcome to Prism!

Prism is the easiest way to create data pipelines in Python.

Introduction

Data projects often require multiple steps that need to be executed in sequence (think extract-transform-load, data wrangling, etc.). With Prism, users can break down their project into modular tasks, manage dependencies, and execute complex computations in sequence.

Here are some of Prism's main features:

  • Real-time dependency declaration: With Prism, analysts can declare dependencies using a simple function call. No need to explicitly keep track of the pipeline order — at runtime, Prism automatically parses the function calls and builds the dependency graph.
  • Intuitive logging: Prism automatically logs events for parsing the configuration files, compiling the tasks and creating the DAG, and executing the tasks. No configuration is required.
  • Flexible CLI: Users can instantiate, compile, and run projects using a simple, but powerful command-line interface.
  • “Batteries included”: Prism comes with all the essentials needed to get up and running quickly. Users can create and run their first DAG in less than 2 minutes.
  • Integrations: Prism integrates with several tools that are popular in the data community, including Snowflake, Google BigQuery, Redshift, PySpark, and dbt. We're adding more integrations every day, so let us know what you'd like to see!

Getting Started

Prism can be installed via pip. Prism requires Python >= 3.7.

pip install --upgrade pip
pip install prism-ds

Start your first Prism project with the prism init command:

$ prism init --project-name my_first_project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Running with Prism v0.3.0...
Creating template project at ./my_first_project...

      ______
   ____  __ \_____(_)________ _______
 _____  /_/ / ___/ / ___/ __ `__ \ ____
____ / ____/ /  / (__  ) / / / / / _____
 ___/_/   /_/  /_/____/_/ /_/ /_/  ___

Welcome to Prism, the easiest way to create clean, modular data pipelines
using Python!

To get started, navigate to your newly created project "testsd" and try
running the following commands:
    > python main.py
    > prism run
    > prism graph

Consult the documentation here for more information on how to get started.
    docs.runprism.com

Happy building!

Done!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Run your project by navigating to your project directory and running prism run:

$ cd my_first_project
$ prism run
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[HH:MM:SS] INFO     | Running with Prism v0.3.0...
[HH:MM:SS] INFO     | Creating run magnetic-pony-BBDYfwdDzH for client my_first_project-1.0...
[HH:MM:SS] INFO     | Found 2 task(s) in 2 module(s) in job magnetic-pony-BBDYfwdDzH...

[HH:MM:SS] INFO     | Parsing task dependencies............................................... [RUN]
[HH:MM:SS] INFO     | FINISHED parsing task dependencies...................................... [DONE in 0.01s]

────────────────────────────────────────────── Tasks ──────────────────────────────────────────────
[HH:MM:SS] INFO     | 1 of 2 RUNNING TASK example-decorated-task.............................. [RUN]
[HH:MM:SS] INFO     | 1 of 2 FINISHED TASK example-decorated-task............................. [DONE in 0.02s]
[HH:MM:SS] INFO     | 2 of 2 RUNNING TASK example-class-task.................................. [RUN]
[HH:MM:SS] INFO     | 2 of 2 FINISHED TASK example-class-task................................. [DONE in 0.02s]

Done!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Documentation

To get started with Prism projects, check out our documentation. Some sections of interest include:

In addition, check out some example projects.

Integrations

Prism integrates with a wide variety of third-party developer tools There are two kinds of integrations that Prism supports: adapters, and agents.

Adapters

Adapters allow users to connect to data warehouses or analytics engines. Prism currently supports the following adapters:

Adapter Command
Google BigQuery pip install "prism-ds[bigquery]"
Postgres pip install "prism-ds[postgres]"
Presto pip install "prism-ds[presto]"
Redshift pip install "prism-ds[redshift]"
Snowflake pip install "prism-ds[snowflake]"
Trino pip install "prism-ds[trino]"

Product Roadmap

We're always looking to improve our product. Here's what we're working on at the moment:

  • Compatibility with Alto agents: Docker containers, EC2 clusters, EMR clusters, Databricks clusters, and more!
  • Additional adapters: Celery, Dask, MySQL, Presto, and more!
  • Cloud deployment: Managed orchestration platform to deploy Prism projects in the cloud

Let us know if you'd like to see another feature!

Metadata

Release files for prism-ds 0.3.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 prism-ds 0.3.0
File Size Uploaded
prism-ds-0.3.0.tar.gz 493.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for prism-ds 0.3.0
File Interpreter ABI Platform
prism_ds-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / prism-ds-0.3.0.tar.gz

Download URL prism-ds-0.3.0.tar.gz
Size 493.5 kB
Tags Source
SHA-256 checksum
How to use checksums
fc23f80565fa8a84d7e79ffba90e00f217a50410a0daa249667a3d6d5fa3b0a0
BLAKE2b-256 checksum
How to use checksums
43c3563f35b5a9f2f5fd4971029a2348813794760370a86c51a65603c4dd4143
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.19

Release files / prism_ds-0.3.0-py3-none-any.whl

Download URL prism_ds-0.3.0-py3-none-any.whl
Size 546.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b28abd2e8cc2df2c45cfc640681b7446ec984f1105a455514c7aacea58f9a8c
BLAKE2b-256 checksum
How to use checksums
62ef823aca8644a70e729ab7fc53439da2fcffa7f15af84f06f3d59cece4ed38
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.19
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