From 1fed8ed4485afec69f1dfc55433928636edcc07d Mon Sep 17 00:00:00 2001 From: Emiliy Feldman Date: Fri, 20 Feb 2026 14:03:35 +0000 Subject: [PATCH 1/5] updated version --- pyproject.toml | 2 +- rectools/version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 399c95ee..8423c7ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "RecTools" -version = "0.17.0" +version = "0.18.0" description = "An easy-to-use Python library for building recommendation systems" license = "Apache-2.0" authors = [ diff --git a/rectools/version.py b/rectools/version.py index 593ff396..ccfe8319 100644 --- a/rectools/version.py +++ b/rectools/version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -VERSION = "0.17.0" +VERSION = "0.18.0" From d8ee82a5b094114a551e9560c055c5ff21fe0bab Mon Sep 17 00:00:00 2001 From: Emiliy Feldman Date: Fri, 20 Feb 2026 14:04:57 +0000 Subject: [PATCH 2/5] fixed license headers --- rectools/columns.py | 2 +- rectools/compat.py | 2 +- rectools/exceptions.py | 2 +- rectools/models/base.py | 2 +- rectools/models/nn/transformers/data_preparator.py | 2 +- rectools/models/ranking/__init__.py | 2 +- rectools/models/ranking/candidate_ranking.py | 14 ++++++++++++++ rectools/models/ranking/catboost_reranker.py | 14 ++++++++++++++ rectools/version.py | 2 +- tests/models/ranking/test_candidate_ranking.py | 14 ++++++++++++++ tests/models/ranking/test_catboost_reranker.py | 14 ++++++++++++++ tests/models/test_implicit_bpr.py | 2 +- tests/models/test_serialization.py | 2 +- tests/test_compat.py | 2 +- 14 files changed, 66 insertions(+), 10 deletions(-) diff --git a/rectools/columns.py b/rectools/columns.py index 013a24eb..fd4d26c4 100644 --- a/rectools/columns.py +++ b/rectools/columns.py @@ -1,4 +1,4 @@ -# Copyright 2022-2024 MTS (Mobile Telesystems) +# Copyright 2022-2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rectools/compat.py b/rectools/compat.py index d1cd3861..5e460619 100644 --- a/rectools/compat.py +++ b/rectools/compat.py @@ -1,4 +1,4 @@ -# Copyright 2022-2025 MTS (Mobile Telesystems) +# Copyright 2022-2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rectools/exceptions.py b/rectools/exceptions.py index feaea091..dd3ab190 100644 --- a/rectools/exceptions.py +++ b/rectools/exceptions.py @@ -1,4 +1,4 @@ -# Copyright 2022 MTS (Mobile Telesystems) +# Copyright 2022-2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rectools/models/base.py b/rectools/models/base.py index 1b758a81..69f5968e 100644 --- a/rectools/models/base.py +++ b/rectools/models/base.py @@ -1,4 +1,4 @@ -# Copyright 2022-2025 MTS (Mobile Telesystems) +# Copyright 2022-2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rectools/models/nn/transformers/data_preparator.py b/rectools/models/nn/transformers/data_preparator.py index 1bf67569..7a5002dc 100644 --- a/rectools/models/nn/transformers/data_preparator.py +++ b/rectools/models/nn/transformers/data_preparator.py @@ -1,4 +1,4 @@ -# Copyright 2025 MTS (Mobile Telesystems) +# Copyright 2025-2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rectools/models/ranking/__init__.py b/rectools/models/ranking/__init__.py index 67a4f63f..26d4d44a 100644 --- a/rectools/models/ranking/__init__.py +++ b/rectools/models/ranking/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2024 MTS (Mobile Telesystems) +# Copyright 2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/rectools/models/ranking/candidate_ranking.py b/rectools/models/ranking/candidate_ranking.py index b2374cde..be17b551 100644 --- a/rectools/models/ranking/candidate_ranking.py +++ b/rectools/models/ranking/candidate_ranking.py @@ -1,3 +1,17 @@ +# Copyright 2026 MTS (Mobile Telesystems) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import typing as tp import warnings from collections import defaultdict diff --git a/rectools/models/ranking/catboost_reranker.py b/rectools/models/ranking/catboost_reranker.py index 204e60d5..058d4ad2 100644 --- a/rectools/models/ranking/catboost_reranker.py +++ b/rectools/models/ranking/catboost_reranker.py @@ -1,3 +1,17 @@ +# Copyright 2026 MTS (Mobile Telesystems) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import typing as tp import pandas as pd diff --git a/rectools/version.py b/rectools/version.py index ccfe8319..bba64e9c 100644 --- a/rectools/version.py +++ b/rectools/version.py @@ -1,4 +1,4 @@ -# Copyright 2022-2025 MTS (Mobile Telesystems) +# Copyright 2022-2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/ranking/test_candidate_ranking.py b/tests/models/ranking/test_candidate_ranking.py index f8409f70..cf9fe946 100644 --- a/tests/models/ranking/test_candidate_ranking.py +++ b/tests/models/ranking/test_candidate_ranking.py @@ -1,3 +1,17 @@ +# Copyright 2026 MTS (Mobile Telesystems) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import typing as tp from unittest.mock import MagicMock diff --git a/tests/models/ranking/test_catboost_reranker.py b/tests/models/ranking/test_catboost_reranker.py index af5510df..76ba8371 100644 --- a/tests/models/ranking/test_catboost_reranker.py +++ b/tests/models/ranking/test_catboost_reranker.py @@ -1,3 +1,17 @@ +# Copyright 2026 MTS (Mobile Telesystems) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import typing as tp import numpy as np diff --git a/tests/models/test_implicit_bpr.py b/tests/models/test_implicit_bpr.py index 0941ccb5..9cb5777a 100644 --- a/tests/models/test_implicit_bpr.py +++ b/tests/models/test_implicit_bpr.py @@ -1,4 +1,4 @@ -# Copyright 2025 MTS (Mobile Telesystems) +# Copyright 2025-2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/models/test_serialization.py b/tests/models/test_serialization.py index 2ef5c2af..3f1f8416 100644 --- a/tests/models/test_serialization.py +++ b/tests/models/test_serialization.py @@ -1,4 +1,4 @@ -# Copyright 2024-2025 MTS (Mobile Telesystems) +# Copyright 2024-2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/tests/test_compat.py b/tests/test_compat.py index 6bf09f3e..afa80f07 100644 --- a/tests/test_compat.py +++ b/tests/test_compat.py @@ -1,4 +1,4 @@ -# Copyright 2022-2025 MTS (Mobile Telesystems) +# Copyright 2022-2026 MTS (Mobile Telesystems) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. From 41465a34062e3958943cd87033b0fe69cfa4d0c6 Mon Sep 17 00:00:00 2001 From: Emiliy Feldman Date: Fri, 20 Feb 2026 14:10:15 +0000 Subject: [PATCH 3/5] updated changelog --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ea7349a..f758796f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## [0.18.0] - 20.02.2025 ### Added - Two-stage candidate ranking system with `CandidateRankingModel` and supporting classes (`CandidateGenerator`, `CandidateFeatureCollector`, `Reranker`, `CatBoostReranker`, `PerUserNegativeSampler`) ([#296](https://github.com/MobileTeleSystems/RecTools/pull/296)) +### Changed +- Used `pm-implicit` instead of `implicit` for Python>=3.10 to support Cuda 12.x ([#298](https://github.com/MobileTeleSystems/RecTools/pull/298)) + ## [0.17.0] - 03.09.2025 From 3baabb6d389487a14279539e70b77135161f787f Mon Sep 17 00:00:00 2001 From: Emiliy Feldman Date: Fri, 20 Feb 2026 20:51:52 +0000 Subject: [PATCH 4/5] fixed date in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f758796f..15e77808 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.18.0] - 20.02.2025 +## [0.18.0] - 21.02.2026 ### Added - Two-stage candidate ranking system with `CandidateRankingModel` and supporting classes (`CandidateGenerator`, `CandidateFeatureCollector`, `Reranker`, `CatBoostReranker`, `PerUserNegativeSampler`) ([#296](https://github.com/MobileTeleSystems/RecTools/pull/296)) From 78a384c59fb83bf3e14c6c478c1c1015a3dd3169 Mon Sep 17 00:00:00 2001 From: Emiliy Feldman Date: Sat, 21 Feb 2026 06:39:54 +0100 Subject: [PATCH 5/5] removed xdist mention from test command --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 3509ff08..37f08446 100644 --- a/Makefile +++ b/Makefile @@ -59,7 +59,7 @@ install: .venv .reports # Tests .pytest: - poetry run pytest -n 0 ${TESTS} --cov=${SOURCES} --cov-report=xml + poetry run pytest ${TESTS} --cov=${SOURCES} --cov-report=xml .doctest: poetry run pytest --doctest-modules ${SOURCES} --ignore=rectools/tools/ann.py