From 6e3c7cee4afe7ac707bff4737b17d7c49bcd8a20 Mon Sep 17 00:00:00 2001 From: Thomas S Date: Mon, 27 Jan 2025 17:59:28 +0100 Subject: [PATCH] [skip ci] ci: Use lockfiles to ensure cached venv are always up-to-date --- .../scikit-learn-1.6-test-requirements.txt | 241 +++++++++++++++++ .../scikit-learn-1.6-test-requirements.txt | 231 ++++++++++++++++ .../scikit-learn-1.4-test-requirements.txt | 231 ++++++++++++++++ .../scikit-learn-1.5-test-requirements.txt | 231 ++++++++++++++++ .../scikit-learn-1.6-test-requirements.txt | 231 ++++++++++++++++ .../scikit-learn-1.6-test-requirements.txt | 250 ++++++++++++++++++ skore/hatch/metadata.py | 31 ++- skore/pyproject.toml | 61 +---- skore/requirements.in | 13 + skore/sphinx-requirements.in | 14 + skore/test-requirements.in | 14 + 11 files changed, 1496 insertions(+), 52 deletions(-) create mode 100644 skore/ci/requirements/python-3.10/scikit-learn-1.6-test-requirements.txt create mode 100644 skore/ci/requirements/python-3.11/scikit-learn-1.6-test-requirements.txt create mode 100644 skore/ci/requirements/python-3.12/scikit-learn-1.4-test-requirements.txt create mode 100644 skore/ci/requirements/python-3.12/scikit-learn-1.5-test-requirements.txt create mode 100644 skore/ci/requirements/python-3.12/scikit-learn-1.6-test-requirements.txt create mode 100644 skore/ci/requirements/python-3.9/scikit-learn-1.6-test-requirements.txt create mode 100644 skore/requirements.in create mode 100644 skore/sphinx-requirements.in create mode 100644 skore/test-requirements.in diff --git a/skore/ci/requirements/python-3.10/scikit-learn-1.6-test-requirements.txt b/skore/ci/requirements/python-3.10/scikit-learn-1.6-test-requirements.txt new file mode 100644 index 000000000..d79ab31c6 --- /dev/null +++ b/skore/ci/requirements/python-3.10/scikit-learn-1.6-test-requirements.txt @@ -0,0 +1,241 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --extra=test --output-file=ci/requirements/python-3.10/scikit-learn-1.6-test-requirements.txt pyproject.toml +# +altair==5.5.0 + # via skore (pyproject.toml) +annotated-types==0.7.0 + # via pydantic +anyio==4.8.0 + # via + # httpx + # starlette +attrs==25.1.0 + # via + # jsonschema + # referencing +certifi==2024.12.14 + # via + # httpcore + # httpx + # requests +cfgv==3.4.0 + # via pre-commit +charset-normalizer==3.4.1 + # via requests +click==8.1.8 + # via uvicorn +contourpy==1.3.1 + # via matplotlib +coverage[toml]==7.6.10 + # via pytest-cov +cycler==0.12.1 + # via matplotlib +diskcache==5.6.3 + # via skore (pyproject.toml) +distlib==0.3.9 + # via virtualenv +exceptiongroup==1.2.2 + # via + # anyio + # pytest +execnet==2.1.1 + # via pytest-xdist +fastapi==0.115.7 + # via skore (pyproject.toml) +filelock==3.17.0 + # via + # huggingface-hub + # virtualenv +fonttools==4.55.6 + # via matplotlib +fsspec==2024.12.0 + # via huggingface-hub +h11==0.14.0 + # via + # httpcore + # uvicorn +httpcore==1.0.7 + # via httpx +httpx==0.28.1 + # via skore (pyproject.toml) +huggingface-hub==0.27.1 + # via skops +identify==2.6.6 + # via pre-commit +idna==3.10 + # via + # anyio + # httpx + # requests +iniconfig==2.0.0 + # via pytest +jinja2==3.1.5 + # via + # altair + # skrub +joblib==1.4.2 + # via + # scikit-learn + # skore (pyproject.toml) +jsonschema==4.23.0 + # via altair +jsonschema-specifications==2024.10.1 + # via jsonschema +kiwisolver==1.4.8 + # via matplotlib +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.2 + # via jinja2 +matplotlib==3.10.0 + # via + # skore (pyproject.toml) + # skrub +mdurl==0.1.2 + # via markdown-it-py +narwhals==1.24.0 + # via altair +nodeenv==1.9.1 + # via pre-commit +numpy==2.2.2 + # via + # contourpy + # matplotlib + # pandas + # scikit-learn + # scipy + # skore (pyproject.toml) + # skrub +orjson==3.10.15 + # via skore (pyproject.toml) +packaging==24.2 + # via + # altair + # huggingface-hub + # matplotlib + # plotly + # pytest + # skops + # skrub +pandas==2.2.3 + # via + # skore (pyproject.toml) + # skrub +pillow==11.1.0 + # via + # matplotlib + # skore (pyproject.toml) +platformdirs==4.3.6 + # via virtualenv +plotly==5.24.1 + # via skore (pyproject.toml) +pluggy==1.5.0 + # via pytest +polars==1.21.0 + # via skore (pyproject.toml) +pre-commit==4.1.0 + # via skore (pyproject.toml) +pyarrow==19.0.0 + # via skore (pyproject.toml) +pydantic==2.10.6 + # via fastapi +pydantic-core==2.27.2 + # via pydantic +pygments==2.19.1 + # via rich +pyparsing==3.2.1 + # via matplotlib +pytest==8.3.4 + # via + # pytest-cov + # pytest-order + # pytest-randomly + # pytest-xdist + # skore (pyproject.toml) +pytest-cov==6.0.0 + # via skore (pyproject.toml) +pytest-order==1.3.0 + # via skore (pyproject.toml) +pytest-randomly==3.16.0 + # via skore (pyproject.toml) +pytest-xdist==3.6.1 + # via skore (pyproject.toml) +python-dateutil==2.9.0.post0 + # via + # matplotlib + # pandas +pytz==2024.2 + # via pandas +pyyaml==6.0.2 + # via + # huggingface-hub + # pre-commit +referencing==0.36.2 + # via + # jsonschema + # jsonschema-specifications +requests==2.32.3 + # via + # huggingface-hub + # skrub +rich==13.9.4 + # via skore (pyproject.toml) +rpds-py==0.22.3 + # via + # jsonschema + # referencing +ruff==0.9.3 + # via skore (pyproject.toml) +scikit-learn==1.6.1 + # via + # skops + # skore (pyproject.toml) + # skrub +scipy==1.15.1 + # via + # scikit-learn + # skrub +six==1.17.0 + # via python-dateutil +skops==0.11.0 + # via skore (pyproject.toml) +skrub==0.5.1 + # via skore (pyproject.toml) +sniffio==1.3.1 + # via anyio +starlette==0.45.3 + # via fastapi +tabulate==0.9.0 + # via skops +tenacity==9.0.0 + # via plotly +threadpoolctl==3.5.0 + # via scikit-learn +tomli==2.2.1 + # via + # coverage + # pytest +tqdm==4.67.1 + # via huggingface-hub +typing-extensions==4.12.2 + # via + # altair + # anyio + # fastapi + # huggingface-hub + # pydantic + # pydantic-core + # referencing + # rich + # uvicorn +tzdata==2025.1 + # via pandas +urllib3==2.3.0 + # via requests +uvicorn==0.34.0 + # via skore (pyproject.toml) +virtualenv==20.29.1 + # via pre-commit diff --git a/skore/ci/requirements/python-3.11/scikit-learn-1.6-test-requirements.txt b/skore/ci/requirements/python-3.11/scikit-learn-1.6-test-requirements.txt new file mode 100644 index 000000000..8015dc146 --- /dev/null +++ b/skore/ci/requirements/python-3.11/scikit-learn-1.6-test-requirements.txt @@ -0,0 +1,231 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --extra=test --output-file=ci/requirements/python-3.11/scikit-learn-1.6-test-requirements.txt pyproject.toml +# +altair==5.5.0 + # via skore (pyproject.toml) +annotated-types==0.7.0 + # via pydantic +anyio==4.8.0 + # via + # httpx + # starlette +attrs==25.1.0 + # via + # jsonschema + # referencing +certifi==2024.12.14 + # via + # httpcore + # httpx + # requests +cfgv==3.4.0 + # via pre-commit +charset-normalizer==3.4.1 + # via requests +click==8.1.8 + # via uvicorn +contourpy==1.3.1 + # via matplotlib +coverage[toml]==7.6.10 + # via pytest-cov +cycler==0.12.1 + # via matplotlib +diskcache==5.6.3 + # via skore (pyproject.toml) +distlib==0.3.9 + # via virtualenv +execnet==2.1.1 + # via pytest-xdist +fastapi==0.115.7 + # via skore (pyproject.toml) +filelock==3.17.0 + # via + # huggingface-hub + # virtualenv +fonttools==4.55.6 + # via matplotlib +fsspec==2024.12.0 + # via huggingface-hub +h11==0.14.0 + # via + # httpcore + # uvicorn +httpcore==1.0.7 + # via httpx +httpx==0.28.1 + # via skore (pyproject.toml) +huggingface-hub==0.27.1 + # via skops +identify==2.6.6 + # via pre-commit +idna==3.10 + # via + # anyio + # httpx + # requests +iniconfig==2.0.0 + # via pytest +jinja2==3.1.5 + # via + # altair + # skrub +joblib==1.4.2 + # via + # scikit-learn + # skore (pyproject.toml) +jsonschema==4.23.0 + # via altair +jsonschema-specifications==2024.10.1 + # via jsonschema +kiwisolver==1.4.8 + # via matplotlib +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.2 + # via jinja2 +matplotlib==3.10.0 + # via + # skore (pyproject.toml) + # skrub +mdurl==0.1.2 + # via markdown-it-py +narwhals==1.24.0 + # via altair +nodeenv==1.9.1 + # via pre-commit +numpy==2.2.2 + # via + # contourpy + # matplotlib + # pandas + # scikit-learn + # scipy + # skore (pyproject.toml) + # skrub +orjson==3.10.15 + # via skore (pyproject.toml) +packaging==24.2 + # via + # altair + # huggingface-hub + # matplotlib + # plotly + # pytest + # skops + # skrub +pandas==2.2.3 + # via + # skore (pyproject.toml) + # skrub +pillow==11.1.0 + # via + # matplotlib + # skore (pyproject.toml) +platformdirs==4.3.6 + # via virtualenv +plotly==5.24.1 + # via skore (pyproject.toml) +pluggy==1.5.0 + # via pytest +polars==1.21.0 + # via skore (pyproject.toml) +pre-commit==4.1.0 + # via skore (pyproject.toml) +pyarrow==19.0.0 + # via skore (pyproject.toml) +pydantic==2.10.6 + # via fastapi +pydantic-core==2.27.2 + # via pydantic +pygments==2.19.1 + # via rich +pyparsing==3.2.1 + # via matplotlib +pytest==8.3.4 + # via + # pytest-cov + # pytest-order + # pytest-randomly + # pytest-xdist + # skore (pyproject.toml) +pytest-cov==6.0.0 + # via skore (pyproject.toml) +pytest-order==1.3.0 + # via skore (pyproject.toml) +pytest-randomly==3.16.0 + # via skore (pyproject.toml) +pytest-xdist==3.6.1 + # via skore (pyproject.toml) +python-dateutil==2.9.0.post0 + # via + # matplotlib + # pandas +pytz==2024.2 + # via pandas +pyyaml==6.0.2 + # via + # huggingface-hub + # pre-commit +referencing==0.36.2 + # via + # jsonschema + # jsonschema-specifications +requests==2.32.3 + # via + # huggingface-hub + # skrub +rich==13.9.4 + # via skore (pyproject.toml) +rpds-py==0.22.3 + # via + # jsonschema + # referencing +ruff==0.9.3 + # via skore (pyproject.toml) +scikit-learn==1.6.1 + # via + # skops + # skore (pyproject.toml) + # skrub +scipy==1.15.1 + # via + # scikit-learn + # skrub +six==1.17.0 + # via python-dateutil +skops==0.11.0 + # via skore (pyproject.toml) +skrub==0.5.1 + # via skore (pyproject.toml) +sniffio==1.3.1 + # via anyio +starlette==0.45.3 + # via fastapi +tabulate==0.9.0 + # via skops +tenacity==9.0.0 + # via plotly +threadpoolctl==3.5.0 + # via scikit-learn +tqdm==4.67.1 + # via huggingface-hub +typing-extensions==4.12.2 + # via + # altair + # anyio + # fastapi + # huggingface-hub + # pydantic + # pydantic-core + # referencing +tzdata==2025.1 + # via pandas +urllib3==2.3.0 + # via requests +uvicorn==0.34.0 + # via skore (pyproject.toml) +virtualenv==20.29.1 + # via pre-commit diff --git a/skore/ci/requirements/python-3.12/scikit-learn-1.4-test-requirements.txt b/skore/ci/requirements/python-3.12/scikit-learn-1.4-test-requirements.txt new file mode 100644 index 000000000..6e4007782 --- /dev/null +++ b/skore/ci/requirements/python-3.12/scikit-learn-1.4-test-requirements.txt @@ -0,0 +1,231 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --extra=test --output-file=ci/requirements/python-3.12/scikit-learn-1.4-test-requirements.txt pyproject.toml +# +altair==5.5.0 + # via skore (pyproject.toml) +annotated-types==0.7.0 + # via pydantic +anyio==4.8.0 + # via + # httpx + # starlette +attrs==25.1.0 + # via + # jsonschema + # referencing +certifi==2024.12.14 + # via + # httpcore + # httpx + # requests +cfgv==3.4.0 + # via pre-commit +charset-normalizer==3.4.1 + # via requests +click==8.1.8 + # via uvicorn +contourpy==1.3.1 + # via matplotlib +coverage[toml]==7.6.10 + # via pytest-cov +cycler==0.12.1 + # via matplotlib +diskcache==5.6.3 + # via skore (pyproject.toml) +distlib==0.3.9 + # via virtualenv +execnet==2.1.1 + # via pytest-xdist +fastapi==0.115.7 + # via skore (pyproject.toml) +filelock==3.17.0 + # via + # huggingface-hub + # virtualenv +fonttools==4.55.6 + # via matplotlib +fsspec==2024.12.0 + # via huggingface-hub +h11==0.14.0 + # via + # httpcore + # uvicorn +httpcore==1.0.7 + # via httpx +httpx==0.28.1 + # via skore (pyproject.toml) +huggingface-hub==0.27.1 + # via skops +identify==2.6.6 + # via pre-commit +idna==3.10 + # via + # anyio + # httpx + # requests +iniconfig==2.0.0 + # via pytest +jinja2==3.1.5 + # via + # altair + # skrub +joblib==1.4.2 + # via + # scikit-learn + # skore (pyproject.toml) +jsonschema==4.23.0 + # via altair +jsonschema-specifications==2024.10.1 + # via jsonschema +kiwisolver==1.4.8 + # via matplotlib +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.2 + # via jinja2 +matplotlib==3.10.0 + # via + # skore (pyproject.toml) + # skrub +mdurl==0.1.2 + # via markdown-it-py +narwhals==1.24.0 + # via altair +nodeenv==1.9.1 + # via pre-commit +numpy==2.2.2 + # via + # contourpy + # matplotlib + # pandas + # scikit-learn + # scipy + # skore (pyproject.toml) + # skrub +orjson==3.10.15 + # via skore (pyproject.toml) +packaging==24.2 + # via + # altair + # huggingface-hub + # matplotlib + # plotly + # pytest + # skops + # skrub +pandas==2.2.3 + # via + # skore (pyproject.toml) + # skrub +pillow==11.1.0 + # via + # matplotlib + # skore (pyproject.toml) +platformdirs==4.3.6 + # via virtualenv +plotly==5.24.1 + # via skore (pyproject.toml) +pluggy==1.5.0 + # via pytest +polars==1.21.0 + # via skore (pyproject.toml) +pre-commit==4.1.0 + # via skore (pyproject.toml) +pyarrow==19.0.0 + # via skore (pyproject.toml) +pydantic==2.10.6 + # via fastapi +pydantic-core==2.27.2 + # via pydantic +pygments==2.19.1 + # via rich +pyparsing==3.2.1 + # via matplotlib +pytest==8.3.4 + # via + # pytest-cov + # pytest-order + # pytest-randomly + # pytest-xdist + # skore (pyproject.toml) +pytest-cov==6.0.0 + # via skore (pyproject.toml) +pytest-order==1.3.0 + # via skore (pyproject.toml) +pytest-randomly==3.16.0 + # via skore (pyproject.toml) +pytest-xdist==3.6.1 + # via skore (pyproject.toml) +python-dateutil==2.9.0.post0 + # via + # matplotlib + # pandas +pytz==2024.2 + # via pandas +pyyaml==6.0.2 + # via + # huggingface-hub + # pre-commit +referencing==0.36.2 + # via + # jsonschema + # jsonschema-specifications +requests==2.32.3 + # via + # huggingface-hub + # skrub +rich==13.9.4 + # via skore (pyproject.toml) +rpds-py==0.22.3 + # via + # jsonschema + # referencing +ruff==0.9.3 + # via skore (pyproject.toml) +scikit-learn==1.4.2 + # via + # skops + # skore (pyproject.toml) + # skrub +scipy==1.15.1 + # via + # scikit-learn + # skrub +six==1.17.0 + # via python-dateutil +skops==0.11.0 + # via skore (pyproject.toml) +skrub==0.5.1 + # via skore (pyproject.toml) +sniffio==1.3.1 + # via anyio +starlette==0.45.3 + # via fastapi +tabulate==0.9.0 + # via skops +tenacity==9.0.0 + # via plotly +threadpoolctl==3.5.0 + # via scikit-learn +tqdm==4.67.1 + # via huggingface-hub +typing-extensions==4.12.2 + # via + # altair + # anyio + # fastapi + # huggingface-hub + # pydantic + # pydantic-core + # referencing +tzdata==2025.1 + # via pandas +urllib3==2.3.0 + # via requests +uvicorn==0.34.0 + # via skore (pyproject.toml) +virtualenv==20.29.1 + # via pre-commit diff --git a/skore/ci/requirements/python-3.12/scikit-learn-1.5-test-requirements.txt b/skore/ci/requirements/python-3.12/scikit-learn-1.5-test-requirements.txt new file mode 100644 index 000000000..157abbfa6 --- /dev/null +++ b/skore/ci/requirements/python-3.12/scikit-learn-1.5-test-requirements.txt @@ -0,0 +1,231 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --extra=test --output-file=ci/requirements/python-3.12/scikit-learn-1.5-test-requirements.txt pyproject.toml +# +altair==5.5.0 + # via skore (pyproject.toml) +annotated-types==0.7.0 + # via pydantic +anyio==4.8.0 + # via + # httpx + # starlette +attrs==25.1.0 + # via + # jsonschema + # referencing +certifi==2024.12.14 + # via + # httpcore + # httpx + # requests +cfgv==3.4.0 + # via pre-commit +charset-normalizer==3.4.1 + # via requests +click==8.1.8 + # via uvicorn +contourpy==1.3.1 + # via matplotlib +coverage[toml]==7.6.10 + # via pytest-cov +cycler==0.12.1 + # via matplotlib +diskcache==5.6.3 + # via skore (pyproject.toml) +distlib==0.3.9 + # via virtualenv +execnet==2.1.1 + # via pytest-xdist +fastapi==0.115.7 + # via skore (pyproject.toml) +filelock==3.17.0 + # via + # huggingface-hub + # virtualenv +fonttools==4.55.6 + # via matplotlib +fsspec==2024.12.0 + # via huggingface-hub +h11==0.14.0 + # via + # httpcore + # uvicorn +httpcore==1.0.7 + # via httpx +httpx==0.28.1 + # via skore (pyproject.toml) +huggingface-hub==0.27.1 + # via skops +identify==2.6.6 + # via pre-commit +idna==3.10 + # via + # anyio + # httpx + # requests +iniconfig==2.0.0 + # via pytest +jinja2==3.1.5 + # via + # altair + # skrub +joblib==1.4.2 + # via + # scikit-learn + # skore (pyproject.toml) +jsonschema==4.23.0 + # via altair +jsonschema-specifications==2024.10.1 + # via jsonschema +kiwisolver==1.4.8 + # via matplotlib +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.2 + # via jinja2 +matplotlib==3.10.0 + # via + # skore (pyproject.toml) + # skrub +mdurl==0.1.2 + # via markdown-it-py +narwhals==1.24.0 + # via altair +nodeenv==1.9.1 + # via pre-commit +numpy==2.2.2 + # via + # contourpy + # matplotlib + # pandas + # scikit-learn + # scipy + # skore (pyproject.toml) + # skrub +orjson==3.10.15 + # via skore (pyproject.toml) +packaging==24.2 + # via + # altair + # huggingface-hub + # matplotlib + # plotly + # pytest + # skops + # skrub +pandas==2.2.3 + # via + # skore (pyproject.toml) + # skrub +pillow==11.1.0 + # via + # matplotlib + # skore (pyproject.toml) +platformdirs==4.3.6 + # via virtualenv +plotly==5.24.1 + # via skore (pyproject.toml) +pluggy==1.5.0 + # via pytest +polars==1.21.0 + # via skore (pyproject.toml) +pre-commit==4.1.0 + # via skore (pyproject.toml) +pyarrow==19.0.0 + # via skore (pyproject.toml) +pydantic==2.10.6 + # via fastapi +pydantic-core==2.27.2 + # via pydantic +pygments==2.19.1 + # via rich +pyparsing==3.2.1 + # via matplotlib +pytest==8.3.4 + # via + # pytest-cov + # pytest-order + # pytest-randomly + # pytest-xdist + # skore (pyproject.toml) +pytest-cov==6.0.0 + # via skore (pyproject.toml) +pytest-order==1.3.0 + # via skore (pyproject.toml) +pytest-randomly==3.16.0 + # via skore (pyproject.toml) +pytest-xdist==3.6.1 + # via skore (pyproject.toml) +python-dateutil==2.9.0.post0 + # via + # matplotlib + # pandas +pytz==2024.2 + # via pandas +pyyaml==6.0.2 + # via + # huggingface-hub + # pre-commit +referencing==0.36.2 + # via + # jsonschema + # jsonschema-specifications +requests==2.32.3 + # via + # huggingface-hub + # skrub +rich==13.9.4 + # via skore (pyproject.toml) +rpds-py==0.22.3 + # via + # jsonschema + # referencing +ruff==0.9.3 + # via skore (pyproject.toml) +scikit-learn==1.5.2 + # via + # skops + # skore (pyproject.toml) + # skrub +scipy==1.15.1 + # via + # scikit-learn + # skrub +six==1.17.0 + # via python-dateutil +skops==0.11.0 + # via skore (pyproject.toml) +skrub==0.5.1 + # via skore (pyproject.toml) +sniffio==1.3.1 + # via anyio +starlette==0.45.3 + # via fastapi +tabulate==0.9.0 + # via skops +tenacity==9.0.0 + # via plotly +threadpoolctl==3.5.0 + # via scikit-learn +tqdm==4.67.1 + # via huggingface-hub +typing-extensions==4.12.2 + # via + # altair + # anyio + # fastapi + # huggingface-hub + # pydantic + # pydantic-core + # referencing +tzdata==2025.1 + # via pandas +urllib3==2.3.0 + # via requests +uvicorn==0.34.0 + # via skore (pyproject.toml) +virtualenv==20.29.1 + # via pre-commit diff --git a/skore/ci/requirements/python-3.12/scikit-learn-1.6-test-requirements.txt b/skore/ci/requirements/python-3.12/scikit-learn-1.6-test-requirements.txt new file mode 100644 index 000000000..6a0608213 --- /dev/null +++ b/skore/ci/requirements/python-3.12/scikit-learn-1.6-test-requirements.txt @@ -0,0 +1,231 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --extra=test --output-file=ci/requirements/python-3.12/scikit-learn-1.6-test-requirements.txt pyproject.toml +# +altair==5.5.0 + # via skore (pyproject.toml) +annotated-types==0.7.0 + # via pydantic +anyio==4.8.0 + # via + # httpx + # starlette +attrs==25.1.0 + # via + # jsonschema + # referencing +certifi==2024.12.14 + # via + # httpcore + # httpx + # requests +cfgv==3.4.0 + # via pre-commit +charset-normalizer==3.4.1 + # via requests +click==8.1.8 + # via uvicorn +contourpy==1.3.1 + # via matplotlib +coverage[toml]==7.6.10 + # via pytest-cov +cycler==0.12.1 + # via matplotlib +diskcache==5.6.3 + # via skore (pyproject.toml) +distlib==0.3.9 + # via virtualenv +execnet==2.1.1 + # via pytest-xdist +fastapi==0.115.7 + # via skore (pyproject.toml) +filelock==3.17.0 + # via + # huggingface-hub + # virtualenv +fonttools==4.55.6 + # via matplotlib +fsspec==2024.12.0 + # via huggingface-hub +h11==0.14.0 + # via + # httpcore + # uvicorn +httpcore==1.0.7 + # via httpx +httpx==0.28.1 + # via skore (pyproject.toml) +huggingface-hub==0.27.1 + # via skops +identify==2.6.6 + # via pre-commit +idna==3.10 + # via + # anyio + # httpx + # requests +iniconfig==2.0.0 + # via pytest +jinja2==3.1.5 + # via + # altair + # skrub +joblib==1.4.2 + # via + # scikit-learn + # skore (pyproject.toml) +jsonschema==4.23.0 + # via altair +jsonschema-specifications==2024.10.1 + # via jsonschema +kiwisolver==1.4.8 + # via matplotlib +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.2 + # via jinja2 +matplotlib==3.10.0 + # via + # skore (pyproject.toml) + # skrub +mdurl==0.1.2 + # via markdown-it-py +narwhals==1.24.0 + # via altair +nodeenv==1.9.1 + # via pre-commit +numpy==2.2.2 + # via + # contourpy + # matplotlib + # pandas + # scikit-learn + # scipy + # skore (pyproject.toml) + # skrub +orjson==3.10.15 + # via skore (pyproject.toml) +packaging==24.2 + # via + # altair + # huggingface-hub + # matplotlib + # plotly + # pytest + # skops + # skrub +pandas==2.2.3 + # via + # skore (pyproject.toml) + # skrub +pillow==11.1.0 + # via + # matplotlib + # skore (pyproject.toml) +platformdirs==4.3.6 + # via virtualenv +plotly==5.24.1 + # via skore (pyproject.toml) +pluggy==1.5.0 + # via pytest +polars==1.21.0 + # via skore (pyproject.toml) +pre-commit==4.1.0 + # via skore (pyproject.toml) +pyarrow==19.0.0 + # via skore (pyproject.toml) +pydantic==2.10.6 + # via fastapi +pydantic-core==2.27.2 + # via pydantic +pygments==2.19.1 + # via rich +pyparsing==3.2.1 + # via matplotlib +pytest==8.3.4 + # via + # pytest-cov + # pytest-order + # pytest-randomly + # pytest-xdist + # skore (pyproject.toml) +pytest-cov==6.0.0 + # via skore (pyproject.toml) +pytest-order==1.3.0 + # via skore (pyproject.toml) +pytest-randomly==3.16.0 + # via skore (pyproject.toml) +pytest-xdist==3.6.1 + # via skore (pyproject.toml) +python-dateutil==2.9.0.post0 + # via + # matplotlib + # pandas +pytz==2024.2 + # via pandas +pyyaml==6.0.2 + # via + # huggingface-hub + # pre-commit +referencing==0.36.2 + # via + # jsonschema + # jsonschema-specifications +requests==2.32.3 + # via + # huggingface-hub + # skrub +rich==13.9.4 + # via skore (pyproject.toml) +rpds-py==0.22.3 + # via + # jsonschema + # referencing +ruff==0.9.3 + # via skore (pyproject.toml) +scikit-learn==1.6.1 + # via + # skops + # skore (pyproject.toml) + # skrub +scipy==1.15.1 + # via + # scikit-learn + # skrub +six==1.17.0 + # via python-dateutil +skops==0.11.0 + # via skore (pyproject.toml) +skrub==0.5.1 + # via skore (pyproject.toml) +sniffio==1.3.1 + # via anyio +starlette==0.45.3 + # via fastapi +tabulate==0.9.0 + # via skops +tenacity==9.0.0 + # via plotly +threadpoolctl==3.5.0 + # via scikit-learn +tqdm==4.67.1 + # via huggingface-hub +typing-extensions==4.12.2 + # via + # altair + # anyio + # fastapi + # huggingface-hub + # pydantic + # pydantic-core + # referencing +tzdata==2025.1 + # via pandas +urllib3==2.3.0 + # via requests +uvicorn==0.34.0 + # via skore (pyproject.toml) +virtualenv==20.29.1 + # via pre-commit diff --git a/skore/ci/requirements/python-3.9/scikit-learn-1.6-test-requirements.txt b/skore/ci/requirements/python-3.9/scikit-learn-1.6-test-requirements.txt new file mode 100644 index 000000000..9005b6985 --- /dev/null +++ b/skore/ci/requirements/python-3.9/scikit-learn-1.6-test-requirements.txt @@ -0,0 +1,250 @@ +# +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: +# +# pip-compile --extra=test --output-file=ci/requirements/python-3.9/scikit-learn-1.6-test-requirements.txt pyproject.toml +# +altair==5.5.0 + # via skore (pyproject.toml) +annotated-types==0.7.0 + # via pydantic +anyio==4.8.0 + # via + # httpx + # starlette +attrs==25.1.0 + # via + # jsonschema + # referencing +certifi==2024.12.14 + # via + # httpcore + # httpx + # requests +cfgv==3.4.0 + # via pre-commit +charset-normalizer==3.4.1 + # via requests +click==8.1.8 + # via uvicorn +contourpy==1.3.0 + # via matplotlib +coverage[toml]==7.6.10 + # via pytest-cov +cycler==0.12.1 + # via matplotlib +diskcache==5.6.3 + # via skore (pyproject.toml) +distlib==0.3.9 + # via virtualenv +exceptiongroup==1.2.2 + # via + # anyio + # pytest +execnet==2.1.1 + # via pytest-xdist +fastapi==0.115.7 + # via skore (pyproject.toml) +filelock==3.17.0 + # via + # huggingface-hub + # virtualenv +fonttools==4.55.6 + # via matplotlib +fsspec==2024.12.0 + # via huggingface-hub +h11==0.14.0 + # via + # httpcore + # uvicorn +httpcore==1.0.7 + # via httpx +httpx==0.28.1 + # via skore (pyproject.toml) +huggingface-hub==0.27.1 + # via skops +identify==2.6.6 + # via pre-commit +idna==3.10 + # via + # anyio + # httpx + # requests +importlib-metadata==8.6.1 + # via pytest-randomly +importlib-resources==6.5.2 + # via matplotlib +iniconfig==2.0.0 + # via pytest +jinja2==3.1.5 + # via + # altair + # skrub +joblib==1.4.2 + # via + # scikit-learn + # skore (pyproject.toml) +jsonschema==4.23.0 + # via altair +jsonschema-specifications==2024.10.1 + # via jsonschema +kiwisolver==1.4.7 + # via matplotlib +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.2 + # via jinja2 +matplotlib==3.9.4 + # via + # skore (pyproject.toml) + # skrub +mdurl==0.1.2 + # via markdown-it-py +narwhals==1.24.0 + # via altair +nodeenv==1.9.1 + # via pre-commit +numpy==2.0.2 + # via + # contourpy + # matplotlib + # pandas + # scikit-learn + # scipy + # skore (pyproject.toml) + # skrub +orjson==3.10.15 + # via skore (pyproject.toml) +packaging==24.2 + # via + # altair + # huggingface-hub + # matplotlib + # plotly + # pytest + # skops + # skrub +pandas==2.2.3 + # via + # skore (pyproject.toml) + # skrub +pillow==11.1.0 + # via + # matplotlib + # skore (pyproject.toml) +platformdirs==4.3.6 + # via virtualenv +plotly==5.24.1 + # via skore (pyproject.toml) +pluggy==1.5.0 + # via pytest +polars==1.21.0 + # via skore (pyproject.toml) +pre-commit==4.1.0 + # via skore (pyproject.toml) +pyarrow==19.0.0 + # via skore (pyproject.toml) +pydantic==2.10.6 + # via fastapi +pydantic-core==2.27.2 + # via pydantic +pygments==2.19.1 + # via rich +pyparsing==3.2.1 + # via matplotlib +pytest==8.3.4 + # via + # pytest-cov + # pytest-order + # pytest-randomly + # pytest-xdist + # skore (pyproject.toml) +pytest-cov==6.0.0 + # via skore (pyproject.toml) +pytest-order==1.3.0 + # via skore (pyproject.toml) +pytest-randomly==3.16.0 + # via skore (pyproject.toml) +pytest-xdist==3.6.1 + # via skore (pyproject.toml) +python-dateutil==2.9.0.post0 + # via + # matplotlib + # pandas +pytz==2024.2 + # via pandas +pyyaml==6.0.2 + # via + # huggingface-hub + # pre-commit +referencing==0.36.2 + # via + # jsonschema + # jsonschema-specifications +requests==2.32.3 + # via + # huggingface-hub + # skrub +rich==13.9.4 + # via skore (pyproject.toml) +rpds-py==0.22.3 + # via + # jsonschema + # referencing +ruff==0.9.3 + # via skore (pyproject.toml) +scikit-learn==1.6.1 + # via + # skops + # skore (pyproject.toml) + # skrub +scipy==1.13.1 + # via + # scikit-learn + # skrub +six==1.17.0 + # via python-dateutil +skops==0.11.0 + # via skore (pyproject.toml) +skrub==0.5.1 + # via skore (pyproject.toml) +sniffio==1.3.1 + # via anyio +starlette==0.45.3 + # via fastapi +tabulate==0.9.0 + # via skops +tenacity==9.0.0 + # via plotly +threadpoolctl==3.5.0 + # via scikit-learn +tomli==2.2.1 + # via + # coverage + # pytest +tqdm==4.67.1 + # via huggingface-hub +typing-extensions==4.12.2 + # via + # altair + # anyio + # fastapi + # huggingface-hub + # pydantic + # pydantic-core + # referencing + # rich + # starlette + # uvicorn +tzdata==2025.1 + # via pandas +urllib3==2.3.0 + # via requests +uvicorn==0.34.0 + # via skore (pyproject.toml) +virtualenv==20.29.1 + # via pre-commit +zipp==3.21.0 + # via + # importlib-metadata + # importlib-resources diff --git a/skore/hatch/metadata.py b/skore/hatch/metadata.py index cf5ab0944..c3bc1c473 100644 --- a/skore/hatch/metadata.py +++ b/skore/hatch/metadata.py @@ -1,10 +1,19 @@ import shutil from pathlib import Path -from contextlib import suppress +from contextlib import ExitStack, suppress from hatchling.metadata.plugin.interface import MetadataHookInterface +# @dataclasses.dataclass +# class Configuration: + + +def readlines(filepath): + with open(filepath) as file: + yield from file + + class MetadataHook(MetadataHookInterface): def update(self, metadata): license_path = Path(self.root, self.config["license-file"]) @@ -21,3 +30,23 @@ def update(self, metadata): license_dest = Path(self.root, license_path.name) shutil.copy2(license_path, license_dest) + + # { + # 'path': 'hatch/metadata.py', + # 'license-file': '../LICENSE', + # 'readme-file': '../README.md', + # 'version-default': '0.0.0+unknown', + # 'dependencies': {'file': 'requirements.in'}, + # 'optional-dependencies': { + # 'test': {'file': 'test-requirements.in'}, + # 'sphinx': {'file': 'sphinx-requirements.in'} + # } + # } + + metadata["dependencies"] = list( + map(str.strip, readlines(self.config["dependencies"])) + ) + metadata["optional-dependencies"] = { + label: list(map(str.strip, readlines(filepath))) + for label, filepath in self.config["optional-dependencies"].items() + } diff --git a/skore/pyproject.toml b/skore/pyproject.toml index 7ce75b8b5..ed7ace9f7 100644 --- a/skore/pyproject.toml +++ b/skore/pyproject.toml @@ -1,24 +1,15 @@ [project] name = "skore" description = "the scikit-learn sidekick" -dynamic = ["license", "readme", "version"] +dynamic = [ + "license", + "readme", + "version", + "dependencies", + "optional-dependencies", +] requires-python = ">=3.9, <3.13" maintainers = [{ name = "skore developers", email = "skore@signal.probabl.ai" }] -dependencies = [ - "diskcache", - "fastapi", - "joblib", - "matplotlib", - "numpy", - "orjson", - "pandas", - "plotly>=5,<6", - "pyarrow", - "rich", - "scikit-learn", - "skops", - "uvicorn", -] classifiers = [ "Intended Audience :: Science/Research", "Intended Audience :: Developers", @@ -57,6 +48,9 @@ path = "hatch/metadata.py" license-file = "../LICENSE" readme-file = "../README.md" version-default = "0.0.0+unknown" +dependencies = "requirements.in" +optional-dependencies.test = "test-requirements.in" +optional-dependencies.sphinx = "sphinx-requirements.in" [tool.hatch.build.targets.sdist] only-include = ["src/", "hatch/"] @@ -66,41 +60,6 @@ artifacts = ["src/skore/ui/static/"] package = ["src/skore/"] artifacts = ["src/skore/ui/static/"] -[project.optional-dependencies] -test = [ - "altair>=5,<6", - "httpx", - "pillow", - "plotly", - "polars", - "pre-commit", - "pytest", - "pytest-cov", - "pytest-order", - "pytest-randomly", - "pytest-xdist", - "ruff", - "scikit-learn<1.7", - "skrub", -] - -sphinx = [ - "IPython", - "altair", - "numpydoc", - "polars", - "kaleido", - "pydata-sphinx-theme", - "sentence-transformers", - "sphinx", - "sphinx_autosummary_accessors", - "sphinx-design", - "sphinx-gallery", - "sphinx-copybutton", - "sphinx-tabs", - "skrub", -] - [tool.pytest.ini_options] addopts = [ "--doctest-modules", diff --git a/skore/requirements.in b/skore/requirements.in new file mode 100644 index 000000000..1e3776462 --- /dev/null +++ b/skore/requirements.in @@ -0,0 +1,13 @@ +diskcache +fastapi +joblib +matplotlib +numpy +orjson +pandas +plotly>=5,<6 +pyarrow +rich +scikit-learn>=1.6 +skops +uvicorn diff --git a/skore/sphinx-requirements.in b/skore/sphinx-requirements.in new file mode 100644 index 000000000..ac11433f0 --- /dev/null +++ b/skore/sphinx-requirements.in @@ -0,0 +1,14 @@ +IPython +altair +numpydoc +polars +kaleido +pydata-sphinx-theme +sentence-transformers +sphinx +sphinx_autosummary_accessors +sphinx-design +sphinx-gallery +sphinx-copybutton +sphinx-tabs +skrub diff --git a/skore/test-requirements.in b/skore/test-requirements.in new file mode 100644 index 000000000..1dbcf182e --- /dev/null +++ b/skore/test-requirements.in @@ -0,0 +1,14 @@ +altair>=5,<6 +httpx +pillow +plotly +polars +pre-commit +pytest +pytest-cov +pytest-order +pytest-randomly +pytest-xdist +ruff +scikit-learn<1.7 +skrub