akashchamp opened a new pull request, #3951: URL: https://github.com/apache/iceberg-python/pull/3951
Closes #3932 # Rationale for this change Table properties can name implementation classes that are imported and instantiated. Those values can come from table metadata, so loading an arbitrary importable class can pass table properties to an unrelated constructor. Each loader now verifies the expected base class before instantiation. ## Are these changes tested? - Seven focused regression tests and the three affected unit-test files: 232 passed, 7 skipped, 52 deselected. - `make lint` passed. - Manual property-driven validation loaded valid custom `FileIO`, `LocationProvider`, and `S3RetryStrategy` implementations, then confirmed that a wrong-but-importable class was rejected in each path. - `make test` completed with 4,105 passed, 5 skipped, and 126 deselected. Three unrelated Hive Kerberos tests failed because this host lacks `krb5-config` and the native Kerberos module. ## Are there any user-facing changes? Yes. Invalid `py-io-impl`, `write.py-location-provider.impl`, and `s3.retry-strategy-impl` values now raise a clear `ValueError` before an unrelated importable class is instantiated. Valid custom implementations continue to load normally. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
