Skip to content

Commit 7aa509e

Browse files
committed
Add python 3.12 to test matrix
Signed-off-by: Keith Battocchi <[email protected]>
1 parent 37db00a commit 7aa509e

File tree

7 files changed

+15
-11
lines changed

7 files changed

+15
-11
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ jobs:
203203
strategy:
204204
matrix:
205205
os: [ubuntu-latest, windows-latest, macos-latest]
206-
python-version: ['3.8', '3.9', '3.10', '3.11']
206+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
207207
kind: [serial, other, dml, main, treatment, ray]
208208
exclude:
209209
# Serial tests fail randomly on mac sometimes, so we don't run them there
@@ -212,6 +212,9 @@ jobs:
212212
# Ray tests run out of memory on Windows
213213
- os: windows-latest
214214
kind: ray
215+
# Ray doesn't currently support Python 3.12
216+
- python-version: '3.12'
217+
kind: ray
215218
# Assign the correct package and testing options for each kind of test
216219
include:
217220
- kind: serial

econml/dowhy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ class DoWhyWrapper:
3636
"""
3737

3838
def __init__(self, cate_estimator):
39-
from pkg_resources import parse_version
40-
if parse_version(dowhy.__version__) >= parse_version('0.11'):
39+
from packaging.version import parse
40+
if parse(dowhy.__version__) >= parse('0.11'):
4141
warnings.warn("econml has not been tested with dowhy versions >= 0.11")
4242
self._cate_estimator = cate_estimator
4343

econml/sklearn_extensions/model_selection.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -825,9 +825,9 @@ def _cross_val_predict(estimator, X, y=None, *, groups=None, cv=None,
825825
parallel = Parallel(n_jobs=n_jobs, verbose=verbose,
826826
pre_dispatch=pre_dispatch)
827827

828-
from pkg_resources import parse_version
828+
from packaging.version import parse
829829
# verbose was removed from sklearn's non-public _fit_and_predict method in 1.4
830-
if parse_version(sklearn.__version__) < parse_version("1.4"):
830+
if parse(sklearn.__version__) < parse("1.4"):
831831
predictions = parallel(delayed(_fit_and_predict)(
832832
clone(estimator, safe=safe), X, y, train, test, verbose, fit_params, method)
833833
for train, test in splits)

econml/tests/test_dml.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -787,7 +787,7 @@ def true_fn(x):
787787
np.testing.assert_array_less(mean_truth - .03, inf_sum.ci_upper)
788788
tables = est.summary().tables
789789
for t in range(4):
790-
np.testing.assert_allclose(np.array(tables[t].data[1:])[:, 1].astype(np.float),
790+
np.testing.assert_allclose(np.array(tables[t].data[1:])[:, 1].astype(float),
791791
mean_truth, rtol=0, atol=.06)
792792

793793
if it == 0:

econml/tests/test_orf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,8 @@ def predict(self, X):
316316
"Estimators of type {} do not accept weights. "
317317
"Consider using the class WeightedModelWrapper from econml.utilities to build a weighted model."
318318
)
319-
self.assertRaisesRegexp(TypeError, weights_error_msg.format("NoWeightModel"),
320-
est.effect, X=TestOrthoForest.X)
319+
self.assertRaisesRegex(TypeError, weights_error_msg.format("NoWeightModel"),
320+
est.effect, X=TestOrthoForest.X)
321321

322322
def _test_te(self, learner_instance, expected_te, tol, treatment_type='continuous'):
323323
# Compute the treatment effect on test points

econml/utilities.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1516,8 +1516,8 @@ def one_hot_encoder(sparse=False, **kwargs):
15161516
Wrapper for sklearn's OneHotEncoder that handles the name change from `sparse` to `sparse_output`
15171517
between sklearn versions 1.1 and 1.2.
15181518
"""
1519-
from pkg_resources import parse_version
1520-
if parse_version(sklearn.__version__) < parse_version("1.2"):
1519+
from packaging.version import parse
1520+
if parse(sklearn.__version__) < parse("1.2"):
15211521
return OneHotEncoder(sparse=sparse, **kwargs)
15221522
else:
15231523
return OneHotEncoder(sparse_output=sparse, **kwargs)

pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ dependencies = [
2828
"statsmodels >= 0.10",
2929
"pandas > 1.0",
3030
"shap >= 0.38.1, < 0.44.0",
31-
"lightgbm"
31+
"lightgbm",
32+
"packaging"
3233
]
3334

3435
[project.urls]

0 commit comments

Comments
 (0)