Skip to content

BUG: import_optional_dependency doesn't check version for submodules #38888

Closed
@arw2019

Description

@arw2019

xref #38370 (comment)

We'd like import_optional_dependency to correctly handle submodule imports AND to be able to import a specified minimum version of the dependency (for when a particular feature requires higher than global minimum version).

cc @lithomas1

Expected Output

In [14]: import pandas as pd
    ...: from pandas.compat._optional import import_optional_dependency
    ...: import_optional_dependency("pyarrow.csv", min_version="3.0")
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-14-7cfc85634756> in <module>
      1 import pandas as pd
      2 from pandas.compat._optional import import_optional_dependency
----> 3 import_optional_dependency("pyarrow.csv", min_version="3.0")

~/repos/pandas/pandas/compat/_optional.py in import_optional_dependency(name, extra, raise_on_missing, on_version, min_version)

ImportError: Pandas requires version '3.0' or newer of 'pyarrow.csv' (version '2.0.0' currently installed).
In [16]: import_optional_dependency("pyarrow.csv", min_version="3.0", on_version="warn")
/Users/andrewwieteska/repos/pandas/pandas/compat/_optional.py:137: UserWarning: Pandas requires version '3.0' or newer of 'pyarrow.csv' (version '2.0.0' currently installed).

Metadata

Metadata

Assignees

Labels

BugDependenciesRequired and optional dependencies

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions