Repository navigation
allow override env-variables in load_catalog - #45
Merged
Merged
Conversation
Contributor
|
The proposed behavior sounds reasonable to me. |
Contributor
|
Thanks @bdilday for raising this, and I agree that the explicitly passed-in configuration should take preference. Can you rebase against the latest main branch? The CI should turn green 👍 |
bdilday
force-pushed
the
bf-config-rhs-override
branch
from
October 9, 2023 18:02
ae0f845 to
e30c690
Compare
bdilday
force-pushed
the
bf-config-rhs-override
branch
3 times, most recently
from
October 11, 2023 14:29
0e57e95 to
ba1a6f4
Compare
bdilday
force-pushed
the
bf-config-rhs-override
branch
2 times, most recently
from
October 12, 2023 14:51
9a7fb83 to
829705f
Compare
bdilday
force-pushed
the
bf-config-rhs-override
branch
from
October 12, 2023 14:52
829705f to
2fc335a
Compare
pull Bot
pushed a commit
to adonm/iceberg-python
that referenced
this pull request
Sep 25, 2026
… in merge_config (apache#4005) fix(config): let an explicitly falsy value on the right-hand side win merge_config() documents 'take the non-null value, with precedence on rhs', but it used `rhs_value or lhs_value`, which falls back to the left-hand side for any falsy value, not just None. load_catalog(name, **properties) merges the configuration file into the caller's properties, so turning an option off explicitly was silently ignored when the file set it: # .pyiceberg.yaml has s3.path-style-access: "true" load_catalog("prod", **{"s3.path-style-access": False}) # -> 's3.path-style-access' stays 'true' That contradicts the intent of apache#45, which made the passed-in argument take precedence over the environment. property_as_bool() in the same codebase already distinguishes 'not set' from falsy by testing against (None, ""), so the two now agree. None on the right-hand side still means 'not set' and keeps the left-hand value.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I found that I was unable to change a catalog URI after it had been configured by an environment variable. Example,
[tries to connect to
https://service-one.io]I think the more intuitive behavior is that the URI would be initialized based on the environment variable (if present) but that the argument passed to
load_catalogwould be able to override the value. This PR updates the behavior so that the passed in argument takes precedence, by swapping the lhs and rhs preference in themerge_configmethod.