mad-prefect
Decision gist · record as of 2026-08-14
Yes, with conditions. The package solves a real problem—adding lightweight data asset management to Prefect—and has low install friction with active maintenance. However, the unclear license status is a blocker for any project with strict licensing requirements; resolve that first. Once licensed, it's a solid choice for Prefect users building data pipelines that benefit from caching, querying, and artifact management.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or 3.12 (capped below 3.13); async/await syntax requires an async context.
- Low install friction; wheel-only distribution.
- Depends on seven runtime packages including prefect, duckdb, and fsspec.
License · maintenance · safety
(unclear) — License status is unclear—no SPDX identifier or raw license text provided. Verify the actual license terms before adopting in proprietary or copyleft-sensitive projects.
last release 2026-04-10 (126 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 104,076 downloads/mo, #12,770 on PyPI
Alternatives
Verify before relying
pip install mad-prefect
from mad_prefect.data_assets import asset
from datetime import timedelta
@asset(path="/data/results.json", cache_expiration=timedelta(hours=1))
def generate_data():
return [{"id": 1, "value": "a"}]
result = await generate_data()
query_result = await generate_data.query("WHERE id > 0")- Whether the unclear license is a documentation gap or a genuine licensing issue requiring clarification before use.
- Performance characteristics and memory footprint when querying large datasets through DuckDB.
- Compatibility with Prefect versions beyond what runtime dependency pinning may specify.
What it is and what it does
mad_prefect wraps Prefect workflow functions with a `@asset` decorator that automatically handles data persistence, caching, and querying. When you decorate a function, it becomes a data asset that can materialize its output to disk (in JSON, Parquet, or CSV), reuse cached results within a configurable expiration window, and query the stored data using DuckDB without loading it entirely into memory.
The library is built on seven runtime dependencies: prefect (the orchestration framework), duckdb (for SQL querying), pandas and pyarrow (for data handling), fsspec and sshfs (for filesystem abstraction), and jsonlines (for line-delimited JSON support). It targets Python 3.11 and 3.12, and is actively maintained. Use it to build modular ETL pipelines where each step is independently executable and queryable, or to cache intermediate results in machine learning workflows.
Use it for
- Build ETL pipelines where each transformation step is a queryable data asset that can be executed and cached independently.
- Cache intermediate machine learning datasets and query them for model training without recomputing or loading full data into memory.
- Enable data analysts to query preprocessed assets via SQL without understanding the underlying retrieval logic.
- Maintain historical snapshots of data assets for auditing and rollback in incremental data processing workflows.
- Reduce redundant computations in multi-step workflows by reusing cached artifacts within configurable expiration windows.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, with conditions.
The package solves a real problem—adding lightweight data asset management to Prefect—and has low install friction with active maintenance. However, the unclear license status is a blocker for any project with strict licensing requirements; resolve that first. Once licensed, it's a solid choice for Prefect users building data pipelines that benefit from caching, querying, and artifact management.
Install
mad-prefect on PyPI
Before you install
Low install friction; wheel-only distribution. Depends on seven runtime packages including prefect, duckdb, and fsspec. Actively maintained with a release within the last 126 days.
Requires Python 3.11 or 3.12 (capped below 3.13); async/await syntax requires an async context.
License in practice
License status is unclear—no SPDX identifier or raw license text provided. Verify the actual license terms before adopting in proprietary or copyleft-sensitive projects.
Quickstart
pip install mad-prefect
from mad_prefect.data_assets import asset
from datetime import timedelta
@asset(path="/data/results.json", cache_expiration=timedelta(hours=1))
def generate_data():
return [{"id": 1, "value": "a"}]
result = await generate_data()
query_result = await generate_data.query("WHERE id > 0")
Verify before relying
- Whether the unclear license is a documentation gap or a genuine licensing issue requiring clarification before use.
- Performance characteristics and memory footprint when querying large datasets through DuckDB.
- Compatibility with Prefect versions beyond what runtime dependency pinning may specify.
Package facts
| License | Not declared unclear |
| Python support | Capped below the current Python release <3.13,>=3.11 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 7 packagesduckdbfsspecjsonlinespandasprefectpyarrowsshfs |
| Maintenance | Actively maintained 126 days since the last release |
| First released | |
| Downloads | 104,076 / month, #12,770 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12 |
Evidence: mad_prefect-2.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “prefect data assets”
- mad-prefectAdds a data asset pattern to Prefect workflows, enabling functions to…
- prefect-snowflakePrefect integration that provides tasks and blocks for connecting…
- prefect-dbtPrefect integration that orchestrates dbt workflows, allowing you to…
Give your agent the search over MCP, or paste the wish link into any chat.
More Application Frameworks packages
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Textual is a Python framework for building cross-platform user interfaces that run in the terminal or web browser using a modern, component-based API.
Install it if you're developing CLI tools, dashboards, or interactive terminal applications.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Build and connect to Model Context Protocol servers that expose tools, resources, and prompts to LLM applications over stdio, HTTP, or SSE transports.
Install it if you need to build or connect to servers.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
See also prefect-redis · duckdb · prefect · prefect-snowflake · prefect-email · prefect-sqlalchemy · prefect-gcp · prefect-dbt · prefect-github