Installation guide uses Python 3.8, which is incompatible with current OpenML requirements

Abierto
#1,659 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python

Línea de trabajo

Start with the installation guide and pyproject.toml, comparing the documented Python version and editable test-install command with the declared requirements and test extra. Reproduce the reported failures, including missing openml_sklearn and minio, and inspect the affected tests. Done means supported shell-compatible setup works, dependencies resolve, and optional imports are skipped appropriately.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description

The current installation guide and dependency configuration make it difficult to set up the development environment and run tests successfully. There are multiple inconsistencies that can lead to installation failures or missing dependencies.

Issues Identified

1. Outdated Python Version in Installation Guide

The installation instructions recommend using Python 3.8:

uv venv --seed --python 3.8 ~/.venvs/openml-python

However, the project requires:

Python >= 3.10,<3.15
Image

This results in dependency resolution errors when installing:

uv pip install -e ".[test]"

2. Shell Compatibility Issue with Installation Command

The documentation suggests:

uv pip install -e .[test]

However, in shells like zsh, this results in:

zsh: no matches found: .[test]

because [] are treated as glob patterns.

This can be fixed by quoting or escaping:

uv pip install -e ".[test]"

3. Incomplete or Incorrect Test Dependencies

Installing test dependencies via:

uv pip install -e ".[test]"

does not always provide a fully working test environment.

For example, running tests can fail with:

ModuleNotFoundError: No module named 'openml_sklearn'

The test extra includes openml-sklearn, but this package does not appear to be available on PyPI, leading to unresolved dependencies.


4. Missing Core Dependency at Runtime (minio)

Although minio is listed as a core dependency in pyproject.toml, running the tests can result in:

ModuleNotFoundError: No module named 'minio'

This suggests that dependencies may not always be installed correctly via the current installation instructions, or that additional guidance is needed to ensure all runtime dependencies are properly installed.


5. Missing Dependency Handling in Tests

Some tests import optional dependencies (e.g., openml_sklearn) without guarding against missing packages, causing the entire test suite to fail.

It would be better to handle such imports using:

pytest.importorskip("openml_sklearn")

so that tests are skipped when optional dependencies are not available.


Expected Behavior

  • Installation guide should use a supported Python version (>=3.10)
  • Installation commands should be shell-compatible
  • Installing .[test] should provide all necessary dependencies to run tests
  • All core dependencies (e.g., minio) should be reliably installed
  • Optional dependencies should be handled gracefully in tests

Suggested Fixes

  1. Update installation guide to use Python >= 3.10 (e.g., 3.11)

  2. Update installation command to:

    uv pip install -e ".[test]"
    
  3. Review and correct test dependencies:

    • Verify or remove openml-sklearn
  4. Ensure all required dependencies (including minio) are installed correctly

  5. Use pytest.importorskip for optional dependencies in tests


Impact

These issues can prevent new contributors from successfully setting up the project and running tests, which may discourage contributions.


Additional Context

I would be happy to help update the documentation and fix the test setup if needed.

Lenguaje dominante
Python
Estrellas
361
Forks
296
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de openml/openml-python

Todos los issues de openml/openml-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.