From 0739cf953e71c0ba46df88e31fb6a1a2fac220d5 Mon Sep 17 00:00:00 2001 From: Noah Hollmann Date: Wed, 13 May 2026 18:40:11 +0200 Subject: [PATCH] chore: add THIRD-PARTY-NOTICES.md documenting vendored sklearn-compat The single-file sklearn-compat compatibility shim at src/tabpfn_extensions/misc/sklearn_compat.py (vendored verbatim from upstream version 0.1.5) had only a "taken from URL" pointer with no license / copyright attribution. Adds: - THIRD-PARTY-NOTICES.md at repo root mirroring the format used in fomo-fitting and TabPFN. - BSD-3-Clause attribution block in the vendored file header (Copyright (c) 2024, Guillaume Lemaitre). Co-Authored-By: Claude Opus 4.7 (1M context) --- THIRD-PARTY-NOTICES.md | 36 ++++++++++++++++++++ src/tabpfn_extensions/misc/sklearn_compat.py | 12 ++++++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 THIRD-PARTY-NOTICES.md diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md new file mode 100644 index 00000000..712ad0e6 --- /dev/null +++ b/THIRD-PARTY-NOTICES.md @@ -0,0 +1,36 @@ +# Third-Party Notices + +This file documents third-party code adapted into this repository, with +upstream attribution preserved. Transitive dependencies installed via +`pip` are governed by their own licenses (see `pyproject.toml` for the +canonical list). + +--- + +## Summary + +| Upstream | Local path | Upstream license | +|---|---|---| +| sklearn-compat — single-file compat shim | `src/tabpfn_extensions/misc/sklearn_compat.py` | BSD-3-Clause | + +--- + +## Per-upstream notices + +### sklearn-compat — compatibility shim + +**Upstream:** https://github.com/sklearn-compat/sklearn-compat +**Local path:** `src/tabpfn_extensions/misc/sklearn_compat.py` (single-file vendored distribution; ~1000 lines) +**License:** BSD-3-Clause +**Copyright:** Copyright (c) 2024, Guillaume Lemaitre (per the upstream `LICENSE`) +**Modifications:** None of significance; vendored verbatim from upstream version 0.1.5 to avoid an extra runtime dependency. The single-file format is the distribution model sklearn-compat itself encourages for downstream users. File is kept as close to upstream as possible — both `ruff` formatting and `mypy` type-checking are suppressed at the top of the file. + +--- + +## Adding new entries + +When vendoring or adapting third-party code: + +1. Preserve any upstream per-file copyright and license header verbatim. If the upstream does not ship a per-file header, add an attribution block citing the upstream URL, copyright holder, and SPDX license identifier. +2. When vendoring a whole directory of upstream code, also vendor the upstream `LICENSE` / `NOTICE` file alongside it. For single-file adaptations, the in-file attribution plus the entry in this NOTICE file is sufficient. +3. Add a row to the summary table and a per-upstream notice to this file, including the upstream copyright line when one is published. diff --git a/src/tabpfn_extensions/misc/sklearn_compat.py b/src/tabpfn_extensions/misc/sklearn_compat.py index 031a58a3..df249904 100644 --- a/src/tabpfn_extensions/misc/sklearn_compat.py +++ b/src/tabpfn_extensions/misc/sklearn_compat.py @@ -1,6 +1,16 @@ # ruff: noqa # mypy: ignore-errors -# taken from https://github.com/sklearn-compat/sklearn-compat (vendored — do not lint-format) +# +# Vendored from sklearn-compat: https://github.com/sklearn-compat/sklearn-compat +# (do not lint-format — keep as close to upstream as possible). +# +# Copyright (c) 2024, Guillaume Lemaitre +# SPDX-License-Identifier: BSD-3-Clause +# +# sklearn-compat is distributed under the BSD-3-Clause license; see the +# repository LICENSE for full terms. This file is the vendored, single-file +# distribution intended for projects that prefer not to depend on the +# sklearn-compat package directly. """Ease developer experience to support multiple versions of scikit-learn. This file is intended to be vendored in your project if you do not want to depend on