jx2lee opened a new pull request, #3077:
URL: https://github.com/apache/iceberg-python/pull/3077
Closes #3069
# Rationale for this change
When a catalog is explicitly configured with `type: hive` but `uri` is
missing in `.pyiceberg.yaml`,
the CLI currently fails with a raw `KeyError('uri')`, which is surfaced as
just:
`'uri'`
```bash
❯ cat .pyiceberg.yaml
catalog:
my_hive_catalog:
type: hive
warehouse: warehouse_loc
❯ uv run pyiceberg --catalog my_hive_catalog list
'uri'
```
It's confusing for users because the command appears to return an
identifier-like value instead of
a configuration error.
This change adds explicit validation for required catalog properties when
the catalog type is already
specified (e.g. `hive`, `rest`, `sql`), so users get a clear actionable
error message instead.
## Are these changes tested?
Yes.
- Added a CLI regression test for `--catalog <name> list` with `type:
hive` and missing `uri`
- Verified the error output contains a helpful `URI missing...` message
and no longer prints `'uri'`
## Are there any user-facing changes?
Yes.
Users now see a clear error message (for example):
`URI missing, please provide using --uri, the config or environment
variable PYICEBERG_CATALOG__<CATALOG_NAME>__URI`
instead of a raw `'uri'` error when `type: hive` is configured without
`uri`.
--
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]