Skip to content

Commit 26f02fb

Browse files
committed
fixup! Add support for environment context
1 parent afe8bec commit 26f02fb

9 files changed

Lines changed: 260 additions & 253 deletions

File tree

pyiceberg/environment_context.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18-
from importlib.metadata import version
18+
from pyiceberg import __version__
1919

2020

2121
class EnvironmentContext:
2222
_PROPERTIES: dict[str, str] = {
2323
"engine-name": "pyiceberg",
24-
"engine-version": version("pyiceberg"),
24+
"engine-version": __version__,
2525
}
2626

2727
def __init__(self) -> None:

pyiceberg/table/snapshots.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ def _update_totals(total_property: str, added_property: str, removed_property: s
404404
)
405405

406406
for key, value in EnvironmentContext.get().items():
407-
summary.__setitem__(key, value)
407+
summary[key] = value
408408

409409
return summary
410410

pyiceberg/view/metadata.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
from pydantic import Field, RootModel, field_validator
2323

24-
from pyiceberg.environment_context import EnvironmentContext
2524
from pyiceberg.schema import Schema
2625
from pyiceberg.typedef import IcebergBaseModel, Identifier, Properties
2726
from pyiceberg.typedef import ViewVersion as ViewVersionLiteral
@@ -52,7 +51,7 @@ class ViewVersion(IcebergBaseModel):
5251
"""ID of the schema for the view version"""
5352
timestamp_ms: int = Field(alias="timestamp-ms", default_factory=lambda: int(time.time() * 1000))
5453
"""Timestamp when the version was created (ms from epoch)"""
55-
summary: dict[str, str] = Field(default_factory=lambda: EnvironmentContext.get())
54+
summary: dict[str, str] = Field(default_factory=dict)
5655
"""A string to string map of summary metadata about the version"""
5756
representations: list[ViewRepresentation] = Field()
5857
"""A list of representations for the view definition"""

tests/integration/test_deletes.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -481,8 +481,7 @@ def test_partitioned_table_positional_deletes_sequence_number(spark: SparkSessio
481481
"total-files-size": snapshots[2].summary["total-files-size"],
482482
"total-position-deletes": "1",
483483
"total-records": "4",
484-
"engine-name": "pyiceberg",
485-
"engine-version": EnvironmentContext.get().get("engine-version"),
484+
**EnvironmentContext.get(),
486485
},
487486
)
488487

tests/integration/test_writes/test_partitioned_writes.py

Lines changed: 99 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
from pyspark.sql import SparkSession
2626

2727
from pyiceberg.catalog import Catalog
28-
from pyiceberg.environment_context import EnvironmentContext
2928
from pyiceberg.exceptions import NoSuchTableError
3029
from pyiceberg.partitioning import PartitionField, PartitionSpec
3130
from pyiceberg.schema import Schema
@@ -43,7 +42,7 @@
4342
from pyiceberg.types import (
4443
StringType,
4544
)
46-
from utils import TABLE_SCHEMA, _create_table
45+
from utils import TABLE_SCHEMA, _create_table, with_environment_context
4746

4847

4948
@pytest.mark.integration
@@ -488,109 +487,109 @@ def test_summaries_with_null(spark: SparkSession, session_catalog: Catalog, arro
488487
file_size = int(summaries[0]["added-files-size"])
489488
assert file_size > 0
490489

491-
assert summaries[0] == {
492-
"changed-partition-count": "3",
493-
"added-data-files": "3",
494-
"added-files-size": str(file_size),
495-
"added-records": "3",
496-
"total-data-files": "3",
497-
"total-delete-files": "0",
498-
"total-equality-deletes": "0",
499-
"total-files-size": str(file_size),
500-
"total-position-deletes": "0",
501-
"total-records": "3",
502-
"engine-name": "pyiceberg",
503-
"engine-version": EnvironmentContext.get().get("engine-version"),
504-
}
490+
assert summaries[0] == with_environment_context(
491+
{
492+
"changed-partition-count": "3",
493+
"added-data-files": "3",
494+
"added-files-size": str(file_size),
495+
"added-records": "3",
496+
"total-data-files": "3",
497+
"total-delete-files": "0",
498+
"total-equality-deletes": "0",
499+
"total-files-size": str(file_size),
500+
"total-position-deletes": "0",
501+
"total-records": "3",
502+
}
503+
)
505504

506-
assert summaries[1] == {
507-
"changed-partition-count": "3",
508-
"added-data-files": "3",
509-
"added-files-size": str(file_size),
510-
"added-records": "3",
511-
"total-data-files": "6",
512-
"total-delete-files": "0",
513-
"total-equality-deletes": "0",
514-
"total-files-size": str(file_size * 2),
515-
"total-position-deletes": "0",
516-
"total-records": "6",
517-
"engine-name": "pyiceberg",
518-
"engine-version": EnvironmentContext.get().get("engine-version"),
519-
}
520-
assert summaries[2] == {
521-
"removed-files-size": str(file_size * 2),
522-
"changed-partition-count": "3",
523-
"total-equality-deletes": "0",
524-
"deleted-data-files": "6",
525-
"total-position-deletes": "0",
526-
"total-delete-files": "0",
527-
"deleted-records": "6",
528-
"total-files-size": "0",
529-
"total-data-files": "0",
530-
"total-records": "0",
531-
"engine-name": "pyiceberg",
532-
"engine-version": EnvironmentContext.get().get("engine-version"),
533-
}
534-
assert summaries[3] == {
535-
"changed-partition-count": "3",
536-
"added-data-files": "3",
537-
"total-equality-deletes": "0",
538-
"added-records": "3",
539-
"total-position-deletes": "0",
540-
"added-files-size": str(file_size),
541-
"total-delete-files": "0",
542-
"total-files-size": str(file_size),
543-
"total-data-files": "3",
544-
"total-records": "3",
545-
"engine-name": "pyiceberg",
546-
"engine-version": EnvironmentContext.get().get("engine-version"),
547-
}
548-
assert summaries[4] == {
549-
"changed-partition-count": "3",
550-
"added-data-files": "3",
551-
"total-equality-deletes": "0",
552-
"added-records": "3",
553-
"total-position-deletes": "0",
554-
"added-files-size": str(file_size),
555-
"total-delete-files": "0",
556-
"total-files-size": str(file_size * 2),
557-
"total-data-files": "6",
558-
"total-records": "6",
559-
"engine-name": "pyiceberg",
560-
"engine-version": EnvironmentContext.get().get("engine-version"),
561-
}
505+
assert summaries[1] == with_environment_context(
506+
{
507+
"changed-partition-count": "3",
508+
"added-data-files": "3",
509+
"added-files-size": str(file_size),
510+
"added-records": "3",
511+
"total-data-files": "6",
512+
"total-delete-files": "0",
513+
"total-equality-deletes": "0",
514+
"total-files-size": str(file_size * 2),
515+
"total-position-deletes": "0",
516+
"total-records": "6",
517+
}
518+
)
519+
assert summaries[2] == with_environment_context(
520+
{
521+
"removed-files-size": str(file_size * 2),
522+
"changed-partition-count": "3",
523+
"total-equality-deletes": "0",
524+
"deleted-data-files": "6",
525+
"total-position-deletes": "0",
526+
"total-delete-files": "0",
527+
"deleted-records": "6",
528+
"total-files-size": "0",
529+
"total-data-files": "0",
530+
"total-records": "0",
531+
}
532+
)
533+
assert summaries[3] == with_environment_context(
534+
{
535+
"changed-partition-count": "3",
536+
"added-data-files": "3",
537+
"total-equality-deletes": "0",
538+
"added-records": "3",
539+
"total-position-deletes": "0",
540+
"added-files-size": str(file_size),
541+
"total-delete-files": "0",
542+
"total-files-size": str(file_size),
543+
"total-data-files": "3",
544+
"total-records": "3",
545+
}
546+
)
547+
assert summaries[4] == with_environment_context(
548+
{
549+
"changed-partition-count": "3",
550+
"added-data-files": "3",
551+
"total-equality-deletes": "0",
552+
"added-records": "3",
553+
"total-position-deletes": "0",
554+
"added-files-size": str(file_size),
555+
"total-delete-files": "0",
556+
"total-files-size": str(file_size * 2),
557+
"total-data-files": "6",
558+
"total-records": "6",
559+
}
560+
)
562561
assert "removed-files-size" in summaries[5]
563562
assert "total-files-size" in summaries[5]
564-
assert summaries[5] == {
565-
"removed-files-size": summaries[5]["removed-files-size"],
566-
"changed-partition-count": "2",
567-
"total-equality-deletes": "0",
568-
"deleted-data-files": "4",
569-
"total-position-deletes": "0",
570-
"total-delete-files": "0",
571-
"deleted-records": "4",
572-
"total-files-size": summaries[5]["total-files-size"],
573-
"total-data-files": "2",
574-
"total-records": "2",
575-
"engine-name": "pyiceberg",
576-
"engine-version": EnvironmentContext.get().get("engine-version"),
577-
}
563+
assert summaries[5] == with_environment_context(
564+
{
565+
"removed-files-size": summaries[5]["removed-files-size"],
566+
"changed-partition-count": "2",
567+
"total-equality-deletes": "0",
568+
"deleted-data-files": "4",
569+
"total-position-deletes": "0",
570+
"total-delete-files": "0",
571+
"deleted-records": "4",
572+
"total-files-size": summaries[5]["total-files-size"],
573+
"total-data-files": "2",
574+
"total-records": "2",
575+
}
576+
)
578577
assert "added-files-size" in summaries[6]
579578
assert "total-files-size" in summaries[6]
580-
assert summaries[6] == {
581-
"changed-partition-count": "2",
582-
"added-data-files": "2",
583-
"total-equality-deletes": "0",
584-
"added-records": "2",
585-
"total-position-deletes": "0",
586-
"added-files-size": summaries[6]["added-files-size"],
587-
"total-delete-files": "0",
588-
"total-files-size": summaries[6]["total-files-size"],
589-
"total-data-files": "4",
590-
"total-records": "4",
591-
"engine-name": "pyiceberg",
592-
"engine-version": EnvironmentContext.get().get("engine-version"),
593-
}
579+
assert summaries[6] == with_environment_context(
580+
{
581+
"changed-partition-count": "2",
582+
"added-data-files": "2",
583+
"total-equality-deletes": "0",
584+
"added-records": "2",
585+
"total-position-deletes": "0",
586+
"added-files-size": summaries[6]["added-files-size"],
587+
"total-delete-files": "0",
588+
"total-files-size": summaries[6]["total-files-size"],
589+
"total-data-files": "4",
590+
"total-records": "4",
591+
}
592+
)
594593

595594

596595
@pytest.mark.integration

0 commit comments

Comments
 (0)