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 functionsinvestor_mapper- Investor data functionscp_mapper- Credit Partner functionsbank_mapper- Banking functionsdocument_mapper- Document handling functionspartner_mapper- Partner management functionsthirdparty_mapper- Third-party integration functions
iOS Mappers
user_mapper- User management functionsbank_mapper- Banking functionsdocument_mapper- Document handling functionsdashboard_mapper- Dashboard data functionsbureau_mapper- Credit bureau functionskmi_mapper- KYC functionsthirdparty_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
Release history Release notifications | RSS feed
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.0.42.tar.gz
(113.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ldc_lender_datalayer-1.0.42.tar.gz.
File metadata
- Download URL: ldc_lender_datalayer-1.0.42.tar.gz
- Upload date:
- Size: 113.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c9d3237f33a38df04075e22c461daca2ed27bc2909be280c51b3da39090a859
|
|
| MD5 |
d82f071e8a06985708f269de18aa59a2
|
|
| BLAKE2b-256 |
12dd13383dfe3303a60e0036342c533be4a0650289f827a562b63b6d99497ccf
|
File details
Details for the file ldc_lender_datalayer-1.0.42-py3-none-any.whl.
File metadata
- Download URL: ldc_lender_datalayer-1.0.42-py3-none-any.whl
- Upload date:
- Size: 132.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ce665f0c73ea1acad3d53f8b71b72a4f6415b0393eaffac674f272d2ba72691
|
|
| MD5 |
5c856c88fbbb32a7b74b73ba92b6086c
|
|
| BLAKE2b-256 |
70a970198bc5c842dc47511d5dbaf95bb3e1717bdd9778dd097c41827402d8bc
|