ins-pricing 0.4.4__py3-none-any.whl → 0.5.0__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.
Files changed (96) hide show
  1. ins_pricing/README.md +74 -56
  2. ins_pricing/__init__.py +142 -90
  3. ins_pricing/cli/BayesOpt_entry.py +52 -50
  4. ins_pricing/cli/BayesOpt_incremental.py +832 -898
  5. ins_pricing/cli/Explain_Run.py +31 -23
  6. ins_pricing/cli/Explain_entry.py +532 -579
  7. ins_pricing/cli/Pricing_Run.py +31 -23
  8. ins_pricing/cli/bayesopt_entry_runner.py +1440 -1438
  9. ins_pricing/cli/utils/cli_common.py +256 -256
  10. ins_pricing/cli/utils/cli_config.py +375 -375
  11. ins_pricing/cli/utils/import_resolver.py +382 -365
  12. ins_pricing/cli/utils/notebook_utils.py +340 -340
  13. ins_pricing/cli/watchdog_run.py +209 -201
  14. ins_pricing/frontend/README.md +573 -419
  15. ins_pricing/frontend/__init__.py +10 -10
  16. ins_pricing/frontend/config_builder.py +1 -0
  17. ins_pricing/frontend/example_workflows.py +1 -1
  18. ins_pricing/governance/__init__.py +20 -20
  19. ins_pricing/governance/release.py +159 -159
  20. ins_pricing/modelling/README.md +67 -0
  21. ins_pricing/modelling/__init__.py +147 -92
  22. ins_pricing/modelling/bayesopt/README.md +59 -0
  23. ins_pricing/modelling/{core/bayesopt → bayesopt}/__init__.py +64 -102
  24. ins_pricing/modelling/{core/bayesopt → bayesopt}/config_preprocess.py +562 -550
  25. ins_pricing/modelling/{core/bayesopt → bayesopt}/core.py +965 -962
  26. ins_pricing/modelling/{core/bayesopt → bayesopt}/model_explain_mixin.py +296 -296
  27. ins_pricing/modelling/{core/bayesopt → bayesopt}/model_plotting_mixin.py +482 -548
  28. ins_pricing/modelling/{core/bayesopt → bayesopt}/models/__init__.py +27 -27
  29. ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_ft_trainer.py +915 -913
  30. ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_gnn.py +788 -785
  31. ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_resn.py +448 -446
  32. ins_pricing/modelling/bayesopt/trainers/__init__.py +19 -0
  33. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_base.py +1308 -1308
  34. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_ft.py +3 -3
  35. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_glm.py +197 -198
  36. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_gnn.py +344 -344
  37. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_resn.py +283 -283
  38. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_xgb.py +346 -347
  39. ins_pricing/modelling/bayesopt/utils/__init__.py +67 -0
  40. ins_pricing/modelling/bayesopt/utils/constants.py +21 -0
  41. ins_pricing/modelling/bayesopt/utils/io_utils.py +7 -0
  42. ins_pricing/modelling/bayesopt/utils/losses.py +27 -0
  43. ins_pricing/modelling/bayesopt/utils/metrics_and_devices.py +17 -0
  44. ins_pricing/modelling/{core/bayesopt → bayesopt}/utils/torch_trainer_mixin.py +623 -623
  45. ins_pricing/modelling/{core/evaluation.py → evaluation.py} +113 -104
  46. ins_pricing/modelling/explain/__init__.py +55 -55
  47. ins_pricing/modelling/explain/metrics.py +27 -174
  48. ins_pricing/modelling/explain/permutation.py +237 -237
  49. ins_pricing/modelling/plotting/__init__.py +40 -36
  50. ins_pricing/modelling/plotting/compat.py +228 -0
  51. ins_pricing/modelling/plotting/curves.py +572 -572
  52. ins_pricing/modelling/plotting/diagnostics.py +163 -163
  53. ins_pricing/modelling/plotting/geo.py +362 -362
  54. ins_pricing/modelling/plotting/importance.py +121 -121
  55. ins_pricing/pricing/__init__.py +27 -27
  56. ins_pricing/production/__init__.py +35 -25
  57. ins_pricing/production/{predict.py → inference.py} +140 -57
  58. ins_pricing/production/monitoring.py +8 -21
  59. ins_pricing/reporting/__init__.py +11 -11
  60. ins_pricing/setup.py +1 -1
  61. ins_pricing/tests/production/test_inference.py +90 -0
  62. ins_pricing/utils/__init__.py +116 -83
  63. ins_pricing/utils/device.py +255 -255
  64. ins_pricing/utils/features.py +53 -0
  65. ins_pricing/utils/io.py +72 -0
  66. ins_pricing/{modelling/core/bayesopt/utils → utils}/losses.py +125 -129
  67. ins_pricing/utils/metrics.py +158 -24
  68. ins_pricing/utils/numerics.py +76 -0
  69. ins_pricing/utils/paths.py +9 -1
  70. {ins_pricing-0.4.4.dist-info → ins_pricing-0.5.0.dist-info}/METADATA +55 -35
  71. ins_pricing-0.5.0.dist-info/RECORD +131 -0
  72. ins_pricing/CHANGELOG.md +0 -272
  73. ins_pricing/RELEASE_NOTES_0.2.8.md +0 -344
  74. ins_pricing/docs/LOSS_FUNCTIONS.md +0 -78
  75. ins_pricing/docs/modelling/BayesOpt_USAGE.md +0 -945
  76. ins_pricing/docs/modelling/README.md +0 -34
  77. ins_pricing/frontend/QUICKSTART.md +0 -152
  78. ins_pricing/modelling/core/BayesOpt.py +0 -146
  79. ins_pricing/modelling/core/__init__.py +0 -1
  80. ins_pricing/modelling/core/bayesopt/PHASE2_REFACTORING_SUMMARY.md +0 -449
  81. ins_pricing/modelling/core/bayesopt/PHASE3_REFACTORING_SUMMARY.md +0 -406
  82. ins_pricing/modelling/core/bayesopt/REFACTORING_SUMMARY.md +0 -247
  83. ins_pricing/modelling/core/bayesopt/trainers/__init__.py +0 -19
  84. ins_pricing/modelling/core/bayesopt/utils/__init__.py +0 -86
  85. ins_pricing/modelling/core/bayesopt/utils/constants.py +0 -183
  86. ins_pricing/modelling/core/bayesopt/utils/io_utils.py +0 -126
  87. ins_pricing/modelling/core/bayesopt/utils/metrics_and_devices.py +0 -555
  88. ins_pricing/modelling/core/bayesopt/utils.py +0 -105
  89. ins_pricing/modelling/core/bayesopt/utils_backup.py +0 -1503
  90. ins_pricing/tests/production/test_predict.py +0 -233
  91. ins_pricing-0.4.4.dist-info/RECORD +0 -137
  92. /ins_pricing/modelling/{core/bayesopt → bayesopt}/config_components.py +0 -0
  93. /ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_ft_components.py +0 -0
  94. /ins_pricing/modelling/{core/bayesopt → bayesopt}/utils/distributed_utils.py +0 -0
  95. {ins_pricing-0.4.4.dist-info → ins_pricing-0.5.0.dist-info}/WHEEL +0 -0
  96. {ins_pricing-0.4.4.dist-info → ins_pricing-0.5.0.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,137 +0,0 @@
1
- ins_pricing/CHANGELOG.md,sha256=5fgGpaLI3kc_JuV3it0yNgMATst5fWEKuNT121Djea8,11633
2
- ins_pricing/README.md,sha256=W4V2xtzM6pyQzwJPvWP7cNn-We9rxM8xrxRlBVQwoY8,3399
3
- ins_pricing/RELEASE_NOTES_0.2.8.md,sha256=KIJzk1jbZbZPKjwnkPSDHO_2Ipv3SP3CzCNDdf07jI0,9331
4
- ins_pricing/__init__.py,sha256=46j1wCdLVrgrofeBwKl-3NXTxzjbTv-w3KjW-dyKGiY,2622
5
- ins_pricing/exceptions.py,sha256=5fZavPV4zNJ7wPC75L215KkHXX9pRrfDAYZOdSKJMGo,4778
6
- ins_pricing/setup.py,sha256=skNhJD6j6gCSzDBOl7RI2YikhLMySbTS1qQ2MHRzJg0,1702
7
- ins_pricing/cli/BayesOpt_entry.py,sha256=6UBVxu36O3bXn1WC-BBi-l_W9_MqEoHmDGnwwDKNo5Q,1594
8
- ins_pricing/cli/BayesOpt_incremental.py,sha256=_Klr5vvNoq_TbgwrH_T3f0a6cHmA9iVJMViiji6ahJY,35927
9
- ins_pricing/cli/Explain_Run.py,sha256=gEPQjqHiXyXlCTKjUzwSvbAn5_h74ABgb_sEGs-YHVE,664
10
- ins_pricing/cli/Explain_entry.py,sha256=xS23x31qRvXqy2Wvo21wbkxmPRLHy77aZbtjY-J59NA,23570
11
- ins_pricing/cli/Pricing_Run.py,sha256=qZribQ_ku4NK4oIvlrLJdM-jyyKtIUoCbbvo8Wh_RQ4,711
12
- ins_pricing/cli/__init__.py,sha256=F296f1J_tBPv33lDJQ6LaN_CPwMJTMtOuTsMof0dr2o,50
13
- ins_pricing/cli/bayesopt_entry_runner.py,sha256=Cl5_uw_nHxkRESUW_OLjSJaHQMfiXdbitttN7ZS-tVM,53841
14
- ins_pricing/cli/watchdog_run.py,sha256=ehUkN9VqsQkxc6YC_WLanU6Pu-ers-nvPEtCaJ9UsgY,6188
15
- ins_pricing/cli/utils/__init__.py,sha256=u3kt1B27OiuOEgw6PQN-fNs9vNiAjdPyybsRQsZkM_I,54
16
- ins_pricing/cli/utils/cli_common.py,sha256=CgMnN_0NQQt7Bh5RjClOydz0LzU2TBmIOsFa3KxYQOQ,8254
17
- ins_pricing/cli/utils/cli_config.py,sha256=TC8fR1XdQIbaojbeac7dESj7TmCKSfpZTbLvJrkJLEY,13247
18
- ins_pricing/cli/utils/evaluation_context.py,sha256=0zuDOcVzkWiuj4HyAT0psaAfEbSqpDXEGXSjxztHY6E,9485
19
- ins_pricing/cli/utils/import_resolver.py,sha256=Ut-SBN4F2sw8O7B3GveMoZn4__1IGwljvxC4sLU0tpk,12531
20
- ins_pricing/cli/utils/notebook_utils.py,sha256=xjSjn6z4_x2vfX1SV4X_VG0jXdK1KJzWJ5tJ4CHFxy0,12037
21
- ins_pricing/cli/utils/run_logging.py,sha256=V3Wh2EV6c1Mo0QTvfe4hl2J4LOR6bdQsT210o__YBWk,3677
22
- ins_pricing/docs/LOSS_FUNCTIONS.md,sha256=PCiHcVHaEpwSLQEXZzusQxojY4UmmTHmVxIpSmacGsI,2381
23
- ins_pricing/docs/modelling/BayesOpt_USAGE.md,sha256=O5A50RT-drWsEhKIooqWJPfTNN1AwB0166MLli0vMvw,40593
24
- ins_pricing/docs/modelling/README.md,sha256=2a7m1dBnacxBKjEV9k16Qj9IPstlwwuis1QxdsMrFmA,1976
25
- ins_pricing/frontend/QUICKSTART.md,sha256=uS5RuuICXt8J7BjPruoGOoAnTBjzgaNpwqemmUqZrZ4,4488
26
- ins_pricing/frontend/README.md,sha256=Dlo4QghAWkawIK_x2P-0hu2Sv2yZTFkduOPxVLe_1qs,12524
27
- ins_pricing/frontend/__init__.py,sha256=KeL6QbUGAzWKbjGyZi_u7p289Zv5yslRCNZ6wHWY63Q,335
28
- ins_pricing/frontend/app.py,sha256=DBrnewX5RUjuJXGEezihZJcDnp-tEeA-fCuTeqAFEqU,38484
29
- ins_pricing/frontend/config_builder.py,sha256=pKeWaC2KD3Slub5sJLetqBJVdBy01dcfmReJuf-8LCo,12230
30
- ins_pricing/frontend/example_config.json,sha256=aDXH9_5bVlIclwMWH5WfgK572LVuraNbj4565o3d71k,741
31
- ins_pricing/frontend/example_workflows.py,sha256=7iuFOIhN6l__3AVDkhDU7zvi2oWx_Z9lktpATPM336s,36813
32
- ins_pricing/frontend/ft_workflow.py,sha256=CWrviErHEjZ2NPibIbPh69AYKPVkn-mXY7uncPihn-0,11206
33
- ins_pricing/frontend/runner.py,sha256=0OB7C04PHpU04VrzZlEE-zOWrbdk5aztRck2BXKzbTc,13471
34
- ins_pricing/governance/README.md,sha256=XnXLS5RPzWhEiicJ3WtGmpN935jppHhPftA9Lo2DPnQ,511
35
- ins_pricing/governance/__init__.py,sha256=d8tiDhOvHvAvgSohY1xv0vuEeHj8Gl1apQtw7ryEKM0,517
36
- ins_pricing/governance/approval.py,sha256=cjJQjU1ziR-d-9wVSXyMyX6S5zijJqDWERZNxjqGAUE,2879
37
- ins_pricing/governance/audit.py,sha256=f0aw-LaOxH5NGzxwczeLrGMJcxO-JDRn99BpI55KRn4,1040
38
- ins_pricing/governance/registry.py,sha256=2uxQL6qMGY5IYWJti9MpaV_auvL--piJaasFrX20ghk,3139
39
- ins_pricing/governance/release.py,sha256=ltyFIdeKbwj9fnEDxcQCURaQ5Zc_j0mqXFPNunmX_NQ,4743
40
- ins_pricing/modelling/__init__.py,sha256=0tiXRE3rAwSxHT0dSaosWf_vGd7FpRA_kHW6dclr4PA,2710
41
- ins_pricing/modelling/core/BayesOpt.py,sha256=i2tB3c6EeucjKAsHyicGDNU7DVVCTihg-TgSoM1y18E,3332
42
- ins_pricing/modelling/core/__init__.py,sha256=bF5OWfK_mfg5P2oz2jid3MGi9uA13fpqKK-DbPkuci0,54
43
- ins_pricing/modelling/core/evaluation.py,sha256=wEMWdzs12vPnDo5t183ORMDA6APuc5g6g9Uyfd6GVi8,3905
44
- ins_pricing/modelling/core/bayesopt/PHASE2_REFACTORING_SUMMARY.md,sha256=x8890HLvIZ7q2N0AdYwL1_8lBUl6vClZ9SoEj-BskuQ,11835
45
- ins_pricing/modelling/core/bayesopt/PHASE3_REFACTORING_SUMMARY.md,sha256=B8ZEzaLesU454OaR10Tg50es7t30UB9pxF6GabbNbj0,11804
46
- ins_pricing/modelling/core/bayesopt/REFACTORING_SUMMARY.md,sha256=hJZKXe9-bBGJVN_5c5l8nHQ1X7NK4BbeE-uXQoH0rAM,7479
47
- ins_pricing/modelling/core/bayesopt/__init__.py,sha256=nj6IA0r7D5U5-hYyiwXmcp_bEtoU-hRJ_prdtRmLMg0,2070
48
- ins_pricing/modelling/core/bayesopt/config_components.py,sha256=OjRyM1EuSXL9_3THD1nGLRsioJs7lO_ZKVZDkUA3LX8,12156
49
- ins_pricing/modelling/core/bayesopt/config_preprocess.py,sha256=vjxhDuJJm-bYyfphWnsZP_O3Tgtx22WGo80myLCB4cw,21647
50
- ins_pricing/modelling/core/bayesopt/core.py,sha256=1m4pCrPP3iYIfU6QX3j6Eczjwz3-cD4ySzv9bll3PGg,44474
51
- ins_pricing/modelling/core/bayesopt/model_explain_mixin.py,sha256=jCk1zPpwgwBBCndaq-A0_cQnc4RHueh2p5cAuE9ArTo,11620
52
- ins_pricing/modelling/core/bayesopt/model_plotting_mixin.py,sha256=lD0rUvWV4eWatmTzMrmAUm2Flj8uAOa3R9S2JyYV94k,21807
53
- ins_pricing/modelling/core/bayesopt/utils.py,sha256=fTDqBHCxsOVte0QhPqnMw8vkefIvkppufIRkt9iHqjU,2852
54
- ins_pricing/modelling/core/bayesopt/utils_backup.py,sha256=5RKizpR3j6KwR87WqqaXPtgjQXWPW4vM75sIkx38SSM,57924
55
- ins_pricing/modelling/core/bayesopt/models/__init__.py,sha256=vFFCkGnO6rm50TbxR6QekKKQjq-NW4UFwog6fng8-p8,700
56
- ins_pricing/modelling/core/bayesopt/models/model_ft_components.py,sha256=oDhmJQ26zF0PhoDC5Z2McA-JpLbXFQjSREqy0w_hWlQ,11883
57
- ins_pricing/modelling/core/bayesopt/models/model_ft_trainer.py,sha256=jk9pm7IzVLG8YYOneW1DPsULulbF9PQ9nNJ8EOlHF5I,39754
58
- ins_pricing/modelling/core/bayesopt/models/model_gnn.py,sha256=blCTgML-fMkHDerzwoJZPw2XnEvuwVR_U5t0YWE1lZI,32901
59
- ins_pricing/modelling/core/bayesopt/models/model_resn.py,sha256=Pddu0q04Sz8RwKqjP0fv4xXWd6KobwMsD47sCDBbB-Y,17581
60
- ins_pricing/modelling/core/bayesopt/trainers/__init__.py,sha256=ODYKjT-v4IDxu4ohGLCXY8r1-pMME9LAaNx6pmj5_38,481
61
- ins_pricing/modelling/core/bayesopt/trainers/trainer_base.py,sha256=DOam1HLsslNQlhQt88j6LWCZekioaNzw2PbKzLwtszY,55687
62
- ins_pricing/modelling/core/bayesopt/trainers/trainer_ft.py,sha256=o8uyDvEsJ3NrVy-VRo7c3DoKcJQsFSK4vY29vYMkrSk,37093
63
- ins_pricing/modelling/core/bayesopt/trainers/trainer_glm.py,sha256=gMhx9IX9nz-rsf-zi9UYMtViBPD1nmQ5r8XVPGU21Ys,7912
64
- ins_pricing/modelling/core/bayesopt/trainers/trainer_gnn.py,sha256=vJbQTm-3ByBguZYz4gvYhXeWbUa0L7z7mxaxoamGsic,14259
65
- ins_pricing/modelling/core/bayesopt/trainers/trainer_resn.py,sha256=MaxCvmyybE72H38akOA_rNW3Rx9Mxb229ZRJaqIzWTA,11855
66
- ins_pricing/modelling/core/bayesopt/trainers/trainer_xgb.py,sha256=NlEqH0wxe5frwxXNTeymWX5_qC3_rIzF3QjDZz4RBMg,13752
67
- ins_pricing/modelling/core/bayesopt/utils/__init__.py,sha256=dbf4DrWOH4rABOuaZdBF7drYOBH5prjvM0TexT6DYyg,1911
68
- ins_pricing/modelling/core/bayesopt/utils/constants.py,sha256=0ihYxGlJ8tIElYvkhIDe5FfJShegvu29WZ_Xvfqa0iE,5790
69
- ins_pricing/modelling/core/bayesopt/utils/distributed_utils.py,sha256=cu01dHyYE5EREbmtJgCHSH6z5mQIqajz8_-oWZV6zVc,5787
70
- ins_pricing/modelling/core/bayesopt/utils/io_utils.py,sha256=vXDlAc_taCG2joxnC6wu0jVYA76UhRbX9OT_5z_im-E,3857
71
- ins_pricing/modelling/core/bayesopt/utils/losses.py,sha256=yn3ggeM1NRkCzcTt_Nef_EvpD6Pb_jGs49bj-VV4uWU,3894
72
- ins_pricing/modelling/core/bayesopt/utils/metrics_and_devices.py,sha256=kfQZnGE8FvGfl7WsTFShGGIA_sQhp5Th9mrwUXphiNQ,21200
73
- ins_pricing/modelling/core/bayesopt/utils/torch_trainer_mixin.py,sha256=qxSAP4vQC-JTHTZ7SDPZx7ZKyJKLwcAOP0IWr4GA_l4,25881
74
- ins_pricing/modelling/explain/__init__.py,sha256=CPoGzGu8TTO3FOXjxoXC13VkuIDCf3YTH6L3BqJq3Ok,1171
75
- ins_pricing/modelling/explain/gradients.py,sha256=9TqCws_p49nFxVMcjVxe4KCZ7frezeL0uV_LCdoM5yo,11088
76
- ins_pricing/modelling/explain/metrics.py,sha256=K_xOY7ZrHWhbJ79RNB7eXN3VXeTe8vq68ZLH2BlZufA,5389
77
- ins_pricing/modelling/explain/permutation.py,sha256=TeVlhz7FWyPsaZwEP3BSLa0BZgdOq74coZqnadkGaPw,9333
78
- ins_pricing/modelling/explain/shap_utils.py,sha256=70zRIHPPdoECFOFQeBTRxLZF-6sjaGJBNMIRS4_kmVI,10462
79
- ins_pricing/modelling/plotting/__init__.py,sha256=BBQKcE7IYUYObFrjpSnfNS6rmzc80Lae7oEqxKz-vEk,1058
80
- ins_pricing/modelling/plotting/common.py,sha256=_kFq7JMA0LnKIp4bqAFvr-24VaHjj9pegDMm1qP9_7Y,1439
81
- ins_pricing/modelling/plotting/curves.py,sha256=fEnoeHAVvLPI5HXadNLUoWygmHtNWCngynLdZK868NQ,18398
82
- ins_pricing/modelling/plotting/diagnostics.py,sha256=AlkBtHuezRoDgMeXm56A1bK6Kn0rWOBy4Uts_xOocrs,5164
83
- ins_pricing/modelling/plotting/geo.py,sha256=sRJTYOcAphNFM-oww4qbw9MoZneBCJtur96sYuqSNkw,11009
84
- ins_pricing/modelling/plotting/importance.py,sha256=xs3l9uW_rCrakoA__fanIph6DK2jN_DugsKASAzteJU,3666
85
- ins_pricing/pricing/README.md,sha256=PEcyw5oDkqJHOqnNdzBdbbpZwG4SOlnhMwY-owwQ0GI,1064
86
- ins_pricing/pricing/__init__.py,sha256=XFplK3zkxPyNQZJd1Gn6_VvpwHLedMqxAd_Vn9tqsTE,881
87
- ins_pricing/pricing/calibration.py,sha256=cx9fbDoOnNEMGPH6Js1EDMfVwy9J7zf_90yuNwD7W6I,6196
88
- ins_pricing/pricing/data_quality.py,sha256=8FecBE60cABsTZE7HETuoKCEOXIrirGAFgg5wQCZrmU,4043
89
- ins_pricing/pricing/exposure.py,sha256=rw8kKZ_1QdeGTCm13ck9NXrRBPt6TunxRw2s_qkHYkg,2575
90
- ins_pricing/pricing/factors.py,sha256=1cqDqdXRLb9-yt-x60f0lPWdgAAOvk7slnawVIKcWDo,6573
91
- ins_pricing/pricing/monitoring.py,sha256=GnfF2g1C9KzDks9ELBykfAd0zzVBUvjuTWoffa7aGbI,613
92
- ins_pricing/pricing/rate_table.py,sha256=llDW95i7gR6cCtGFwcGqgpgFvOOPCURaJWmuQw1oce8,2473
93
- ins_pricing/production/__init__.py,sha256=plUjyiwxrzHDDgXKezyGp9UHOg7Mav4f0ryXYtNmbfs,885
94
- ins_pricing/production/drift.py,sha256=q_oE_h2NbVETTBkh9QUu8Y68ERuFFcrfKpOb3zBcvsA,383
95
- ins_pricing/production/monitoring.py,sha256=A6Hyc5WSKhFkDZOIrqmFteuDee75CdcwdTq644vrk-U,4836
96
- ins_pricing/production/predict.py,sha256=Robvp63tlxqWJhgiZ3BoC4slX8qYJRh4GrM4L4BGycw,24571
97
- ins_pricing/production/preprocess.py,sha256=cl20X0rVcKNCjVJswB8SdHffMgox6Qga4Ac29L6pW5g,9404
98
- ins_pricing/production/scoring.py,sha256=yFmMmbYb7w_RC4uZOCMnAjLMRcjXQWIuT1nsfu-bwuc,1379
99
- ins_pricing/reporting/README.md,sha256=kTVdB6pNewwh1HlCHrI2SzWTgprtQoQprLRQ2qLdgNA,486
100
- ins_pricing/reporting/__init__.py,sha256=Se5Cdomv9_RwkIDizkw1yx4iCMcjhjTHb4pZK6K895c,242
101
- ins_pricing/reporting/report_builder.py,sha256=53ZFqGUx2isAoigT5IDwvXkek67zN7-6IgKeGpJhO7c,2241
102
- ins_pricing/reporting/scheduler.py,sha256=9koG_1cmWvLqrS66uzMJuAlYI2VTkynV19ssB2TtcKU,1336
103
- ins_pricing/tests/governance/__init__.py,sha256=5Nxg4_dIxY_J58_x2QOXrrRgw6L51Md0Wnt5Up-chqg,39
104
- ins_pricing/tests/governance/test_audit.py,sha256=ubybXSTVILPN4VxQ2fMnG6oPNv4LjJJE3EsQ53NYdLU,1702
105
- ins_pricing/tests/governance/test_registry.py,sha256=TvkNMLHViNuopjjho6oETwZ9d6MNaNM1xbL6URPDKSk,4602
106
- ins_pricing/tests/governance/test_release.py,sha256=Cdo6prZ0xlioAP2AYHodzgASEIa6ZCLjbXW9Me2RGKk,2347
107
- ins_pricing/tests/modelling/conftest.py,sha256=0KUXnkTgIGEIsf0J4uzIx5Kq4JkDyFo81Mv0qvIzW9k,180
108
- ins_pricing/tests/modelling/test_cross_val_generic.py,sha256=iLZOFmdyrycB15lFWoQphkFlEjzZTozQXTLVOHLw2Qg,1721
109
- ins_pricing/tests/modelling/test_distributed_utils.py,sha256=9cStpDw7jPdQwmm0Po-G2tB04uzSR1CoOUZMLuB61yI,466
110
- ins_pricing/tests/modelling/test_explain.py,sha256=NZqKYuL-eSf9eC5ttjcMirfOc48ORMXZQm5PjmYk4jY,1445
111
- ins_pricing/tests/modelling/test_geo_tokens_split.py,sha256=Ti57IynKB0aWOosr0g2RcZlDZyZC012XZ-hm6tWXBJg,1554
112
- ins_pricing/tests/modelling/test_graph_cache.py,sha256=QEI5cLLtQ9_zwRR50KqUf8qxo9Jcp1WLxIGs4dSoMNk,821
113
- ins_pricing/tests/modelling/test_plotting.py,sha256=4gJax72l40fQrjyJQLOgUmaT6xn6zXpujEaFNeHVwGw,1911
114
- ins_pricing/tests/modelling/test_plotting_library.py,sha256=SB5RjKTaPydK848V0xpqEaJtEWhRv6ZfnHmnnzjaPh4,4079
115
- ins_pricing/tests/modelling/test_preprocessor.py,sha256=FqbKltV803Pd-ZY1xBc4XF1T-INDuUliaVcMIDPmBxI,1438
116
- ins_pricing/tests/pricing/__init__.py,sha256=SVfgUYBlCmc4wjYLMRX5xPFgQZxTS3aHBOA_Cx1aJg4,36
117
- ins_pricing/tests/pricing/test_calibration.py,sha256=hLZuSWOH4t9WKcQ-2srvYp4P5ldr1Yh1dhl7s61vMp8,2420
118
- ins_pricing/tests/pricing/test_exposure.py,sha256=CrpSncVce-PGt2XzjOX6qV0SA22vKPUv1u8RlKQjt_g,2054
119
- ins_pricing/tests/pricing/test_factors.py,sha256=NTE7lz1RWChhoRt2K5003DoNRqG_Gu4X1Aauy2NexOg,5093
120
- ins_pricing/tests/pricing/test_rate_table.py,sha256=ICHfAQsC9TaxXbQVKM5AvBaJXRTVY723Vaz1XOWNMW8,1250
121
- ins_pricing/tests/production/__init__.py,sha256=WFWlvBVdjg-E-nKaiJ8VTKNELYufJusufpij1p1xwso,39
122
- ins_pricing/tests/production/test_monitoring.py,sha256=jettbaVLH4a3efLWeiQ6FFukGEw7mmz6_AeYhYX0caQ,11409
123
- ins_pricing/tests/production/test_predict.py,sha256=PNamNzb-KNbLtT8xbBkwWOcmJC1gXvxj2nnc7dR5fyc,8193
124
- ins_pricing/tests/production/test_preprocess.py,sha256=tsHYANwJjNlaSo8O4qiwqBvMOMtwmtZymRFm6UrODrE,11084
125
- ins_pricing/tests/production/test_scoring.py,sha256=fKz2tJomodrRt333apCrjtyJCwg9RHRbWm0lvcU6xm0,9848
126
- ins_pricing/utils/__init__.py,sha256=ovtolxOvlYp_1SOxZ35OPBdn7JB2O4idzRSQgIlzCvc,2339
127
- ins_pricing/utils/device.py,sha256=fePvqSaOkzHMBbrHCXAOCKRwdcR8YtiGI5K8Q3ljXJc,7543
128
- ins_pricing/utils/logging.py,sha256=_AKB4ErmvygwGLtu7Ai7ESemj6Hh8FTgh4cs8j_gVW4,2258
129
- ins_pricing/utils/metrics.py,sha256=p4g6S1umtXh5-W9I86YJV7qlJm63ik0GvgsDW91kmQw,9313
130
- ins_pricing/utils/paths.py,sha256=o_tBiclFvBci4cYg9WANwKPxrMcglEdOjDP-EZgGjdQ,8749
131
- ins_pricing/utils/profiling.py,sha256=kmbykHLcYywlZxAf_aVU8HXID3zOvUcBoO5Q58AijhA,11132
132
- ins_pricing/utils/torch_compat.py,sha256=UrRsqx2qboDG8WE0OmxNOi08ojwE-dCxTQh0N2s3Rgw,2441
133
- ins_pricing/utils/validation.py,sha256=4Tw9VUJPk0N-WO3YUqZP-xXRl1Xpubkm0vi3WzzZrv4,13348
134
- ins_pricing-0.4.4.dist-info/METADATA,sha256=OIsdS7Kh7LadvJ2EqK_ZVxNqEAtWEU2X3IqvEi2eD4I,6263
135
- ins_pricing-0.4.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
136
- ins_pricing-0.4.4.dist-info/top_level.txt,sha256=haZuNQpHKNBEPZx3NjLnHp8pV3I_J9QG8-HyJn00FA0,12
137
- ins_pricing-0.4.4.dist-info/RECORD,,