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,83 +1,116 @@
1
- """Shared utilities for the ins_pricing package.
2
-
3
- This module provides common utilities used across all submodules:
4
- - Logging: Unified logging system with configurable levels
5
- - Metrics: PSI calculation, model evaluation metrics
6
- - Paths: Path resolution and data loading utilities
7
- - Device: GPU/CPU device management for PyTorch models
8
-
9
- Example:
10
- >>> from ins_pricing.utils import get_logger, psi_report
11
- >>> logger = get_logger("my_module")
12
- >>> logger.info("Processing started")
13
- """
14
-
15
- from __future__ import annotations
16
-
17
- # =============================================================================
18
- # Logging utilities
19
- # =============================================================================
20
- from .logging import get_logger, configure_logging
21
-
22
- # =============================================================================
23
- # Metric utilities (PSI, model evaluation)
24
- # =============================================================================
25
- from .metrics import (
26
- psi_numeric,
27
- psi_categorical,
28
- population_stability_index,
29
- psi_report,
30
- MetricFactory,
31
- )
32
-
33
- # =============================================================================
34
- # Path utilities
35
- # =============================================================================
36
- from .paths import (
37
- resolve_path,
38
- resolve_dir_path,
39
- resolve_data_path,
40
- load_dataset,
41
- coerce_dataset_types,
42
- dedupe_preserve_order,
43
- build_model_names,
44
- parse_model_pairs,
45
- fingerprint_file,
46
- PLOT_MODEL_LABELS,
47
- PYTORCH_TRAINERS,
48
- )
49
-
50
- # =============================================================================
51
- # Device management (GPU/CPU)
52
- # =============================================================================
53
- from .device import (
54
- DeviceManager,
55
- GPUMemoryManager,
56
- )
57
-
58
- __all__ = [
59
- # Logging
60
- "get_logger",
61
- "configure_logging",
62
- # Metrics
63
- "psi_numeric",
64
- "psi_categorical",
65
- "population_stability_index",
66
- "psi_report",
67
- "MetricFactory",
68
- # Paths
69
- "resolve_path",
70
- "resolve_dir_path",
71
- "resolve_data_path",
72
- "load_dataset",
73
- "coerce_dataset_types",
74
- "dedupe_preserve_order",
75
- "build_model_names",
76
- "parse_model_pairs",
77
- "fingerprint_file",
78
- "PLOT_MODEL_LABELS",
79
- "PYTORCH_TRAINERS",
80
- # Device
81
- "DeviceManager",
82
- "GPUMemoryManager",
83
- ]
1
+ """Shared utilities for the ins_pricing package.
2
+
3
+ This module provides common utilities used across all submodules:
4
+ - Logging: Unified logging system with configurable levels
5
+ - Metrics: PSI calculation, model evaluation metrics
6
+ - Paths: Path resolution and data loading utilities
7
+ - IO: File helpers and parameter loading
8
+ - Numerics: EPS, tweedie loss, adaptive batch sizing
9
+ - Device: GPU/CPU device management for PyTorch models
10
+
11
+ Example:
12
+ >>> from ins_pricing.utils import get_logger, psi_report
13
+ >>> logger = get_logger("my_module")
14
+ >>> logger.info("Processing started")
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ # =============================================================================
20
+ # Logging utilities
21
+ # =============================================================================
22
+ from ins_pricing.utils.logging import get_logger, configure_logging
23
+
24
+ # =============================================================================
25
+ # Metric utilities (PSI, model evaluation)
26
+ # =============================================================================
27
+ from ins_pricing.utils.metrics import (
28
+ psi_numeric,
29
+ psi_categorical,
30
+ population_stability_index,
31
+ psi_report,
32
+ MetricFactory,
33
+ )
34
+
35
+ # =============================================================================
36
+ # Numerical helpers
37
+ # =============================================================================
38
+ from ins_pricing.utils.numerics import (
39
+ EPS,
40
+ set_global_seed,
41
+ compute_batch_size,
42
+ tweedie_loss,
43
+ )
44
+
45
+ # =============================================================================
46
+ # Feature inference
47
+ # =============================================================================
48
+ from ins_pricing.utils.features import infer_factor_and_cate_list
49
+
50
+ # =============================================================================
51
+ # IO helpers
52
+ # =============================================================================
53
+ from ins_pricing.utils.io import IOUtils, csv_to_dict, ensure_parent_dir
54
+
55
+ # =============================================================================
56
+ # Path utilities
57
+ # =============================================================================
58
+ from ins_pricing.utils.paths import (
59
+ resolve_path,
60
+ resolve_dir_path,
61
+ resolve_data_path,
62
+ load_dataset,
63
+ coerce_dataset_types,
64
+ dedupe_preserve_order,
65
+ build_model_names,
66
+ parse_model_pairs,
67
+ fingerprint_file,
68
+ PLOT_MODEL_LABELS,
69
+ PYTORCH_TRAINERS,
70
+ )
71
+
72
+ # =============================================================================
73
+ # Device management (GPU/CPU)
74
+ # =============================================================================
75
+ from ins_pricing.utils.device import (
76
+ DeviceManager,
77
+ GPUMemoryManager,
78
+ )
79
+
80
+ __all__ = [
81
+ # Logging
82
+ "get_logger",
83
+ "configure_logging",
84
+ # Metrics
85
+ "psi_numeric",
86
+ "psi_categorical",
87
+ "population_stability_index",
88
+ "psi_report",
89
+ "MetricFactory",
90
+ # Numerics
91
+ "EPS",
92
+ "set_global_seed",
93
+ "compute_batch_size",
94
+ "tweedie_loss",
95
+ # Features
96
+ "infer_factor_and_cate_list",
97
+ # IO
98
+ "IOUtils",
99
+ "csv_to_dict",
100
+ "ensure_parent_dir",
101
+ # Paths
102
+ "resolve_path",
103
+ "resolve_dir_path",
104
+ "resolve_data_path",
105
+ "load_dataset",
106
+ "coerce_dataset_types",
107
+ "dedupe_preserve_order",
108
+ "build_model_names",
109
+ "parse_model_pairs",
110
+ "fingerprint_file",
111
+ "PLOT_MODEL_LABELS",
112
+ "PYTORCH_TRAINERS",
113
+ # Device
114
+ "DeviceManager",
115
+ "GPUMemoryManager",
116
+ ]