33This file contains every method called by the API defined in v2.yml
44"""
55
6- from flask import jsonify
6+ import os
7+ import subprocess
78import json
8- from coderbot import CoderBot
9- from program import ProgramEngine , Program
10- from config import Config
119import connexion
12- import time
13- import sqlite3
1410from tinydb import TinyDB , Query
1511from tinydb .operations import delete
16- import os
17- import subprocess
1812from cachetools import cached , TTLCache
13+ from coderbot import CoderBot
14+ from program import ProgramEngine
15+ from config import Config
1916
2017bot_config = Config .get ()
2118bot = CoderBot .get_instance (
2421)
2522
2623def get_serial ():
27- """
28- Extract serial from cpuinfo file
29- """
30- cpuserial = "0000000000000000"
31- try :
32- f = open ('/proc/cpuinfo' ,'r' )
33- for line in f :
34- if line [0 :6 ]== 'Serial' :
35- cpuserial = line [10 :26 ]
36- f .close ()
37- except :
38- cpuserial = "ERROR000000000"
39-
40- return cpuserial
24+ """
25+ Extract serial from cpuinfo file
26+ """
27+ cpuserial = "0000000000000000"
28+ try :
29+ f = open ('/proc/cpuinfo' , 'r' )
30+ for line in f :
31+ if line [0 :6 ] == 'Serial' :
32+ cpuserial = line [10 :26 ]
33+ f .close ()
34+ except Exception :
35+ cpuserial = "ERROR000000000"
36+
37+ return cpuserial
4138
4239@cached (cache = TTLCache (maxsize = 1 , ttl = 10 ))
4340def get_status ():
@@ -47,10 +44,10 @@ def get_status():
4744 (Cached method)
4845 """
4946 try :
50- temp = os .popen ("vcgencmd measure_temp" ).readline ().replace ("temp=" ,"" )
51- except :
47+ temp = os .popen ("vcgencmd measure_temp" ).readline ().replace ("temp=" , "" )
48+ except Exception :
5249 temp = "undefined"
53-
50+
5451 uptime = subprocess .check_output (["uptime" ]).decode ('utf-8' ).replace ('\n ' , '' )
5552 internet_status = subprocess .check_output (["./utils/check_conn.sh" ]).decode ('utf-8' ).replace ('\n ' , '' )
5653 return {'internet_status' : internet_status ,
@@ -68,28 +65,28 @@ def get_info():
6865 with open ('manifest.json' , 'r' ) as f :
6966 metadata = json .load (f )
7067 backend_commit = metadata ["backendCommit" ][0 :7 ]
71- except :
68+ except Exception :
7269 backend_commit = "undefined"
7370
7471 try :
7572 coderbot_version = subprocess .check_output (["cat" , "/etc/coderbot/version" ]).decode ('utf-8' ).replace ('\n ' , '' )
76- except :
77- coderbot_version = 'undefined'
73+ except Exception :
74+ coderbot_version = 'undefined'
7875 try :
7976 kernel = subprocess .check_output (["uname" , "-r" ]).decode ('utf-8' ).replace ('\n ' , '' )
80- except :
77+ except Exception :
8178 kernel = 'undefined'
8279 try :
8380 update_status = subprocess .check_output (["cat" , "/etc/coderbot/update_status" ]).decode ('utf-8' ).replace ('\n ' , '' )
84- except :
81+ except Exception :
8582 update_status = 'undefined'
8683
87- serial = get_serial ();
88- return {'backend_commit' :backend_commit ,
89- 'coderbot_version' :coderbot_version ,
84+ serial = get_serial ()
85+ return {'backend_commit' : backend_commit ,
86+ 'coderbot_version' : coderbot_version ,
9087 'update_status' : update_status ,
91- 'kernel' :kernel ,
92- 'serial' :serial }
88+ 'kernel' : kernel ,
89+ 'serial' : serial }
9390
9491prog = None
9592prog_engine = ProgramEngine .get_instance ()
@@ -100,7 +97,7 @@ def get_info():
10097
10198query = Query ()
10299
103- ## Robot control
100+ ## Robot control
104101
105102def stop ():
106103 bot .stop ()
@@ -117,43 +114,43 @@ def turn(data):
117114 return 200
118115
119116def exec (data ):
120- prog = prog_engine .create (data ["name" ], data ["code" ])
121- return json .dumps (prog .execute ())
117+ program = prog_engine .create (data ["name" ], data ["code" ])
118+ return json .dumps (program .execute ())
122119
123120## System
124121
125122def status ():
126- status = get_status ()
123+ sts = get_status ()
127124
128125 return {
129126 "status" : "ok" ,
130- "internetConnectivity" : status ["internet_status" ],
131- "temp" : status ["temp" ],
132- "uptime" : status ["uptime" ],
127+ "internetConnectivity" : sts ["internet_status" ],
128+ "temp" : sts ["temp" ],
129+ "uptime" : sts ["uptime" ],
133130 }
134131
135132def info ():
136- info = get_info ()
133+ inf = get_info ()
137134 return {
138135 "model" : 1 ,
139- "version" : info ["coderbot_version" ],
140- "backend commit build" : info ["backend_commit" ],
141- "kernel" : info ["kernel" ],
142- "update status" : info ["update_status" ],
143- "serial" : info ["serial" ]
136+ "version" : inf ["coderbot_version" ],
137+ "backend commit build" : inf ["backend_commit" ],
138+ "kernel" : inf ["kernel" ],
139+ "update status" : inf ["update_status" ],
140+ "serial" : inf ["serial" ]
144141 }
145142
146143def restoreSettings ():
147144 with open ("data/defaults/config.json" ) as f :
148145 Config .write (json .loads (f .read ()))
149- bot_config = Config .get ()
146+ Config .get ()
150147 return "ok"
151148
152149def updateFromPackage ():
153150 os .system ('sudo bash /home/pi/clean-update.sh' )
154151 file_to_upload = connexion .request .files ['file_to_upload' ]
155152 file_to_upload .save (os .path .join ('/home/pi/' , 'update.tar' ))
156- os .system ('sudo coderbot_update /home/pi/update.tar && sudo reboot' )
153+ os .system ('sudo reboot' )
157154 return 200
158155
159156
@@ -171,7 +168,7 @@ def saveProgram(data, overwrite):
171168 return "defaultOverwrite"
172169 # Overwrite existing program with the same name
173170 else :
174- if ( overwrite == "1" ) :
171+ if overwrite == "1" :
175172 programs .update (data , query .name == data ["name" ])
176173 return 200
177174 else :
@@ -218,4 +215,4 @@ def resetDefaultPrograms():
218215 if filename .endswith (".json" ):
219216 with open ("data/defaults/programs/" + filename ) as p :
220217 q = p .read ()
221- programs .insert (json .loads (q ))
218+ programs .insert (json .loads (q ))
0 commit comments