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.4.tar.gz
(102.1 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.4.tar.gz.
File metadata
- Download URL: ldc_lender_datalayer-1.0.4.tar.gz
- Upload date:
- Size: 102.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce1e0c4487e111a2bacd194e5fc3939ca980191f3493c04ca0bbce0e7eb009ef
|
|
| MD5 |
1082ffa0b2c30bb4c7a6ef6b39f6ad0c
|
|
| BLAKE2b-256 |
25c55559b0649b7e98314c94aea76ae5557623cf2cb218a69af4737d8028f7f9
|
File details
Details for the file ldc_lender_datalayer-1.0.4-py3-none-any.whl.
File metadata
- Download URL: ldc_lender_datalayer-1.0.4-py3-none-any.whl
- Upload date:
- Size: 121.2 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 |
ab8eea6708fff94a157804614f9605d761da15572698d71d401452a0aa5d11d6
|
|
| MD5 |
386d836034b9da517e17c2a283942532
|
|
| BLAKE2b-256 |
07226e23a4a896091ccabd54bccb7d203a9d22abf4978b481c542549e5cfa35d
|