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:
Install the Jupyter extension.
Add the .venv path to Python: Venv Folders in VSCode settings: - Open settings: Preferences: Open User Settings - Go to Extensions → Python → Python: Venv Folders
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)
| File | Reset | |||
|---|---|---|---|---|
| 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
|