apache / iceberg-python

Apache PyIceberg
https://py.iceberg.apache.org/
Apache License 2.0
402 stars 147 forks source link

Refactoring: Break down very large `table/__init__.py` module #1144

Closed sungwy closed 3 weeks ago

sungwy commented 3 weeks ago

The table/__init__.py module has grown to be extremely large at ~4500 lines, and often leads to issues in searching code on Github. This PR refactors the table/__init__.py module into smaller modules:

table
└__init__.py (Table, Transaction)
└ inspect.py (InspectTable)
└ update
    └__init__.py (TableMetadataUpdate, TableUpdate, TableRequirement)
    └ schema.py (UpdateSchema, _ApplyChanges, PartnerIdByNameAccessor, UnionByNameVisitor)
    └ snapshot.py (UpdateSnapshot, ManageSnapshots, _SnapshotProducer, DeleteFiles, AppendFiles, OverwriteFiles, _ManifestMergeManager,)
    └ spec.py (UpdateSpec)