Skip to main content

Author-email: typedef <hello@typedef.ai> License: Apache-2.0 Requires-Python: >=3.10, <3.13 Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM Project-URL: Homepage, https://github.com/typedef-ai/langframe Project-URL: Issues, https://github.com/typedef-ai/langframe/issues

# langframe

langframe is a Python DataFrame library for processing text data, with APIs inspired by PySpark. It includes utilities tailored to working with language and special operations called semantic operators, which use large language models (LLMs) to batch-transform data.

—

## 📁 Directory Structure

The repository is organized as follows:

`bash langframe/ ├── src/langframe/ # Core library │ ├── api/ # Public API (e.g., DataFrame, Column, functions) │ ├── _backends/ # Execution backends: local and cloud (Typedef) │ ├── _logical_plan/ # Logical plan representation for operators ├── rust/ # Rust crates compiled with Maturin ├── tests/ # Test suite structured to match the source layout `

—

## 🛠️ Development Setup

Local development requires uv and a Rust toolchain.

### First-Time Setup

From the root of the repo:

`bash uv run maturin develop --uv `

This will:

  • Create a virtual environment

  • Build the Rust crate

  • Install Python dependencies

  • Set up the package in editable mode

> This command also places the built dynamic Rust library inside src/langframe.

### Making Changes

  • To apply changes made to Python code:

    `bash uv sync `

  • To apply changes made to Rust code:

    `bash uv run maturin develop --uv `

    Add –release or -r to build the Rust crate in release mode (better performance).

—

## ✅ Running Tests

Run an individual test file:

`bash uv run pytest tests/path/to/test_foo.py `

Run all tests for the local backend:

`bash uv run pytest -m "not cloud" tests `

Run all tests for the cloud backend:

`bash uv sync --extra cloud # Installs cloud-specific dependencies uv run pytest -m cloud tests `

> ⚠️ Note: All tests require a valid OpenAI API key set in the environment variables.

—

## 📓 Running Notebooks (VSCode / Cursor)

To run demo notebooks:

  1. Install the Jupyter extension.

  2. Add the .venv path to Python: Venv Folders in VSCode settings: - Open settings: Preferences: Open User Settings - Go to Extensions → Python → Python: Venv Folders

  3. Open a notebook, select the correct kernel from your virtual environment, and run cells.

> Restart the kernel to reflect any code changes made to the langframe source.

—

Have questions or want to contribute? Let us know!

Metadata

Release files for langframe 0.4.0

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

Built distributions (wheels)

Table of built distributions (wheels) for langframe 0.4.0
File
langframe-0.4.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
langframe-0.4.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
langframe-0.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
langframe-0.4.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details
langframe-0.4.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.9 abi3 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details

Total release size: 42.8 MB

Release files / langframe-0.4.0-cp39-abi3-win_amd64.whl

Download URL langframe-0.4.0-cp39-abi3-win_amd64.whl
Size 6.7 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
3e1a8445821ddf537bbb6918f07f85f22cab749cde86a29d969de0c30179f353
BLAKE2b-256 checksum
How to use checksums
e335fd7b6c14f2df161513fa6ee3ed5f2724fc4b293ad1eef7fc21ed277ac8ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.8.6

Release files / langframe-0.4.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL langframe-0.4.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 7.8 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
bc024c8efd523aa7b02fed9b3c9a3a79f423995ad1ca27d3d343e341d4cb22fd
BLAKE2b-256 checksum
How to use checksums
63946f8c23bc6b41a23e887d15a6fd27a111f3110c9fd6a4e8d0e304677487a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.8.6

Release files / langframe-0.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL langframe-0.4.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 7.4 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
35273eb3aa804df648cde332d8b0bd4be076b904a1ce5c984555573409648e57
BLAKE2b-256 checksum
How to use checksums
fccfe46002a7e69c6a61e25034b23fec6e879d5d5de6d3179e50ac8094caa842
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.8.6

Release files / langframe-0.4.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL langframe-0.4.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 7.2 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
24dcd6e48d5669b82802fba4d57aad6b04c418a757021c24c95300eba08cee7b
BLAKE2b-256 checksum
How to use checksums
acb4a591f0d7801d9bf311b9b8116278fcf96e34007619f9042d1b677ee5919c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.8.6

Release files / langframe-0.4.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL langframe-0.4.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 13.7 MB
Tags CPython 3.9 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
90ab767dfb3a21f92e495b021ad8d296fff712a3afa178541569ddfb64a4cc13
BLAKE2b-256 checksum
How to use checksums
a1f7986de7eea22b8fd57e786ad17bce59c7461596648f55fde909601aaae2ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.8.6

Release history Release notifications | RSS feed

This release

0.4.0 This release

5 release files

0.3.0

5 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