event = Event(body = json.dumps({'test':'test'})).to_dict()
print(event)
Event.parseBody(event)
Response.returnSuccess(body = {'success':'true'})
Response.returnSuccess(statusCode = 206, body = {'success':'true'})
Response.returnSuccess(body = None)
Response.returnSuccess(body = {})
Response.returnError(statusCode = 402, message='error')
responseDict = Response.returnSuccess(body = {'success':'true'}) Response.fromDict(responseDict)
event = Event.getInput(body={'input':'123'}, queryStringParameters={'test':'123'})
event
with open('./testData/sampleEvent.json') as f:
sampleEvent = json.load(f)['input']
body = Event.parseBody(sampleEvent)
assert body == json.loads(Event.from_dict(sampleEvent).body)
print(body)
headers = Event.parseHeaders(sampleEvent)
assert headers == Event.from_dict(sampleEvent).headers
print(headers)
query = Event.parseQuery(sampleEvent)
assert query ==Event.from_dict(sampleEvent).queryStringParameters
print(query)
path = Event.parsePath(sampleEvent)
assert path == Event.from_dict(sampleEvent).path
print(path)
productDict = Product(
cprcode='123',
iprcode='123',
oprcode= '12343',
ordertype='3225',
pr_abb='4563'
).to_dict()
event = Event.getInput(productDict)
Event.parseDataClass(Product, event)
import re
from beartype import beartype
@beartype
def increaseVersion(string:str)->str:
'''
increase version number of the pip package by 1
'''
match = next(re.finditer(r'\d.\d.\d*', string))
lastDigits = int(match.group().split('.')[-1])
newSubVersionList = match.group().split('.')
newSubVersionList[-1] = str(lastDigits + 1)
newVersionString = '.'.join(newSubVersionList)
wholeString = re.sub(r'\d.\d.\d*',newVersionString,string)
return wholeString
@beartype
def loadFile(fileName:str= './settings.ini')->str:
with open(fileName, 'r') as f:
file = f.read()
return file
@beartype
def saveFile(data,fileName='./settings.ini.bak')->str:
with open(fileName, 'w') as f:
f.write(data)
return data
@beartype
def replaceContent(originalContent:str)->str:
newFile = ''
for line in file.split('\n'):
newFile += '\n'
if 'version' in line:
newFile += increaseVersion(line)
else:
newFile += line
def testIncreaseVersion():
fileName = 'settings.ini'
tempFileName = 'settings.ini.bak'
fileString:str = loadFile(fileName)
print('testing load file')
assert fileString == open(fileName, 'r').read()
print('testing save file')
saveFile(fileString, fileName = tempFileName)
assert fileString == open(tempFileName, 'r').read()
print('test increase version')
# !cat settings.ini.bak
testIncreaseVersion()
string = 'version = 0.0.14'
increaseVersion(string)
import yaml
schema = {
"resource": "Resource path",
"path": "Path parameter",
"httpMethod": "Incoming request's method name",
"headers": "{String containing incoming request headers}",
"multiValueHeaders": "{List of strings containing incoming request headers}",
"queryStringParameters": "{query string parameters }",
"multiValueQueryStringParameters": "{List of query string parameters}",
"pathParameters": "{path parameters}",
"stageVariables": "{Applicable stage variables}",
"requestContext": "{Request context, including authorizer-returned key-value pairs}",
"body": "A JSON string of the request payload.",
"isBase64Encoded": "A boolean flag to indicate if the applicable request payload is Base64-encoded",
}
print(yaml.dump(schema))
schema = {
"isBase64Encoded": 'bool',
"statusCode": 'int',
"headers": { "headerName": "headerValue" },
"multiValueHeaders": { "headerName": ["headerValue", "headerValue2"] },
"body": "..."
}
print(yaml.dump(schema))
Headers.cors()
Headers.cacheMaxAge()