Skip to content

Commit

Permalink
[ci] [python-package] enforce flake8 checks (fixes #5566) (#5659)
Browse files Browse the repository at this point in the history
  • Loading branch information
jameslamb authored Jan 12, 2023
1 parent 23403a7 commit 02d212b
Show file tree
Hide file tree
Showing 8 changed files with 23 additions and 10 deletions.
7 changes: 5 additions & 2 deletions .ci/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,16 @@ if [[ $TASK == "lint" ]]; then
conda install -q -y -n $CONDA_ENV \
cmakelint \
cpplint \
flake8 \
isort \
mypy \
pycodestyle \
pydocstyle \
"r-lintr>=3.0"
echo "Linting Python code"
pycodestyle --ignore=E501,W503 --exclude=./.nuget,./external_libs . || exit -1
flake8 \
--ignore=E501,W503 \
--exclude=./.nuget,./external_libs,./python-package/build \
. || exit -1
pydocstyle --convention=numpy --add-ignore=D105 --match-dir="^(?!^external_libs|test|example).*" --match="(?!^test_|setup).*\.py" . || exit -1
isort . --check-only || exit -1
mypy --ignore-missing-imports python-package/ || true
Expand Down
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ def run(self) -> List:
'scipy.sparse',
]
try:
import sklearn
import sklearn # noqa: F401
except ImportError:
autodoc_mock_imports.append('sklearn')
# hide type hints in API docs
Expand Down
4 changes: 2 additions & 2 deletions python-package/lightgbm/compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ def __init__(self, *args, **kwargs):

"""matplotlib"""
try:
import matplotlib
import matplotlib # noqa: F401
MATPLOTLIB_INSTALLED = True
except ImportError:
MATPLOTLIB_INSTALLED = False

"""graphviz"""
try:
import graphviz
import graphviz # noqa: F401
GRAPHVIZ_INSTALLED = True
except ImportError:
GRAPHVIZ_INSTALLED = False
Expand Down
2 changes: 1 addition & 1 deletion python-package/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def silent_call(cmd: List[str], raise_error: bool = False, error_msg: str = '')
with open(LOG_PATH, "ab") as log:
subprocess.check_call(cmd, stderr=log, stdout=log)
return 0
except Exception as err:
except Exception:
if raise_error:
raise Exception("\n".join((error_msg, LOG_NOTICE)))
return 1
Expand Down
2 changes: 1 addition & 1 deletion tests/python_package_test/test_callback.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import lightgbm as lgb

from .utils import SERIALIZERS, pickle_and_unpickle_object, pickle_obj, unpickle_obj
from .utils import SERIALIZERS, pickle_and_unpickle_object


def reset_feature_fraction(boosting_round):
Expand Down
4 changes: 2 additions & 2 deletions tests/python_package_test/test_dask.py
Original file line number Diff line number Diff line change
Expand Up @@ -1723,7 +1723,7 @@ def test_dask_methods_and_sklearn_equivalents_have_similar_signatures(methods):

@pytest.mark.parametrize('task', tasks)
def test_training_succeeds_when_data_is_dataframe_and_label_is_column_array(task, cluster):
with Client(cluster) as client:
with Client(cluster):
_, _, _, _, dX, dy, dw, dg = _create_data(
objective=task,
output='dataframe',
Expand Down Expand Up @@ -1802,7 +1802,7 @@ def _tested_estimators():
@pytest.mark.parametrize("estimator", _tested_estimators())
@pytest.mark.parametrize("check", sklearn_checks_to_run())
def test_sklearn_integration(estimator, check, cluster):
with Client(cluster) as client:
with Client(cluster):
estimator.set_params(local_listen_port=18000, time_out=5)
name = type(estimator).__name__
check(name, estimator)
Expand Down
2 changes: 1 addition & 1 deletion tests/python_package_test/test_engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -2903,7 +2903,7 @@ def test_forced_split_feature_indices(tmp_path):
"forcedsplits_filename": tmp_split_file
}
with pytest.raises(lgb.basic.LightGBMError, match="Forced splits file includes feature index"):
bst = lgb.train(params, lgb_train)
lgb.train(params, lgb_train)


def test_forced_bins():
Expand Down
10 changes: 10 additions & 0 deletions tests/python_package_test/test_sklearn.py
Original file line number Diff line number Diff line change
Expand Up @@ -445,9 +445,19 @@ def test_clone_and_property():
gbm.fit(X, y)

gbm_clone = clone(gbm)

# original estimator is unaffected
assert gbm.n_estimators == 10
assert gbm.verbose == -1
assert isinstance(gbm.booster_, lgb.Booster)
assert isinstance(gbm.feature_importances_, np.ndarray)

# new estimator is unfitted, but has the same parameters
assert gbm_clone.__sklearn_is_fitted__() is False
assert gbm_clone.n_estimators == 10
assert gbm_clone.verbose == -1
assert gbm_clone.get_params() == gbm.get_params()

X, y = load_digits(n_class=2, return_X_y=True)
clf = lgb.LGBMClassifier(n_estimators=10, verbose=-1)
clf.fit(X, y)
Expand Down

0 comments on commit 02d212b

Please sign in to comment.