Skip to main content

Useful utilities for data IO operations, including Snowflake, S3, and SageMaker integrations.

Project description

bpx-dataio

Useful utilities for data IO operations, including Snowflake, S3, and SageMaker integrations.

Installation

pip install bpx-dataio

Classes

SnowflakeIO

Handles authentication and interaction with a Snowflake data warehouse using AWS Secrets Manager credentials.

from dataio import SnowflakeIO

# Initialize with default settings
sf = SnowflakeIO()

# Execute a query
df = sf.query("SELECT * FROM my_table LIMIT 10")

# Execute a command
sf.execute_command("CREATE TABLE IF NOT EXISTS my_table (id INT)")

PARAM_JSON_IO

Read and write parameters to JSON files.

from dataio import PARAM_JSON_IO

# Initialize with JSON file path
json_io = PARAM_JSON_IO("config.json")

# Read parameters
params = json_io.read_param_from_json()

# Write/update parameters
json_io.write_param_to_json({"key": "value"})

SAGEMAKER_INFO

Get SageMaker session and AWS information. Only works in SageMaker environments.

from dataio import SAGEMAKER_INFO

sm_info = SAGEMAKER_INFO(region='us-west-2', verbose=True)
session = sm_info.get_sagemaker_session()
role_arn = sm_info.get_execution_role()

DATAIO_S3

S3 operations for uploading and downloading data.

from dataio import DATAIO_S3

s3_io = DATAIO_S3()

# List objects in a bucket
objs = s3_io.list_bucket_objs("my-bucket", prefix="data/")

# Upload a file
s3_io.upload_file_to_bucket("local_file.csv", "my-bucket", "remote_file.csv")

# Upload a DataFrame
import pandas as pd
df = pd.DataFrame({"a": [1, 2, 3]})
s3_io.upload_dataframe_to_bucket(df, "my-bucket", "data.csv")

# Read a DataFrame from S3
df = s3_io.read_df_from_bucket("my-bucket", "data.csv")

SCALER

Custom scaler that applies scaling to each column independently, compatible with scikit-learn pipelines.

from dataio import SCALER
from sklearn.preprocessing import RobustScaler
import pandas as pd

scaler = SCALER(scaler=RobustScaler)
df = pd.DataFrame({"a": [1, 2, 3, 4, 5], "b": [10, 20, 30, 40, 50]})

# Fit and transform
df_scaled = scaler.fit_transform(df)

# Transform only
df_scaled = scaler.transform(df)

# Inverse transform
df_original = scaler.inverse_transform(df_scaled)

Requirements

  • Python >= 3.7
  • boto3 >= 1.26.0
  • snowflake-connector-python[pandas] >= 3.0.0
  • pandas >= 1.5.0
  • numpy >= 1.23.0
  • sagemaker >= 2.0.0
  • scikit-learn >= 1.0.0

License

MIT License

Author

Julian Liu

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bpx_dataio-0.1.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bpx_dataio-0.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file bpx_dataio-0.1.0.tar.gz.

File metadata

  • Download URL: bpx_dataio-0.1.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.7

File hashes

Hashes for bpx_dataio-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d6c348a08409b3215f9c205af3bef8dd9864bae4161dc4fdd9fe753a412c6338
MD5 eb7ffc57c5b6d2d75caaad3987bf4ff3
BLAKE2b-256 6a4d07d69d3ba0c36a8398c1c8fa545c4f5cb97a035045e0586c21f49d97402b

See more details on using hashes here.

File details

Details for the file bpx_dataio-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: bpx_dataio-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.7

File hashes

Hashes for bpx_dataio-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93bfb0cebc6001e8a79b5f363659e484184b8f2081bc04aae05552a44a3dc95d
MD5 2e1aa3eba65a5c43fbc66336145b4396
BLAKE2b-256 470f7da09a719c4df52b59b55ebdd159afbdfcb68160074e67a5edb9f059935d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page