-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.py
executable file
·37 lines (29 loc) · 1.45 KB
/
server.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
import os
from flask import Flask
from flask_restful import Resource
from pymongo import MongoClient
from api import FramespaceApi
from api.units import Units, Unit
from api.axes import Axis, Axes
from api.keyspaces import KeySpace, KeySpaces
from api.dataframes import DataFrames
from api.dataframe import DataFrame, Transpose
app = Flask(__name__)
api = FramespaceApi(app)
# if not docker, then run locally
try:
mongo = MongoClient(os.environ['DB_PORT_27017_TCP_ADDR'], 27017, connect=False)
except:
mongo = MongoClient('0.0.0.0', 27017, connect=False)
db = mongo['framespace']
api.add_resource(Axes, '/axes', '/axes/search', resource_class_kwargs={'db': db})
api.add_resource(Axis, '/axes/<name>', resource_class_kwargs={'db': db})
api.add_resource(Units, '/units', '/units/search', resource_class_kwargs={'db': db})
api.add_resource(Unit, '/units/<name>', resource_class_kwargs={'db': db})
api.add_resource(KeySpace, '/keyspaces/<keyspace_id>', resource_class_kwargs={'db': db})
api.add_resource(KeySpaces, '/keyspaces', '/keyspaces/search', resource_class_kwargs={'db': db})
api.add_resource(DataFrames, '/dataframes', '/dataframes/search', resource_class_kwargs={'db': db})
api.add_resource(DataFrame, '/dataframe/<dataframe_id>', '/dataframe/slice', resource_class_kwargs={'db': db})
api.add_resource(Transpose, '/dataframe/transpose/<dataframe_id>', resource_class_kwargs={'db': db})
if __name__ == '__main__':
app.run(host='0.0.0.0', threaded=True, debug=True)