ins-pricing 0.4.5__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 (84) hide show
  1. ins_pricing/README.md +48 -22
  2. ins_pricing/__init__.py +142 -90
  3. ins_pricing/cli/BayesOpt_entry.py +52 -50
  4. ins_pricing/cli/BayesOpt_incremental.py +39 -105
  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 +11 -9
  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/__init__.py +10 -10
  15. ins_pricing/frontend/example_workflows.py +1 -1
  16. ins_pricing/governance/__init__.py +20 -20
  17. ins_pricing/governance/release.py +159 -159
  18. ins_pricing/modelling/__init__.py +147 -92
  19. ins_pricing/modelling/{core/bayesopt → bayesopt}/README.md +2 -2
  20. ins_pricing/modelling/{core/bayesopt → bayesopt}/__init__.py +64 -102
  21. ins_pricing/modelling/{core/bayesopt → bayesopt}/config_preprocess.py +562 -562
  22. ins_pricing/modelling/{core/bayesopt → bayesopt}/core.py +965 -964
  23. ins_pricing/modelling/{core/bayesopt → bayesopt}/model_explain_mixin.py +296 -296
  24. ins_pricing/modelling/{core/bayesopt → bayesopt}/model_plotting_mixin.py +482 -548
  25. ins_pricing/modelling/{core/bayesopt → bayesopt}/models/__init__.py +27 -27
  26. ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_ft_trainer.py +915 -913
  27. ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_gnn.py +788 -785
  28. ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_resn.py +448 -446
  29. ins_pricing/modelling/bayesopt/trainers/__init__.py +19 -0
  30. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_base.py +1308 -1308
  31. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_ft.py +3 -3
  32. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_glm.py +197 -198
  33. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_gnn.py +344 -344
  34. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_resn.py +283 -283
  35. ins_pricing/modelling/{core/bayesopt → bayesopt}/trainers/trainer_xgb.py +346 -347
  36. ins_pricing/modelling/bayesopt/utils/__init__.py +67 -0
  37. ins_pricing/modelling/bayesopt/utils/constants.py +21 -0
  38. ins_pricing/modelling/bayesopt/utils/io_utils.py +7 -0
  39. ins_pricing/modelling/bayesopt/utils/losses.py +27 -0
  40. ins_pricing/modelling/bayesopt/utils/metrics_and_devices.py +17 -0
  41. ins_pricing/modelling/{core/bayesopt → bayesopt}/utils/torch_trainer_mixin.py +623 -623
  42. ins_pricing/modelling/{core/evaluation.py → evaluation.py} +113 -104
  43. ins_pricing/modelling/explain/__init__.py +55 -55
  44. ins_pricing/modelling/explain/metrics.py +27 -174
  45. ins_pricing/modelling/explain/permutation.py +237 -237
  46. ins_pricing/modelling/plotting/__init__.py +40 -36
  47. ins_pricing/modelling/plotting/compat.py +228 -0
  48. ins_pricing/modelling/plotting/curves.py +572 -572
  49. ins_pricing/modelling/plotting/diagnostics.py +163 -163
  50. ins_pricing/modelling/plotting/geo.py +362 -362
  51. ins_pricing/modelling/plotting/importance.py +121 -121
  52. ins_pricing/pricing/__init__.py +27 -27
  53. ins_pricing/production/__init__.py +35 -25
  54. ins_pricing/production/{predict.py → inference.py} +140 -57
  55. ins_pricing/production/monitoring.py +8 -21
  56. ins_pricing/reporting/__init__.py +11 -11
  57. ins_pricing/setup.py +1 -1
  58. ins_pricing/tests/production/test_inference.py +90 -0
  59. ins_pricing/utils/__init__.py +116 -83
  60. ins_pricing/utils/device.py +255 -255
  61. ins_pricing/utils/features.py +53 -0
  62. ins_pricing/utils/io.py +72 -0
  63. ins_pricing/{modelling/core/bayesopt/utils → utils}/losses.py +125 -129
  64. ins_pricing/utils/metrics.py +158 -24
  65. ins_pricing/utils/numerics.py +76 -0
  66. ins_pricing/utils/paths.py +9 -1
  67. {ins_pricing-0.4.5.dist-info → ins_pricing-0.5.0.dist-info}/METADATA +182 -182
  68. ins_pricing-0.5.0.dist-info/RECORD +131 -0
  69. ins_pricing/modelling/core/BayesOpt.py +0 -146
  70. ins_pricing/modelling/core/__init__.py +0 -1
  71. ins_pricing/modelling/core/bayesopt/trainers/__init__.py +0 -19
  72. ins_pricing/modelling/core/bayesopt/utils/__init__.py +0 -86
  73. ins_pricing/modelling/core/bayesopt/utils/constants.py +0 -183
  74. ins_pricing/modelling/core/bayesopt/utils/io_utils.py +0 -126
  75. ins_pricing/modelling/core/bayesopt/utils/metrics_and_devices.py +0 -555
  76. ins_pricing/modelling/core/bayesopt/utils.py +0 -105
  77. ins_pricing/modelling/core/bayesopt/utils_backup.py +0 -1503
  78. ins_pricing/tests/production/test_predict.py +0 -233
  79. ins_pricing-0.4.5.dist-info/RECORD +0 -130
  80. /ins_pricing/modelling/{core/bayesopt → bayesopt}/config_components.py +0 -0
  81. /ins_pricing/modelling/{core/bayesopt → bayesopt}/models/model_ft_components.py +0 -0
  82. /ins_pricing/modelling/{core/bayesopt → bayesopt}/utils/distributed_utils.py +0 -0
  83. {ins_pricing-0.4.5.dist-info → ins_pricing-0.5.0.dist-info}/WHEEL +0 -0
  84. {ins_pricing-0.4.5.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
+ ]