Skip to main content

A comprehensive data access layer for ldc lender apps

Project description

Lender Data Layer

A comprehensive data access layer for Django applications providing database operations, Redis caching, and various data mappers.

Features

  • Data Mappers: IMS and iOS specific data mappers with internal functions
  • Redis Integration: Caching layer with Redis support
  • Exception Handling: Custom exception classes for error handling
  • Utilities: Common utilities for data processing

Installation

pip install ldc-lender-datalayer

Quick Start

Using Data Mappers (Recommended)

# Import specific mappers
from lender_datalayer.ims_mappers import account_mapper, investor_mapper
from lender_datalayer.ios_mappers import user_mapper, bank_mapper

# Use mapper functions directly
user_data = user_mapper.get_user_by_id(user_id=123)
account_info = account_mapper.get_account_details(account_id=456)

Using Redis Operations

from lender_datalayer import RedisDataLayer

# Initialize Redis layer
redis = RedisDataLayer()

# Store data in cache
redis.store_data_in_redis_cache("user:123", {"name": "John", "email": "john@example.com"})

# Retrieve data from cache
user_data = redis.get_data_from_redis_cache("user:123")

# Delete data from cache
redis.delete_data_from_redis_cache("user:123")

Requirements

  • Python 3.8+
  • Django 5.2+
  • Redis 5.0+
  • PostgreSQL (with psycopg)

Usage Guidelines

✅ What End Users Should Use

1. Mapper Functions (Primary Usage)

# IMS Mappers
from lender_datalayer.ims_mappers import account_mapper, investor_mapper, cp_mapper

# Use internal functions of mappers
user_data = investor_mapper.get_investor_details(investor_id=123)
account_list = account_mapper.get_user_accounts(user_id=456)
cp_data = cp_mapper.get_cp_dashboard_data(cp_id=789)

2. iOS Mappers

from lender_datalayer.ios_mappers import user_mapper, bank_mapper, document_mapper

# Use internal functions of mappers
user_profile = user_mapper.get_user_profile(user_id=123)
bank_accounts = bank_mapper.get_user_bank_accounts(user_id=456)
documents = document_mapper.get_user_documents(user_id=789)

3. Redis Operations

from lender_datalayer import RedisDataLayer

redis = RedisDataLayer()

# Cache operations
redis.store_data_in_redis_cache("key", data, ttl=3600)
cached_data = redis.get_data_from_redis_cache("key")
redis.delete_data_from_redis_cache("key")

❌ What End Users Should NOT Use

Base Classes (Internal Use Only)

# DON'T use these directly - they are for internal mapper implementation
from lender_datalayer import BaseDataLayer  # ❌ Not for end users
from lender_datalayer import DataLayerUtils  # ❌ Not for end users

Custom Exception Classes (Internal Use Only)

# DON'T import these directly - they are used internally by mappers
from lender_datalayer import ConnectionError  # ❌ Not for end users
from lender_datalayer import QueryError  # ❌ Not for end users

Available Mappers

IMS Mappers

  • account_mapper - Account management functions
  • investor_mapper - Investor data functions
  • cp_mapper - Credit Partner functions
  • bank_mapper - Banking functions
  • document_mapper - Document handling functions
  • partner_mapper - Partner management functions
  • thirdparty_mapper - Third-party integration functions

iOS Mappers

  • user_mapper - User management functions
  • bank_mapper - Banking functions
  • document_mapper - Document handling functions
  • dashboard_mapper - Dashboard data functions
  • bureau_mapper - Credit bureau functions
  • kmi_mapper - KYC functions
  • thirdparty_mapper - Third-party integration functions

Development

# Install in development mode
pip install -e .[dev]

# Format code
black lender_datalayer/

# Type checking
mypy lender_datalayer/

License

This package is for personal use only.

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

ldc_lender_datalayer-1.1.2.tar.gz (108.6 kB view details)

Uploaded Source

Built Distribution

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

ldc_lender_datalayer-1.1.2-py3-none-any.whl (127.2 kB view details)

Uploaded Python 3

File details

Details for the file ldc_lender_datalayer-1.1.2.tar.gz.

File metadata

  • Download URL: ldc_lender_datalayer-1.1.2.tar.gz
  • Upload date:
  • Size: 108.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for ldc_lender_datalayer-1.1.2.tar.gz
Algorithm Hash digest
SHA256 f113781c419d076337221bfdb84e7aae71d1f65b1f831f30d66f4fbb107b82c6
MD5 d9f2d42f7558cb0d621109020bae89b9
BLAKE2b-256 15467908fa713dd02776748ae195dc8a43c8d1e7b0c8ec2afd7fd69841210379

See more details on using hashes here.

File details

Details for the file ldc_lender_datalayer-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for ldc_lender_datalayer-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c945f784ce1341cbe6b006211732d07f5d693963c6d4d6ab4ffa45078d15aea6
MD5 4aac7527185e92c4ef0bd1212a3a14d3
BLAKE2b-256 807ee66a548acf6b3e34405bc3478d7ae4b4c528931e8e9da72969915d5bad55

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