diff --git a/.github/workflows/ci_test.yml b/.github/workflows/ci_test.yml index 9197fe92..aee0f6cf 100644 --- a/.github/workflows/ci_test.yml +++ b/.github/workflows/ci_test.yml @@ -16,8 +16,8 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] - python-version: [3.7, 3.8, 3.9, '3.10'] + os: [ubuntu-latest, macos-13] + python-version: ['3.9', '3.10', '3.11', '3.12'] steps: - name: Checkout repository @@ -53,6 +53,7 @@ jobs: - name: Test with pytest run: make test - name: Codecov + if: runner.os != 'macOS' uses: codecov/codecov-action@v3 #with: # fail_ci_if_error: true diff --git a/enterprise_extensions/empirical_distr.py b/enterprise_extensions/empirical_distr.py index d8d14030..d3d4f5e3 100644 --- a/enterprise_extensions/empirical_distr.py +++ b/enterprise_extensions/empirical_distr.py @@ -10,7 +10,7 @@ sklearn_available=True except ModuleNotFoundError: sklearn_available=False -from scipy.interpolate import interp1d, interp2d +from scipy.interpolate import interp1d, RegularGridInterpolator logger = logging.getLogger(__name__) @@ -173,9 +173,9 @@ def __init__(self, param_names, samples, minvals=None, maxvals=None, bandwidth=0 xvals = np.linspace(minvals[0], maxvals[0], num=nbins) yvals = np.linspace(minvals[1], maxvals[1], num=nbins) self._Nbins = [yvals.size for ii in range(xvals.size)] - scores = np.array([self.kde.score(np.array([xvals[ii], yvals[jj]]).reshape((1, 2))) for ii in range(xvals.size) for jj in range(yvals.size)]) + scores = np.array([self.kde.score(np.array([xvals[ii], yvals[jj]]).reshape((1, 2))) for ii in range(xvals.size) for jj in range(yvals.size)]).reshape(len(xvals), len(yvals)) # interpolate within prior - self._logpdf = interp2d(xvals, yvals, scores, kind='linear', fill_value=-1000) + self._logpdf = RegularGridInterpolator((xvals, yvals), scores, method='linear', bounds_error=False, fill_value=-1000) def draw(self): params = self.kde.sample(1).T