This is an automated email from the ASF dual-hosted git repository.
fokko pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-python.git
The following commit(s) were added to refs/heads/main by this push:
new 76aa6ea Exclude Pydantic 2.4.0, 2.4.1 (#38)
76aa6ea is described below
commit 76aa6eaa8f50b6b9c87846b6b4fbc725596d9da0
Author: Sung Yun <[email protected]>
AuthorDate: Tue Oct 3 14:31:57 2023 -0400
Exclude Pydantic 2.4.0, 2.4.1 (#38)
Similar to https://github.com/apache/iceberg/pull/8647, I think we would
need to exclude 2.4.0, 2.4.1 here on the overall project's dependencies.
Given that pydantic has not de-shelved these faulty versions, we might not
need to exclude them from the PyIceberg dependencies in order to prevent the
dependency resolver from from installing pydantic 2.4.0 or 2.4.1
When pip installing pyiceberg 0.5.0 without version constraints, we see the
following error on load_catalog function call:
```
KeyError Traceback (most recent call last)
/tmp/ipykernel_252/2476882581.py in <cell line: 1>()
----> 1 from pyiceberg.catalog import load_catalog
2
3 catalog = load_catalog("lacus")
/lib/python3.10/site-packages/pyiceberg/catalog/__init__.py in <module>
40 from pyiceberg.partitioning import UNPARTITIONED_PARTITION_SPEC,
PartitionSpec
41 from pyiceberg.schema import Schema
---> 42 from pyiceberg.serializers import ToOutputFile
43 from pyiceberg.table import (
44 CommitTableRequest,
/lib/python3.10/site-packages/pyiceberg/serializers.py in <module>
23
24 from pyiceberg.io import InputFile, InputStream, OutputFile
---> 25 from pyiceberg.table.metadata import TableMetadata,
TableMetadataUtil
26
27 GZIP = "gzip"
/lib/python3.10/site-packages/pyiceberg/table/__init__.py in <module>
69 visit,
70 )
---> 71 from pyiceberg.table.metadata import INITIAL_SEQUENCE_NUMBER,
TableMetadata
72 from pyiceberg.table.snapshots import Snapshot, SnapshotLogEntry
73 from pyiceberg.table.sorting import SortOrder
/lib/python3.10/site-packages/pyiceberg/table/metadata.py in <module>
344
345
--> 346 class TableMetadataV2(TableMetadataCommonFields, IcebergBaseModel):
347 """Represents version 2 of the Table Metadata.
348
/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py in
__new__(mcs, cls_name, bases, namespace, __pydantic_generic_metadata__,
__pydantic_reset_parent_namespace__, **kwargs)
182 types_namespace = get_cls_types_namespace(cls,
parent_namespace)
183 set_model_fields(cls, bases, config_wrapper,
types_namespace)
--> 184 complete_model_class(
185 cls,
186 cls_name,
/lib/python3.10/site-packages/pydantic/_internal/_model_construction.py in
complete_model_class(cls, cls_name, config_wrapper, raise_errors,
types_namespace)
493 return False
494
--> 495 schema =
apply_discriminators(simplify_schema_references(schema))
496
497 # debug(schema)
/lib/python3.10/site-packages/pydantic/_internal/_core_utils.py in
simplify_schema_references(schema)
517 return s
518
--> 519 schema = walk_core_schema(schema, count_refs)
520
521 assert all(c == 0 for c in
state['current_recursion_ref_count'].values()), 'this is a bug! please report
it'
/lib/python3.10/site-packages/pydantic/_internal/_core_utils.py in
walk_core_schema(schema, f)
437 core_schema.CoreSchema: A processed CoreSchema.
438 """
--> 439 return f(schema, _dispatch)
440
441
/lib/python3.10/site-packages/pydantic/_internal/_core_utils.py in
count_refs(s, recurse)
513
514 state['current_recursion_ref_count'][ref] += 1
--> 515 recurse(state['definitions'][ref], count_refs)
516 state['current_recursion_ref_count'][ref] -= 1
517 return s
/lib/python3.10/site-packages/pydantic/_internal/_core_utils.py in
walk(self, schema, f)
213
214 def walk(self, schema: core_schema.CoreSchema, f: Walk) ->
core_schema.CoreSchema:
--> 215 return f(schema, self._walk)
216
217 def _walk(self, schema: core_schema.CoreSchema, f: Walk) ->
core_schema.CoreSchema:
/lib/python3.10/site-packages/pydantic/_internal/_core_utils.py in
count_refs(s, recurse)
501
502 if s['type'] != 'definition-ref':
--> 503 return recurse(s, count_refs)
504 ref = s['schema_ref']
505 state['ref_counts'][ref] += 1
...
...
...
/lib/python3.10/site-packages/pydantic/_internal/_core_utils.py in
walk(self, schema, f)
213
214 def walk(self, schema: core_schema.CoreSchema, f: Walk) ->
core_schema.CoreSchema:
--> 215 return f(schema, self._walk)
216
217 def _walk(self, schema: core_schema.CoreSchema, f: Walk) ->
core_schema.CoreSchema:
/lib/python3.10/site-packages/pydantic/_internal/_core_utils.py in
count_refs(s, recurse)
513
514 state['current_recursion_ref_count'][ref] += 1
--> 515 recurse(state['definitions'][ref], count_refs)
516 state['current_recursion_ref_count'][ref] -= 1
517 return s
KeyError: 'pyiceberg.types.NestedField:43624544'
```
---
pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyproject.toml b/pyproject.toml
index ebdaa02..ef70615 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -52,7 +52,7 @@ requests = ">=2.20.0,<3.0.0"
click = ">=7.1.1,<9.0.0"
rich = ">=10.11.0,<14.0.0"
strictyaml = ">=1.7.0,<2.0.0" # CVE-2020-14343 was fixed in 5.4.
-pydantic = ">=2.0,<3.0"
+pydantic = ">=2.0,<3.0,!=2.4.0,!=2.4.1" # 2.4.0, 2.4.1 has a critical bug
sortedcontainers = "2.4.0"
fsspec = ">=2023.1.0,<2024.1.0"
pyparsing = ">=3.1.0,<4.0.0"