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 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.11.tar.gz
(106.6 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.11.tar.gz.
File metadata
- Download URL: ldc_lender_datalayer-1.0.11.tar.gz
- Upload date:
- Size: 106.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9abf9746996da1322692ff6c8070e6a5be9dfa42fc10bdb1b2551469b6f75776
|
|
| MD5 |
da3ad961d6d444868aca51b7e8fa36f6
|
|
| BLAKE2b-256 |
dd67714295fd96b48c877a535f3518ae27e1cb7071ebb3c24eaeda58a4bab34c
|
File details
Details for the file ldc_lender_datalayer-1.0.11-py3-none-any.whl.
File metadata
- Download URL: ldc_lender_datalayer-1.0.11-py3-none-any.whl
- Upload date:
- Size: 125.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68d3e278f228b141bb8bbaf8dc0fbca25d9e1efbdc3b25bd4a46f2d98598bcbb
|
|
| MD5 |
204e23ef9eac4edbda91d481f19ebb8e
|
|
| BLAKE2b-256 |
c308c703d07aeae426ba9b8f5d78493581c9eb1ab3b210a798a1415e87e83334
|