def selected(self): Globals.get_instance().setOption(Config.OPTION_SELECTED) items = Globals.get_instance().selectedItems() if items == None: print "No selected file is set" return liststocks = {} for idx in items: stockdir = Globals.get_instance().stockpath(idx) if stockdir == None: liststocks[idx] = None continue psr = Parser(stockdir) liststocks[idx] = psr.getSummer() print Parser.getTitle() for summer in liststocks: if liststocks[summer] == None: print "%9s,%8s" % (Globals.get_instance().sin.getname( int(summer)), summer) continue s = liststocks[summer] print Parser.summerFormat() % Parser.formatdata(s) pass
def add_dc_log(dc_log): Tables.FILE_LOGS.append(dc_log) dc_client = DatacenterClient("", dc_log.ip, dc_log.port) Globals.add_dc_client(dc_client) Tables.TABLE_DC_INFO[( dc_log.ip, dc_log.port )] = True if dc_log.operation == raft_proto.Available else False
def add_proxy_log(proxy_log): Tables.FILE_LOGS.append(proxy_log) proxy_client = ProxyClient("", proxy_log.ip, proxy_log.port) Globals.add_proxy_client(proxy_client) Tables.TABLE_PROXY_INFO[( proxy_log.ip, proxy_log.port )] = True if proxy_log.operation == raft_proto.Available else False
def input(self): try: opts, args = getopt.getopt(sys.argv[1:], "hsv:S:pguta", []) except: self.usage() sys.exit(2) for o, a in opts: if o == "-p": Globals.get_instance().setOption(Config.OPTION_SELECTED) for o, a in opts: if o == "-h": self._core.holded() elif o == "-s": self._core.selected() elif o == "-v": self._core.verbose(a) elif o == "-S": try: os.unlink(Config.SELECTED_PATH) except: pass copyfile(a, Config.SELECTED_PATH) elif o == "-u": self._core.updateprice() elif o == "-t": self._core.test() elif o == "-g": self._core.growinglist() elif o == "-a": self._core.adjust(args) break pass
def __init__(self, str_trddate=STR_TODAY, download_winddata_mark=0): self.gl = Globals(str_trddate, download_winddata_mark) self.list_acctidsbymxz = self.gl.list_acctidsbymxz df_fmtted_wssdata_today = pd.DataFrame( self.gl.col_fmtted_wssdata.find({'DataDate': self.gl.str_today}, {'_id': 0}) ) self.dict_fmtted_wssdata_of_today = df_fmtted_wssdata_today.set_index('WindCode').to_dict()
def addToolBar(toolBarId, position, index): toolBars = Globals.getAttr('toolBars') if not toolBars: Globals.setAttr('toolBars', {position: [{'toolBarId': toolBarId, 'items': []}]}) else: if position in toolBars: if len(toolBars[position]) > index: toolBars[position][index]['toolBarId'] = toolBarId else: toolBars[position].append({'toolBarId': toolBarId, 'items': []}) else: toolBars[position] = [{'toolBarId': toolBarId, 'items': []}] return
def PumpActivityState(self, state_pickle): state_pickle = str(state_pickle) #logging.info('I JUST RECEIVED PICKLE TYPE: %r - %s (PumpActivityState)', type(state_pickle), state_pickle) if len(state_pickle) == 0: logging.debug('JokeMachineSession.ReceiveActivityState() -> empty state_pickle - creating empty state') activity_state = JokeMachineState().test_data() else: logging.debug('JokeMachineSession.ReceiveActivityState() -> Unpickling state from remote') activity_state = JokeMachineState.loads(state_pickle) Globals.set_activity_state(activity_state) # refresh activity ui Globals.JokeMachineActivity.refresh() logging.debug('Finished receiving state')
def read_file(self, file_path): '''Callback to resume activity state from Journal''' logging.debug('Reading file from datastore via Journal: %s' % file_path) f = open(file_path, 'r') pickle = f.read() if len(pickle) == 0: logging.debug('Activity.read_file() -> Journal has empty pickle - creating empty state') activity_state = JokeMachineState().test_data() else: logging.debug('Unpickling state from Journal') activity_state = JokeMachineState.loads(pickle) f.close() # set Globals.ActivityState Globals.set_activity_state(activity_state)
def peek(dat, folder, force=False): g = Globals() outf = g.default_repo_dir mkdir(outf + "peek") mkdir(outf + "peek/" + dat) print("\nPeeking " + folder + " for " + dat) dir = outf + "samples/" + dat + "/" + folder print("dir", dir) if (not force) and (os.path.exists(outf + 'peek/%s/%s.png' % (dat, folder.replace("/", "_")))): print("Already peeked before. Now exit.") return dataset = dset.ImageFolder(root=dir, transform=transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)), ])) dataloader = torch.utils.data.DataLoader(dataset, batch_size=96, shuffle=True, num_workers=2) for i, data in enumerate(dataloader, 0): img, _ = data saveImage(img, outf + 'peek/%s/%s.png' % (dat, folder.replace("/", "_")), nrow=12) break
def outputVerbose(self): earnings = self.getpershareearnings() price = Globals.get_instance().getstockprice2(self.getid()) print "" print self.getname(), "(", self.getid(), ")" print "Price:", price print "每股收益: %7.3f" % earnings, "\t折算利率:%6.2f" % ( earnings / price), "\t区间[%15, %10, %5]:", "[%6.2f %6.2f %6.2f]" % ( self._pricesRange[0], self._pricesRange[1], self._pricesRange[2]) print "净资产收益率: %6.2f" % self._asset_adding2, "\t平均净资产收益率: %6.2f" % self._average_asset_adding2 print "稳定增长:", self._continued[ 0], "\t\t365增长加快:", self._increase_fasten[ 0], "\t报告季增长加快:", self._increase_fasten[1] print "" self.forcast(earnings, price, "报告季增长", self.adding["in report"]) self.forcast(earnings, price, "365增长", self.adding["adjacent 365"]) self.forcast(earnings, price, "平均净利润增长", self._continued[1]) self.forcast(earnings, price, "报告季扣非净利润增长", self.adding["profit2"]) self.forcast(earnings, price, "平均扣非净利润增长", self.adding["average profit2"]) self.forcast(earnings, price, "综合分析增长", self.adding["manual"]) print self._note
def set(self, value): name = Globals.temporary_filename() f = open(name, 'w') f.write(value) f.close() self.uri = name logging.debug('AudioPlayer - set_raw wrote %d bytes to %s', len(value), name)
def run3(self): myurl = 'http://hq.sinajs.cn/list=' plist = {} for f in listdir(Config.STOCKS_PATH): fin = Config.STOCKS_PATH + "/" + f + "/finance" if not os.path.exists(fin): continue items = f.split("-") idx = int(items[1]) name = Globals.get_instance().sin.getname(idx) if idx >= 600000: idy = "sh" + items[1] else: idy = "sz" + items[1] nurl = myurl + idy try: req = urllib2.Request(url=nurl) res = urllib2.urlopen(req) res = res.read() vals = res.split(",") price = float(vals[2]) except: continue plist[items[1]] = price json.dump(plist, open(Config.OUTPUT_PRICELIST, 'w')) pass
def task_at_0840(): str_today = datetime.today().strftime('%Y%m%d') task1 = Globals(str_today, download_winddata_mark=1) task2 = PostTrdMng(str_today, download_winddata_mark=0) task2.run() task3 = PreTrdMng(str_today, download_winddata_mark=0) task3.run()
def setSocket(self): # configuracao do socket para comunicacao interna self.host, self.port, self.buf, self.addr = Globals.getSocketAttr() # criando socket self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.sock.bind(self.addr)
def un_register_proxy(proxy_ip, proxy_port): log = raft_proto.TableLog() log.ip = proxy_ip log.port = proxy_port log.log_index = Globals.get_next_log_index() log.operation = raft_proto.Unavailable log.logType = raft_proto.ProxyLog Tables.add_proxy_log(log)
def addItemToToolBar(resourceId, position, index): print index toolBars = Globals.getAttr('toolBars') if not toolBars: return if position in toolBars: toolBars[position][index]['items'].append(resourceId) print toolBars
def __init__(self): self.history_path = Globals.get_valid_path('history.json') if os.path.isfile(self.history_path): self._history = self.load_history() self.playlist_history = self._history['playlist'] else: self._history = {'playlist': []} self.playlist_history = self._history['playlist']
def un_register_dc(dc_ip, dc_port): log = raft_proto.TableLog() log.ip = dc_ip log.port = dc_port log.log_index = Globals.get_next_log_index() log.operation = raft_proto.Unavailable log.logType = raft_proto.DatacenterLog Tables.add_dc_log(log)
def doparse(self): if self._stockpath[-1] != "/": self._stockpath += "/" items = os.path.basename(os.path.dirname(self._stockpath)).split("-") self._id = int(items[1]) self._name = Globals.get_instance().sin.getname(self._id) self._fh = FinancialHistory(self._stockpath + "/finance") self._fh.doparse() self._latestfd = self._fh.getlatest() #最新季报净利润/每股收益 = 总股数 self._totalstocks = self._latestfd.profit / self._latestfd.per_share_earnings #每股收益 = 最近365天净利润 / 总股数 self._pershareearnings = self.get365Profit( self._latestfd) / self._totalstocks #[15% ~ 10% ~ 5%]区间收益 self._pricesRange = Common().pricesRange(self._pershareearnings) #parse adding ... #报告季增长 self.adding["in report"] = self._latestfd.profit_adding / 100 #最近两个365增长,即最新季度往前推一年,和更早的一年,之间净利润的增长 prev_fd = self._fh.getreport(self._latestfd.year - 1, self._latestfd.season) #上一年同季净利润 prev_profit365 = self.get365Profit(prev_fd) profit365 = self.get365Profit(self._latestfd) adding = (profit365 - prev_profit365) / prev_profit365 self.adding["adjacent 365"] = adding #持续增长分析 self._continued = self.continueParsing() self.adding["average"] = self._continued[1] #增长加快评级 self._increase_fasten = self.increaseAdding() #净资产收益率 self._asset_adding2 = self._pershareearnings / self._latestfd.per_share_asset #净资产收益率近年平均值 self._average_asset_adding2 = self.getAverageAssetAdding2() #扣非净利率增长 self.adding["profit2"] = self._latestfd.profit2_adding / 100 if self.adding["profit2"] < -0.9999: #skip such stupid data self.adding["profit2"] = -0.9999 #扣非净利率平均增长 self.adding["average profit2"] = self.average_profit2_adding() note = Note(os.path.dirname(self._stockpath) + "/note.xml") try: note.doparse() self._note = note._note self.adding["manual"] = note._adding self._summary = note._summary except: self._note = None self.adding["manual"] = None self._summary = ""
def read_file(self, file_path): '''Callback to resume activity state from Journal''' logging.debug('Reading file from datastore via Journal: %s' % file_path) f = open(file_path, 'r') pickle = f.read() if len(pickle) == 0: logging.debug( 'Activity.read_file() -> Journal has empty pickle - creating empty state' ) activity_state = JokeMachineState().test_data() else: logging.debug('Unpickling state from Journal') activity_state = JokeMachineState.loads(pickle) f.close() # set Globals.ActivityState Globals.set_activity_state(activity_state)
def PumpActivityState(self, state_pickle): state_pickle = str(state_pickle) #logging.info('I JUST RECEIVED PICKLE TYPE: %r - %s (PumpActivityState)', type(state_pickle), state_pickle) if len(state_pickle) == 0: logging.debug( 'JokeMachineSession.ReceiveActivityState() -> empty state_pickle - creating empty state' ) activity_state = JokeMachineState().test_data() else: logging.debug( 'JokeMachineSession.ReceiveActivityState() -> Unpickling state from remote' ) activity_state = JokeMachineState.loads(state_pickle) Globals.set_activity_state(activity_state) # refresh activity ui Globals.JokeMachineActivity.refresh() logging.debug('Finished receiving state')
def addResource(resourceId, clientId): if clientId == -1: Log.w(u'clientId为-1,忽略') return identifiers = Globals.getAttr('identifiers') if clientId in identifiers: identifiers[clientId].append(resourceId) else: identifiers[clientId] = resourceId
def lookUpToolBarIdByResourceId(resourceId): toolBars = Globals.getAttr('toolBars') if not toolBars: return for position in toolBars: for index, tmp in enumerate(toolBars[position]): items = tmp['items'] for resourceId_ in items: if resourceId_ == resourceId: return toolBars[position][index]['toolBarId']
def addToolBar(toolBarId, position, index): toolBars = Globals.getAttr('toolBars') if not toolBars: Globals.setAttr('toolBars', {position: [{ 'toolBarId': toolBarId, 'items': [] }]}) else: if position in toolBars: if len(toolBars[position]) > index: toolBars[position][index]['toolBarId'] = toolBarId else: toolBars[position].append({ 'toolBarId': toolBarId, 'items': [] }) else: toolBars[position] = [{'toolBarId': toolBarId, 'items': []}] return
def delItemFromToolBar(resourceId): toolBars = Globals.getAttr('toolBars') if not toolBars: return for position in toolBars: for index, tmp in enumerate(toolBars[position]): items = tmp['items'] for resourceId_ in items: if resourceId_ == resourceId: items.remove(resourceId_) return True
def AddFileLog(self, request, context): if Globals.NODE_STATE == NodeState.LEADER: request.log_index = Globals.get_next_log_index() Tables.FILE_LOGS.append(request) log_info("LOG ADDED") # Update Table_log and File_info_table Tables.set_table_log(Tables.FILE_LOGS) ack = raft_proto.Ack() ack.id = 1 return ack
def insert_file_chunk_info_to_file_log(file_name, chunk_id, lst_dc, log_operation): for dc in lst_dc: log = raft_proto.TableLog() log.fileName = file_name log.chunkId = chunk_id log.ip = dc[0] log.port = dc[1] log.log_index = Globals.get_next_log_index() log.operation = log_operation log.logType = raft_proto.FileLog Tables.add_file_log(log)
def holded(self): Globals.get_instance().setOption(Config.OPTION_HOLDED) holded = Globals.get_instance().holded.holded liststocks = {} for idx in holded: stockdir = Globals.get_instance().stockpath(holded[idx][0]) if stockdir == None: liststocks[idx] = None continue psr = Parser(stockdir) # psr.outputSimple() liststocks[idx] = psr.getSummer() print Parser.getTitle() for summer in liststocks: if liststocks[summer] == None: print "%9s,%8s" % (Globals.get_instance().sin.getname( int(summer)), summer) continue if Globals.get_instance().getstocktotal(int(summer)) < 10.0: continue s = liststocks[summer] print Parser.summerFormat() % Parser.formatdata(s) pass
def getSummer(self): n = self.getname() i = self.getid() e = self.getpershareearnings() p = Globals.get_instance().getstockprice(self.getid()) t = Globals.get_instance().getstocktotal(self.getid()) a = self._asset_adding2 adding = self.getadding() earnings2 = e * ((1 + adding)**2) y2 = earnings2 * 100 / 10 #对应10%收益的价格 if y2 < 0: p2adding = -0.99 else: p2adding = ((y2 / p)**(1.0 / 2)) - 1 earnings5 = e * ((1 + adding)**5) y5 = earnings5 * 100 / 10 if y5 < 0: p5adding = -0.99 else: p5adding = ((y5 / p)**(1.0 / 5)) - 1 return { "stockname": n, "id": i, "earning": e, "price": p, "total": t, "asset%": a, "flag": self.getFlag(), "adding": adding, "2Yprice": y2, "p2adding": p2adding, "p5adding": p5adding, "summary": self._summary }
def __init__(self): self.gl = Globals() self.dict_acctidbyxxq2acctidbymxz = {} for _ in self.gl.col_acctinfo.find({'DataDate': self.gl.str_today}): if _['StrategiesAllocationByAcct']: list_strategies = _['StrategiesAllocationByAcct'].split(';') if 'AutoT0_IndexFuture' in list_strategies or 'AutoT0_SecurityLoan' in list_strategies: self.dict_acctidbyxxq2acctidbymxz.update( {_['AcctIDByXuXiaoQiang4Trd']: _['AcctIDByMXZ']}) else: continue # 上传kdb原始委托数据 self.fpath_order_from_kdb_102_116 = f'D:/projects/autot0/data/kdb_102_116/q_{self.gl.str_today}.csv' with open(self.fpath_order_from_kdb_102_116, encoding='utf-8') as f: list_dicts_order_from_kdb = [] list_list_datalines = f.readlines() list_fields = list_list_datalines[0].strip().split(',') list_list_values = [ _.strip().split(',') for _ in list_list_datalines[1:] ] for list_value in list_list_values: dict_order_from_kdb = dict(zip(list_fields, list_value)) dict_order_from_kdb['DataDate'] = self.gl.str_today if dict_order_from_kdb[ 'accountname'] not in self.dict_acctidbyxxq2acctidbymxz: dict_order_from_kdb['AcctIDByMXZ'] = '' else: dict_order_from_kdb['AcctIDByMXZ'] = ( self.dict_acctidbyxxq2acctidbymxz[ dict_order_from_kdb['accountname']]) list_dicts_order_from_kdb.append(dict_order_from_kdb) self.gl.col_trade_rawdata_order_from_kdb_102_116.delete_many( {'DataDate': self.gl.str_today}) if list_dicts_order_from_kdb: self.gl.col_trade_rawdata_order_from_kdb_102_116.insert_many( list_dicts_order_from_kdb)
def run(self): self.stocklists = {} for f in listdir(Config.STOCKS_PATH): fin = Config.STOCKS_PATH + "/" + f + "/finance" if not os.path.exists(fin): continue items = f.split("-") idx = items[1] psr = Parser(Config.STOCKS_PATH + "/" + f) if psr._pershareearnings < 0.001: continue q = Globals.get_instance().getstockprice3(idx) eq = psr._pershareearnings / q stock = {} stock["name"] = psr._name stock["earnings"] = psr._pershareearnings stock["q"] = q stock["eq"] = eq suitcount = 0 totaldelta = 0 for val in psr.adding: if not val in Config.ADDINGS: continue info = {} a = psr.adding[val] ref = (((1.0 + self.p) / (1 + a))**self.n) * self.p # reference eq delta = ((psr._pershareearnings / ref) - q) / q info["a"] = a info["ref"] = ref info["delta"] = delta stock[val] = info if delta > 0.001: suitcount += 1 totaldelta += delta stock["count"] = suitcount stock["avdelta"] = totaldelta / len(Config.ADDINGS) self.stocklists[idx] = stock pass
def removeResource(resourceId, clientId=None): if clientId == -1: Log.w(u'clientId为-1,忽略') return identifiers = Globals.getAttr('identifiers') if clientId: if clientId in identifiers: if resourceId in identifiers[clientId]: identifiers[clientId].remove(resourceId) return True else: for clientId in identifiers: if resourceId in identifiers[clientId]: identifiers[clientId].remove(resourceId) return True Log.w(u'未找到对应的资源,删除失败')
def __init__(self): self.streaming_quality = u'hi' self.current_track = None # track dict self.playback_started = False # if track was started self.player = None # mplayer process self.output_watcher = None self.queue = LifoQueue() self._start_mplayer() self.volume = int(Globals.CONFIG.get('Player', 'volume')) self.set_volume(self.volume) # set mp3 path & name (replace \ with / because mplayer expects / as separator, even on Windows) Globals.MP3_PATH = Globals.get_valid_path('../res/stream{}.mp3'.format(Globals.MPLAYER_PID)).replace('\\', '/') open(Globals.MP3_PATH, 'w').close() # Create/empty dummy mp3 super().__init__()
def mark_all_file_chunks_in_dc_available(dc_ip, dc_port): for file_name in Tables.TABLE_FILE_INFO.keys(): for chunk_id in Tables.TABLE_FILE_INFO[file_name].keys(): for ip, port in Tables.TABLE_FILE_INFO[file_name][chunk_id]: if ip == dc_ip and port == dc_port: log = raft_proto.TableLog() log.fileName = file_name log.chunkId = chunk_id log.ip = ip log.port = port log.log_index = Globals.get_next_log_index() upload_status = Tables.TABLE_FILE_INFO[file_name][ chunk_id][(ip, port)] if upload_status == raft_proto.TemporaryUnavailable: log.operation = raft_proto.Uploaded Tables.add_file_log(log)
def do_POST(self): logger.debug('got post on path:%s'%self.path) try: ctype, pdict = cgi.parse_header(self.headers.getheader('content-type')) if ctype == 'multipart/form-data': postvars = cgi.parse_multipart(self.rfile, pdict) elif ctype == 'application/x-www-form-urlencoded': length = int(self.headers.getheader('content-length')) postvars = urlparse.parse_qs(self.rfile.read(length), keep_blank_values=1) else: postvars = {} dict = {} for key in postvars: dict[key] = postvars[key][0] logger.debug('got dict %s on path %s' % (dict, self.path)) logger.debug('known shares: %s' %shares) if self.path.endswith('newShare'): if dict['local_port'] in shares: #update existing share share = shares[dict['local_port']] share.from_dict(dict) else: if dict['type'] == 'Share': share = Share() else: share = Session() share.from_dict(dict) globals = Globals() globals.account_id = share.account_id globals.key_id = share.key_id # logger.debug( 'path: <%s>' % share.filePath ) save_request(share) if onNewShare: onNewShare(share) global shares shares[share.local_port] = share logger.debug('added new share') logger.debug(shares) self.write_response('ok') elif self.path.endswith('successShare'): logger.debug('success') if not dict['local_port'] in shares: logger.error('unknown key: %s in shares %s' % (dict['local_port'], shares)) self.write_response('unknown') else: shares[dict['local_port']].notify_success() self.write_response('ok') elif self.path.endswith('errorShare'): logger.debug('error') if not dict['local_port'] in shares: logger.error('unknown key: %s in shares %s' % (dict['local_port'], shares)) self.write_response('unknown') else: shares[dict['local_port']].notify_error() self.write_response('ok') elif self.path.endswith('stopShare'): logger.debug('stopShare') if not dict['local_port'] in shares: logger.error('unknown key: %s in shares %s' % (dict['local_port'], shares)) self.write_response('unknown') else: shares[dict['local_port']].notify_stop() #self.write_response('ok') # no need to answer except Exception, e: logger.exception(e) self.write_response('an error has occurred')
def on_handler_event(resp): """ events triggered from the icabbi handler thread are caught here """ # CHANGED HOST if resp.event == handler.EVENT_HOST_UPDATE: Logger.info("Host is now {host}".format(host=resp.host)) # CHANGED DRIVER ID elif resp.event == handler.EVENT_DRIVER_UPDATE: if hasattr(resp, "driver_id"): Logger.info("New driver ID #{_id}".format(_id=resp.driver_id)) # NEW BID elif resp.event == handler.EVENT_BID_UPDATE: sv = Globals.mainscrn.ids.get("sv_namevalue") sv.add("Bid: ", "{} ({})".format(resp.bid["title"], resp.bid["distance"])) # NOW ON JOB elif resp.event == handler.EVENT_NEW_JOB: sv = Globals.mainscrn.ids.get("sv_namevalue") sv.clear() for name, value in tuple(format_booking(resp.booking).items()): sv.add(name + ": ", value) if name == "Phone" or name == "Address" or name == "direct_connect": sv.add("", "") sv.add( "", '''[ref={"action":"arrived","booking_id":"%s"}][color=#FFD919]Notify Customer[/color][/ref]''' % resp.booking["id"]) sv.add( "", '''[ref={"action":"madecontact", "booking_id": "%s"}][color=#E67300]Picked up Customer[/color][/ref]''' % resp.booking["id"]) # JOB HAS BEEN OFFERED elif resp.event == handler.EVENT_JOB_OFFER: if hasattr(resp, "accepted"): if Globals.settings["audio"]: Globals.android_play_system_sound("notification") Globals.android_text2speak.speak( "Job offer has been accepted.") show_toast("Job offer has been accepted...") # LOGGED OUT elif resp.event == handler.EVENT_LOGGED_OUT: sv = Globals.mainscrn.ids["sv_namevalue"] sv.clear() sv.add("Driver Status: ", "Logged out") # ALL ZONES CHANGED elif resp.event == handler.EVENT_ZONES: # if status screen then show zone update if Globals.app.root.current == "status": # get the listctrl window listctrl = Globals.app.root.current_screen.ids.get("headerview_id") listctrl.column_rv.populate(resp.zones) # ZONE HAS CHANGED elif resp.event == handler.EVENT_ZONE_UPDATE: zone = resp.zone sv = Globals.mainscrn.ids.get("sv_namevalue") sv.clear() sv.add("Zone: ", zone.get("title")) sv.add("Id: ", zone.get("id")) sv.add("Position: ", zone.get("position")) sv.add("Drivers: ", zone.get("total")) sv.add("Jobs: ", zone.get("job_count")) # QUITING elif resp.event == handler.EVENT_QUIT: Logger.info("iCabbi thread has now closed.") # BOOKING UPDATED elif resp.event == handler.EVENT_BOOKING_UPDATE: #Globals.mainscrn.status_text = "Customer has been notified" if resp.status == "arrived" else "Picked up Customer" pass # ERROR elif resp.event == handler.EVENT_NETWORK_ERROR: if Globals.loading_dialog.is_open(): Globals.loading_dialog.dismiss() sv = Globals.mainscrn.ids["sv_namevalue"] sv.clear() sv.add("[color=#FF0000]ERROR[/color]: ", resp.message) # PREBOOKINGS elif resp.event == handler.EVENT_PREBOOKINGS_UPDATE: pass # BOOKING ARCHIVE REQUEST elif resp.event == handler.EVENT_BOOKING_ARCHIVE: if Globals.earnings_dialog: Globals.earnings_dialog.display_earnings(resp.takings) elif Globals.app.root.current == "history": # history screen is open history_screen = Globals.app.root.get_screen("history") history_screen.load_bookings(resp.bookings, resp.takings) # KICKED DRIVER elif resp.event == handler.EVENT_KICK_DRIVERS: sv = Globals.mainscrn.ids.get("sv_namevalue") sv.add("[color=#ffff00]Kicking[/color]: ", resp.message) # MESSAGE ARCHIVE REQUEST elif resp.event == handler.EVENT_MESSAGE_ARCHIVE: for message in resp.messages: date_created = str(time.ctime(message["created"])) text = "{} - {}".format(date_created, str(message["message"])) Globals.message_list_view.data.append({ "id": str(message["id"]), "text": text }) # EXTENDED MESSAGE REQUEST elif resp.event == handler.EVENT_MESSAGE: if Globals.message_dialog: print(resp.message) Globals.message_dialog.message_label.text = resp.message["message"] # SENT MESSAGE elif resp.event == handler.EVENT_MESSAGE_DISPATCH: if resp.message == "{}": show_toast("Message Sent") else: show_toast(resp.message) # BIDDING HAS CHANGED elif resp.event == handler.EVENT_CHANGE_BIDDING: sv = Globals.mainscrn.ids.get("sv_namevalue") sv.add("[color=#ffff00]Setting[/color]: ", f"Auto Bidding is set to {resp.enable}") # THREAD EXCEPTION elif resp.event == handler.EVENT_THREAD_EXCEPTION: if Globals.loading_dialog.is_open: Globals.loading_dialog.dismiss() dlg = MessageDialog() dlg.message_label.text = resp.error dlg.open()
def __init__(self, handle): activity.Activity.__init__(self, handle) # TODO - clean - install gettext os.chdir(Globals.pwd) # required for i18n.py to work #gettext.install('JokeMachine', './po', unicode=True) #presLan_af = gettext.translation("JokeMachine", os.path.join(Globals.pwd, 'po'), languages=['af']) #presLan_af.install() #locale.setlocale(locale.LC_ALL, 'af') # customize theme gtkrc = os.path.join(Globals.pwd, 'resources/gtkrc') if os.path.exists(gtkrc): logging.debug("Loading resources from %s" % gtkrc) gtk.rc_add_default_file(gtkrc) settings = gtk.settings_get_default() #gtk.rc_reset_styles(settings) gtk.rc_reparse_all_for_settings(settings, True) logging.debug("Loading resources DONE") Globals.set_activity_instance(self) logging.debug("Starting the Joke Machine activity") # toolbox self.__toolbox = activity.ActivityToolbox(self) self.set_toolbox(self.__toolbox) # main activity frame self.__activity_frame = Frame() vbox = gtk.VBox() vbox.pack_start(self.__activity_frame) vbox.show() self.set_canvas(vbox) self.show_all() # Initialize mesh ########################################################## # init Presence Service self.__presence_service = presenceservice.get_instance() try: name, path = self.__presence_service.get_preferred_connection() self.__telepathy_connection = telepathy.client.Connection(name, path) self.__telepathy_initiating = None except TypeError: logging.debug('Presence service offline') # Buddy object for you owner = self.__presence_service.get_owner() Globals.set_owner(owner) self.__session = None # JokeMachineSession self.connect('shared', self.__do_activity_shared) # Check if we're joining another instance self.__is_initiator = True if self._shared_activity is not None: self.alert(_('Joke Machine'), _('Please wait a moment for your buddy\'s Jokebooks to show up')) self.__is_initiator = False logging.debug('shared: %s' % self._shared_activity.props.joined) # We are joining the activity logging.debug('Joined activity') self.connect('joined', self.__do_activity_joined) self._shared_activity.connect('buddy-joined', self.__do_buddy_joined) self._shared_activity.connect('buddy-left', self.__do_buddy_left) if self.get_shared(): # We've already joined self.__do_activity_joined() else: logging.debug('Created activity') # ########################################################################## # set default startup page if we're the initiator if self.is_initiator: self.set_page(pages.choose.Choose)
def can_close(self): '''Called on activity close''' logging.info('Exiting Activity. Performing cleanup...') Globals.shutdown() logging.info('Done') return True
def socketSend(self): host, port, buf, addr = Globals.getSocketAttr() udp_sock = socket(AF_INET, SOCK_DGRAM) udp_sock.sendto('col_hard col_undi col_soft col_vamp col_network' , addr) udp_sock.close()
def connect(self): """Conecta ao socket para comunicar-se com o cacic.py""" # Set the socket parameters self.host, self.port, self.buf, self.addr = Globals.getSocketAttr() self.udp_sock = socket(AF_INET, SOCK_DGRAM)
# -*- coding: utf-8 -*- from globals import Globals from log import Log Globals.setAttr('identifiers', {-1: []}) def addResource(resourceId, clientId): if clientId == -1: Log.w(u'clientId为-1,忽略') return identifiers = Globals.getAttr('identifiers') if clientId in identifiers: identifiers[clientId].append(resourceId) else: identifiers[clientId] = resourceId def removeResource(resourceId, clientId=None): if clientId == -1: Log.w(u'clientId为-1,忽略') return identifiers = Globals.getAttr('identifiers') if clientId: if clientId in identifiers: if resourceId in identifiers[clientId]: identifiers[clientId].remove(resourceId) return True else: for clientId in identifiers:
def lookUpClientIdByResourceId(resourceId): identifiers = Globals.getAttr('identifiers') for clientId in identifiers: if resourceId in identifiers[clientId]: return clientId
def getRandomClientId(): identifiers = Globals.getAttr('identifiers') for clientId in identifiers: if clientId != -1: return clientId