/
calculator.py
91 lines (83 loc) · 3.17 KB
/
calculator.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import pandas as pd
import numpy as np
from flask import Flask, jsonify
from flask_restful import Resource, Api, reqparse
app = Flask(__name__)
api = Api(app)
parser = reqparse.RequestParser()
class add(Resource):
def get(self):
parser.add_argument('num_1', type=float)
parser.add_argument('num_2', type=float)
args = parser.parse_args()
num_1 = args['num_1']
num_2 = args['num_2']
if (num_2 !=None) and (num_1!=None):
calculation = f'sum: {num_1+num_2}!'
else:
calculation = f'{num_1} and {num_2}'
return (jsonify(calculation))
class subtract(Resource):
def get(self):
# create request parser
parser = reqparse.RequestParser()
# create argument 'num_1'
parser.add_argument('num_1', type=int)
# parse 'num_1'
num_1 = parser.parse_args().get('num_1')
parser2 = reqparse.RequestParser()
# create argument 'num_2'
parser2.add_argument('num_2', type=int)
# parse 'name'
num_2 = parser2.parse_args().get('num_2')
if num_2 & num_1:
calculation = f'Subtraction of num_1-num_2: {num_1-num_2}!'
else:
calculation = 'you need to input two numbers for parameters num_1 and num_2!'
# make json from greeting string
return jsonify(beepbeep_boop=calculation)
class multiply(Resource):
def get(self):
# create request parser
parser = reqparse.RequestParser()
# create argument 'num_1'
parser.add_argument('num_1', type=int)
# parse 'num_1'
num_1 = parser.parse_args().get('num_1')
parser2 = reqparse.RequestParser()
# create argument 'num_2'
parser2.add_argument('num_2', type=int)
# parse 'name'
num_2 = parser2.parse_args().get('num_2')
if num_2 & num_1:
calculation = f'Multiplication of numbers is: {num_1*num_2}!'
else:
calculation = 'you need to input two numbers for parameters num_1 and num_2!'
# make json from greeting string
return jsonify(beepbeep_boop=calculation)
class divide(Resource):
def get(self):
# create request parser
parser = reqparse.RequestParser()
# create argument 'num_1'
parser.add_argument('num_1', type=int)
# parse 'num_1'
num_1 = parser.parse_args().get('num_1')
parser2 = reqparse.RequestParser()
# create argument 'num_2'
parser2.add_argument('num_2', type=int)
# parse 'name'
num_2 = parser2.parse_args().get('num_2')
if num_2 & num_1:
calculation = f'Division of numbers is: {num_1/num_2}!'
else:
calculation = 'you need to input two numbers for parameters num_1 and num_2!'
# make json from greeting string
return jsonify(beepbeep_boop=calculation)
#assign endpoint
api.add_resource(add, '/add',)
api.add_resource(subtract, '/subtract',)
api.add_resource(multiply, '/multiply',)
api.add_resource(divide, '/divide',)
if __name__ == '__main__':
app.run(debug=True)