spforge 0.8.31__tar.gz → 0.8.32__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.

Potentially problematic release.


This version of spforge might be problematic. Click here for more details.

Files changed (120) hide show
  1. {spforge-0.8.31/spforge.egg-info → spforge-0.8.32}/PKG-INFO +1 -1
  2. {spforge-0.8.31 → spforge-0.8.32}/pyproject.toml +1 -1
  3. {spforge-0.8.31 → spforge-0.8.32}/spforge/scorer/_score.py +2 -4
  4. {spforge-0.8.31 → spforge-0.8.32/spforge.egg-info}/PKG-INFO +1 -1
  5. {spforge-0.8.31 → spforge-0.8.32}/tests/scorer/test_scorer_name.py +13 -0
  6. {spforge-0.8.31 → spforge-0.8.32}/LICENSE +0 -0
  7. {spforge-0.8.31 → spforge-0.8.32}/MANIFEST.in +0 -0
  8. {spforge-0.8.31 → spforge-0.8.32}/README.md +0 -0
  9. {spforge-0.8.31 → spforge-0.8.32}/examples/__init__.py +0 -0
  10. {spforge-0.8.31 → spforge-0.8.32}/examples/game_level_example.py +0 -0
  11. {spforge-0.8.31 → spforge-0.8.32}/examples/lol/__init__.py +0 -0
  12. {spforge-0.8.31 → spforge-0.8.32}/examples/lol/data/__init__.py +0 -0
  13. {spforge-0.8.31 → spforge-0.8.32}/examples/lol/data/subsample_lol_data.parquet +0 -0
  14. {spforge-0.8.31 → spforge-0.8.32}/examples/lol/data/utils.py +0 -0
  15. {spforge-0.8.31 → spforge-0.8.32}/examples/lol/pipeline_transformer_example.py +0 -0
  16. {spforge-0.8.31 → spforge-0.8.32}/examples/nba/__init__.py +0 -0
  17. {spforge-0.8.31 → spforge-0.8.32}/examples/nba/cross_validation_example.py +0 -0
  18. {spforge-0.8.31 → spforge-0.8.32}/examples/nba/data/__init__.py +0 -0
  19. {spforge-0.8.31 → spforge-0.8.32}/examples/nba/data/game_player_subsample.parquet +0 -0
  20. {spforge-0.8.31 → spforge-0.8.32}/examples/nba/data/utils.py +0 -0
  21. {spforge-0.8.31 → spforge-0.8.32}/examples/nba/feature_engineering_example.py +0 -0
  22. {spforge-0.8.31 → spforge-0.8.32}/examples/nba/game_winner_example.py +0 -0
  23. {spforge-0.8.31 → spforge-0.8.32}/examples/nba/predictor_transformers_example.py +0 -0
  24. {spforge-0.8.31 → spforge-0.8.32}/setup.cfg +0 -0
  25. {spforge-0.8.31 → spforge-0.8.32}/spforge/__init__.py +0 -0
  26. {spforge-0.8.31 → spforge-0.8.32}/spforge/autopipeline.py +0 -0
  27. {spforge-0.8.31 → spforge-0.8.32}/spforge/base_feature_generator.py +0 -0
  28. {spforge-0.8.31 → spforge-0.8.32}/spforge/cross_validator/__init__.py +0 -0
  29. {spforge-0.8.31 → spforge-0.8.32}/spforge/cross_validator/_base.py +0 -0
  30. {spforge-0.8.31 → spforge-0.8.32}/spforge/cross_validator/cross_validator.py +0 -0
  31. {spforge-0.8.31 → spforge-0.8.32}/spforge/data_structures.py +0 -0
  32. {spforge-0.8.31 → spforge-0.8.32}/spforge/distributions/__init__.py +0 -0
  33. {spforge-0.8.31 → spforge-0.8.32}/spforge/distributions/_negative_binomial_estimator.py +0 -0
  34. {spforge-0.8.31 → spforge-0.8.32}/spforge/distributions/_normal_distribution_predictor.py +0 -0
  35. {spforge-0.8.31 → spforge-0.8.32}/spforge/distributions/_student_t_distribution_estimator.py +0 -0
  36. {spforge-0.8.31 → spforge-0.8.32}/spforge/estimator/__init__.py +0 -0
  37. {spforge-0.8.31 → spforge-0.8.32}/spforge/estimator/_conditional_estimator.py +0 -0
  38. {spforge-0.8.31 → spforge-0.8.32}/spforge/estimator/_frequency_bucketing_classifier.py +0 -0
  39. {spforge-0.8.31 → spforge-0.8.32}/spforge/estimator/_granularity_estimator.py +0 -0
  40. {spforge-0.8.31 → spforge-0.8.32}/spforge/estimator/_group_by_estimator.py +0 -0
  41. {spforge-0.8.31 → spforge-0.8.32}/spforge/estimator/_ordinal_classifier.py +0 -0
  42. {spforge-0.8.31 → spforge-0.8.32}/spforge/estimator/_sklearn_enhancer_estimator.py +0 -0
  43. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/__init__.py +0 -0
  44. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/_base.py +0 -0
  45. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/_lag.py +0 -0
  46. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/_net_over_predicted.py +0 -0
  47. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/_regressor_feature_generator.py +0 -0
  48. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/_rolling_against_opponent.py +0 -0
  49. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/_rolling_mean_binary.py +0 -0
  50. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/_rolling_mean_days.py +0 -0
  51. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/_rolling_window.py +0 -0
  52. {spforge-0.8.31 → spforge-0.8.32}/spforge/feature_generator/_utils.py +0 -0
  53. {spforge-0.8.31 → spforge-0.8.32}/spforge/features_generator_pipeline.py +0 -0
  54. {spforge-0.8.31 → spforge-0.8.32}/spforge/hyperparameter_tuning/__init__.py +0 -0
  55. {spforge-0.8.31 → spforge-0.8.32}/spforge/hyperparameter_tuning/_default_search_spaces.py +0 -0
  56. {spforge-0.8.31 → spforge-0.8.32}/spforge/hyperparameter_tuning/_tuner.py +0 -0
  57. {spforge-0.8.31 → spforge-0.8.32}/spforge/performance_transformers/__init__.py +0 -0
  58. {spforge-0.8.31 → spforge-0.8.32}/spforge/performance_transformers/_performance_manager.py +0 -0
  59. {spforge-0.8.31 → spforge-0.8.32}/spforge/performance_transformers/_performances_transformers.py +0 -0
  60. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/__init__.py +0 -0
  61. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/_base.py +0 -0
  62. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/_player_rating.py +0 -0
  63. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/_team_rating.py +0 -0
  64. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/enums.py +0 -0
  65. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/league_identifier.py +0 -0
  66. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/league_start_rating_optimizer.py +0 -0
  67. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/player_performance_predictor.py +0 -0
  68. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/start_rating_generator.py +0 -0
  69. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/team_performance_predictor.py +0 -0
  70. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/team_start_rating_generator.py +0 -0
  71. {spforge-0.8.31 → spforge-0.8.32}/spforge/ratings/utils.py +0 -0
  72. {spforge-0.8.31 → spforge-0.8.32}/spforge/scorer/__init__.py +0 -0
  73. {spforge-0.8.31 → spforge-0.8.32}/spforge/transformers/__init__.py +0 -0
  74. {spforge-0.8.31 → spforge-0.8.32}/spforge/transformers/_base.py +0 -0
  75. {spforge-0.8.31 → spforge-0.8.32}/spforge/transformers/_net_over_predicted.py +0 -0
  76. {spforge-0.8.31 → spforge-0.8.32}/spforge/transformers/_operator.py +0 -0
  77. {spforge-0.8.31 → spforge-0.8.32}/spforge/transformers/_other_transformer.py +0 -0
  78. {spforge-0.8.31 → spforge-0.8.32}/spforge/transformers/_predictor.py +0 -0
  79. {spforge-0.8.31 → spforge-0.8.32}/spforge/transformers/_simple_transformer.py +0 -0
  80. {spforge-0.8.31 → spforge-0.8.32}/spforge/transformers/_team_ratio_predictor.py +0 -0
  81. {spforge-0.8.31 → spforge-0.8.32}/spforge/utils.py +0 -0
  82. {spforge-0.8.31 → spforge-0.8.32}/spforge.egg-info/SOURCES.txt +0 -0
  83. {spforge-0.8.31 → spforge-0.8.32}/spforge.egg-info/dependency_links.txt +0 -0
  84. {spforge-0.8.31 → spforge-0.8.32}/spforge.egg-info/requires.txt +0 -0
  85. {spforge-0.8.31 → spforge-0.8.32}/spforge.egg-info/top_level.txt +0 -0
  86. {spforge-0.8.31 → spforge-0.8.32}/tests/cross_validator/test_cross_validator.py +0 -0
  87. {spforge-0.8.31 → spforge-0.8.32}/tests/distributions/test_distribution.py +0 -0
  88. {spforge-0.8.31 → spforge-0.8.32}/tests/end_to_end/test_estimator_hyperparameter_tuning.py +0 -0
  89. {spforge-0.8.31 → spforge-0.8.32}/tests/end_to_end/test_league_start_rating_optimizer.py +0 -0
  90. {spforge-0.8.31 → spforge-0.8.32}/tests/end_to_end/test_lol_player_kills.py +0 -0
  91. {spforge-0.8.31 → spforge-0.8.32}/tests/end_to_end/test_nba_player_points.py +0 -0
  92. {spforge-0.8.31 → spforge-0.8.32}/tests/end_to_end/test_nba_player_ratings_hyperparameter_tuning.py +0 -0
  93. {spforge-0.8.31 → spforge-0.8.32}/tests/end_to_end/test_nba_prediction_consistency.py +0 -0
  94. {spforge-0.8.31 → spforge-0.8.32}/tests/estimator/test_sklearn_estimator.py +0 -0
  95. {spforge-0.8.31 → spforge-0.8.32}/tests/feature_generator/test_lag.py +0 -0
  96. {spforge-0.8.31 → spforge-0.8.32}/tests/feature_generator/test_regressor_feature_generator.py +0 -0
  97. {spforge-0.8.31 → spforge-0.8.32}/tests/feature_generator/test_rolling_against_opponent.py +0 -0
  98. {spforge-0.8.31 → spforge-0.8.32}/tests/feature_generator/test_rolling_mean_binary.py +0 -0
  99. {spforge-0.8.31 → spforge-0.8.32}/tests/feature_generator/test_rolling_mean_days.py +0 -0
  100. {spforge-0.8.31 → spforge-0.8.32}/tests/feature_generator/test_rolling_window.py +0 -0
  101. {spforge-0.8.31 → spforge-0.8.32}/tests/hyperparameter_tuning/test_estimator_tuner.py +0 -0
  102. {spforge-0.8.31 → spforge-0.8.32}/tests/hyperparameter_tuning/test_rating_tuner.py +0 -0
  103. {spforge-0.8.31 → spforge-0.8.32}/tests/performance_transformers/test_performance_manager.py +0 -0
  104. {spforge-0.8.31 → spforge-0.8.32}/tests/performance_transformers/test_performances_transformers.py +0 -0
  105. {spforge-0.8.31 → spforge-0.8.32}/tests/ratings/test_player_rating_generator.py +0 -0
  106. {spforge-0.8.31 → spforge-0.8.32}/tests/ratings/test_player_rating_no_mutation.py +0 -0
  107. {spforge-0.8.31 → spforge-0.8.32}/tests/ratings/test_ratings_property.py +0 -0
  108. {spforge-0.8.31 → spforge-0.8.32}/tests/ratings/test_team_rating_generator.py +0 -0
  109. {spforge-0.8.31 → spforge-0.8.32}/tests/ratings/test_utils_scaled_weights.py +0 -0
  110. {spforge-0.8.31 → spforge-0.8.32}/tests/scorer/test_score.py +0 -0
  111. {spforge-0.8.31 → spforge-0.8.32}/tests/scorer/test_score_aggregation_granularity.py +0 -0
  112. {spforge-0.8.31 → spforge-0.8.32}/tests/test_autopipeline.py +0 -0
  113. {spforge-0.8.31 → spforge-0.8.32}/tests/test_autopipeline_context.py +0 -0
  114. {spforge-0.8.31 → spforge-0.8.32}/tests/test_feature_generator_pipeline.py +0 -0
  115. {spforge-0.8.31 → spforge-0.8.32}/tests/transformers/test_estimator_transformer_context.py +0 -0
  116. {spforge-0.8.31 → spforge-0.8.32}/tests/transformers/test_net_over_predicted.py +0 -0
  117. {spforge-0.8.31 → spforge-0.8.32}/tests/transformers/test_other_transformer.py +0 -0
  118. {spforge-0.8.31 → spforge-0.8.32}/tests/transformers/test_predictor_transformer.py +0 -0
  119. {spforge-0.8.31 → spforge-0.8.32}/tests/transformers/test_simple_transformer.py +0 -0
  120. {spforge-0.8.31 → spforge-0.8.32}/tests/transformers/test_team_ratio_predictor.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spforge
3
- Version: 0.8.31
3
+ Version: 0.8.32
4
4
  Summary: A flexible framework for generating features, ratings, and building machine learning or other models for training and inference on sports data.
5
5
  Author-email: Mathias Holmstrøm <mathiasholmstom@gmail.com>
6
6
  License: See LICENSE file
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "spforge"
7
- version = "0.8.31"
7
+ version = "0.8.32"
8
8
  description = "A flexible framework for generating features, ratings, and building machine learning or other models for training and inference on sports data."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -388,16 +388,14 @@ class BaseScorer(ABC):
388
388
  return re.sub(r'[^a-zA-Z0-9_]', '_', name)
389
389
 
390
390
  def _count_user_filters(self) -> int:
391
- """Count filters excluding auto-added validation filter."""
391
+ """Count filters excluding any filter on validation column."""
392
392
  if not self.filters:
393
393
  return 0
394
394
  if self.validation_column is None:
395
395
  return len(self.filters)
396
396
  count = 0
397
397
  for f in self.filters:
398
- if not (f.column_name == self.validation_column and
399
- f.operator == Operator.EQUALS and
400
- f.value == 1):
398
+ if f.column_name != self.validation_column:
401
399
  count += 1
402
400
  return count
403
401
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spforge
3
- Version: 0.8.31
3
+ Version: 0.8.32
4
4
  Summary: A flexible framework for generating features, ratings, and building machine learning or other models for training and inference on sports data.
5
5
  Author-email: Mathias Holmstrøm <mathiasholmstom@gmail.com>
6
6
  License: See LICENSE file
@@ -123,6 +123,19 @@ class TestScorerNameProperty:
123
123
  # Validation filter auto-added but not counted
124
124
  assert scorer.name == "mean_bias_scorer_yards"
125
125
 
126
+ def test_any_filter_on_validation_column_excluded_from_name(self):
127
+ scorer = MeanBiasScorer(
128
+ target="yards",
129
+ pred_column="pred",
130
+ validation_column="is_valid",
131
+ filters=[
132
+ Filter("is_valid", 0, Operator.EQUALS),
133
+ Filter("minutes", 10, Operator.GREATER_THAN),
134
+ ]
135
+ )
136
+ # Any filter on validation column should be excluded, not just value=1
137
+ assert scorer.name == "mean_bias_scorer_yards_filters:1"
138
+
126
139
  def test_complex_configuration_all_components(self):
127
140
  scorer = MeanBiasScorer(
128
141
  target="yards",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes