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.28.tar.gz
(111.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.28.tar.gz.
File metadata
- Download URL: ldc_lender_datalayer-1.0.28.tar.gz
- Upload date:
- Size: 111.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 |
551ff3c8edf44af2d8ae06de3de50421f611e0a47a0e99549f515c00da14232d
|
|
| MD5 |
818943b29bb656420348d41d88524a7f
|
|
| BLAKE2b-256 |
9ccdeb2d91dabb2fa1eca8ea9e34d49946377c6cef1aadbc4c6bbba24aa685e2
|
File details
Details for the file ldc_lender_datalayer-1.0.28-py3-none-any.whl.
File metadata
- Download URL: ldc_lender_datalayer-1.0.28-py3-none-any.whl
- Upload date:
- Size: 129.9 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 |
237805957f950178195f012b2b37dc758eada39bf4f7852824cb8e7f5002d133
|
|
| MD5 |
1c0d69aa04469e51529a6b86606bc448
|
|
| BLAKE2b-256 |
f3117474a65d75eed0436be3adf3c087d8dc65266cea38a8ceec822545ce3210
|