4
4
import os
5
5
import sys
6
6
7
- from lambda_gateway import ( lambda_context , logger )
7
+ from lambda_gateway import lambda_context , logger
8
8
9
9
10
10
class EventProxy :
@@ -19,8 +19,8 @@ def get_handler(self):
19
19
20
20
:returns function: Lambda handler function
21
21
"""
22
- * path , func = self .handler .split ('.' )
23
- name = '.' .join (path )
22
+ * path , func = self .handler .split ("." )
23
+ name = "." .join (path )
24
24
if not name :
25
25
raise ValueError (f"Bad handler signature '{ self .handler } '" )
26
26
try :
@@ -37,23 +37,25 @@ def get_httpMethod(self, event):
37
37
"""
38
38
Helper to get httpMethod from v1 or v2 events.
39
39
"""
40
- if event .get (' version' ) == ' 2.0' :
41
- return event [' requestContext' ][ ' http' ][ ' method' ]
42
- elif event .get (' version' ) == ' 1.0' :
43
- return event [' httpMethod' ]
40
+ if event .get (" version" ) == " 2.0" :
41
+ return event [" requestContext" ][ " http" ][ " method" ]
42
+ elif event .get (" version" ) == " 1.0" :
43
+ return event [" httpMethod" ]
44
44
raise ValueError ( # pragma: no cover
45
- f"Unknown API Gateway payload version: { event .get ('version' )} " )
45
+ f"Unknown API Gateway payload version: { event .get ('version' )} "
46
+ )
46
47
47
48
def get_path (self , event ):
48
49
"""
49
50
Helper to get path from v1 or v2 events.
50
51
"""
51
- if event .get (' version' ) == ' 2.0' :
52
- return event [' rawPath' ]
53
- elif event .get (' version' ) == ' 1.0' :
54
- return event [' path' ]
52
+ if event .get (" version" ) == " 2.0" :
53
+ return event [" rawPath" ]
54
+ elif event .get (" version" ) == " 1.0" :
55
+ return event [" path" ]
55
56
raise ValueError ( # pragma: no cover
56
- f"Unknown API Gateway payload version: { event .get ('version' )} " )
57
+ f"Unknown API Gateway payload version: { event .get ('version' )} "
58
+ )
57
59
58
60
def invoke (self , event ):
59
61
with lambda_context .start (self .timeout ) as context :
@@ -73,9 +75,9 @@ async def invoke_async(self, event, context=None):
73
75
74
76
# Reject request if not starting at base path
75
77
if not path .startswith (self .base_path ):
76
- err = f' Rejected { path } :: Base path is { self .base_path } '
78
+ err = f" Rejected { path } :: Base path is { self .base_path } "
77
79
logger .error (err )
78
- return self .jsonify (httpMethod , 403 , message = ' Forbidden' )
80
+ return self .jsonify (httpMethod , 403 , message = " Forbidden" )
79
81
80
82
# Get & invoke Lambda handler
81
83
try :
@@ -84,7 +86,7 @@ async def invoke_async(self, event, context=None):
84
86
return await loop .run_in_executor (None , handler , event , context )
85
87
except Exception as err :
86
88
logger .error (err )
87
- message = ' Internal server error'
89
+ message = " Internal server error"
88
90
return self .jsonify (httpMethod , 502 , message = message )
89
91
90
92
async def invoke_async_with_timeout (self , event , context = None ):
@@ -100,7 +102,7 @@ async def invoke_async_with_timeout(self, event, context=None):
100
102
return await asyncio .wait_for (coroutine , self .timeout )
101
103
except asyncio .TimeoutError :
102
104
httpMethod = self .get_httpMethod (event )
103
- message = ' Endpoint request timed out'
105
+ message = " Endpoint request timed out"
104
106
return self .jsonify (httpMethod , 504 , message = message )
105
107
106
108
@staticmethod
@@ -112,12 +114,12 @@ def jsonify(httpMethod, statusCode, **kwargs):
112
114
:params int statusCode: Response status code
113
115
:params dict kwargs: Response object
114
116
"""
115
- body = '' if httpMethod in [' HEAD' ] else json .dumps (kwargs )
117
+ body = "" if httpMethod in [" HEAD" ] else json .dumps (kwargs )
116
118
return {
117
- ' body' : body ,
118
- ' statusCode' : statusCode ,
119
- ' headers' : {
120
- ' Content-Type' : ' application/json' ,
121
- ' Content-Length' : len (body ),
119
+ " body" : body ,
120
+ " statusCode" : statusCode ,
121
+ " headers" : {
122
+ " Content-Type" : " application/json" ,
123
+ " Content-Length" : len (body ),
122
124
},
123
125
}
0 commit comments