import string,re,time #clearsilver templates import neo_cgi import neo_util # you must import neo_cgi first... import neo_cs # you must import neo_cgi first... DEBUG = 1 def cs_render(cs_path,settings = {},hdf_path = ""): """ render a clearsilver template and return the result. gets: - path to clearsilver template - path to hdf dataset (optional) - dictionary with settings (optional) """ hdf=neo_util.HDF() hdf.readFile(hdf_path) for key in settings.keys(): hdf.setValue(key,str(settings[key])) cs= neo_cs.CS(hdf) cs.parseFile(cs_path) return cs.render() # create a unique session id def generate_session_id(): import md5, time, base64, random, string m = md5.new() m.update(str(time.time())) m.update(str(random.random())) s = string.replace(base64.encodestring(m.digest())[:-3], '/', '$') return s def generate_game_name(): from whrandom import choice return generate_session_id() def check_for_int(data): """ gets a string. if string is an integer: return integer. else return given string. """ #check if value is int num = [n for n in data if n.isdigit()] tmp = "".join(num) if tmp == data: ret = int(data) else: ret = data return ret def string_to_tuple(str): """ gets a string. If the string contains '(',')' and ',', then return a tuple processed from the string. If the partial string is empty, then -1 will be returned for that value. """ if (str[0] =='(') and (str[-1] ==')') and (string.find(str,',')): splitlist = string.split(str[1:-1],",") returnlist = [] for item in splitlist: try: returnlist.append(int(item)) except: #empty string returnlist.append(-1) return tuple(returnlist) def dict_coords_to_gnugo_coords(coords,size): """ gets a (x,y) coordinate tuple and boardsize. returns a string in gnugo syntax. examples: gets (1,1), returns "A7". gets (6,2), returns "B2". """ letterlist = [" "] letterlist.extend(list(string.letters[26:])) letterlist.remove("I") letter = letterlist[coords[1]] digit = size+1-coords[0] return letter+str(digit) def format_time(mytime): """ gets output of time.time() formats it nicely and returns as string. """ mytime = int(mytime) acttime = int(time.time()) if mytime == None: retstring = "" elif acttime-mytime<86400: #given time is less than 24h ago tmp = acttime-mytime hour = int(tmp/3600) minute = int((tmp-hour*3600)/60) if hour == 0: retstring = "%dm ago" % (minute) else: retstring = "%dh %dm ago" % (hour,minute) else: retstring = time.strftime("%Y-%m-%d %H:%M",time.gmtime(mytime)) return retstring def clean_list(l): #removing None-entries clean = [] for item in l: if (item != "None") and (item != None): clean.append(item) return clean def test(): print dict_coords_to_gnugo_coords((6,5),7) print format_time(time.time()-20000) if __name__ == "__main__": test()