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.41.tar.gz
(113.3 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.41.tar.gz.
File metadata
- Download URL: ldc_lender_datalayer-1.0.41.tar.gz
- Upload date:
- Size: 113.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd31da219a063eae96f1eba7c3cf0cb543113f0e70f272167c6b3e7632b0b274
|
|
| MD5 |
691e0bc9d7574bbe898e2f1205453fe2
|
|
| BLAKE2b-256 |
4d1a5d40e98621e3ca742b139c8ef40927d19769e5d3fb9fb51a544a1ca3efd7
|
File details
Details for the file ldc_lender_datalayer-1.0.41-py3-none-any.whl.
File metadata
- Download URL: ldc_lender_datalayer-1.0.41-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 |
63858644a2dc96adc8e3e3af76057dc9b142d8583b3c74427a452e6a6b70a0b0
|
|
| MD5 |
a26ad03d95063fb64b197d349b879bcb
|
|
| BLAKE2b-256 |
861a5b3b090f92363e86a89b594b0983f20e2ceb19a1fa715ea8d11f9217fc05
|