Run transforms quickly on local machine and analyse using DuckDb and pyspark
Project description
Transforms package
A package for transforming data using transform syntax similar to Palantir Foundry. It enables you to write and test transforms locally before running them on foundry. Also they can be run faster using duckdb as underlying data engine.
Getting Started
Installation
Install the package using pip:
pip install foundry-duck-transforms
Basic Usage
- Create a transform file (e.g.
my_transform.py) - Run it using the transforms CLI:
python -m transforms.run my_transform.py dev,master
Above command will run the transform while downloading data from dev, fallbacking to master if dataset has no data on dev.
CLI Options
The transforms runner supports several options to customize execution:
python -m transforms.run [OPTIONS] TRANSFORM_TO_RUN FALLBACK_BRANCHES
Available options:
--engine [spark|duckdb|spark-sail]: Engine to use for the transformation (default: spark)--omit-checks: Disables checks running--sail-server-url TEXT: Sail server url (required when using spark-sail engine)--dry-run: Dry run the transformation without writing results--local-dev-branch-name TEXT: Branch name for local development (default: "duck-fndry-dev")
Example with options:
python -m transforms.run my_transform.py dev,master --engine duckdb --dry-run
Development Setup
Prerequisites
- Python 3.7+
- pip
- Access to Palantir Foundry environment
Local Development
- Clone the repository
- Install development dependencies:
pip install -e ".[dev]"
Foundry Dev Tools Configuration
See here for detailed configuration instructions.
VSCode Setup
Add this to your .vscode/launch.json for debugging support:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: Current File",
"type": "debugpy",
"request": "launch",
"module": "transforms.run",
"args": ["${file}", "dev,master"],
"console": "integratedTerminal"
}
]
}
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file foundry_duck_transforms-0.1.12.tar.gz.
File metadata
- Download URL: foundry_duck_transforms-0.1.12.tar.gz
- Upload date:
- Size: 91.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
573464a68f1b7dc2c0fc89a7a9338109daaa5dfd691312342040984f4225a806
|
|
| MD5 |
904a49d4b3a9b188d4d1f7cf0aa969b3
|
|
| BLAKE2b-256 |
b9dd80010ab54050aa994fc9f53e30cef0fe3183440854304c476d113e35c483
|
File details
Details for the file foundry_duck_transforms-0.1.12-py3-none-any.whl.
File metadata
- Download URL: foundry_duck_transforms-0.1.12-py3-none-any.whl
- Upload date:
- Size: 41.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d3a01ae6eff5971c263268ef39da083760fc0c54abfa0690b54882e2019051a
|
|
| MD5 |
45933528828d82202f7de9dab2c802a1
|
|
| BLAKE2b-256 |
cdcd5501cb9714723c7e7af1d224591ded567571c00062ab5393aede258cbaf0
|