ldc-lender-datalayer 1.0.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ldc_lender_datalayer-1.0.14/MANIFEST.in +43 -0
- ldc_lender_datalayer-1.0.14/PKG-INFO +171 -0
- ldc_lender_datalayer-1.0.14/README.md +145 -0
- ldc_lender_datalayer-1.0.14/ldc_lender_datalayer.egg-info/PKG-INFO +171 -0
- ldc_lender_datalayer-1.0.14/ldc_lender_datalayer.egg-info/SOURCES.txt +48 -0
- ldc_lender_datalayer-1.0.14/ldc_lender_datalayer.egg-info/dependency_links.txt +1 -0
- ldc_lender_datalayer-1.0.14/ldc_lender_datalayer.egg-info/requires.txt +6 -0
- ldc_lender_datalayer-1.0.14/ldc_lender_datalayer.egg-info/top_level.txt +1 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/__init__.py +31 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/base_datalayer.py +264 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/common/__init__.py +0 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/common/constants.py +669 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/common/utils/__init__.py +0 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/common/utils/datetime_utils.py +102 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/common/utils/decorators.py +46 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/common/utils/encryption_utils.py +127 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/common/utils/random_value_generator_utils.py +19 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/common/utils/shared_utils.py +162 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/custom_exception_handlers.py +45 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/__init__.py +1 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/account_mapper.py +458 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/authentication_mapper.py +555 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/bank_mapper.py +145 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/config_mapper.py +46 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/cp_dashboard_mapper.py +783 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/cp_mapper.py +1769 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/document_mapper.py +373 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/investor_mapper.py +4086 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/partner_mapper.py +149 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/thirdparty_mapper.py +270 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ims_mappers/txn_account_mapper.py +130 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/__init__.py +3 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/authentication_mapper.py +345 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/bank_mapper.py +342 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/bureau_mapper.py +54 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/config_mapper.py +97 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/cp_mapper.py +432 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/dashboard_mapper.py +1053 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/document_mapper.py +149 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/kmi_mapper.py +133 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/thirdparty_hyperverge_mapper.py +45 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/thirdparty_mapper.py +175 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/user_mapper.py +1909 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/ios_mappers/user_source_group_mapper.py +60 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/redis_datalayer.py +184 -0
- ldc_lender_datalayer-1.0.14/lender_datalayer/s2s_communication_mapper/s2s_communication.py +197 -0
- ldc_lender_datalayer-1.0.14/pyproject.toml +3 -0
- ldc_lender_datalayer-1.0.14/requirements.txt +8 -0
- ldc_lender_datalayer-1.0.14/setup.cfg +4 -0
- ldc_lender_datalayer-1.0.14/setup.py +34 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Essential files for package distribution
|
|
2
|
+
include README.md
|
|
3
|
+
include LICENSE
|
|
4
|
+
include requirements.txt
|
|
5
|
+
include pyproject.toml
|
|
6
|
+
|
|
7
|
+
# Include all Python files in the package
|
|
8
|
+
recursive-include lender_datalayer *.py
|
|
9
|
+
|
|
10
|
+
# Include package data files
|
|
11
|
+
recursive-include lender_datalayer *.txt
|
|
12
|
+
recursive-include lender_datalayer *.md
|
|
13
|
+
recursive-include lender_datalayer *.yml
|
|
14
|
+
recursive-include lender_datalayer *.yaml
|
|
15
|
+
recursive-include lender_datalayer *.json
|
|
16
|
+
|
|
17
|
+
# Exclude development and build artifacts
|
|
18
|
+
global-exclude *.pyc
|
|
19
|
+
global-exclude *.pyo
|
|
20
|
+
global-exclude __pycache__
|
|
21
|
+
global-exclude .DS_Store
|
|
22
|
+
global-exclude .git*
|
|
23
|
+
global-exclude .coverage
|
|
24
|
+
global-exclude .pytest_cache
|
|
25
|
+
global-exclude .mypy_cache
|
|
26
|
+
global-exclude .tox
|
|
27
|
+
global-exclude .venv
|
|
28
|
+
global-exclude venv
|
|
29
|
+
global-exclude env
|
|
30
|
+
global-exclude .env
|
|
31
|
+
global-exclude *.egg-info
|
|
32
|
+
global-exclude build
|
|
33
|
+
global-exclude dist
|
|
34
|
+
global-exclude .eggs
|
|
35
|
+
global-exclude *.log
|
|
36
|
+
global-exclude *.tmp
|
|
37
|
+
global-exclude *.bak
|
|
38
|
+
global-exclude *.swp
|
|
39
|
+
global-exclude *.swo
|
|
40
|
+
global-exclude *~
|
|
41
|
+
global-exclude .vscode
|
|
42
|
+
global-exclude .idea
|
|
43
|
+
global-exclude *.sublime-*
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ldc-lender-datalayer
|
|
3
|
+
Version: 1.0.14
|
|
4
|
+
Summary: A comprehensive data access layer for ldc lender apps
|
|
5
|
+
Author: Sandesh Kanagal
|
|
6
|
+
Author-email: sandesh.kanagal@lendenclub.com
|
|
7
|
+
Classifier: Intended Audience :: Developers
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Topic :: Utilities
|
|
10
|
+
Requires-Python: >=3.10.0
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: Django>=5.2.0
|
|
13
|
+
Requires-Dist: psycopg[binary,pool]>=3.2.9
|
|
14
|
+
Requires-Dist: redis>=5.0.3
|
|
15
|
+
Requires-Dist: pytz>=2023.3
|
|
16
|
+
Requires-Dist: python-dateutil>=2.8.2
|
|
17
|
+
Requires-Dist: pycryptodome>=3.19.0
|
|
18
|
+
Dynamic: author
|
|
19
|
+
Dynamic: author-email
|
|
20
|
+
Dynamic: classifier
|
|
21
|
+
Dynamic: description
|
|
22
|
+
Dynamic: description-content-type
|
|
23
|
+
Dynamic: requires-dist
|
|
24
|
+
Dynamic: requires-python
|
|
25
|
+
Dynamic: summary
|
|
26
|
+
|
|
27
|
+
# Lender Data Layer
|
|
28
|
+
|
|
29
|
+
A comprehensive data access layer for Django applications providing database operations, Redis caching, and various data mappers.
|
|
30
|
+
|
|
31
|
+
## Features
|
|
32
|
+
|
|
33
|
+
- **Data Mappers**: IMS and iOS specific data mappers with internal functions
|
|
34
|
+
- **Redis Integration**: Caching layer with Redis support
|
|
35
|
+
- **Exception Handling**: Custom exception classes for error handling
|
|
36
|
+
- **Utilities**: Common utilities for data processing
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pip install lender-datalayer
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Quick Start
|
|
45
|
+
|
|
46
|
+
### Using Data Mappers (Recommended)
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
# Import specific mappers
|
|
50
|
+
from lender_datalayer.ims_mappers import account_mapper, investor_mapper
|
|
51
|
+
from lender_datalayer.ios_mappers import user_mapper, bank_mapper
|
|
52
|
+
|
|
53
|
+
# Use mapper functions directly
|
|
54
|
+
user_data = user_mapper.get_user_by_id(user_id=123)
|
|
55
|
+
account_info = account_mapper.get_account_details(account_id=456)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Using Redis Operations
|
|
59
|
+
|
|
60
|
+
```python
|
|
61
|
+
from lender_datalayer import RedisDataLayer
|
|
62
|
+
|
|
63
|
+
# Initialize Redis layer
|
|
64
|
+
redis = RedisDataLayer()
|
|
65
|
+
|
|
66
|
+
# Store data in cache
|
|
67
|
+
redis.store_data_in_redis_cache("user:123", {"name": "John", "email": "john@example.com"})
|
|
68
|
+
|
|
69
|
+
# Retrieve data from cache
|
|
70
|
+
user_data = redis.get_data_from_redis_cache("user:123")
|
|
71
|
+
|
|
72
|
+
# Delete data from cache
|
|
73
|
+
redis.delete_data_from_redis_cache("user:123")
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Requirements
|
|
77
|
+
|
|
78
|
+
- Python 3.8+
|
|
79
|
+
- Django 5.2+
|
|
80
|
+
- Redis 5.0+
|
|
81
|
+
- PostgreSQL (with psycopg)
|
|
82
|
+
|
|
83
|
+
## Usage Guidelines
|
|
84
|
+
|
|
85
|
+
### ✅ What End Users Should Use
|
|
86
|
+
|
|
87
|
+
#### **1. Mapper Functions (Primary Usage)**
|
|
88
|
+
```python
|
|
89
|
+
# IMS Mappers
|
|
90
|
+
from lender_datalayer.ims_mappers import account_mapper, investor_mapper, cp_mapper
|
|
91
|
+
|
|
92
|
+
# Use internal functions of mappers
|
|
93
|
+
user_data = investor_mapper.get_investor_details(investor_id=123)
|
|
94
|
+
account_list = account_mapper.get_user_accounts(user_id=456)
|
|
95
|
+
cp_data = cp_mapper.get_cp_dashboard_data(cp_id=789)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
#### **2. iOS Mappers**
|
|
99
|
+
```python
|
|
100
|
+
from lender_datalayer.ios_mappers import user_mapper, bank_mapper, document_mapper
|
|
101
|
+
|
|
102
|
+
# Use internal functions of mappers
|
|
103
|
+
user_profile = user_mapper.get_user_profile(user_id=123)
|
|
104
|
+
bank_accounts = bank_mapper.get_user_bank_accounts(user_id=456)
|
|
105
|
+
documents = document_mapper.get_user_documents(user_id=789)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
#### **3. Redis Operations**
|
|
109
|
+
```python
|
|
110
|
+
from lender_datalayer import RedisDataLayer
|
|
111
|
+
|
|
112
|
+
redis = RedisDataLayer()
|
|
113
|
+
|
|
114
|
+
# Cache operations
|
|
115
|
+
redis.store_data_in_redis_cache("key", data, ttl=3600)
|
|
116
|
+
cached_data = redis.get_data_from_redis_cache("key")
|
|
117
|
+
redis.delete_data_from_redis_cache("key")
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### ❌ What End Users Should NOT Use
|
|
121
|
+
|
|
122
|
+
#### **Base Classes (Internal Use Only)**
|
|
123
|
+
```python
|
|
124
|
+
# DON'T use these directly - they are for internal mapper implementation
|
|
125
|
+
from lender_datalayer import BaseDataLayer # ❌ Not for end users
|
|
126
|
+
from lender_datalayer import DataLayerUtils # ❌ Not for end users
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
#### **Custom Exception Classes (Internal Use Only)**
|
|
130
|
+
```python
|
|
131
|
+
# DON'T import these directly - they are used internally by mappers
|
|
132
|
+
from lender_datalayer import ConnectionError # ❌ Not for end users
|
|
133
|
+
from lender_datalayer import QueryError # ❌ Not for end users
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Available Mappers
|
|
137
|
+
|
|
138
|
+
### IMS Mappers
|
|
139
|
+
- `account_mapper` - Account management functions
|
|
140
|
+
- `investor_mapper` - Investor data functions
|
|
141
|
+
- `cp_mapper` - Credit Partner functions
|
|
142
|
+
- `bank_mapper` - Banking functions
|
|
143
|
+
- `document_mapper` - Document handling functions
|
|
144
|
+
- `partner_mapper` - Partner management functions
|
|
145
|
+
- `thirdparty_mapper` - Third-party integration functions
|
|
146
|
+
|
|
147
|
+
### iOS Mappers
|
|
148
|
+
- `user_mapper` - User management functions
|
|
149
|
+
- `bank_mapper` - Banking functions
|
|
150
|
+
- `document_mapper` - Document handling functions
|
|
151
|
+
- `dashboard_mapper` - Dashboard data functions
|
|
152
|
+
- `bureau_mapper` - Credit bureau functions
|
|
153
|
+
- `kmi_mapper` - KYC functions
|
|
154
|
+
- `thirdparty_mapper` - Third-party integration functions
|
|
155
|
+
|
|
156
|
+
## Development
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# Install in development mode
|
|
160
|
+
pip install -e .[dev]
|
|
161
|
+
|
|
162
|
+
# Format code
|
|
163
|
+
black lender_datalayer/
|
|
164
|
+
|
|
165
|
+
# Type checking
|
|
166
|
+
mypy lender_datalayer/
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## License
|
|
170
|
+
|
|
171
|
+
This package is for personal use only.
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Lender Data Layer
|
|
2
|
+
|
|
3
|
+
A comprehensive data access layer for Django applications providing database operations, Redis caching, and various data mappers.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Data Mappers**: IMS and iOS specific data mappers with internal functions
|
|
8
|
+
- **Redis Integration**: Caching layer with Redis support
|
|
9
|
+
- **Exception Handling**: Custom exception classes for error handling
|
|
10
|
+
- **Utilities**: Common utilities for data processing
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install lender-datalayer
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
### Using Data Mappers (Recommended)
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
# Import specific mappers
|
|
24
|
+
from lender_datalayer.ims_mappers import account_mapper, investor_mapper
|
|
25
|
+
from lender_datalayer.ios_mappers import user_mapper, bank_mapper
|
|
26
|
+
|
|
27
|
+
# Use mapper functions directly
|
|
28
|
+
user_data = user_mapper.get_user_by_id(user_id=123)
|
|
29
|
+
account_info = account_mapper.get_account_details(account_id=456)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Using Redis Operations
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
from lender_datalayer import RedisDataLayer
|
|
36
|
+
|
|
37
|
+
# Initialize Redis layer
|
|
38
|
+
redis = RedisDataLayer()
|
|
39
|
+
|
|
40
|
+
# Store data in cache
|
|
41
|
+
redis.store_data_in_redis_cache("user:123", {"name": "John", "email": "john@example.com"})
|
|
42
|
+
|
|
43
|
+
# Retrieve data from cache
|
|
44
|
+
user_data = redis.get_data_from_redis_cache("user:123")
|
|
45
|
+
|
|
46
|
+
# Delete data from cache
|
|
47
|
+
redis.delete_data_from_redis_cache("user:123")
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Requirements
|
|
51
|
+
|
|
52
|
+
- Python 3.8+
|
|
53
|
+
- Django 5.2+
|
|
54
|
+
- Redis 5.0+
|
|
55
|
+
- PostgreSQL (with psycopg)
|
|
56
|
+
|
|
57
|
+
## Usage Guidelines
|
|
58
|
+
|
|
59
|
+
### ✅ What End Users Should Use
|
|
60
|
+
|
|
61
|
+
#### **1. Mapper Functions (Primary Usage)**
|
|
62
|
+
```python
|
|
63
|
+
# IMS Mappers
|
|
64
|
+
from lender_datalayer.ims_mappers import account_mapper, investor_mapper, cp_mapper
|
|
65
|
+
|
|
66
|
+
# Use internal functions of mappers
|
|
67
|
+
user_data = investor_mapper.get_investor_details(investor_id=123)
|
|
68
|
+
account_list = account_mapper.get_user_accounts(user_id=456)
|
|
69
|
+
cp_data = cp_mapper.get_cp_dashboard_data(cp_id=789)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### **2. iOS Mappers**
|
|
73
|
+
```python
|
|
74
|
+
from lender_datalayer.ios_mappers import user_mapper, bank_mapper, document_mapper
|
|
75
|
+
|
|
76
|
+
# Use internal functions of mappers
|
|
77
|
+
user_profile = user_mapper.get_user_profile(user_id=123)
|
|
78
|
+
bank_accounts = bank_mapper.get_user_bank_accounts(user_id=456)
|
|
79
|
+
documents = document_mapper.get_user_documents(user_id=789)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### **3. Redis Operations**
|
|
83
|
+
```python
|
|
84
|
+
from lender_datalayer import RedisDataLayer
|
|
85
|
+
|
|
86
|
+
redis = RedisDataLayer()
|
|
87
|
+
|
|
88
|
+
# Cache operations
|
|
89
|
+
redis.store_data_in_redis_cache("key", data, ttl=3600)
|
|
90
|
+
cached_data = redis.get_data_from_redis_cache("key")
|
|
91
|
+
redis.delete_data_from_redis_cache("key")
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### ❌ What End Users Should NOT Use
|
|
95
|
+
|
|
96
|
+
#### **Base Classes (Internal Use Only)**
|
|
97
|
+
```python
|
|
98
|
+
# DON'T use these directly - they are for internal mapper implementation
|
|
99
|
+
from lender_datalayer import BaseDataLayer # ❌ Not for end users
|
|
100
|
+
from lender_datalayer import DataLayerUtils # ❌ Not for end users
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### **Custom Exception Classes (Internal Use Only)**
|
|
104
|
+
```python
|
|
105
|
+
# DON'T import these directly - they are used internally by mappers
|
|
106
|
+
from lender_datalayer import ConnectionError # ❌ Not for end users
|
|
107
|
+
from lender_datalayer import QueryError # ❌ Not for end users
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Available Mappers
|
|
111
|
+
|
|
112
|
+
### IMS Mappers
|
|
113
|
+
- `account_mapper` - Account management functions
|
|
114
|
+
- `investor_mapper` - Investor data functions
|
|
115
|
+
- `cp_mapper` - Credit Partner functions
|
|
116
|
+
- `bank_mapper` - Banking functions
|
|
117
|
+
- `document_mapper` - Document handling functions
|
|
118
|
+
- `partner_mapper` - Partner management functions
|
|
119
|
+
- `thirdparty_mapper` - Third-party integration functions
|
|
120
|
+
|
|
121
|
+
### iOS Mappers
|
|
122
|
+
- `user_mapper` - User management functions
|
|
123
|
+
- `bank_mapper` - Banking functions
|
|
124
|
+
- `document_mapper` - Document handling functions
|
|
125
|
+
- `dashboard_mapper` - Dashboard data functions
|
|
126
|
+
- `bureau_mapper` - Credit bureau functions
|
|
127
|
+
- `kmi_mapper` - KYC functions
|
|
128
|
+
- `thirdparty_mapper` - Third-party integration functions
|
|
129
|
+
|
|
130
|
+
## Development
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Install in development mode
|
|
134
|
+
pip install -e .[dev]
|
|
135
|
+
|
|
136
|
+
# Format code
|
|
137
|
+
black lender_datalayer/
|
|
138
|
+
|
|
139
|
+
# Type checking
|
|
140
|
+
mypy lender_datalayer/
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## License
|
|
144
|
+
|
|
145
|
+
This package is for personal use only.
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ldc-lender-datalayer
|
|
3
|
+
Version: 1.0.14
|
|
4
|
+
Summary: A comprehensive data access layer for ldc lender apps
|
|
5
|
+
Author: Sandesh Kanagal
|
|
6
|
+
Author-email: sandesh.kanagal@lendenclub.com
|
|
7
|
+
Classifier: Intended Audience :: Developers
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Topic :: Utilities
|
|
10
|
+
Requires-Python: >=3.10.0
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
Requires-Dist: Django>=5.2.0
|
|
13
|
+
Requires-Dist: psycopg[binary,pool]>=3.2.9
|
|
14
|
+
Requires-Dist: redis>=5.0.3
|
|
15
|
+
Requires-Dist: pytz>=2023.3
|
|
16
|
+
Requires-Dist: python-dateutil>=2.8.2
|
|
17
|
+
Requires-Dist: pycryptodome>=3.19.0
|
|
18
|
+
Dynamic: author
|
|
19
|
+
Dynamic: author-email
|
|
20
|
+
Dynamic: classifier
|
|
21
|
+
Dynamic: description
|
|
22
|
+
Dynamic: description-content-type
|
|
23
|
+
Dynamic: requires-dist
|
|
24
|
+
Dynamic: requires-python
|
|
25
|
+
Dynamic: summary
|
|
26
|
+
|
|
27
|
+
# Lender Data Layer
|
|
28
|
+
|
|
29
|
+
A comprehensive data access layer for Django applications providing database operations, Redis caching, and various data mappers.
|
|
30
|
+
|
|
31
|
+
## Features
|
|
32
|
+
|
|
33
|
+
- **Data Mappers**: IMS and iOS specific data mappers with internal functions
|
|
34
|
+
- **Redis Integration**: Caching layer with Redis support
|
|
35
|
+
- **Exception Handling**: Custom exception classes for error handling
|
|
36
|
+
- **Utilities**: Common utilities for data processing
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pip install lender-datalayer
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Quick Start
|
|
45
|
+
|
|
46
|
+
### Using Data Mappers (Recommended)
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
# Import specific mappers
|
|
50
|
+
from lender_datalayer.ims_mappers import account_mapper, investor_mapper
|
|
51
|
+
from lender_datalayer.ios_mappers import user_mapper, bank_mapper
|
|
52
|
+
|
|
53
|
+
# Use mapper functions directly
|
|
54
|
+
user_data = user_mapper.get_user_by_id(user_id=123)
|
|
55
|
+
account_info = account_mapper.get_account_details(account_id=456)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Using Redis Operations
|
|
59
|
+
|
|
60
|
+
```python
|
|
61
|
+
from lender_datalayer import RedisDataLayer
|
|
62
|
+
|
|
63
|
+
# Initialize Redis layer
|
|
64
|
+
redis = RedisDataLayer()
|
|
65
|
+
|
|
66
|
+
# Store data in cache
|
|
67
|
+
redis.store_data_in_redis_cache("user:123", {"name": "John", "email": "john@example.com"})
|
|
68
|
+
|
|
69
|
+
# Retrieve data from cache
|
|
70
|
+
user_data = redis.get_data_from_redis_cache("user:123")
|
|
71
|
+
|
|
72
|
+
# Delete data from cache
|
|
73
|
+
redis.delete_data_from_redis_cache("user:123")
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Requirements
|
|
77
|
+
|
|
78
|
+
- Python 3.8+
|
|
79
|
+
- Django 5.2+
|
|
80
|
+
- Redis 5.0+
|
|
81
|
+
- PostgreSQL (with psycopg)
|
|
82
|
+
|
|
83
|
+
## Usage Guidelines
|
|
84
|
+
|
|
85
|
+
### ✅ What End Users Should Use
|
|
86
|
+
|
|
87
|
+
#### **1. Mapper Functions (Primary Usage)**
|
|
88
|
+
```python
|
|
89
|
+
# IMS Mappers
|
|
90
|
+
from lender_datalayer.ims_mappers import account_mapper, investor_mapper, cp_mapper
|
|
91
|
+
|
|
92
|
+
# Use internal functions of mappers
|
|
93
|
+
user_data = investor_mapper.get_investor_details(investor_id=123)
|
|
94
|
+
account_list = account_mapper.get_user_accounts(user_id=456)
|
|
95
|
+
cp_data = cp_mapper.get_cp_dashboard_data(cp_id=789)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
#### **2. iOS Mappers**
|
|
99
|
+
```python
|
|
100
|
+
from lender_datalayer.ios_mappers import user_mapper, bank_mapper, document_mapper
|
|
101
|
+
|
|
102
|
+
# Use internal functions of mappers
|
|
103
|
+
user_profile = user_mapper.get_user_profile(user_id=123)
|
|
104
|
+
bank_accounts = bank_mapper.get_user_bank_accounts(user_id=456)
|
|
105
|
+
documents = document_mapper.get_user_documents(user_id=789)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
#### **3. Redis Operations**
|
|
109
|
+
```python
|
|
110
|
+
from lender_datalayer import RedisDataLayer
|
|
111
|
+
|
|
112
|
+
redis = RedisDataLayer()
|
|
113
|
+
|
|
114
|
+
# Cache operations
|
|
115
|
+
redis.store_data_in_redis_cache("key", data, ttl=3600)
|
|
116
|
+
cached_data = redis.get_data_from_redis_cache("key")
|
|
117
|
+
redis.delete_data_from_redis_cache("key")
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### ❌ What End Users Should NOT Use
|
|
121
|
+
|
|
122
|
+
#### **Base Classes (Internal Use Only)**
|
|
123
|
+
```python
|
|
124
|
+
# DON'T use these directly - they are for internal mapper implementation
|
|
125
|
+
from lender_datalayer import BaseDataLayer # ❌ Not for end users
|
|
126
|
+
from lender_datalayer import DataLayerUtils # ❌ Not for end users
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
#### **Custom Exception Classes (Internal Use Only)**
|
|
130
|
+
```python
|
|
131
|
+
# DON'T import these directly - they are used internally by mappers
|
|
132
|
+
from lender_datalayer import ConnectionError # ❌ Not for end users
|
|
133
|
+
from lender_datalayer import QueryError # ❌ Not for end users
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Available Mappers
|
|
137
|
+
|
|
138
|
+
### IMS Mappers
|
|
139
|
+
- `account_mapper` - Account management functions
|
|
140
|
+
- `investor_mapper` - Investor data functions
|
|
141
|
+
- `cp_mapper` - Credit Partner functions
|
|
142
|
+
- `bank_mapper` - Banking functions
|
|
143
|
+
- `document_mapper` - Document handling functions
|
|
144
|
+
- `partner_mapper` - Partner management functions
|
|
145
|
+
- `thirdparty_mapper` - Third-party integration functions
|
|
146
|
+
|
|
147
|
+
### iOS Mappers
|
|
148
|
+
- `user_mapper` - User management functions
|
|
149
|
+
- `bank_mapper` - Banking functions
|
|
150
|
+
- `document_mapper` - Document handling functions
|
|
151
|
+
- `dashboard_mapper` - Dashboard data functions
|
|
152
|
+
- `bureau_mapper` - Credit bureau functions
|
|
153
|
+
- `kmi_mapper` - KYC functions
|
|
154
|
+
- `thirdparty_mapper` - Third-party integration functions
|
|
155
|
+
|
|
156
|
+
## Development
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
# Install in development mode
|
|
160
|
+
pip install -e .[dev]
|
|
161
|
+
|
|
162
|
+
# Format code
|
|
163
|
+
black lender_datalayer/
|
|
164
|
+
|
|
165
|
+
# Type checking
|
|
166
|
+
mypy lender_datalayer/
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## License
|
|
170
|
+
|
|
171
|
+
This package is for personal use only.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
MANIFEST.in
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
requirements.txt
|
|
5
|
+
setup.py
|
|
6
|
+
ldc_lender_datalayer.egg-info/PKG-INFO
|
|
7
|
+
ldc_lender_datalayer.egg-info/SOURCES.txt
|
|
8
|
+
ldc_lender_datalayer.egg-info/dependency_links.txt
|
|
9
|
+
ldc_lender_datalayer.egg-info/requires.txt
|
|
10
|
+
ldc_lender_datalayer.egg-info/top_level.txt
|
|
11
|
+
lender_datalayer/__init__.py
|
|
12
|
+
lender_datalayer/base_datalayer.py
|
|
13
|
+
lender_datalayer/custom_exception_handlers.py
|
|
14
|
+
lender_datalayer/redis_datalayer.py
|
|
15
|
+
lender_datalayer/common/__init__.py
|
|
16
|
+
lender_datalayer/common/constants.py
|
|
17
|
+
lender_datalayer/common/utils/__init__.py
|
|
18
|
+
lender_datalayer/common/utils/datetime_utils.py
|
|
19
|
+
lender_datalayer/common/utils/decorators.py
|
|
20
|
+
lender_datalayer/common/utils/encryption_utils.py
|
|
21
|
+
lender_datalayer/common/utils/random_value_generator_utils.py
|
|
22
|
+
lender_datalayer/common/utils/shared_utils.py
|
|
23
|
+
lender_datalayer/ims_mappers/__init__.py
|
|
24
|
+
lender_datalayer/ims_mappers/account_mapper.py
|
|
25
|
+
lender_datalayer/ims_mappers/authentication_mapper.py
|
|
26
|
+
lender_datalayer/ims_mappers/bank_mapper.py
|
|
27
|
+
lender_datalayer/ims_mappers/config_mapper.py
|
|
28
|
+
lender_datalayer/ims_mappers/cp_dashboard_mapper.py
|
|
29
|
+
lender_datalayer/ims_mappers/cp_mapper.py
|
|
30
|
+
lender_datalayer/ims_mappers/document_mapper.py
|
|
31
|
+
lender_datalayer/ims_mappers/investor_mapper.py
|
|
32
|
+
lender_datalayer/ims_mappers/partner_mapper.py
|
|
33
|
+
lender_datalayer/ims_mappers/thirdparty_mapper.py
|
|
34
|
+
lender_datalayer/ims_mappers/txn_account_mapper.py
|
|
35
|
+
lender_datalayer/ios_mappers/__init__.py
|
|
36
|
+
lender_datalayer/ios_mappers/authentication_mapper.py
|
|
37
|
+
lender_datalayer/ios_mappers/bank_mapper.py
|
|
38
|
+
lender_datalayer/ios_mappers/bureau_mapper.py
|
|
39
|
+
lender_datalayer/ios_mappers/config_mapper.py
|
|
40
|
+
lender_datalayer/ios_mappers/cp_mapper.py
|
|
41
|
+
lender_datalayer/ios_mappers/dashboard_mapper.py
|
|
42
|
+
lender_datalayer/ios_mappers/document_mapper.py
|
|
43
|
+
lender_datalayer/ios_mappers/kmi_mapper.py
|
|
44
|
+
lender_datalayer/ios_mappers/thirdparty_hyperverge_mapper.py
|
|
45
|
+
lender_datalayer/ios_mappers/thirdparty_mapper.py
|
|
46
|
+
lender_datalayer/ios_mappers/user_mapper.py
|
|
47
|
+
lender_datalayer/ios_mappers/user_source_group_mapper.py
|
|
48
|
+
lender_datalayer/s2s_communication_mapper/s2s_communication.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
lender_datalayer
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Lender Data Layer - A comprehensive data access layer for Django applications.
|
|
3
|
+
|
|
4
|
+
This package provides database operations, Redis caching, and various data mappers
|
|
5
|
+
for Django applications.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from .base_datalayer import BaseDataLayer, DataLayerUtils
|
|
9
|
+
from .redis_datalayer import RedisDataLayer
|
|
10
|
+
from .custom_exception_handlers import (
|
|
11
|
+
DataLayerError,
|
|
12
|
+
ConnectionError,
|
|
13
|
+
QueryError,
|
|
14
|
+
ValidationError,
|
|
15
|
+
TransactionError
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
__version__ = "1.0.8"
|
|
19
|
+
__author__ = "Sandesh Kanagal"
|
|
20
|
+
__email__ = "sandesh.kanagal@lendenclub.com"
|
|
21
|
+
|
|
22
|
+
__all__ = [
|
|
23
|
+
"BaseDataLayer",
|
|
24
|
+
"DataLayerUtils",
|
|
25
|
+
"RedisDataLayer",
|
|
26
|
+
"DataLayerError",
|
|
27
|
+
"ConnectionError",
|
|
28
|
+
"QueryError",
|
|
29
|
+
"ValidationError",
|
|
30
|
+
"TransactionError"
|
|
31
|
+
]
|