ins-pricing 0.4.5__py3-none-any.whl → 0.5.1__py3-none-any.whl
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.
- ins_pricing/README.md +48 -22
- ins_pricing/__init__.py +142 -90
- ins_pricing/cli/BayesOpt_entry.py +58 -46
- ins_pricing/cli/BayesOpt_incremental.py +77 -110
- ins_pricing/cli/Explain_Run.py +42 -23
- ins_pricing/cli/Explain_entry.py +551 -577
- ins_pricing/cli/Pricing_Run.py +42 -23
- ins_pricing/cli/bayesopt_entry_runner.py +51 -16
- ins_pricing/cli/utils/bootstrap.py +23 -0
- ins_pricing/cli/utils/cli_common.py +256 -256
- ins_pricing/cli/utils/cli_config.py +379 -360
- ins_pricing/cli/utils/import_resolver.py +375 -358
- ins_pricing/cli/utils/notebook_utils.py +256 -242
- ins_pricing/cli/watchdog_run.py +216 -198
- ins_pricing/frontend/__init__.py +10 -10
- ins_pricing/frontend/app.py +132 -61
- ins_pricing/frontend/config_builder.py +33 -0
- ins_pricing/frontend/example_config.json +11 -0
- ins_pricing/frontend/example_workflows.py +1 -1
- ins_pricing/frontend/runner.py +340 -388
- ins_pricing/governance/__init__.py +20 -20
- ins_pricing/governance/release.py +159 -159
- ins_pricing/modelling/README.md +1 -1
- ins_pricing/modelling/__init__.py +147 -92
- ins_pricing/modelling/{core/bayesopt → bayesopt}/README.md +31 -13
- ins_pricing/modelling/{core/bayesopt → bayesopt}/__init__.py +64 -102
- ins_pricing/modelling/{core/bayesopt → bayesopt}/config_components.py +12 -0
- ins_pricing/modelling/{core/bayesopt → bayesopt}/config_preprocess.py +589 -552
- ins_pricing/modelling/{core/bayesopt → bayesopt}/core.py +987 -958
- ins_pricing/modelling/{core/bayesopt → bayesopt}/model_explain_mixin.py +296 -296
- ins_pricing/modelling/{core/bayesopt → bayesopt}/model_plotting_mixin.py +488 -548
- ins_pricing/modelling/{core/bayesopt → bayesopt}/models/__init__.py +27 -27
- ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_ft_components.py +349 -342
- ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_ft_trainer.py +921 -913
- ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_gnn.py +794 -785
- ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_resn.py +454 -446
- ins_pricing/modelling/bayesopt/trainers/__init__.py +19 -0
- ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_base.py +1294 -1282
- ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_ft.py +64 -56
- ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_glm.py +203 -198
- ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_gnn.py +333 -325
- ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_resn.py +279 -267
- ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_xgb.py +515 -313
- ins_pricing/modelling/bayesopt/utils/__init__.py +67 -0
- ins_pricing/modelling/bayesopt/utils/constants.py +21 -0
- ins_pricing/modelling/{core/bayesopt → bayesopt}/utils/distributed_utils.py +193 -186
- ins_pricing/modelling/bayesopt/utils/io_utils.py +7 -0
- ins_pricing/modelling/bayesopt/utils/losses.py +27 -0
- ins_pricing/modelling/bayesopt/utils/metrics_and_devices.py +17 -0
- ins_pricing/modelling/{core/bayesopt → bayesopt}/utils/torch_trainer_mixin.py +636 -623
- ins_pricing/modelling/{core/evaluation.py → evaluation.py} +113 -104
- ins_pricing/modelling/explain/__init__.py +55 -55
- ins_pricing/modelling/explain/metrics.py +27 -174
- ins_pricing/modelling/explain/permutation.py +237 -237
- ins_pricing/modelling/plotting/__init__.py +40 -36
- ins_pricing/modelling/plotting/compat.py +228 -0
- ins_pricing/modelling/plotting/curves.py +572 -572
- ins_pricing/modelling/plotting/diagnostics.py +163 -163
- ins_pricing/modelling/plotting/geo.py +362 -362
- ins_pricing/modelling/plotting/importance.py +121 -121
- ins_pricing/pricing/__init__.py +27 -27
- ins_pricing/pricing/factors.py +67 -56
- ins_pricing/production/__init__.py +35 -25
- ins_pricing/production/{predict.py → inference.py} +140 -57
- ins_pricing/production/monitoring.py +8 -21
- ins_pricing/reporting/__init__.py +11 -11
- ins_pricing/setup.py +1 -1
- ins_pricing/tests/production/test_inference.py +90 -0
- ins_pricing/utils/__init__.py +112 -78
- ins_pricing/utils/device.py +258 -237
- ins_pricing/utils/features.py +53 -0
- ins_pricing/utils/io.py +72 -0
- ins_pricing/utils/logging.py +34 -1
- ins_pricing/{modelling/core/bayesopt/utils → utils}/losses.py +125 -129
- ins_pricing/utils/metrics.py +158 -24
- ins_pricing/utils/numerics.py +76 -0
- ins_pricing/utils/paths.py +9 -1
- ins_pricing/utils/profiling.py +8 -4
- {ins_pricing-0.4.5.dist-info → ins_pricing-0.5.1.dist-info}/METADATA +1 -1
- ins_pricing-0.5.1.dist-info/RECORD +132 -0
- ins_pricing/modelling/core/BayesOpt.py +0 -146
- ins_pricing/modelling/core/__init__.py +0 -1
- ins_pricing/modelling/core/bayesopt/trainers/__init__.py +0 -19
- ins_pricing/modelling/core/bayesopt/utils/__init__.py +0 -86
- ins_pricing/modelling/core/bayesopt/utils/constants.py +0 -183
- ins_pricing/modelling/core/bayesopt/utils/io_utils.py +0 -126
- ins_pricing/modelling/core/bayesopt/utils/metrics_and_devices.py +0 -555
- ins_pricing/modelling/core/bayesopt/utils.py +0 -105
- ins_pricing/modelling/core/bayesopt/utils_backup.py +0 -1503
- ins_pricing/tests/production/test_predict.py +0 -233
- ins_pricing-0.4.5.dist-info/RECORD +0 -130
- {ins_pricing-0.4.5.dist-info → ins_pricing-0.5.1.dist-info}/WHEEL +0 -0
- {ins_pricing-0.4.5.dist-info → ins_pricing-0.5.1.dist-info}/top_level.txt +0 -0
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
"""Tests for production prediction module."""
|
|
2
|
-
|
|
3
|
-
import json
|
|
4
|
-
from pathlib import Path
|
|
5
|
-
from unittest.mock import Mock, patch, MagicMock
|
|
6
|
-
|
|
7
|
-
import numpy as np
|
|
8
|
-
import pandas as pd
|
|
9
|
-
import pytest
|
|
10
|
-
|
|
11
|
-
from ins_pricing.exceptions import ConfigurationError, ModelLoadError, PredictionError
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
# Mock the production.predict module since it may have heavy dependencies
|
|
15
|
-
pytest.importorskip("ins_pricing.production.predict", reason="predict module not available")
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
@pytest.fixture
|
|
19
|
-
def sample_config():
|
|
20
|
-
"""Sample configuration for predictor."""
|
|
21
|
-
return {
|
|
22
|
-
"model_name": "test_model",
|
|
23
|
-
"task_type": "regression",
|
|
24
|
-
"base_dir": "/tmp/models",
|
|
25
|
-
"feature_names": ["age", "premium", "region"],
|
|
26
|
-
"model_type": "xgboost"
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
@pytest.fixture
|
|
31
|
-
def sample_data():
|
|
32
|
-
"""Sample input data for predictions."""
|
|
33
|
-
return pd.DataFrame({
|
|
34
|
-
"age": [25, 30, 35, 40],
|
|
35
|
-
"premium": [100.0, 150.0, 200.0, 250.0],
|
|
36
|
-
"region": ["A", "B", "A", "C"]
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
class TestConfigValidation:
|
|
41
|
-
"""Test configuration validation for predictors."""
|
|
42
|
-
|
|
43
|
-
def test_missing_config_file(self, tmp_path):
|
|
44
|
-
"""Test error when config file doesn't exist."""
|
|
45
|
-
from ins_pricing.production.predict import load_predictor_from_config
|
|
46
|
-
|
|
47
|
-
config_path = tmp_path / "nonexistent.json"
|
|
48
|
-
|
|
49
|
-
with pytest.raises((FileNotFoundError, ModelLoadError)):
|
|
50
|
-
load_predictor_from_config(config_path)
|
|
51
|
-
|
|
52
|
-
def test_invalid_json_config(self, tmp_path):
|
|
53
|
-
"""Test error when config file contains invalid JSON."""
|
|
54
|
-
from ins_pricing.production.predict import load_predictor_from_config
|
|
55
|
-
|
|
56
|
-
config_path = tmp_path / "invalid.json"
|
|
57
|
-
config_path.write_text("{ invalid json }")
|
|
58
|
-
|
|
59
|
-
with pytest.raises((ConfigurationError, json.JSONDecodeError)):
|
|
60
|
-
load_predictor_from_config(config_path)
|
|
61
|
-
|
|
62
|
-
def test_missing_required_fields(self, tmp_path):
|
|
63
|
-
"""Test error when required config fields are missing."""
|
|
64
|
-
from ins_pricing.production.predict import load_predictor_from_config
|
|
65
|
-
|
|
66
|
-
config_path = tmp_path / "incomplete.json"
|
|
67
|
-
config_path.write_text(json.dumps({"model_name": "test"}))
|
|
68
|
-
|
|
69
|
-
with pytest.raises(ConfigurationError):
|
|
70
|
-
load_predictor_from_config(config_path)
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
class TestPredictorLoading:
|
|
74
|
-
"""Test predictor loading functionality."""
|
|
75
|
-
|
|
76
|
-
@patch('ins_pricing.production.predict.load_model')
|
|
77
|
-
def test_load_valid_predictor(self, mock_load_model, tmp_path, sample_config):
|
|
78
|
-
"""Test loading a valid predictor."""
|
|
79
|
-
from ins_pricing.production.predict import load_predictor_from_config
|
|
80
|
-
|
|
81
|
-
# Setup
|
|
82
|
-
config_path = tmp_path / "config.json"
|
|
83
|
-
config_path.write_text(json.dumps(sample_config))
|
|
84
|
-
mock_load_model.return_value = Mock()
|
|
85
|
-
|
|
86
|
-
# Execute
|
|
87
|
-
predictor = load_predictor_from_config(config_path)
|
|
88
|
-
|
|
89
|
-
# Verify
|
|
90
|
-
assert predictor is not None
|
|
91
|
-
assert predictor['config']['model_name'] == "test_model"
|
|
92
|
-
|
|
93
|
-
def test_load_missing_model_file(self, tmp_path, sample_config):
|
|
94
|
-
"""Test error when model file is missing."""
|
|
95
|
-
from ins_pricing.production.predict import load_predictor_from_config
|
|
96
|
-
|
|
97
|
-
config_path = tmp_path / "config.json"
|
|
98
|
-
config_path.write_text(json.dumps(sample_config))
|
|
99
|
-
|
|
100
|
-
with pytest.raises(ModelLoadError):
|
|
101
|
-
load_predictor_from_config(config_path)
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
class TestPrediction:
|
|
105
|
-
"""Test prediction functionality."""
|
|
106
|
-
|
|
107
|
-
@patch('ins_pricing.production.predict.load_model')
|
|
108
|
-
def test_predict_on_valid_data(self, mock_load_model, sample_data):
|
|
109
|
-
"""Test prediction on valid input data."""
|
|
110
|
-
from ins_pricing.production.predict import predict
|
|
111
|
-
|
|
112
|
-
# Setup mock model
|
|
113
|
-
mock_model = Mock()
|
|
114
|
-
mock_model.predict.return_value = np.array([100, 150, 200, 250])
|
|
115
|
-
mock_load_model.return_value = mock_model
|
|
116
|
-
|
|
117
|
-
predictor = {
|
|
118
|
-
'model': mock_model,
|
|
119
|
-
'config': {'feature_names': ["age", "premium", "region"]}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
# Execute
|
|
123
|
-
predictions = predict(predictor, sample_data)
|
|
124
|
-
|
|
125
|
-
# Verify
|
|
126
|
-
assert len(predictions) == len(sample_data)
|
|
127
|
-
assert all(isinstance(p, (int, float, np.number)) for p in predictions)
|
|
128
|
-
|
|
129
|
-
def test_predict_missing_features(self, sample_data):
|
|
130
|
-
"""Test error when input data is missing required features."""
|
|
131
|
-
from ins_pricing.production.predict import predict
|
|
132
|
-
from ins_pricing.utils.validation import validate_required_columns
|
|
133
|
-
|
|
134
|
-
predictor = {
|
|
135
|
-
'model': Mock(),
|
|
136
|
-
'config': {'feature_names': ["age", "premium", "region", "missing_col"]}
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
# Should raise validation error for missing column
|
|
140
|
-
with pytest.raises(PredictionError):
|
|
141
|
-
validate_required_columns(
|
|
142
|
-
sample_data,
|
|
143
|
-
predictor['config']['feature_names'],
|
|
144
|
-
df_name="input_data"
|
|
145
|
-
)
|
|
146
|
-
|
|
147
|
-
def test_predict_empty_dataframe(self):
|
|
148
|
-
"""Test prediction on empty DataFrame."""
|
|
149
|
-
from ins_pricing.production.predict import predict
|
|
150
|
-
from ins_pricing.utils.validation import validate_dataframe_not_empty
|
|
151
|
-
|
|
152
|
-
empty_df = pd.DataFrame()
|
|
153
|
-
predictor = {'model': Mock(), 'config': {}}
|
|
154
|
-
|
|
155
|
-
with pytest.raises(PredictionError):
|
|
156
|
-
validate_dataframe_not_empty(empty_df, df_name="input_data")
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
class TestBatchScoring:
|
|
160
|
-
"""Test batch scoring functionality."""
|
|
161
|
-
|
|
162
|
-
@patch('ins_pricing.production.predict.load_predictor_from_config')
|
|
163
|
-
@patch('ins_pricing.production.predict.predict')
|
|
164
|
-
def test_batch_score_success(self, mock_predict, mock_load, sample_data, tmp_path):
|
|
165
|
-
"""Test successful batch scoring."""
|
|
166
|
-
from ins_pricing.production.predict import batch_score
|
|
167
|
-
|
|
168
|
-
# Setup
|
|
169
|
-
mock_load.return_value = {'model': Mock(), 'config': {}}
|
|
170
|
-
mock_predict.return_value = np.array([100, 150, 200, 250])
|
|
171
|
-
|
|
172
|
-
output_path = tmp_path / "predictions.csv"
|
|
173
|
-
|
|
174
|
-
# Execute
|
|
175
|
-
batch_score(
|
|
176
|
-
config_path=tmp_path / "config.json",
|
|
177
|
-
input_data=sample_data,
|
|
178
|
-
output_path=output_path
|
|
179
|
-
)
|
|
180
|
-
|
|
181
|
-
# Verify
|
|
182
|
-
assert output_path.exists()
|
|
183
|
-
results = pd.read_csv(output_path)
|
|
184
|
-
assert "predictions" in results.columns
|
|
185
|
-
|
|
186
|
-
def test_batch_score_large_data(self, tmp_path):
|
|
187
|
-
"""Test batch scoring with large dataset."""
|
|
188
|
-
from ins_pricing.production.predict import batch_score
|
|
189
|
-
|
|
190
|
-
# Create large dataset
|
|
191
|
-
large_data = pd.DataFrame({
|
|
192
|
-
"age": np.random.randint(20, 70, size=10000),
|
|
193
|
-
"premium": np.random.uniform(100, 500, size=10000),
|
|
194
|
-
"region": np.random.choice(["A", "B", "C"], size=10000)
|
|
195
|
-
})
|
|
196
|
-
|
|
197
|
-
with patch('ins_pricing.production.predict.load_predictor_from_config') as mock_load:
|
|
198
|
-
with patch('ins_pricing.production.predict.predict') as mock_predict:
|
|
199
|
-
mock_load.return_value = {'model': Mock(), 'config': {}}
|
|
200
|
-
mock_predict.return_value = np.random.uniform(50, 300, size=10000)
|
|
201
|
-
|
|
202
|
-
output_path = tmp_path / "large_predictions.csv"
|
|
203
|
-
batch_score(
|
|
204
|
-
config_path=tmp_path / "config.json",
|
|
205
|
-
input_data=large_data,
|
|
206
|
-
output_path=output_path
|
|
207
|
-
)
|
|
208
|
-
|
|
209
|
-
assert output_path.exists()
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
class TestModelVersioning:
|
|
213
|
-
"""Test model versioning functionality."""
|
|
214
|
-
|
|
215
|
-
def test_version_compatibility_check(self):
|
|
216
|
-
"""Test version compatibility checking."""
|
|
217
|
-
# Test that predictor checks model version compatibility
|
|
218
|
-
pass # Implement based on actual version checking logic
|
|
219
|
-
|
|
220
|
-
def test_load_different_model_versions(self):
|
|
221
|
-
"""Test loading different versions of the same model."""
|
|
222
|
-
pass # Implement based on actual versioning system
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
@pytest.mark.integration
|
|
226
|
-
class TestPredictionIntegration:
|
|
227
|
-
"""Integration tests for prediction pipeline."""
|
|
228
|
-
|
|
229
|
-
@pytest.mark.skipif(not Path("test_models").exists(), reason="Test models not available")
|
|
230
|
-
def test_end_to_end_prediction(self):
|
|
231
|
-
"""Test complete prediction pipeline from config to output."""
|
|
232
|
-
# This would require actual model artifacts
|
|
233
|
-
pass
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
ins_pricing/README.md,sha256=lmT3UhGMxWtM_FCmg8elQZIgaFTEhoZYTTv_Iq26eJY,2770
|
|
2
|
-
ins_pricing/__init__.py,sha256=46j1wCdLVrgrofeBwKl-3NXTxzjbTv-w3KjW-dyKGiY,2622
|
|
3
|
-
ins_pricing/exceptions.py,sha256=5fZavPV4zNJ7wPC75L215KkHXX9pRrfDAYZOdSKJMGo,4778
|
|
4
|
-
ins_pricing/setup.py,sha256=gAnzDOPPzmun2x7Is9inR5MX7XE7_bHJc9VIQqGmMNo,1702
|
|
5
|
-
ins_pricing/cli/BayesOpt_entry.py,sha256=6UBVxu36O3bXn1WC-BBi-l_W9_MqEoHmDGnwwDKNo5Q,1594
|
|
6
|
-
ins_pricing/cli/BayesOpt_incremental.py,sha256=WR2DJSVsCfUvR6_0xc-2vss85CB4m0bIiB_xjRRxqSE,36809
|
|
7
|
-
ins_pricing/cli/Explain_Run.py,sha256=gEPQjqHiXyXlCTKjUzwSvbAn5_h74ABgb_sEGs-YHVE,664
|
|
8
|
-
ins_pricing/cli/Explain_entry.py,sha256=xS23x31qRvXqy2Wvo21wbkxmPRLHy77aZbtjY-J59NA,23570
|
|
9
|
-
ins_pricing/cli/Pricing_Run.py,sha256=qZribQ_ku4NK4oIvlrLJdM-jyyKtIUoCbbvo8Wh_RQ4,711
|
|
10
|
-
ins_pricing/cli/__init__.py,sha256=F296f1J_tBPv33lDJQ6LaN_CPwMJTMtOuTsMof0dr2o,50
|
|
11
|
-
ins_pricing/cli/bayesopt_entry_runner.py,sha256=JERCqHcS50lcA1dIP8RiA-7xsjfIQD8ZXWLyUAq5Nqk,55261
|
|
12
|
-
ins_pricing/cli/watchdog_run.py,sha256=ehUkN9VqsQkxc6YC_WLanU6Pu-ers-nvPEtCaJ9UsgY,6188
|
|
13
|
-
ins_pricing/cli/utils/__init__.py,sha256=u3kt1B27OiuOEgw6PQN-fNs9vNiAjdPyybsRQsZkM_I,54
|
|
14
|
-
ins_pricing/cli/utils/cli_common.py,sha256=CgMnN_0NQQt7Bh5RjClOydz0LzU2TBmIOsFa3KxYQOQ,8254
|
|
15
|
-
ins_pricing/cli/utils/cli_config.py,sha256=TC8fR1XdQIbaojbeac7dESj7TmCKSfpZTbLvJrkJLEY,13247
|
|
16
|
-
ins_pricing/cli/utils/evaluation_context.py,sha256=0zuDOcVzkWiuj4HyAT0psaAfEbSqpDXEGXSjxztHY6E,9485
|
|
17
|
-
ins_pricing/cli/utils/import_resolver.py,sha256=Ut-SBN4F2sw8O7B3GveMoZn4__1IGwljvxC4sLU0tpk,12531
|
|
18
|
-
ins_pricing/cli/utils/notebook_utils.py,sha256=xjSjn6z4_x2vfX1SV4X_VG0jXdK1KJzWJ5tJ4CHFxy0,12037
|
|
19
|
-
ins_pricing/cli/utils/run_logging.py,sha256=V3Wh2EV6c1Mo0QTvfe4hl2J4LOR6bdQsT210o__YBWk,3677
|
|
20
|
-
ins_pricing/frontend/README.md,sha256=MKQuVtwpvrOKBJhcz9wgVtMc-jKERYATRNDIj-hA78Y,17551
|
|
21
|
-
ins_pricing/frontend/__init__.py,sha256=KeL6QbUGAzWKbjGyZi_u7p289Zv5yslRCNZ6wHWY63Q,335
|
|
22
|
-
ins_pricing/frontend/app.py,sha256=DBrnewX5RUjuJXGEezihZJcDnp-tEeA-fCuTeqAFEqU,38484
|
|
23
|
-
ins_pricing/frontend/config_builder.py,sha256=GNeEe7-Xt-WLakKlbdbQOE82ogWWwEFaKQ5LxxZeLFc,12261
|
|
24
|
-
ins_pricing/frontend/example_config.json,sha256=aDXH9_5bVlIclwMWH5WfgK572LVuraNbj4565o3d71k,741
|
|
25
|
-
ins_pricing/frontend/example_workflows.py,sha256=7iuFOIhN6l__3AVDkhDU7zvi2oWx_Z9lktpATPM336s,36813
|
|
26
|
-
ins_pricing/frontend/ft_workflow.py,sha256=CWrviErHEjZ2NPibIbPh69AYKPVkn-mXY7uncPihn-0,11206
|
|
27
|
-
ins_pricing/frontend/runner.py,sha256=0OB7C04PHpU04VrzZlEE-zOWrbdk5aztRck2BXKzbTc,13471
|
|
28
|
-
ins_pricing/governance/README.md,sha256=XnXLS5RPzWhEiicJ3WtGmpN935jppHhPftA9Lo2DPnQ,511
|
|
29
|
-
ins_pricing/governance/__init__.py,sha256=d8tiDhOvHvAvgSohY1xv0vuEeHj8Gl1apQtw7ryEKM0,517
|
|
30
|
-
ins_pricing/governance/approval.py,sha256=cjJQjU1ziR-d-9wVSXyMyX6S5zijJqDWERZNxjqGAUE,2879
|
|
31
|
-
ins_pricing/governance/audit.py,sha256=f0aw-LaOxH5NGzxwczeLrGMJcxO-JDRn99BpI55KRn4,1040
|
|
32
|
-
ins_pricing/governance/registry.py,sha256=2uxQL6qMGY5IYWJti9MpaV_auvL--piJaasFrX20ghk,3139
|
|
33
|
-
ins_pricing/governance/release.py,sha256=ltyFIdeKbwj9fnEDxcQCURaQ5Zc_j0mqXFPNunmX_NQ,4743
|
|
34
|
-
ins_pricing/modelling/README.md,sha256=4q3CykeFcXo5FILGD2EtoX2yYVV0EbrYW-hwgcySBN0,2157
|
|
35
|
-
ins_pricing/modelling/__init__.py,sha256=0tiXRE3rAwSxHT0dSaosWf_vGd7FpRA_kHW6dclr4PA,2710
|
|
36
|
-
ins_pricing/modelling/core/BayesOpt.py,sha256=i2tB3c6EeucjKAsHyicGDNU7DVVCTihg-TgSoM1y18E,3332
|
|
37
|
-
ins_pricing/modelling/core/__init__.py,sha256=bF5OWfK_mfg5P2oz2jid3MGi9uA13fpqKK-DbPkuci0,54
|
|
38
|
-
ins_pricing/modelling/core/evaluation.py,sha256=wEMWdzs12vPnDo5t183ORMDA6APuc5g6g9Uyfd6GVi8,3905
|
|
39
|
-
ins_pricing/modelling/core/bayesopt/README.md,sha256=vNTYu5Jk425-RpyVZg_W4PRPWBy6pULYlQHks1a0S2Y,1625
|
|
40
|
-
ins_pricing/modelling/core/bayesopt/__init__.py,sha256=nj6IA0r7D5U5-hYyiwXmcp_bEtoU-hRJ_prdtRmLMg0,2070
|
|
41
|
-
ins_pricing/modelling/core/bayesopt/config_components.py,sha256=OjRyM1EuSXL9_3THD1nGLRsioJs7lO_ZKVZDkUA3LX8,12156
|
|
42
|
-
ins_pricing/modelling/core/bayesopt/config_preprocess.py,sha256=lAsdvLr-H7ajkyRElcKvAQn4ZWEOqkpDqb6ZBsdesfc,22157
|
|
43
|
-
ins_pricing/modelling/core/bayesopt/core.py,sha256=RvnP3yIy-FOQUFdONVfJQxnI7hhNbPTKNQaqhtXd928,44640
|
|
44
|
-
ins_pricing/modelling/core/bayesopt/model_explain_mixin.py,sha256=jCk1zPpwgwBBCndaq-A0_cQnc4RHueh2p5cAuE9ArTo,11620
|
|
45
|
-
ins_pricing/modelling/core/bayesopt/model_plotting_mixin.py,sha256=lD0rUvWV4eWatmTzMrmAUm2Flj8uAOa3R9S2JyYV94k,21807
|
|
46
|
-
ins_pricing/modelling/core/bayesopt/utils.py,sha256=fTDqBHCxsOVte0QhPqnMw8vkefIvkppufIRkt9iHqjU,2852
|
|
47
|
-
ins_pricing/modelling/core/bayesopt/utils_backup.py,sha256=5RKizpR3j6KwR87WqqaXPtgjQXWPW4vM75sIkx38SSM,57924
|
|
48
|
-
ins_pricing/modelling/core/bayesopt/models/__init__.py,sha256=vFFCkGnO6rm50TbxR6QekKKQjq-NW4UFwog6fng8-p8,700
|
|
49
|
-
ins_pricing/modelling/core/bayesopt/models/model_ft_components.py,sha256=oDhmJQ26zF0PhoDC5Z2McA-JpLbXFQjSREqy0w_hWlQ,11883
|
|
50
|
-
ins_pricing/modelling/core/bayesopt/models/model_ft_trainer.py,sha256=jk9pm7IzVLG8YYOneW1DPsULulbF9PQ9nNJ8EOlHF5I,39754
|
|
51
|
-
ins_pricing/modelling/core/bayesopt/models/model_gnn.py,sha256=blCTgML-fMkHDerzwoJZPw2XnEvuwVR_U5t0YWE1lZI,32901
|
|
52
|
-
ins_pricing/modelling/core/bayesopt/models/model_resn.py,sha256=Pddu0q04Sz8RwKqjP0fv4xXWd6KobwMsD47sCDBbB-Y,17581
|
|
53
|
-
ins_pricing/modelling/core/bayesopt/trainers/__init__.py,sha256=ODYKjT-v4IDxu4ohGLCXY8r1-pMME9LAaNx6pmj5_38,481
|
|
54
|
-
ins_pricing/modelling/core/bayesopt/trainers/trainer_base.py,sha256=DOam1HLsslNQlhQt88j6LWCZekioaNzw2PbKzLwtszY,55687
|
|
55
|
-
ins_pricing/modelling/core/bayesopt/trainers/trainer_ft.py,sha256=o8uyDvEsJ3NrVy-VRo7c3DoKcJQsFSK4vY29vYMkrSk,37093
|
|
56
|
-
ins_pricing/modelling/core/bayesopt/trainers/trainer_glm.py,sha256=gMhx9IX9nz-rsf-zi9UYMtViBPD1nmQ5r8XVPGU21Ys,7912
|
|
57
|
-
ins_pricing/modelling/core/bayesopt/trainers/trainer_gnn.py,sha256=vJbQTm-3ByBguZYz4gvYhXeWbUa0L7z7mxaxoamGsic,14259
|
|
58
|
-
ins_pricing/modelling/core/bayesopt/trainers/trainer_resn.py,sha256=MaxCvmyybE72H38akOA_rNW3Rx9Mxb229ZRJaqIzWTA,11855
|
|
59
|
-
ins_pricing/modelling/core/bayesopt/trainers/trainer_xgb.py,sha256=NlEqH0wxe5frwxXNTeymWX5_qC3_rIzF3QjDZz4RBMg,13752
|
|
60
|
-
ins_pricing/modelling/core/bayesopt/utils/__init__.py,sha256=dbf4DrWOH4rABOuaZdBF7drYOBH5prjvM0TexT6DYyg,1911
|
|
61
|
-
ins_pricing/modelling/core/bayesopt/utils/constants.py,sha256=0ihYxGlJ8tIElYvkhIDe5FfJShegvu29WZ_Xvfqa0iE,5790
|
|
62
|
-
ins_pricing/modelling/core/bayesopt/utils/distributed_utils.py,sha256=cu01dHyYE5EREbmtJgCHSH6z5mQIqajz8_-oWZV6zVc,5787
|
|
63
|
-
ins_pricing/modelling/core/bayesopt/utils/io_utils.py,sha256=vXDlAc_taCG2joxnC6wu0jVYA76UhRbX9OT_5z_im-E,3857
|
|
64
|
-
ins_pricing/modelling/core/bayesopt/utils/losses.py,sha256=yn3ggeM1NRkCzcTt_Nef_EvpD6Pb_jGs49bj-VV4uWU,3894
|
|
65
|
-
ins_pricing/modelling/core/bayesopt/utils/metrics_and_devices.py,sha256=kfQZnGE8FvGfl7WsTFShGGIA_sQhp5Th9mrwUXphiNQ,21200
|
|
66
|
-
ins_pricing/modelling/core/bayesopt/utils/torch_trainer_mixin.py,sha256=qxSAP4vQC-JTHTZ7SDPZx7ZKyJKLwcAOP0IWr4GA_l4,25881
|
|
67
|
-
ins_pricing/modelling/explain/__init__.py,sha256=CPoGzGu8TTO3FOXjxoXC13VkuIDCf3YTH6L3BqJq3Ok,1171
|
|
68
|
-
ins_pricing/modelling/explain/gradients.py,sha256=9TqCws_p49nFxVMcjVxe4KCZ7frezeL0uV_LCdoM5yo,11088
|
|
69
|
-
ins_pricing/modelling/explain/metrics.py,sha256=K_xOY7ZrHWhbJ79RNB7eXN3VXeTe8vq68ZLH2BlZufA,5389
|
|
70
|
-
ins_pricing/modelling/explain/permutation.py,sha256=TeVlhz7FWyPsaZwEP3BSLa0BZgdOq74coZqnadkGaPw,9333
|
|
71
|
-
ins_pricing/modelling/explain/shap_utils.py,sha256=70zRIHPPdoECFOFQeBTRxLZF-6sjaGJBNMIRS4_kmVI,10462
|
|
72
|
-
ins_pricing/modelling/plotting/__init__.py,sha256=BBQKcE7IYUYObFrjpSnfNS6rmzc80Lae7oEqxKz-vEk,1058
|
|
73
|
-
ins_pricing/modelling/plotting/common.py,sha256=_kFq7JMA0LnKIp4bqAFvr-24VaHjj9pegDMm1qP9_7Y,1439
|
|
74
|
-
ins_pricing/modelling/plotting/curves.py,sha256=fEnoeHAVvLPI5HXadNLUoWygmHtNWCngynLdZK868NQ,18398
|
|
75
|
-
ins_pricing/modelling/plotting/diagnostics.py,sha256=AlkBtHuezRoDgMeXm56A1bK6Kn0rWOBy4Uts_xOocrs,5164
|
|
76
|
-
ins_pricing/modelling/plotting/geo.py,sha256=sRJTYOcAphNFM-oww4qbw9MoZneBCJtur96sYuqSNkw,11009
|
|
77
|
-
ins_pricing/modelling/plotting/importance.py,sha256=xs3l9uW_rCrakoA__fanIph6DK2jN_DugsKASAzteJU,3666
|
|
78
|
-
ins_pricing/pricing/README.md,sha256=PEcyw5oDkqJHOqnNdzBdbbpZwG4SOlnhMwY-owwQ0GI,1064
|
|
79
|
-
ins_pricing/pricing/__init__.py,sha256=XFplK3zkxPyNQZJd1Gn6_VvpwHLedMqxAd_Vn9tqsTE,881
|
|
80
|
-
ins_pricing/pricing/calibration.py,sha256=cx9fbDoOnNEMGPH6Js1EDMfVwy9J7zf_90yuNwD7W6I,6196
|
|
81
|
-
ins_pricing/pricing/data_quality.py,sha256=8FecBE60cABsTZE7HETuoKCEOXIrirGAFgg5wQCZrmU,4043
|
|
82
|
-
ins_pricing/pricing/exposure.py,sha256=rw8kKZ_1QdeGTCm13ck9NXrRBPt6TunxRw2s_qkHYkg,2575
|
|
83
|
-
ins_pricing/pricing/factors.py,sha256=1cqDqdXRLb9-yt-x60f0lPWdgAAOvk7slnawVIKcWDo,6573
|
|
84
|
-
ins_pricing/pricing/monitoring.py,sha256=GnfF2g1C9KzDks9ELBykfAd0zzVBUvjuTWoffa7aGbI,613
|
|
85
|
-
ins_pricing/pricing/rate_table.py,sha256=llDW95i7gR6cCtGFwcGqgpgFvOOPCURaJWmuQw1oce8,2473
|
|
86
|
-
ins_pricing/production/__init__.py,sha256=plUjyiwxrzHDDgXKezyGp9UHOg7Mav4f0ryXYtNmbfs,885
|
|
87
|
-
ins_pricing/production/drift.py,sha256=q_oE_h2NbVETTBkh9QUu8Y68ERuFFcrfKpOb3zBcvsA,383
|
|
88
|
-
ins_pricing/production/monitoring.py,sha256=A6Hyc5WSKhFkDZOIrqmFteuDee75CdcwdTq644vrk-U,4836
|
|
89
|
-
ins_pricing/production/predict.py,sha256=Robvp63tlxqWJhgiZ3BoC4slX8qYJRh4GrM4L4BGycw,24571
|
|
90
|
-
ins_pricing/production/preprocess.py,sha256=cl20X0rVcKNCjVJswB8SdHffMgox6Qga4Ac29L6pW5g,9404
|
|
91
|
-
ins_pricing/production/scoring.py,sha256=yFmMmbYb7w_RC4uZOCMnAjLMRcjXQWIuT1nsfu-bwuc,1379
|
|
92
|
-
ins_pricing/reporting/README.md,sha256=kTVdB6pNewwh1HlCHrI2SzWTgprtQoQprLRQ2qLdgNA,486
|
|
93
|
-
ins_pricing/reporting/__init__.py,sha256=Se5Cdomv9_RwkIDizkw1yx4iCMcjhjTHb4pZK6K895c,242
|
|
94
|
-
ins_pricing/reporting/report_builder.py,sha256=53ZFqGUx2isAoigT5IDwvXkek67zN7-6IgKeGpJhO7c,2241
|
|
95
|
-
ins_pricing/reporting/scheduler.py,sha256=9koG_1cmWvLqrS66uzMJuAlYI2VTkynV19ssB2TtcKU,1336
|
|
96
|
-
ins_pricing/tests/governance/__init__.py,sha256=5Nxg4_dIxY_J58_x2QOXrrRgw6L51Md0Wnt5Up-chqg,39
|
|
97
|
-
ins_pricing/tests/governance/test_audit.py,sha256=ubybXSTVILPN4VxQ2fMnG6oPNv4LjJJE3EsQ53NYdLU,1702
|
|
98
|
-
ins_pricing/tests/governance/test_registry.py,sha256=TvkNMLHViNuopjjho6oETwZ9d6MNaNM1xbL6URPDKSk,4602
|
|
99
|
-
ins_pricing/tests/governance/test_release.py,sha256=Cdo6prZ0xlioAP2AYHodzgASEIa6ZCLjbXW9Me2RGKk,2347
|
|
100
|
-
ins_pricing/tests/modelling/conftest.py,sha256=0KUXnkTgIGEIsf0J4uzIx5Kq4JkDyFo81Mv0qvIzW9k,180
|
|
101
|
-
ins_pricing/tests/modelling/test_cross_val_generic.py,sha256=iLZOFmdyrycB15lFWoQphkFlEjzZTozQXTLVOHLw2Qg,1721
|
|
102
|
-
ins_pricing/tests/modelling/test_distributed_utils.py,sha256=9cStpDw7jPdQwmm0Po-G2tB04uzSR1CoOUZMLuB61yI,466
|
|
103
|
-
ins_pricing/tests/modelling/test_explain.py,sha256=NZqKYuL-eSf9eC5ttjcMirfOc48ORMXZQm5PjmYk4jY,1445
|
|
104
|
-
ins_pricing/tests/modelling/test_geo_tokens_split.py,sha256=Ti57IynKB0aWOosr0g2RcZlDZyZC012XZ-hm6tWXBJg,1554
|
|
105
|
-
ins_pricing/tests/modelling/test_graph_cache.py,sha256=QEI5cLLtQ9_zwRR50KqUf8qxo9Jcp1WLxIGs4dSoMNk,821
|
|
106
|
-
ins_pricing/tests/modelling/test_plotting.py,sha256=4gJax72l40fQrjyJQLOgUmaT6xn6zXpujEaFNeHVwGw,1911
|
|
107
|
-
ins_pricing/tests/modelling/test_plotting_library.py,sha256=SB5RjKTaPydK848V0xpqEaJtEWhRv6ZfnHmnnzjaPh4,4079
|
|
108
|
-
ins_pricing/tests/modelling/test_preprocessor.py,sha256=FqbKltV803Pd-ZY1xBc4XF1T-INDuUliaVcMIDPmBxI,1438
|
|
109
|
-
ins_pricing/tests/pricing/__init__.py,sha256=SVfgUYBlCmc4wjYLMRX5xPFgQZxTS3aHBOA_Cx1aJg4,36
|
|
110
|
-
ins_pricing/tests/pricing/test_calibration.py,sha256=hLZuSWOH4t9WKcQ-2srvYp4P5ldr1Yh1dhl7s61vMp8,2420
|
|
111
|
-
ins_pricing/tests/pricing/test_exposure.py,sha256=CrpSncVce-PGt2XzjOX6qV0SA22vKPUv1u8RlKQjt_g,2054
|
|
112
|
-
ins_pricing/tests/pricing/test_factors.py,sha256=NTE7lz1RWChhoRt2K5003DoNRqG_Gu4X1Aauy2NexOg,5093
|
|
113
|
-
ins_pricing/tests/pricing/test_rate_table.py,sha256=ICHfAQsC9TaxXbQVKM5AvBaJXRTVY723Vaz1XOWNMW8,1250
|
|
114
|
-
ins_pricing/tests/production/__init__.py,sha256=WFWlvBVdjg-E-nKaiJ8VTKNELYufJusufpij1p1xwso,39
|
|
115
|
-
ins_pricing/tests/production/test_monitoring.py,sha256=jettbaVLH4a3efLWeiQ6FFukGEw7mmz6_AeYhYX0caQ,11409
|
|
116
|
-
ins_pricing/tests/production/test_predict.py,sha256=PNamNzb-KNbLtT8xbBkwWOcmJC1gXvxj2nnc7dR5fyc,8193
|
|
117
|
-
ins_pricing/tests/production/test_preprocess.py,sha256=tsHYANwJjNlaSo8O4qiwqBvMOMtwmtZymRFm6UrODrE,11084
|
|
118
|
-
ins_pricing/tests/production/test_scoring.py,sha256=fKz2tJomodrRt333apCrjtyJCwg9RHRbWm0lvcU6xm0,9848
|
|
119
|
-
ins_pricing/utils/__init__.py,sha256=ovtolxOvlYp_1SOxZ35OPBdn7JB2O4idzRSQgIlzCvc,2339
|
|
120
|
-
ins_pricing/utils/device.py,sha256=fePvqSaOkzHMBbrHCXAOCKRwdcR8YtiGI5K8Q3ljXJc,7543
|
|
121
|
-
ins_pricing/utils/logging.py,sha256=_AKB4ErmvygwGLtu7Ai7ESemj6Hh8FTgh4cs8j_gVW4,2258
|
|
122
|
-
ins_pricing/utils/metrics.py,sha256=p4g6S1umtXh5-W9I86YJV7qlJm63ik0GvgsDW91kmQw,9313
|
|
123
|
-
ins_pricing/utils/paths.py,sha256=o_tBiclFvBci4cYg9WANwKPxrMcglEdOjDP-EZgGjdQ,8749
|
|
124
|
-
ins_pricing/utils/profiling.py,sha256=kmbykHLcYywlZxAf_aVU8HXID3zOvUcBoO5Q58AijhA,11132
|
|
125
|
-
ins_pricing/utils/torch_compat.py,sha256=UrRsqx2qboDG8WE0OmxNOi08ojwE-dCxTQh0N2s3Rgw,2441
|
|
126
|
-
ins_pricing/utils/validation.py,sha256=4Tw9VUJPk0N-WO3YUqZP-xXRl1Xpubkm0vi3WzzZrv4,13348
|
|
127
|
-
ins_pricing-0.4.5.dist-info/METADATA,sha256=hPEBGaROhj_R7RTIT0fc4J5oeVaImalZYp8DNSC0rG8,5891
|
|
128
|
-
ins_pricing-0.4.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
129
|
-
ins_pricing-0.4.5.dist-info/top_level.txt,sha256=haZuNQpHKNBEPZx3NjLnHp8pV3I_J9QG8-HyJn00FA0,12
|
|
130
|
-
ins_pricing-0.4.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|