Description
Describe the bug
Incoming webhook events have a request
data attribute, but the event
instance already has a request
bound method, so we end up with a bit of a conflict. The data attribute can still be accessed with event["request"]
but it feels weird to need to do that for just that one data attribute and then use dot syntax for everything else.
>>> event = stripe.Webhook.construct_event(...)
>>> event.request
<bound method StripeObject.request of <Event event id=<id_omitted> at 0x1035bb450> JSON: { ...
>>> event["request"]
<StripeObject id=<id_omitted> at 0x102e95810> JSON: {
"id": "<id_omitted>",
"idempotency_key": "<idempotency_key_omitted>"
}
event.request
and event["request"]
both returning different things is rather confusing, and it took me quite a while to figure out what was going on.
To Reproduce
- Construct a webhook event.
- Access
event.request
. - Access
event["request"]
. - Notice that they are different.
I would probably consider this less of a "bug" and more of an oversight.
Expected behavior
The event.request
method should probably be something like event._request
so it doesn't conflict with the incoming data. That way I can call event.request
and actually get the attribute from the body of the webhook as expected.
Code snippets
No response
OS
macOS
Language version
Python 3.9.10
Library version
stripe-python v2.76.0
API version
2020-08-27
Additional context
No response