From c00bb71d2a2e5277cfc79998157a0f056ece7230 Mon Sep 17 00:00:00 2001 From: Joshua Salako Date: Mon, 9 Jun 2025 15:34:18 +0100 Subject: [PATCH] Enhance XLS upload functionality and update requirements. Added Flask, Flask-SQLAlchemy, and Alembic to requirements. Modified database schema in upload_xls.py for improved data handling and added SQLAlchemy configuration in config.py. --- demo/New_Sample_Transaction.xls | Bin 0 -> 325632 bytes demo/upload_xls.py | 68 ++++++------- migrations/README.md | 56 +++++++++++ migrations/alembic.ini | 44 +++++++++ migrations/env.py | 89 ++++++++++++++++++ migrations/script.py.mako | 24 +++++ ...create_analytics_raw_transactions_table.py | 46 +++++++++ requirements.txt | 6 +- run.py | 4 + salary_analytics/app/__init__.py | 17 ++++ salary_analytics/app/commands.py | 70 ++++++++++++++ salary_analytics/app/extensions.py | 5 + salary_analytics/app/models.py | 24 +++++ salary_analytics/config.py | 7 ++ 14 files changed, 427 insertions(+), 33 deletions(-) create mode 100644 demo/New_Sample_Transaction.xls create mode 100644 migrations/README.md create mode 100644 migrations/alembic.ini create mode 100644 migrations/env.py create mode 100644 migrations/script.py.mako create mode 100644 migrations/versions/c2b2cdbc8022_create_analytics_raw_transactions_table.py create mode 100644 run.py create mode 100644 salary_analytics/app/__init__.py create mode 100644 salary_analytics/app/commands.py create mode 100644 salary_analytics/app/extensions.py create mode 100644 salary_analytics/app/models.py diff --git a/demo/New_Sample_Transaction.xls b/demo/New_Sample_Transaction.xls new file mode 100644 index 0000000000000000000000000000000000000000..45e36ef952c4fa10168813b75f1ae366341f222d GIT binary patch literal 325632 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 +``` + +**Example:** + +```bash +flask --app run.py upload-xls data/transactions.xls +``` \ No newline at end of file diff --git a/migrations/alembic.ini b/migrations/alembic.ini new file mode 100644 index 0000000..50e832b --- /dev/null +++ b/migrations/alembic.ini @@ -0,0 +1,44 @@ +[alembic] +script_location = migrations +sqlalchemy.url = +revision_environment = false +version_locations = %(script_location)s/versions +output_encoding = utf-8 + +[post_write_hooks] +hooks = +hook_default_ops = + +[loggers] +keys = root,sqlalchemy,alembic + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARNING +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARNING +handlers = console +qualname = sqlalchemy + +[logger_alembic] +level = DEBUG +handlers = console +qualname = alembic + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S \ No newline at end of file diff --git a/migrations/env.py b/migrations/env.py new file mode 100644 index 0000000..79a3e8d --- /dev/null +++ b/migrations/env.py @@ -0,0 +1,89 @@ +from logging.config import fileConfig + +from sqlalchemy import engine_from_config +from sqlalchemy import pool + +from alembic import context + +# this is the Alembic Config object, which provides +# access to values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +if config.config_file_name is not None: + fileConfig(config.config_file_name) + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import Base +# target_metadata = Base.metadata +from flask import current_app +from salary_analytics.app.extensions import db + +config.set_main_option('sqlalchemy.url', + current_app.config.get('SQLALCHEMY_DATABASE_URI')) +target_metadata = db.metadata + +# Function to filter objects for autogenerate +def include_object(object, name, type_, reflected, compare_to): + """ + Control which objects are included in the autogenerate process. + Only include objects that are part of the Flask app's declared models. + """ + if type_ == "table" and reflected and name not in target_metadata.tables: + return False # Exclude tables that are in DB but not in models + return True # Include everything else (e.g., our modeled tables, columns, etc.) + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a database to begin with. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + literal_binds=True, + dialect_opts={"paramstyle": "named"}, + include_object=include_object + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + connectable = engine_from_config( + config.get_section(config.config_ini_section, {}), + prefix="sqlalchemy.", + poolclass=pool.NullPool, + ) + + with connectable.connect() as connection: + context.configure( + connection=connection, target_metadata=target_metadata, + include_object=include_object + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() \ No newline at end of file diff --git a/migrations/script.py.mako b/migrations/script.py.mako new file mode 100644 index 0000000..2c01563 --- /dev/null +++ b/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/migrations/versions/c2b2cdbc8022_create_analytics_raw_transactions_table.py b/migrations/versions/c2b2cdbc8022_create_analytics_raw_transactions_table.py new file mode 100644 index 0000000..d4ff734 --- /dev/null +++ b/migrations/versions/c2b2cdbc8022_create_analytics_raw_transactions_table.py @@ -0,0 +1,46 @@ +"""Create analytics_raw_transactions table + +Revision ID: c2b2cdbc8022 +Revises: +Create Date: 2025-06-09 15:19:36.017861 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'c2b2cdbc8022' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('analytics_raw_transactions', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('cust_id', sa.String(length=10), nullable=True), + sa.Column('accountid', sa.String(length=10), nullable=True), + sa.Column('tran_id', sa.String(length=12), nullable=True), + sa.Column('entry_date', sa.TIMESTAMP(), nullable=True), + sa.Column('value_date', sa.TIMESTAMP(), nullable=True), + sa.Column('pstd_date', sa.TIMESTAMP(), nullable=True), + sa.Column('tran_date', sa.TIMESTAMP(), nullable=True), + sa.Column('tran_sub_ty', sa.String(length=4), nullable=True), + sa.Column('part_tran_ty', sa.String(length=4), nullable=True), + sa.Column('channel', sa.String(length=32), nullable=True), + sa.Column('tran_amt', sa.Numeric(precision=20, scale=2), nullable=True), + sa.Column('balance', sa.Numeric(precision=20, scale=2), nullable=True), + sa.Column('isreverse', sa.String(length=4), nullable=True), + sa.Column('reverse', sa.String(length=4), nullable=True), + sa.Column('tran_particular', sa.String(length=100), nullable=True), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('analytics_raw_transactions') + # ### end Alembic commands ### diff --git a/requirements.txt b/requirements.txt index b2d72d4..68fa9fc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,4 +13,8 @@ pydantic>=1.8.0 python-multipart>=0.0.5 python-dotenv>=0.19.0 joblib>=1.1.0 -openpyxl>=3.0.10 \ No newline at end of file +openpyxl>=3.0.10 +Flask>=2.0.0 +Flask-SQLAlchemy>=3.0.0 +Flask-Migrate>=4.0.0 +alembic>=1.8.0 \ No newline at end of file diff --git a/run.py b/run.py new file mode 100644 index 0000000..77e5bde --- /dev/null +++ b/run.py @@ -0,0 +1,4 @@ +import os +from salary_analytics.app import create_app + +app = create_app() \ No newline at end of file diff --git a/salary_analytics/app/__init__.py b/salary_analytics/app/__init__.py new file mode 100644 index 0000000..b286361 --- /dev/null +++ b/salary_analytics/app/__init__.py @@ -0,0 +1,17 @@ +from flask import Flask +import os +from .extensions import db, migrate + +def create_app(): + app = Flask(__name__) + app.config.from_object('salary_analytics.config') + + # Initialize extensions + db.init_app(app) + migrate.init_app(app, db) + + # Register blueprints or CLI commands here if needed + from . import commands + app.cli.add_command(commands.upload_xls_cli) + + return app \ No newline at end of file diff --git a/salary_analytics/app/commands.py b/salary_analytics/app/commands.py new file mode 100644 index 0000000..b90b73e --- /dev/null +++ b/salary_analytics/app/commands.py @@ -0,0 +1,70 @@ +import click +import pandas as pd +from datetime import datetime +from flask.cli import with_appcontext +from salary_analytics.app.extensions import db +from salary_analytics.app.models import RawTransaction + +@click.group() +def commands(): + """Management commands for the salary analytics application.""" + pass + +@commands.command('upload-xls') +@click.argument('xls_path') +@with_appcontext +def upload_xls_cli(xls_path): + """Uploads data from an XLS file to the analytics_raw_transactions table. + + Args: + xls_path (str): The path to the XLS file. + """ + print(f"Attempting to upload data from {xls_path}...") + try: + df = pd.read_excel(xls_path, dtype=str) + + # Convert date columns to datetime + date_cols = ["ENTRY_DATE", "VALUE_DATE", "PSTD_DATE", "TRAN_DATE"] + for col in date_cols: + if col in df.columns: + df[col] = pd.to_datetime(df[col], errors='coerce') + df[col] = df[col].fillna(pd.Timestamp.now()) + + # Convert numeric columns + for col in ["TRAN_AMT", "BALANCE"]: + if col in df.columns: + df[col] = pd.to_numeric(df[col].str.replace(",", ""), errors='coerce') + + # Truncate TRAN_PARTICULAR to 100 chars + if "TRAN_PARTICULAR" in df.columns: + df["TRAN_PARTICULAR"] = df["TRAN_PARTICULAR"].astype(str).str.slice(0, 100) + + # Prepare data for insertion into the database + records = [] + for index, row in df.iterrows(): + record = RawTransaction( + cust_id=row.get('CUST_ID'), + accountid=row.get('ACCOUNTID'), + tran_id=row.get('TRAN_ID'), + entry_date=row.get('ENTRY_DATE'), + value_date=row.get('VALUE_DATE'), + pstd_date=row.get('PSTD_DATE'), + tran_date=row.get('TRAN_DATE'), + tran_sub_ty=row.get('TRAN_SUB_TY'), + part_tran_ty=row.get('PART_TRAN_TY'), + channel=row.get('CHANNEL'), + tran_amt=row.get('TRAN_AMT'), + balance=row.get('BALANCE'), + isreverse=row.get('ISREVERSE'), + reverse=row.get('REVERSE'), + tran_particular=(row.get('TRAN_PARTICULAR') or '')[:100] + ) + records.append(record) + + db.session.add_all(records) + db.session.commit() + print(f"Successfully uploaded {len(records)} records to analytics_raw_transactions") + + except Exception as e: + db.session.rollback() + print(f"Error uploading data: {str(e)}") \ No newline at end of file diff --git a/salary_analytics/app/extensions.py b/salary_analytics/app/extensions.py new file mode 100644 index 0000000..11cfaa6 --- /dev/null +++ b/salary_analytics/app/extensions.py @@ -0,0 +1,5 @@ +from flask_sqlalchemy import SQLAlchemy +from flask_migrate import Migrate + +db = SQLAlchemy() +migrate = Migrate() \ No newline at end of file diff --git a/salary_analytics/app/models.py b/salary_analytics/app/models.py new file mode 100644 index 0000000..72615f9 --- /dev/null +++ b/salary_analytics/app/models.py @@ -0,0 +1,24 @@ +from .extensions import db + +class RawTransaction(db.Model): + __tablename__ = 'analytics_raw_transactions' + + id = db.Column(db.Integer, primary_key=True) + cust_id = db.Column(db.String(10)) + accountid = db.Column(db.String(10)) + tran_id = db.Column(db.String(12)) + entry_date = db.Column(db.TIMESTAMP, nullable=True) + value_date = db.Column(db.TIMESTAMP, nullable=True) + pstd_date = db.Column(db.TIMESTAMP, nullable=True) + tran_date = db.Column(db.TIMESTAMP, nullable=True) + tran_sub_ty = db.Column(db.String(4)) + part_tran_ty = db.Column(db.String(4)) + channel = db.Column(db.String(32)) + tran_amt = db.Column(db.Numeric(20, 2)) + balance = db.Column(db.Numeric(20, 2)) + isreverse = db.Column(db.String(4)) + reverse = db.Column(db.String(4)) + tran_particular = db.Column(db.String(100)) + + def __repr__(self): + return f'' \ No newline at end of file diff --git a/salary_analytics/config.py b/salary_analytics/config.py index 8277286..1022fbd 100644 --- a/salary_analytics/config.py +++ b/salary_analytics/config.py @@ -30,6 +30,13 @@ DB_CONFIG = { "host": os.getenv("DB_HOST") } +# SQLAlchemy Configuration +SQLALCHEMY_DATABASE_URI = ( + f"postgresql://{DB_CONFIG['user']}:{DB_CONFIG['password']}@" + f"{DB_CONFIG['host']}:{DB_CONFIG['port']}/{DB_CONFIG['name']}" +) +SQLALCHEMY_TRACK_MODIFICATIONS = False + # Table Configuration TABLE_NAME = "customer_account_transaction_hx" BATCH_RESULTS_TABLE = "salary_analytics_batch_results"