WIP: [python-package] remove unnecessary layer of try-catching in conditional imports #6745
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Optional dependencies in this project are handled via a pattern like this in
compat.py
:That ensures that importing from
lightgbm
andlightgbm.sklearn
still works even in environments wherescikit-learn
is not installed.Given this protection, this additional layer of try-catching in the top-level
__init__.py
is unnecessary:LightGBM/python-package/lightgbm/__init__.py
Lines 15 to 19 in 53e0ddf
This proposes removing it, for the following reasons:
Notes for Reviewers
The try-catches removed in this PR have been in
lightgbm
for 8+ years, since #97How I tested this
Installed the library.
cmake -B build -S . cmake --build build --target _lightgbm -j4 sh build-python.sh install --precompile
Tried importing uninstalling
scikit-learn
and them importingLGBMClassifier
.pip uninstall --yes scikit-learn scipy python -c "from lightgbm import LGBMClassifier"