Skip to main content

Add your description here

Project description

Perago

codecov

文档站(Read the Docs) · PyPI

Perago 是一个面向 Conductor worker 的 typed Python 运行时层,用来在版本化 workspace 上执行任务。它把任务函数签名、Pydantic 输入输出契约、Conductor TaskDef、LakeFS workspace 下载与按需发布、guardrail 校验和 worker 启动边界收敛到同一套模型里。

本文档提供项目概览、安装方式和最小入口;完整说明见文档站。

安装

要求 Python 3.10 或更新版本。

uv add perago

或:

pip install perago

仓库本地开发使用:

uv sync

最小示例

下面是一个最小的 workspace task。任务作者只需要声明 typed params/output、workspace 约束和任务元数据;Perago 负责校验、TaskDef 提取和运行时集成。

from pathlib import Path

from pydantic import BaseModel, Field

from perago import WorkspaceSpec, require_glob, task


class BuildFeaturesParams(BaseModel):
    feature_set: str
    min_rows: int = Field(ge=1)


class BuildFeaturesOutput(BaseModel):
    row_count: int = Field(ge=0)
    feature_count: int = Field(ge=0)


@task(
    name="features.build",
    owner_email="data@example.com",
    workspace=WorkspaceSpec(
        prefix="/",
        pre=[require_glob("raw/**/*.parquet", min_count=1)],
    ),
)
def build_features(
    workspace: Path,
    params: BuildFeaturesParams,
) -> BuildFeaturesOutput:
    return BuildFeaturesOutput(row_count=100, feature_count=24)

workspace-free task 使用同一套 decorator 和 typed contract,但不声明 workspace: Path,也不声明 WorkspaceSpec

快速入口

perago CLI 的 MVP 入口是单任务 module target:

perago check app.workers.features_build
perago extract app.workers.features_build --output generated/features.build.json
perago start app.workers.features_build -j 4
  • perago check:导入模块并校验任务声明与本地 runtime config。
  • perago extract:生成带嵌入 schema 的 Conductor TaskDef JSON。
  • perago start:在真实 Conductor 配置下启动 supervisor-managed worker processes;workspace task 还需要 LakeFS 配置。

文档

仓库内的对应内容可从这里继续展开:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

perago-0.5.0.tar.gz (105.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

perago-0.5.0-py3-none-any.whl (79.1 kB view details)

Uploaded Python 3

File details

Details for the file perago-0.5.0.tar.gz.

File metadata

  • Download URL: perago-0.5.0.tar.gz
  • Upload date:
  • Size: 105.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for perago-0.5.0.tar.gz
Algorithm Hash digest
SHA256 1886c48949d11851a0175a83c5143b5d82855c0a4d28dd43b5e2ef81c3a369f2
MD5 9b635b217f36bfa508560efa766f21e1
BLAKE2b-256 bbd5eca01dedfc59a1ce4255bf990e723d01ba4e99b5a0952509a6054cfa37fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for perago-0.5.0.tar.gz:

Publisher: publish.yml on Qiyin-Tech/perago

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file perago-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: perago-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 79.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for perago-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8c55eaddecf54166e1785df82cf97827ecc27b923231e6a2006bb1e43b88c81
MD5 c76e5213d775fed5da626ccdf93faf75
BLAKE2b-256 59a73a4390a7b3835cd511023465fc3088bb3742d14952f8c50faf4307112a41

See more details on using hashes here.

Provenance

The following attestation bundles were made for perago-0.5.0-py3-none-any.whl:

Publisher: publish.yml on Qiyin-Tech/perago

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page