tempo icon indicating copy to clipboard operation
tempo copied to clipboard

Unpinned dependency to IPython breaks the import statement - looks like IPython 13 is not compatible.

Open ja-michel opened this issue 1 year ago • 4 comments

tests/unit/spark_etls/transformers/test_asof.py:7: in <module>
    from spark_etls.transformers.asof import MergeAsofTempo
spark_etls/transformers/asof.py:7: in <module>
    from tempo import TSDF
/opt/pyenv/versions/3.8.16/lib/python3.8/site-packages/tempo/__init__.py:1: in <module>
    from tempo.tsdf import TSDF  # noqa: F401
/opt/pyenv/versions/3.8.16/lib/python3.8/site-packages/tempo/tsdf.py:10: in <module>
    from IPython.core.display import HTML
/opt/pyenv/versions/3.8.16/lib/python3.8/site-packages/IPython/__init__.py:30: in <module>
    raise ImportError(
E   ImportError: 
E   IPython 8.13+ supports Python 3.9 and above, following NEP 29.
E   IPython 8.0-8.12 supports Python 3.8 and above, following NEP 29.
E   When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
E   Python 3.3 and 3.4 were supported up to IPython 6.x.
E   Python 3.5 was supported with IPython 7.0 to 7.9.
E   Python 3.6 was supported with IPython up to 7.16.
E   Python 3.7 was still supported with the 7.x branch.
E   
E   See IPython `README.rst` file for more information:
E   
E       https://github.com/ipython/ipython/blob/main/README.rst

This dependency could be patched pinned to <13.0.0 https://github.com/databrickslabs/tempo/blob/master/python/setup.py#L24

ja-michel avatar Apr 28 '23 16:04 ja-michel

Thanks for catching this, @ja-michel. @R7L208 can we add IPython to the tox test configuration?

tnixon avatar Apr 28 '23 17:04 tnixon

@ja-michel - can you share the command that was run so we can reproduce the error? what Python version are you using?

R7L208 avatar Apr 28 '23 17:04 R7L208

No worries. I'm using Python 3.8.12. Can reproduce by importing the TSDF module:

pip install dbl-tempo
Successfully installed dbl-tempo-0.1.23

from tempo import TSDF

There's been another version of IPython released since Fri with a fix to require Python 3.9+ for IPython 8.13+. See here https://github.com/ipython/ipython/issues/14053 Looks like the latest IPython will only be compatible with Python 3.9.

See below for complete stack trace.

❯ python
Python 3.8.12 | packaged by conda-forge | (default, Jan 30 2022, 23:42:07)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from tempo import TSDF
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/michelaa/.conda/envs/py38/lib/python3.8/site-packages/tempo/__init__.py", line 1, in <module>
    from tempo.tsdf import TSDF  # noqa: F401
  File "/home/michelaa/.conda/envs/py38/lib/python3.8/site-packages/tempo/tsdf.py", line 9, in <module>
    from IPython.core.display import HTML
  File "/home/michelaa/.conda/envs/py38/lib/python3.8/site-packages/IPython/__init__.py", line 30, in <module>
    raise ImportError(
ImportError:
IPython 8.13+ supports Python 3.9 and above, following NEP 29.
IPython 8.0-8.12 supports Python 3.8 and above, following NEP 29.
When using Python 2.7, please install IPython 5.x LTS Long Term Support version.
Python 3.3 and 3.4 were supported up to IPython 6.x.
Python 3.5 was supported with IPython 7.0 to 7.9.
Python 3.6 was supported with IPython up to 7.16.
Python 3.7 was still supported with the 7.x branch.

See IPython `README.rst` file for more information:

    https://github.com/ipython/ipython/blob/main/README.rst


>>>

ja-michel avatar May 01 '23 07:05 ja-michel

Just looking at the IPython code, I don't think this can be easily sorted. Since IPython started following NEP 29, it dropped support for Python < 3.9 in version 8.13.

https://github.com/ipython/ipython/blob/main/IPython/init.py#L29

ja-michel avatar May 01 '23 07:05 ja-michel