Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into 3313-enable-auto-ea…
Browse files Browse the repository at this point in the history
…rly-stopping
  • Loading branch information
ClaudioSalvatoreArcidiacono committed Dec 18, 2024
2 parents 9a32376 + 4feee28 commit f33ebd3
Show file tree
Hide file tree
Showing 12 changed files with 36 additions and 46 deletions.
4 changes: 2 additions & 2 deletions .ci/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -146,8 +146,8 @@ if [[ $TASK == "check-docs" ]] || [[ $TASK == "check-links" ]]; then
make -C docs html || exit 1
if [[ $TASK == "check-links" ]]; then
# check docs for broken links
pip install linkchecker
linkchecker --config=.linkcheckerrc ./docs/_build/html/*.html || exit 1
pip install 'linkchecker>=10.5.0'
linkchecker --config=./docs/.linkcheckerrc ./docs/_build/html/*.html || exit 1
exit 0
fi
# check the consistency of parameters' descriptions and other stuff
Expand Down
10 changes: 2 additions & 8 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,9 @@ repos:
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks:
- id: isort
name: isort (python)
args: ["--settings-path", "python-package/pyproject.toml"]
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.7.0
rev: v0.8.3
hooks:
# Run the linter.
- id: ruff
Expand All @@ -40,7 +34,7 @@ repos:
hooks:
- id: shellcheck
- repo: https://github.com/crate-ci/typos
rev: v1.23.2
rev: v1.28.3
hooks:
- id: typos
args: ["--force-exclude"]
Expand Down
6 changes: 4 additions & 2 deletions .vsts-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,15 +69,17 @@ jobs:
# check disk usage
print-diagnostics
# remove old containers, container images, volumes
# ref: https://stackoverflow.com/a/32723127/3986677)
# ref: https://stackoverflow.com/a/32723127/3986677
# ref: https://depot.dev/blog/docker-clear-cache#removing-everything-with-docker-system-prune
echo "---- running 'docker system prune' ----"
/tmp/docker system prune \
--all \
--force \
--volumes \
--filter until=720h
# check disk usage again
print-diagnostics
displayName: clean
displayName: Clean
###########################################
- job: Linux
###########################################
Expand Down
2 changes: 1 addition & 1 deletion R-package/tests/testthat/test_basic.R
Original file line number Diff line number Diff line change
Expand Up @@ -2345,7 +2345,7 @@ test_that("early stopping works with lgb.cv()", {
# never changes, its first iteration was the best oone
expect_equal(bst$best_iter, 1L)

# best_score should be taken from the first metri
# best_score should be taken from the first metric
expect_equal(bst$best_score, 0.2)

# early stopping should have happened, since constant_metric was the first
Expand Down
4 changes: 2 additions & 2 deletions docs/.linkcheckerrc
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[checking]
maxrequestspersecond=1
maxrequestspersecond=0.1
recursionlevel=1
anchors=1
sslverify=0
threads=1
threads=4

[filtering]
ignore=
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
"try:\n",
" # To enable interactive mode you should install ipywidgets\n",
" # https://github.com/jupyter-widgets/ipywidgets\n",
" from ipywidgets import interact, SelectMultiple\n",
" from ipywidgets import SelectMultiple, interact\n",
"\n",
" INTERACTIVE = True\n",
"except ImportError:\n",
Expand Down
8 changes: 4 additions & 4 deletions python-package/lightgbm/basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -2504,13 +2504,13 @@ def _compare_params_for_warning(
compare_result : bool
Returns whether two dictionaries with params are equal.
"""
for k in other_params:
for k, v in other_params.items():
if k not in ignore_keys:
if k not in params or params[k] != other_params[k]:
if k not in params or params[k] != v:
return False
for k in params:
for k, v in params.items():
if k not in ignore_keys:
if k not in other_params or params[k] != other_params[k]:
if k not in other_params or v != other_params[k]:
return False
return True

Expand Down
16 changes: 7 additions & 9 deletions python-package/lightgbm/callback.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,13 @@ class CallbackEnv:

def _format_eval_result(value: _EvalResultTuple, show_stdv: bool) -> str:
"""Format metric string."""
if len(value) == 4:
return f"{value[0]}'s {value[1]}: {value[2]:g}"
elif len(value) == 5:
if show_stdv:
return f"{value[0]}'s {value[1]}: {value[2]:g} + {value[4]:g}" # type: ignore[misc]
else:
return f"{value[0]}'s {value[1]}: {value[2]:g}"
else:
raise ValueError("Wrong metric value")
dataset_name, metric_name, metric_value, *_ = value
out = f"{dataset_name}'s {metric_name}: {metric_value:g}"
# tuples from cv() sometimes have a 5th item, with standard deviation of
# the evaluation metric (taken over all cross-validation folds)
if show_stdv and len(value) == 5:
out += f" + {value[4]:g}"
return out


class _LogEvaluationCallback:
Expand Down
2 changes: 1 addition & 1 deletion python-package/lightgbm/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -765,7 +765,7 @@ def cv(
train_set._update_params(params)._set_predictor(predictor)

results = defaultdict(list)
cvfolds = _make_n_folds(
cvbooster = _make_n_folds(
full_data=train_set,
folds=folds,
nfold=nfold,
Expand Down
24 changes: 10 additions & 14 deletions python-package/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -84,17 +84,6 @@ minimum-version = "build-system.requires"

# end:build-system

[tool.isort]
include_trailing_comma = true
line_length = 120
# "vertical hanging indent", to match what ruff-format does
# ref: https://pycqa.github.io/isort/docs/configuration/multi_line_output_modes.html#3-vertical-hanging-indent
multi_line_output = 3
skip_glob = [
"*/external_libs/*",
"*/lightgbm-python/*",
]

[tool.mypy]
disallow_untyped_defs = true
exclude = 'build/*|compile/*|docs/*|examples/*|external_libs/*|lightgbm-python/*|tests/*'
Expand Down Expand Up @@ -140,7 +129,7 @@ ignore = [
"PLR1714",
# (pylint) Magic value used in comparison
"PLR2004",
# (pylint) for loop veriable overwritten by assignment target
# (pylint) for loop variable overwritten by assignment target
"PLW2901",
# (pylint) use 'elif' instead of 'else' then 'if', to reduce indentation
"PLR5501"
Expand All @@ -152,10 +141,12 @@ select = [
"C4",
# pydocstyle
"D",
# pycodestyle
# pycodestyle (errors)
"E",
# pyflakes
"F",
# isort
"I",
# NumPy-specific rules
"NPY",
# pylint
Expand All @@ -166,11 +157,13 @@ select = [
"SIM401",
# flake8-print
"T",
# pycodestyle (warnings)
"W",
]

[tool.ruff.lint.per-file-ignores]
"docs/conf.py" = [
# (flake8-bugbear) raise exceptions with "raise ... from errr"
# (flake8-bugbear) raise exceptions with "raise ... from err"
"B904",
# (flake8-print) flake8-print
"T"
Expand All @@ -196,3 +189,6 @@ select = [

[tool.ruff.lint.pydocstyle]
convention = "numpy"

[tool.ruff.lint.isort]
known-first-party = ["lightgbm"]
2 changes: 1 addition & 1 deletion src/objective/rank_objective.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ class LambdarankNDCG : public RankingObjective {
}
const double worst_score = score[sorted_idx[worst_idx]];
double sum_lambdas = 0.0;
// start accmulate lambdas by pairs that contain at least one document above truncation level
// start accumulate lambdas by pairs that contain at least one document above truncation level
for (data_size_t i = 0; i < cnt - 1 && i < truncation_level_; ++i) {
if (score[sorted_idx[i]] == kMinScore) { continue; }
for (data_size_t j = i + 1; j < cnt; ++j) {
Expand Down
2 changes: 1 addition & 1 deletion src/treelearner/kernels/histogram_16_64_256.cu
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ __global__ void KERNEL_NAME(const uchar* feature_data_base,
// size of threads that process this feature4
const unsigned int subglobal_size = lsize * (1 << power_feature_workgroups);

// equavalent thread ID in this subgroup for this feature4
// equivalent thread ID in this subgroup for this feature4
const unsigned int subglobal_tid = gtid - feature_id * subglobal_size;


Expand Down

0 comments on commit f33ebd3

Please sign in to comment.