Skip to main content

Squishy

Logo

Welcome to the project! Squishy is a Python package for data transformation using the Monad pattern and cleansing operations.

Installation

From PyPI:

pip install monadsquishy

From github

pip install git+https://github.com/wasit7/monadsquishy.git

Simple Transformation

Please check tutorial notebook here

load input into a dataframe

from monadsquishy import Squishy, sf
import pandas as pd

df = pd.read_parquet('./simple.parquet')

Setup transformation cofig

sq_config = {
    'transformations':[
        {
            'input_table': df,
            'transformed_path':'./staging/test1',
            'exploded_path':'./staging/test1',
            'out_columns': {
                 'country': {
                     'input':'country',
                     'funcs':[sf.country1,sf.country2,sf.country3]
                 },
                 'name': {
                     'input':'name',
                     'funcs':[lambda x:x, ],
                 },
                 'order_date': {
                     'input':'order_date',
                     'funcs':[sf.date1, sf.date2]
                 },
                 'quantity': {
                     'input':'quantity',
                     'funcs':[sf.quantity1, ]
                 },
                 'price_number': {
                     'input':'price',
                     'funcs':[sf.price1, ]
                 },
                 'price_currency': {
                     'input':'price',
                     'funcs':[sf.currency1, ]
                 } 
             }
        }
    ]
}

Run transformations

sq=Squishy(sq_config)
sq.run()

Show input dataframe

sq.input()
country name order_date quantity price
TH มานี 9/25/2024 5 ชิ้น $25.99
United States John Smith 20240926 7 units 30.00 USD
ไทย ปิติ 27-09-2024 pcs: 4 1,025.99 THB
อังกฤษ Smith, J. Sep 28, 2024 10 1,000,025.99 บาท
invalid name J.S. 29 ก.ย. 2567 5pc ๒๗.๙๙ บาท

Show output dataframe

sq.output()
country name order_date quantity price_number price_currency
TH มานี 2024-09-25 5 25.99 USD
USA John Smith 2024-09-26 7 30.00 USD
TH ปิติ 2024-09-27 4 1025.99 THB
UK Smith, J. 2024-09-28 10 1000025.99 THB
J.S. 2024-09-29 5 27.99 THB

Show log dataframe

sq.log()
input_row input_column input_value output_value is_passed message
0 country TH TH True Passed: country1()
1 country United States USA False Failed: country1(): Invalid code
2 country United States USA True Passed: country2()
3 country ไทย TH False Failed: country1(): Invalid code
4 country ไทย TH False Failed: country2(): 'ไทย'
5 country ไทย TH True Passed: country3()
6 country อังกฤษ UK False Failed: country1(): Invalid code
7 country อังกฤษ UK False Failed: country2(): 'อังกฤษ'
8 country อังกฤษ UK True Passed: country3()
9 country invalid name False Failed: country1(): Invalid code
10 country invalid name False Failed: country2(): 'invalid name'
11 country invalid name False Failed: country3(): 'invalid name'
12 name มานี มานี True Passed:
13 name John Smith John Smith True Passed:
14 name ปิติ ปิติ True Passed:
15 name Smith, J. Smith, J. True Passed:
16 name J.S. J.S. True Passed:
17 order_date 9/25/2024 2024-09-25 True Passed: date1()
18 order_date 20240926 2024-09-26 True Passed: date1()
19 order_date 27-09-2024 2024-09-27 True Passed: date1()
20 order_date Sep 28, 2024 2024-09-28 True Passed: date1()
21 order_date 29 ก.ย. 2567 2024-09-29 False Failed: date1(): Unknown datetime string...
22 order_date 29 ก.ย. 2567 2024-09-29 True Passed: date2()
23 quantity 5 ชิ้น 5 True Passed: quantity1()
24 quantity 7 units 7 True Passed: quantity1()
25 quantity pcs: 4 4 True Passed: quantity1()
26 quantity 10 10 True Passed: quantity1()
27 quantity 5pc 5 True Passed: quantity1()
28 price $25.99 25.99 True Passed: price1()
29 price 30.00 USD 30.0 True Passed: price1()
30 price 1,025.99 THB 1025.99 True Passed: price1()
31 price 1,000,025.99 บาท 1000025.99 True Passed: price1()
32 price ๒๗.๙๙ บาท 27.99 True Passed: price1()
33 price $25.99 USD True Passed: currency1()
34 price 30.00 USD USD True Passed: currency1()
35 price 1,025.99 THB THB True Passed:

Metadata

Release files for monadsquishy 0.1.17

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

Source distribution (sdist)

Source distribution for monadsquishy 0.1.17
File Size Uploaded Provenance Actions
monadsquishy-0.1.17.tar.gz 7.4 kB Without provenance Details for monadsquishy-0.1.17.tar.gz

Release files / monadsquishy-0.1.17.tar.gz

Download URL monadsquishy-0.1.17.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7677be15e4e99ccb424f42b5a5be9ad6d671260e7e44b2e20c41b9631e57eee0
BLAKE2b-256 checksum
How to use checksums
98aea4a704b45e9f437e16e3476aac8ff87888623f17c82a5efceed832c0cc50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.14

Security for monadsquishy 0.1.17

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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