Skip to content

Savers

The flowerpower-io library provides a comprehensive set of saver classes, each specialized for writing data to specific file formats or database systems. These savers extend BaseFileWriter or BaseDatabaseWriter and offer tailored functionalities for efficient data persistence.

File-based Savers

CSVFileWriter

Writes data to CSV files. - Path: src/flowerpower_io/saver/csv.py - Example:

from flowerpower_io.saver import CSVFileWriter
import pandas as pd

df = pd.DataFrame({'col1': [1, 2], 'col2': ['A', 'B']})
csv_writer = CSVFileWriter(path="output.csv")
csv_writer.write(data=df)

ParquetFileWriter

Writes data to Parquet files. - Path: src/flowerpower_io/saver/parquet.py - Example:

from flowerpower_io.saver import ParquetFileWriter
import polars as pl

df = pl.DataFrame({'col1': [1, 2], 'col2': ['A', 'B']})
parquet_writer = ParquetFileWriter(path="output.parquet")
parquet_writer.write(data=df)

JsonFileWriter

Writes data to JSON files. - Path: src/flowerpower_io/saver/json.py - Example:

from flowerpower_io.saver import JsonFileWriter
import pyarrow as pa

table = pa.table({'col1': [1, 2], 'col2': ['A', 'B']})
json_writer = JsonFileWriter(path="output.json")
json_writer.write(data=table)

DeltaTableWriter

Writes data to Delta Lake tables. - Path: src/flowerpower_io/saver/deltatable.py - Example:

from flowerpower_io.saver import DeltaTableWriter
import pandas as pd

df = pd.DataFrame({'col1': [1, 2], 'col2': ['A', 'B']})
delta_writer = DeltaTableWriter(path="path/to/delta_table")
delta_writer.write(data=df)

MQTTWriter (Conceptual)

Writes data as MQTT messages. - Path: src/flowerpower_io/saver/mqtt.py - Example:

# This example is conceptual, as MQTT integration requires a running broker and client setup.
# from flowerpower_io.saver import MQTTWriter
# import pandas as pd

# df = pd.DataFrame({'sensor_id': ['A1'], 'value': [10.5]})
# mqtt_writer = MQTTWriter(topic="sensor/data", host="localhost")
# mqtt_writer.write(data=df)

Database Savers

SQLiteWriter

Writes data to SQLite databases. - Path: src/flowerpower_io/saver/sqlite.py - Example:

from flowerpower_io.saver import SQLiteWriter
import pandas as pd

df = pd.DataFrame({'id': [1, 2], 'name': ['Alice', 'Bob']})
sqlite_writer = SQLiteWriter(path="my_database.db", table_name="users")
sqlite_writer.write(data=df)

DuckDBWriter

Writes data to DuckDB databases. - Path: src/flowerpower_io/saver/duckdb.py - Example:

from flowerpower_io.saver import DuckDBWriter
import polars as pl

df = pl.DataFrame({'id': [1, 2], 'product': ['Apple', 'Banana']})
duckdb_writer = DuckDBWriter(path="my_duckdb.db", table_name="products")
duckdb_writer.write(data=df)

PostgreSQLWriter

Writes data to PostgreSQL databases. - Path: src/flowerpower_io/saver/postgres.py - Example:

from flowerpower_io.saver import PostgreSQLWriter
import pandas as pd

df = pd.DataFrame({'id': [1, 2], 'event': ['login', 'logout']})
pg_writer = PostgreSQLWriter(
    database="mydb",
    user="myuser",
    password="mypassword",
    host="localhost",
    table_name="events"
)
pg_writer.write(data=df)

MySQLWriter

Writes data to MySQL databases. - Path: src/flowerpower_io/saver/mysql.py - Example:

from flowerpower_io.saver import MySQLWriter
import pandas as pd

df = pd.DataFrame({'id': [1, 2], 'customer': ['John', 'Jane']})
mysql_writer = MySQLWriter(
    database="mydb",
    user="myuser",
    password="mypassword",
    host="localhost",
    table_name="customers"
)
mysql_writer.write(data=df)

MSSQLWriter

Writes data to Microsoft SQL Server databases. - Path: src/flowerpower_io/saver/mssql.py - Example:

from flowerpower_io.saver import MSSQLWriter
import pandas as pd

df = pd.DataFrame({'id': [1, 2], 'order_id': [101, 102]})
mssql_writer = MSSQLWriter(
    database="mydb",
    user="myuser",
    password="mypassword",
    host="localhost",
    table_name="orders"
)
mssql_writer.write(data=df)

OracleDBWriter

Writes data to Oracle databases. - Path: src/flowerpower_io/saver/oracle.py - Example: ```python from flowerpower_io.saver import OracleDBWriter import pandas as pd

df = pd.DataFrame({'id': [1, 2], 'item': ['Pen', 'Book']}) oracle_writer = OracleDBWriter( database="mydb", user="myuser", password="mypassword", host="localhost", table_name="items" ) oracle_writer.write(data=df)