Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Miscellaneous fixes #939

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions .github/workflows/generate_lkg.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,17 @@ def simple_constraint_map(all_combos: frozenset[Combo]) -> tuple[dict[frozenset[
if i > 0:
less_than = frozenset({combo for combo in all_combos if combo.py_version < py_version})
constraint_map[less_than] = f"; python_version<'{py_version}'"
# We want to use >= next version instead of > this version
# because otherwise we have pairs like
# somelib==1.2, python_version<'3.9'
# somelib==1.3, python_version>'3.8'
# which is correct but looks more confusing than
# somelib==1.2, python_version<'3.9'
# somelib==1.3, python_version>='3.9'
if i < len(all_py_versions)-2:
greater_than = frozenset({combo for combo in all_combos if combo.py_version > py_version})
constraint_map[greater_than] = f"; python_version>'{py_version}'"
next_version = sorted(all_py_versions)[i+1]
greater_than = frozenset({combo for combo in all_combos if combo.py_version >= next_version})
constraint_map[greater_than] = f"; python_version>='{next_version}'"

# if every combination is present, we don't need to add any constraint
constraint_map[all_combos] = ""
Expand Down
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -729,9 +729,7 @@ BibTex:

This project welcomes contributions and suggestions. We use the [DCO bot](https://github.com/apps/dco) to enforce a [Developer Certificate of Origin](https://developercertificate.org/) which requires users to sign-off on their commits. This is a simple way to certify that you wrote or otherwise have the right to submit the code you are contributing to the project. Git provides a `-s` command line option to include this automatically when you commit via `git commit`.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.
If you forget to sign one of your commits, the DCO bot will provide specific instructions along with the failed check; alternatively you can use `git commit --amend -s` to add the sign-off to your last commit if you forgot it or `git rebase --signoff` to sign all of the commits in the branch, after which you can force push the changes to your branch with `git push --force-with-lease`.

This project has adopted the [PyWhy Code of Conduct](https://github.com/py-why/governance/blob/main/CODE-OF-CONDUCT.md).

Expand Down
6 changes: 6 additions & 0 deletions econml/grf/_base_grftree.py
Original file line number Diff line number Diff line change
Expand Up @@ -497,3 +497,9 @@ def feature_importances(self, max_depth=4, depth_decay_exponent=2.0):
@property
def feature_importances_(self):
return self.feature_importances()


# HACK: sklearn 1.3 enforces that the input to plot_tree is a DecisionTreeClassifier or DecisionTreeRegressor
# This is a hack to get around that restriction by declaring that GRFTree inherits from DecisionTreeClassifier
from sklearn.tree import DecisionTreeClassifier # noqa: E402
DecisionTreeClassifier.register(GRFTree)
294 changes: 150 additions & 144 deletions lkg-notebook.txt
Original file line number Diff line number Diff line change
@@ -1,190 +1,196 @@
Babel==2.14.0
Cython==3.0.10; '3.9'<=python_version
Jinja2==3.1.3
Keras-Applications==1.0.8; python_version<='3.8'
Keras-Preprocessing==1.1.2; python_version<='3.8'
Keras==2.3.1; python_version<='3.8'
Markdown==3.6; python_version<='3.8'
MarkupSafe==2.1.5
PyYAML==6.0.1
Pygments==2.17.2
QtPy==2.4.1
Cython==0.29.37; python_version=='3.9'
Jinja2==3.1.4
Keras==2.3.1; python_version<'3.9'
Keras-Applications==1.0.8; python_version<'3.9'
Keras-Preprocessing==1.1.2; python_version<'3.9'
Markdown==3.7; python_version<'3.9'
MarkupSafe==2.1.5; python_version<'3.9'
MarkupSafe==3.0.2; python_version=='3.9'
PyYAML==6.0.2
Pygments==2.18.0
Send2Trash==1.8.3
Werkzeug==3.0.2; python_version<='3.8'
absl-py==2.1.0; python_version<='3.8'
aiosignal==1.3.1; python_version<='3.8'
anyio==4.3.0
argon2-cffi-bindings==21.2.0
Werkzeug==3.0.6; python_version<'3.9'
absl-py==2.1.0; python_version<'3.9'
aiosignal==1.3.1; python_version<'3.9'
anyio==4.5.2; python_version<'3.9'
anyio==4.6.2.post1; python_version=='3.9'
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asttokens==2.4.1
astunparse==1.6.3; python_version<='3.8'
asttokens==3.0.0
astunparse==1.6.3; python_version<'3.9'
async-lru==2.0.4
attrs==23.2.0
backcall==0.2.0; python_version<='3.8'
attrs==24.2.0
babel==2.16.0
backcall==0.2.0; python_version<'3.9'
beautifulsoup4==4.12.3
bleach==6.1.0
cachetools==4.2.4; python_version<='3.8'
causal-learn==0.1.3.8; '3.9'<=python_version
certifi==2024.2.2
cffi==1.16.0
charset-normalizer==3.3.2
clarabel==0.7.1; '3.9'<=python_version
click==8.1.7; python_version<='3.8'
cloudpickle==3.0.0
bleach==6.1.0; python_version<'3.9'
bleach==6.2.0; python_version=='3.9'
cachetools==4.2.4; python_version<'3.9'
causal-learn==0.1.3.8; python_version=='3.9'
certifi==2024.8.30
cffi==1.17.1
charset-normalizer==3.4.0
clarabel==0.9.0; python_version=='3.9'
click==8.1.7; python_version<'3.9'
cloudpickle==3.1.0
comm==0.2.2
contourpy==1.1.1; python_version<='3.8'
contourpy==1.2.1; '3.9'<=python_version
cvxpy==1.4.3; '3.9'<=python_version
contourpy==1.1.1; python_version<'3.9'
contourpy==1.3.0; python_version=='3.9'
cvxpy==1.6.0; python_version=='3.9'
cycler==0.12.1
debugpy==1.8.1
debugpy==1.8.9
decorator==5.1.1
defusedxml==0.7.1
dowhy==0.11.1; '3.9'<=python_version
ecos==2.0.13; '3.9'<=python_version
exceptiongroup==1.2.1
executing==2.0.1
fastjsonschema==2.19.1
filelock==3.13.4; python_version<='3.8'
fonttools==4.51.0
dowhy==0.12; python_version=='3.9'
exceptiongroup==1.2.2
executing==2.1.0
fastjsonschema==2.21.1
filelock==3.16.1; python_version<'3.9'
fonttools==4.55.1
fqdn==1.5.1
frozenlist==1.4.1; python_version<='3.8'
gast==0.3.3; python_version<='3.8'
google-auth-oauthlib==0.4.6; python_version<='3.8'
google-auth==1.35.0; python_version<='3.8'
google-pasta==0.2.0; python_version<='3.8'
frozenlist==1.5.0; python_version<'3.9'
gast==0.3.3; python_version<'3.9'
google-auth==1.35.0; python_version<'3.9'
google-auth-oauthlib==0.4.6; python_version<'3.9'
google-pasta==0.2.0; python_version<'3.9'
graphviz==0.20.3
grpcio==1.62.2; python_version<='3.8'
grpcio==1.68.1; python_version<'3.9'
h11==0.14.0
h5py==2.10.0; python_version<='3.8'
httpcore==1.0.5
httpx==0.27.0
idna==3.7
importlib_metadata==7.1.0
importlib_resources==6.4.0
ipykernel==6.29.4
ipython==8.12.3; python_version<='3.8'
ipython==8.18.1; '3.9'<=python_version
ipywidgets==8.1.2
h5py==2.10.0; python_version<'3.9'
httpcore==1.0.7
httpx==0.28.0
idna==3.10
importlib_metadata==8.5.0
importlib_resources==6.4.5
ipykernel==6.29.5
ipython==8.12.3; python_version<'3.9'
ipython==8.18.1; python_version=='3.9'
ipywidgets==8.1.5
isoduration==20.11.0
jedi==0.19.1
joblib==1.4.0
json5==0.9.25
jsonpointer==2.4
jsonschema-specifications==2023.12.1
jsonschema==4.21.1
jedi==0.19.2
joblib==1.4.2
json5==0.10.0
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2023.12.1; python_version<'3.9'
jsonschema-specifications==2024.10.1; python_version=='3.9'
jupyter==1.1.1
jupyter-console==6.6.3
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter==1.0.0
jupyter_client==8.6.1
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyter_server==2.14.0
jupyter_server==2.14.2
jupyter_server_terminals==0.5.3
jupyterlab==4.1.6
jupyterlab==4.3.2
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.1
jupyterlab_widgets==3.0.10
kiwisolver==1.4.5
lightgbm==4.3.0
llvmlite==0.41.1; python_version<='3.8'
llvmlite==0.42.0; '3.9'<=python_version
jupyterlab_server==2.27.3
jupyterlab_widgets==3.0.13
kiwisolver==1.4.7
lightgbm==4.5.0
llvmlite==0.41.1; python_version<'3.9'
llvmlite==0.43.0; python_version=='3.9'
matplotlib==3.7.5; python_version<'3.9'
matplotlib==3.9.3; python_version=='3.9'
matplotlib-inline==0.1.7
matplotlib==3.7.5; python_version<='3.8'
matplotlib==3.8.4; '3.9'<=python_version
mistune==3.0.2
mpmath==1.3.0; '3.9'<=python_version
msgpack==1.0.8; python_version<='3.8'
nbclient==0.10.0
nbconvert==7.16.3
mpmath==1.3.0; python_version=='3.9'
msgpack==1.1.0; python_version<'3.9'
nbclient==0.10.1
nbconvert==7.16.4
nbformat==5.10.4
nest-asyncio==1.6.0
networkx==3.2.1; '3.9'<=python_version
notebook==7.1.3
networkx==3.2.1; python_version=='3.9'
notebook==7.3.0
notebook_shim==0.2.4
numba==0.58.1; python_version<='3.8'
numba==0.59.1; '3.9'<=python_version
numpy==1.23.5; python_version<='3.8'
numpy==1.26.4; '3.9'<=python_version
oauthlib==3.2.2; python_version<='3.8'
opt-einsum==3.3.0; python_version<='3.8'
osqp==0.6.4; '3.9'<=python_version
numba==0.58.1; python_version<'3.9'
numba==0.60.0; python_version=='3.9'
numpy==1.23.5; python_version<'3.9'
numpy==1.26.4; python_version=='3.9'
nvidia-nccl-cu12==2.23.4
oauthlib==3.2.2; python_version<'3.9'
opt_einsum==3.4.0; python_version<'3.9'
osqp==0.6.7.post3; python_version=='3.9'
overrides==7.7.0
packaging==24.0
pandas==2.0.3; python_version<='3.8'
pandas==2.2.2; '3.9'<=python_version
packaging==24.2
pandas==2.0.3; python_version<'3.9'
pandas==2.2.3; python_version=='3.9'
pandocfilters==1.5.1
parso==0.8.4
patsy==0.5.6
patsy==1.0.1
pexpect==4.9.0
pickleshare==0.7.5; python_version<='3.8'
pillow==10.3.0
pkgutil_resolve_name==1.3.10; python_version<='3.8'
platformdirs==4.2.1
prometheus_client==0.20.0
prompt-toolkit==3.0.43
protobuf==3.20.3; python_version<='3.8'
psutil==5.9.8
pickleshare==0.7.5; python_version<'3.9'
pillow==10.4.0; python_version<'3.9'
pillow==11.0.0; python_version=='3.9'
pkgutil_resolve_name==1.3.10; python_version<'3.9'
platformdirs==4.3.6
prometheus_client==0.21.1
prompt_toolkit==3.0.48
protobuf==3.20.3; python_version<'3.9'
psutil==6.1.0
ptyprocess==0.7.0
pure-eval==0.2.2
pyasn1==0.6.0; python_version<='3.8'
pyasn1_modules==0.4.0; python_version<='3.8'
pybind11==2.12.0; '3.9'<=python_version
pure_eval==0.2.3
pyasn1==0.6.1; python_version<'3.9'
pyasn1_modules==0.4.1; python_version<'3.9'
pycparser==2.22
pydot==2.0.0; '3.9'<=python_version
pyparsing==3.1.2
pydot==3.0.3; python_version=='3.9'
pyparsing==3.1.4; python_version<'3.9'
pyparsing==3.2.0; python_version=='3.9'
python-dateutil==2.9.0.post0
python-json-logger==2.0.7
pytz==2024.1
pyzmq==26.0.2
qdldl==0.1.7.post2; '3.9'<=python_version
qtconsole==5.5.1
ray==2.10.0; python_version<='3.8'
referencing==0.35.0
requests-oauthlib==2.0.0; python_version<='3.8'
requests==2.31.0
pytz==2024.2
pyzmq==26.2.0
qdldl==0.1.7.post4; python_version=='3.9'
ray==2.10.0; python_version<'3.9'
referencing==0.35.1
requests==2.32.3
requests-oauthlib==2.0.0; python_version<'3.9'
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.18.0
rsa==4.9; python_version<='3.8'
scikit-learn==1.2.2; python_version<='3.8'
scikit-learn==1.4.2; '3.9'<=python_version
scipy==1.13.0; '3.9'<=python_version
scipy==1.4.1; python_version<='3.8'
scs==3.2.4.post1; '3.9'<=python_version
rpds-py==0.20.1; python_version<'3.9'
rpds-py==0.22.3; python_version=='3.9'
rsa==4.9; python_version<'3.9'
scikit-learn==1.2.2; python_version<'3.9'
scikit-learn==1.5.2; python_version=='3.9'
scipy==1.4.1; python_version<'3.9'
scipy==1.13.1; python_version=='3.9'
scs==3.2.7; python_version=='3.9'
seaborn==0.13.2
shap==0.43.0
six==1.16.0
slicer==0.0.7
sniffio==1.3.1
soupsieve==2.5
sparse==0.15.1
soupsieve==2.6
sparse==0.15.4
stack-data==0.6.3
statsmodels==0.14.1; python_version<='3.8'
statsmodels==0.14.2; '3.9'<=python_version
sympy==1.12; '3.9'<=python_version
tensorboard-plugin-wit==1.8.1; python_version<='3.8'
tensorboard==2.2.2; python_version<='3.8'
tensorflow-estimator==2.2.0; python_version<='3.8'
tensorflow==2.2.0; python_version<='3.8'
termcolor==2.4.0; python_version<='3.8'
statsmodels==0.14.1; python_version<'3.9'
statsmodels==0.14.4; python_version=='3.9'
sympy==1.13.3; python_version=='3.9'
tensorboard==2.2.2; python_version<'3.9'
tensorboard-plugin-wit==1.8.1; python_version<'3.9'
tensorflow==2.2.0; python_version<'3.9'
tensorflow-estimator==2.2.0; python_version<'3.9'
termcolor==2.4.0; python_version<'3.9'
terminado==0.18.1
threadpoolctl==3.4.0
tinycss2==1.3.0
tomli==2.0.1
tornado==6.4
tqdm==4.66.2
threadpoolctl==3.5.0
tinycss2==1.4.0
tomli==2.2.1
tornado==6.4.2
tqdm==4.67.1
traitlets==5.14.3
types-python-dateutil==2.9.0.20240316
typing_extensions==4.11.0
tzdata==2024.1
types-python-dateutil==2.9.0.20241003
typing_extensions==4.12.2
tzdata==2024.2
uri-template==1.3.0
urllib3==2.2.1
urllib3==2.2.3
wcwidth==0.2.13
webcolors==1.13
webcolors==24.8.0; python_version<'3.9'
webcolors==24.11.1; python_version=='3.9'
webencodings==0.5.1
websocket-client==1.8.0
widgetsnbextension==4.0.10
wrapt==1.16.0; python_version<='3.8'
xgboost==2.0.3
zipp==3.18.1
widgetsnbextension==4.0.13
wrapt==1.17.0; python_version<'3.9'
xgboost==2.1.3
zipp==3.20.2; python_version<'3.9'
zipp==3.21.0; python_version=='3.9'
Loading
Loading