Easy, model based data wrangling.
Project description
wrangle_pypes
Easy, model based data wrangling.
Origin
This project came about thanks to having implemented this concept in a prior project (dfb_predict) and wanting to reuse it. In said previous project it came about, because we wanted to play around with data-oriented design and figured that if we break up the transformations required during data-wrangling/munging into a simple "AST" where each node represents a single transformation. And to further the idea we to some inspiration from one of the Unix philosophy core tenants, i.e. a single transformation should do one simple thing only, and allow for composition to implement more complex behavior.
Example
from dataclasses import dataclass
import json
from wrangle_pypes import Pipeline
from wrangle_pypes.transformations import Get, Create, Cast
@dataclass
class Point:
x: int
y: int
@dataclass
class Square:
A: Point
B: Point
pipeline = Pipline({
Square: {
"A": Get("A") | Create(Point),
"A": Get("B") | Create(Point),
},
Point: {
"x": Get("x") | Cast(int),
"y": Get("y") | Cast(int),
}
})
data = """
[
{
"A": {"x": 0, "y", 0},
"B": {"x": 1, "y", 1},
}, {
"A": {"x": 10, "y", 10},
"B": {"x": 11, "y", 11},
}
]
"""
squares = list(pipeline.create_multiple(json.loads(data)))
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
Hashes for wrangle_pypes-0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba1a7643a7436d6dc71a2216e7bb9a1f49a07520adf16162a8a6c9ddeb2609c4 |
|
MD5 | 38d696fdbddb5b2022b3076730d4a977 |
|
BLAKE2b-256 | 3ebe4e4339d857653425f678fb2b6723cd53922ce90cb1b8ee597315270de35f |