spforge 0.8.39__tar.gz → 0.8.40__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.39/spforge.egg-info → spforge-0.8.40}/PKG-INFO +1 -1
  2. {spforge-0.8.39 → spforge-0.8.40}/pyproject.toml +1 -1
  3. {spforge-0.8.39 → spforge-0.8.40}/spforge/hyperparameter_tuning/_default_search_spaces.py +0 -6
  4. {spforge-0.8.39 → spforge-0.8.40/spforge.egg-info}/PKG-INFO +1 -1
  5. {spforge-0.8.39 → spforge-0.8.40}/tests/scorer/test_score.py +6 -6
  6. {spforge-0.8.39 → spforge-0.8.40}/tests/test_autopipeline.py +2 -2
  7. {spforge-0.8.39 → spforge-0.8.40}/tests/transformers/test_team_ratio_predictor.py +1 -2
  8. {spforge-0.8.39 → spforge-0.8.40}/LICENSE +0 -0
  9. {spforge-0.8.39 → spforge-0.8.40}/MANIFEST.in +0 -0
  10. {spforge-0.8.39 → spforge-0.8.40}/README.md +0 -0
  11. {spforge-0.8.39 → spforge-0.8.40}/examples/__init__.py +0 -0
  12. {spforge-0.8.39 → spforge-0.8.40}/examples/game_level_example.py +0 -0
  13. {spforge-0.8.39 → spforge-0.8.40}/examples/lol/__init__.py +0 -0
  14. {spforge-0.8.39 → spforge-0.8.40}/examples/lol/data/__init__.py +0 -0
  15. {spforge-0.8.39 → spforge-0.8.40}/examples/lol/data/subsample_lol_data.parquet +0 -0
  16. {spforge-0.8.39 → spforge-0.8.40}/examples/lol/data/utils.py +0 -0
  17. {spforge-0.8.39 → spforge-0.8.40}/examples/lol/pipeline_transformer_example.py +0 -0
  18. {spforge-0.8.39 → spforge-0.8.40}/examples/nba/__init__.py +0 -0
  19. {spforge-0.8.39 → spforge-0.8.40}/examples/nba/cross_validation_example.py +0 -0
  20. {spforge-0.8.39 → spforge-0.8.40}/examples/nba/data/__init__.py +0 -0
  21. {spforge-0.8.39 → spforge-0.8.40}/examples/nba/data/game_player_subsample.parquet +0 -0
  22. {spforge-0.8.39 → spforge-0.8.40}/examples/nba/data/utils.py +0 -0
  23. {spforge-0.8.39 → spforge-0.8.40}/examples/nba/feature_engineering_example.py +0 -0
  24. {spforge-0.8.39 → spforge-0.8.40}/examples/nba/game_winner_example.py +0 -0
  25. {spforge-0.8.39 → spforge-0.8.40}/examples/nba/predictor_transformers_example.py +0 -0
  26. {spforge-0.8.39 → spforge-0.8.40}/setup.cfg +0 -0
  27. {spforge-0.8.39 → spforge-0.8.40}/spforge/__init__.py +0 -0
  28. {spforge-0.8.39 → spforge-0.8.40}/spforge/autopipeline.py +0 -0
  29. {spforge-0.8.39 → spforge-0.8.40}/spforge/base_feature_generator.py +0 -0
  30. {spforge-0.8.39 → spforge-0.8.40}/spforge/cross_validator/__init__.py +0 -0
  31. {spforge-0.8.39 → spforge-0.8.40}/spforge/cross_validator/_base.py +0 -0
  32. {spforge-0.8.39 → spforge-0.8.40}/spforge/cross_validator/cross_validator.py +0 -0
  33. {spforge-0.8.39 → spforge-0.8.40}/spforge/data_structures.py +0 -0
  34. {spforge-0.8.39 → spforge-0.8.40}/spforge/distributions/__init__.py +0 -0
  35. {spforge-0.8.39 → spforge-0.8.40}/spforge/distributions/_negative_binomial_estimator.py +0 -0
  36. {spforge-0.8.39 → spforge-0.8.40}/spforge/distributions/_normal_distribution_predictor.py +0 -0
  37. {spforge-0.8.39 → spforge-0.8.40}/spforge/distributions/_student_t_distribution_estimator.py +0 -0
  38. {spforge-0.8.39 → spforge-0.8.40}/spforge/estimator/__init__.py +0 -0
  39. {spforge-0.8.39 → spforge-0.8.40}/spforge/estimator/_conditional_estimator.py +0 -0
  40. {spforge-0.8.39 → spforge-0.8.40}/spforge/estimator/_frequency_bucketing_classifier.py +0 -0
  41. {spforge-0.8.39 → spforge-0.8.40}/spforge/estimator/_granularity_estimator.py +0 -0
  42. {spforge-0.8.39 → spforge-0.8.40}/spforge/estimator/_group_by_estimator.py +0 -0
  43. {spforge-0.8.39 → spforge-0.8.40}/spforge/estimator/_ordinal_classifier.py +0 -0
  44. {spforge-0.8.39 → spforge-0.8.40}/spforge/estimator/_sklearn_enhancer_estimator.py +0 -0
  45. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/__init__.py +0 -0
  46. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/_base.py +0 -0
  47. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/_lag.py +0 -0
  48. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/_net_over_predicted.py +0 -0
  49. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/_regressor_feature_generator.py +0 -0
  50. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/_rolling_against_opponent.py +0 -0
  51. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/_rolling_mean_binary.py +0 -0
  52. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/_rolling_mean_days.py +0 -0
  53. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/_rolling_window.py +0 -0
  54. {spforge-0.8.39 → spforge-0.8.40}/spforge/feature_generator/_utils.py +0 -0
  55. {spforge-0.8.39 → spforge-0.8.40}/spforge/features_generator_pipeline.py +0 -0
  56. {spforge-0.8.39 → spforge-0.8.40}/spforge/hyperparameter_tuning/__init__.py +0 -0
  57. {spforge-0.8.39 → spforge-0.8.40}/spforge/hyperparameter_tuning/_tuner.py +0 -0
  58. {spforge-0.8.39 → spforge-0.8.40}/spforge/performance_transformers/__init__.py +0 -0
  59. {spforge-0.8.39 → spforge-0.8.40}/spforge/performance_transformers/_performance_manager.py +0 -0
  60. {spforge-0.8.39 → spforge-0.8.40}/spforge/performance_transformers/_performances_transformers.py +0 -0
  61. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/__init__.py +0 -0
  62. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/_base.py +0 -0
  63. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/_player_rating.py +0 -0
  64. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/_team_rating.py +0 -0
  65. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/enums.py +0 -0
  66. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/league_identifier.py +0 -0
  67. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/league_start_rating_optimizer.py +0 -0
  68. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/player_performance_predictor.py +0 -0
  69. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/start_rating_generator.py +0 -0
  70. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/team_performance_predictor.py +0 -0
  71. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/team_start_rating_generator.py +0 -0
  72. {spforge-0.8.39 → spforge-0.8.40}/spforge/ratings/utils.py +0 -0
  73. {spforge-0.8.39 → spforge-0.8.40}/spforge/scorer/__init__.py +0 -0
  74. {spforge-0.8.39 → spforge-0.8.40}/spforge/scorer/_score.py +0 -0
  75. {spforge-0.8.39 → spforge-0.8.40}/spforge/transformers/__init__.py +0 -0
  76. {spforge-0.8.39 → spforge-0.8.40}/spforge/transformers/_base.py +0 -0
  77. {spforge-0.8.39 → spforge-0.8.40}/spforge/transformers/_net_over_predicted.py +0 -0
  78. {spforge-0.8.39 → spforge-0.8.40}/spforge/transformers/_operator.py +0 -0
  79. {spforge-0.8.39 → spforge-0.8.40}/spforge/transformers/_other_transformer.py +0 -0
  80. {spforge-0.8.39 → spforge-0.8.40}/spforge/transformers/_predictor.py +0 -0
  81. {spforge-0.8.39 → spforge-0.8.40}/spforge/transformers/_simple_transformer.py +0 -0
  82. {spforge-0.8.39 → spforge-0.8.40}/spforge/transformers/_team_ratio_predictor.py +0 -0
  83. {spforge-0.8.39 → spforge-0.8.40}/spforge/utils.py +0 -0
  84. {spforge-0.8.39 → spforge-0.8.40}/spforge.egg-info/SOURCES.txt +0 -0
  85. {spforge-0.8.39 → spforge-0.8.40}/spforge.egg-info/dependency_links.txt +0 -0
  86. {spforge-0.8.39 → spforge-0.8.40}/spforge.egg-info/requires.txt +0 -0
  87. {spforge-0.8.39 → spforge-0.8.40}/spforge.egg-info/top_level.txt +0 -0
  88. {spforge-0.8.39 → spforge-0.8.40}/tests/cross_validator/test_cross_validator.py +0 -0
  89. {spforge-0.8.39 → spforge-0.8.40}/tests/distributions/test_distribution.py +0 -0
  90. {spforge-0.8.39 → spforge-0.8.40}/tests/end_to_end/test_estimator_hyperparameter_tuning.py +0 -0
  91. {spforge-0.8.39 → spforge-0.8.40}/tests/end_to_end/test_league_start_rating_optimizer.py +0 -0
  92. {spforge-0.8.39 → spforge-0.8.40}/tests/end_to_end/test_lol_player_kills.py +0 -0
  93. {spforge-0.8.39 → spforge-0.8.40}/tests/end_to_end/test_nba_player_points.py +0 -0
  94. {spforge-0.8.39 → spforge-0.8.40}/tests/end_to_end/test_nba_player_ratings_hyperparameter_tuning.py +0 -0
  95. {spforge-0.8.39 → spforge-0.8.40}/tests/end_to_end/test_nba_prediction_consistency.py +0 -0
  96. {spforge-0.8.39 → spforge-0.8.40}/tests/estimator/test_sklearn_estimator.py +0 -0
  97. {spforge-0.8.39 → spforge-0.8.40}/tests/feature_generator/test_lag.py +0 -0
  98. {spforge-0.8.39 → spforge-0.8.40}/tests/feature_generator/test_regressor_feature_generator.py +0 -0
  99. {spforge-0.8.39 → spforge-0.8.40}/tests/feature_generator/test_rolling_against_opponent.py +0 -0
  100. {spforge-0.8.39 → spforge-0.8.40}/tests/feature_generator/test_rolling_mean_binary.py +0 -0
  101. {spforge-0.8.39 → spforge-0.8.40}/tests/feature_generator/test_rolling_mean_days.py +0 -0
  102. {spforge-0.8.39 → spforge-0.8.40}/tests/feature_generator/test_rolling_window.py +0 -0
  103. {spforge-0.8.39 → spforge-0.8.40}/tests/hyperparameter_tuning/test_estimator_tuner.py +0 -0
  104. {spforge-0.8.39 → spforge-0.8.40}/tests/hyperparameter_tuning/test_rating_tuner.py +0 -0
  105. {spforge-0.8.39 → spforge-0.8.40}/tests/performance_transformers/test_performance_manager.py +0 -0
  106. {spforge-0.8.39 → spforge-0.8.40}/tests/performance_transformers/test_performances_transformers.py +0 -0
  107. {spforge-0.8.39 → spforge-0.8.40}/tests/ratings/test_player_rating_generator.py +0 -0
  108. {spforge-0.8.39 → spforge-0.8.40}/tests/ratings/test_player_rating_no_mutation.py +0 -0
  109. {spforge-0.8.39 → spforge-0.8.40}/tests/ratings/test_ratings_property.py +0 -0
  110. {spforge-0.8.39 → spforge-0.8.40}/tests/ratings/test_team_rating_generator.py +0 -0
  111. {spforge-0.8.39 → spforge-0.8.40}/tests/ratings/test_utils_scaled_weights.py +0 -0
  112. {spforge-0.8.39 → spforge-0.8.40}/tests/scorer/test_score_aggregation_granularity.py +0 -0
  113. {spforge-0.8.39 → spforge-0.8.40}/tests/scorer/test_scorer_name.py +0 -0
  114. {spforge-0.8.39 → spforge-0.8.40}/tests/test_autopipeline_context.py +0 -0
  115. {spforge-0.8.39 → spforge-0.8.40}/tests/test_feature_generator_pipeline.py +0 -0
  116. {spforge-0.8.39 → spforge-0.8.40}/tests/transformers/test_estimator_transformer_context.py +0 -0
  117. {spforge-0.8.39 → spforge-0.8.40}/tests/transformers/test_net_over_predicted.py +0 -0
  118. {spforge-0.8.39 → spforge-0.8.40}/tests/transformers/test_other_transformer.py +0 -0
  119. {spforge-0.8.39 → spforge-0.8.40}/tests/transformers/test_predictor_transformer.py +0 -0
  120. {spforge-0.8.39 → spforge-0.8.40}/tests/transformers/test_simple_transformer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spforge
3
- Version: 0.8.39
3
+ Version: 0.8.40
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.39"
7
+ version = "0.8.40"
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"
@@ -161,9 +161,6 @@ def get_default_player_rating_search_space() -> dict[str, ParamSpec]:
161
161
  low=50.0,
162
162
  high=300.0,
163
163
  ),
164
- "use_off_def_split": ParamSpec(
165
- param_type="bool",
166
- ),
167
164
  "start_league_quantile": ParamSpec(
168
165
  param_type="float",
169
166
  low=0.05,
@@ -251,9 +248,6 @@ def get_default_team_rating_search_space() -> dict[str, ParamSpec]:
251
248
  low=50.0,
252
249
  high=300.0,
253
250
  ),
254
- "use_off_def_split": ParamSpec(
255
- param_type="bool",
256
- ),
257
251
  }
258
252
 
259
253
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: spforge
3
- Version: 0.8.39
3
+ Version: 0.8.40
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
@@ -66,7 +66,7 @@ def test_apply_filters_greater_than(df_type):
66
66
  filters = [Filter(column_name="col1", value=2, operator=Operator.GREATER_THAN)]
67
67
  result = apply_filters(df, filters)
68
68
  assert len(result) == 2
69
- assert all(x > 2 for x in result["col1"].to_list())
69
+ assert (result["col1"] > 2).all()
70
70
 
71
71
 
72
72
  @pytest.mark.parametrize("df_type", [pl.DataFrame, pd.DataFrame])
@@ -76,7 +76,7 @@ def test_apply_filters_less_than(df_type):
76
76
  filters = [Filter(column_name="col1", value=3, operator=Operator.LESS_THAN)]
77
77
  result = apply_filters(df, filters)
78
78
  assert len(result) == 2
79
- assert all(x < 3 for x in result["col1"].to_list())
79
+ assert (result["col1"] < 3).all()
80
80
 
81
81
 
82
82
  @pytest.mark.parametrize("df_type", [pl.DataFrame, pd.DataFrame])
@@ -86,7 +86,7 @@ def test_apply_filters_greater_than_or_equals(df_type):
86
86
  filters = [Filter(column_name="col1", value=2, operator=Operator.GREATER_THAN_OR_EQUALS)]
87
87
  result = apply_filters(df, filters)
88
88
  assert len(result) == 3
89
- assert all(x >= 2 for x in result["col1"].to_list())
89
+ assert (result["col1"] >= 2).all()
90
90
 
91
91
 
92
92
  @pytest.mark.parametrize("df_type", [pl.DataFrame, pd.DataFrame])
@@ -96,7 +96,7 @@ def test_apply_filters_less_than_or_equals(df_type):
96
96
  filters = [Filter(column_name="col1", value=3, operator=Operator.LESS_THAN_OR_EQUALS)]
97
97
  result = apply_filters(df, filters)
98
98
  assert len(result) == 3
99
- assert all(x <= 3 for x in result["col1"].to_list())
99
+ assert (result["col1"] <= 3).all()
100
100
 
101
101
 
102
102
  @pytest.mark.parametrize("df_type", [pl.DataFrame, pd.DataFrame])
@@ -129,8 +129,8 @@ def test_apply_filters_multiple_filters(df_type):
129
129
  ]
130
130
  result = apply_filters(df, filters)
131
131
  assert len(result) == 2
132
- assert all(x > 2 for x in result["col1"].to_list())
133
- assert all(x == "A" for x in result["col2"].to_list())
132
+ assert (result["col1"] > 2).all()
133
+ assert (result["col2"] == "A").all()
134
134
 
135
135
 
136
136
  @pytest.mark.parametrize("df_type", [pl.DataFrame, pd.DataFrame])
@@ -809,7 +809,7 @@ def test_granularity_aggregation_weight__weighted_mean_correct(frame):
809
809
  transformed = reducer.fit_transform(df)
810
810
 
811
811
  if frame == "pl":
812
- num1_val = transformed["num1"].to_list()[0]
812
+ num1_val = transformed["num1"].item(0)
813
813
  else:
814
814
  num1_val = transformed["num1"].iloc[0]
815
815
 
@@ -875,7 +875,7 @@ def test_aggregation_weight_sums_weight_column(frame):
875
875
  transformed = reducer.fit_transform(df)
876
876
 
877
877
  if frame == "pl":
878
- weight_val = transformed["weight"].to_list()[0]
878
+ weight_val = transformed["weight"].item(0)
879
879
  else:
880
880
  weight_val = transformed["weight"].iloc[0]
881
881
 
@@ -163,8 +163,7 @@ def test_predict_row_false_uses_existing_row_prediction_column(df_factory):
163
163
 
164
164
  assert list(out.columns) == ["ratio", "row_pred"]
165
165
  ratio = out["ratio"] if isinstance(out, pd.DataFrame) else out.get_column("ratio")
166
- ratio_values = ratio.to_list() if hasattr(ratio, "to_list") else ratio.tolist()
167
- assert all(v == 1.0 for v in ratio_values)
166
+ assert (ratio == 1.0).all()
168
167
 
169
168
 
170
169
  @pytest.mark.parametrize("df_factory", [pd.DataFrame, pl.DataFrame])
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes