22
22
23
23
24
24
def _initializer_botocore_session (session ):
25
+ """
26
+ Pass in Botocore session and register _create_feature_function to append user-agent, for more details see
27
+ https://github.com/boto/botocore/pull/2682
28
+
29
+ session.register:
30
+ https://github.com/boto/botocore/blob/develop/botocore/session.py#L703
31
+
32
+ Parameters
33
+ ----------
34
+ session: Botocore.session.Session
35
+ A botocore session passed in to register user-agent function
36
+
37
+ """
25
38
try :
26
39
session .register (TARGET_SDK_EVENT , _create_feature_function (DEFAULT_FEATURE ))
27
40
except Exception :
28
41
logger .debug ("Can't add extra header User-Agent" )
29
42
30
43
31
44
def _create_feature_function (feature ):
45
+ """
46
+ Create a add_powertools_feature function using the given feature paramter
47
+ add_powertools_feature will be returned and to be regiestered in boto3's event system
48
+ once registered, add_powertools_feature will append the given feature string to user-agent of AWS SDK's request
49
+
50
+ Parameters
51
+ ----------
52
+ feature: str
53
+
54
+ Returns:
55
+ -------
56
+ add_powertools_feature: Callable
57
+
58
+ """
59
+
32
60
def add_powertools_feature (request , ** kwargs ):
61
+ """
62
+ Signiture of this function is required at Boto3's event system. See:
63
+ https://boto3.amazonaws.com/v1/documentation/api/latest/guide/events.html
64
+
65
+ """
33
66
try :
34
67
headers = request .headers
35
68
header_user_agent : str = (
@@ -51,6 +84,18 @@ def add_powertools_feature(request, **kwargs):
51
84
52
85
# Add feature user-agent to given sdk boto3.session
53
86
def register_feature_to_session (session , feature ):
87
+ """
88
+ Register the given feature string given session's event system
89
+ When this session makes an api request, the given feature will be appended to request's user-agent
90
+
91
+ Parameters
92
+ ----------
93
+ session: boto3.session.Session
94
+ session to register
95
+ feature: str
96
+ the feature string in Powertools, e.g.:streaming
97
+
98
+ """
54
99
try :
55
100
session .events .register (TARGET_SDK_EVENT , _create_feature_function (feature ))
56
101
except AttributeError as e :
@@ -59,6 +104,18 @@ def register_feature_to_session(session, feature):
59
104
60
105
# Add feature user-agent to given sdk boto3.client
61
106
def register_feature_to_client (client , feature ):
107
+ """
108
+ Register the given feature string given client's event system
109
+ When this client makes an api request, the given feature will be appended to request's user-agent
110
+
111
+ Parameters
112
+ ----------
113
+ client: boto3.session.Session.client
114
+ client to register
115
+ feature: str
116
+ the feature string in Powertools, e.g.:streaming
117
+
118
+ """
62
119
try :
63
120
client .meta .events .register (TARGET_SDK_EVENT , _create_feature_function (feature ))
64
121
except AttributeError as e :
@@ -67,6 +124,18 @@ def register_feature_to_client(client, feature):
67
124
68
125
# Add feature user-agent to given sdk boto3.resource
69
126
def register_feature_to_resource (resource , feature ):
127
+ """
128
+ Register the given feature string given resource's event system
129
+ When this resource makes an api request, the given feature will be appended to request's user-agent
130
+
131
+ Parameters
132
+ ----------
133
+ resource: boto3.session.Session.resource
134
+ resource to register
135
+ feature: str
136
+ the feature string in Powertools, e.g.:streaming
137
+
138
+ """
70
139
try :
71
140
resource .meta .client .meta .events .register (TARGET_SDK_EVENT , _create_feature_function (feature ))
72
141
except AttributeError as e :
0 commit comments