iceberg-python icon indicating copy to clipboard operation
iceberg-python copied to clipboard

Can't import pyiceberg.catalog

Open leonidmakarovsky opened this issue 1 year ago • 2 comments

Apache Iceberg version

0.6.0 (latest release)

Please describe the bug 🐞

Note that the previous version 0.5.1 does NOT have this issue.

Running on Mac OS Monterey 12.6.7, Spyder IDE (Python 3.9.7 64-bit | Qt 5.9.7 | PyQt5 5.9.2 | Darwin 21.6.0 )

When importing: import pyiceberg.catalog the following exception occurs:

Traceback (most recent call last):

File ~/Python/data-calc-service/untitled0.py:9 import pyiceberg.catalog

File ~/opt/anaconda3/lib/python3.9/site-packages/pyiceberg/catalog/init.py:45 from pyiceberg.table import (

File ~/opt/anaconda3/lib/python3.9/site-packages/pyiceberg/table/init.py:87 from pyiceberg.table.name_mapping import (

File ~/opt/anaconda3/lib/python3.9/site-packages/pyiceberg/table/name_mapping.py:38 class MappedField(IcebergBaseModel):

File ~/opt/anaconda3/lib/python3.9/site-packages/pyiceberg/table/name_mapping.py:40 in MappedField names: List[str] = conlist(str, min_length=1)

File ~/opt/anaconda3/lib/python3.9/site-packages/pydantic/types.py:869 in conlist return Annotated[List[item_type], annotated_types.Len(min_length or 0, max_length)]

TypeError: Len() takes no arguments

leonidmakarovsky avatar Mar 06 '24 18:03 leonidmakarovsky

seems like an issue related to pydantic library. What version of it do you have installed?

Here's my env setup using make install:

(venv) ➜  iceberg-python git:(main)  pip list | grep pydantic              
pydantic                   2.6.1
pydantic_core              2.16.2

kevinjqliu avatar Mar 06 '24 22:03 kevinjqliu

My python version is 3.9.7. My colleague told me that pyiceberg works with 3.9.11 and later. It didn't work with 3.9.7 in his env as well. I'm trying to upgrade Python and will update the ticket.

leonidmakarovsky avatar Mar 06 '24 22:03 leonidmakarovsky

Addressed in #526

kevinjqliu avatar Aug 08 '24 02:08 kevinjqliu