Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

client.py : _resolve_endpoint_ruleset returns 3 values instead of 2 #3080

Closed
conormb opened this issue Nov 28, 2023 · 3 comments
Closed

client.py : _resolve_endpoint_ruleset returns 3 values instead of 2 #3080

conormb opened this issue Nov 28, 2023 · 3 comments

Comments

@conormb
Copy link

conormb commented Nov 28, 2023

Describe the bug

_resolve_endpoint_ruleset used to return 2 values. Now it returns 3. No warning or explanation given. Coming from
826b78c

Expected Behavior

Return the same number of values as before

Current Behavior

Downstream dependency, specifically PynamoDB, is expecting 2 values. Since 3 are given an exception is thrown:

ValueError: too many values to unpack (expected 2)

Reproduction Steps

  • pip install pynamodb
  • Map to a DynamoDB table
  • Table.get(key) -> exception as described

Possible Solution

Revert to a 2-value return

Additional Information/Context

I realize this is an issue with how dependencies to boto3/botocore handle the return, but this can't be an isolated thing. My workaround for now is pinning my version of boto3 to a prior version.

SDK version used

Current / boto 1.33.1

Environment details (OS name and version, etc.)

Python 3.9

@conormb conormb added bug This issue is a confirmed bug. needs-triage This issue or PR still needs to be triaged. labels Nov 28, 2023
@nateprewitt
Copy link
Contributor

Hi @conormb, thanks for reaching out. _resolve_endpoint_resolver is a private interface which is subject to abrupt breaking changes between releases. We aren't able to provide a support contract on all of our private internals without halting development on the SDK unfortunately.

Looking at the code in PynamoDB, it's calling private functions on the boto3 client to patch into our endpoints resolution behavior. This will likely need to be updated in PynamoDB to make it compatible with ongoing releases of Botocore. For the time being, the best resolution step would be to pin botocore<1.33.0 with PynamoDB until they're able to provide a patch.

@nateprewitt nateprewitt added third-party and removed bug This issue is a confirmed bug. needs-triage This issue or PR still needs to be triaged. labels Nov 28, 2023
@conormb
Copy link
Author

conormb commented Nov 28, 2023

Thanks for the prompt response. I'll pin to 1.33.0 and work with the PynamoDB contributors.

@conormb conormb closed this as completed Nov 28, 2023
Copy link

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants