from block_window import BlockWindow from road_track import RoadTrack from block_panel import BlockPanel from block_block import BlockBlock, BlockType from block_polygon import BlockPolygon from road_block import RoadBlock, SurfaceType from road_strait import RoadStrait from race_track import RaceTrack from road_bin_setup import RoadBinSetup from road_track_setup import RoadTrackSetup from road_block import RoadBlock from road_turn import RoadTurn from block_arc import BlockArc from position_window import PositionWindow SlTrace.setFlags( "short_points,starter_track,motion_down,down,dragged,get_event_block") width = 600 # Window width height = width # Window height rotation = None # No rotation pos_x = None pos_y = None parser = argparse.ArgumentParser() dispall = False # Display every change starter_track = True parser.add_argument('--width=', type=int, dest='width', default=width) parser.add_argument('--height=', type=int, dest='height', default=height) parser.add_argument('--pos_x=', type=float, dest='pos_x', default=pos_x) parser.add_argument('--pos_y=', type=float, dest='pos_y', default=pos_y) parser.add_argument('--rotation=',
"controls") self.strace.setLevel(flag, val) if self.change_call is not None: self.change_call(flag, val) def list_ckbuttons(self): cb_flags = sorted(self.data_by_flag.keys()) for flag in cb_flags: var = self.data_by_flag[flag][2] print("flag=%s var=%s val=%d" % (flag, var, var.get())) if __name__ == '__main__': def report_change(flag, val, cklist=None): SlTrace.lg("changed: %s = %d" % (flag, val)) new_val = SlTrace.getLevel(flag) SlTrace.lg("New val: %s = %d" % (flag, new_val)) if cklist is not None: cklist.list_ckbuttons() root = Tk() frame = Frame(root) frame.pack() SlTrace.setProps() SlTrace.setFlags("flag1=1,flag2=0,flag3=1,flag4=0, flag5=1, flag6=1") app = TraceControl(frame, change_call=report_change) root.mainloop()
from block_block import BlockBlock,BlockType from block_polygon import BlockPolygon from road_block import RoadBlock,SurfaceType from road_straight import RoadStraight from race_track import RaceTrack from road_bin_setup import RoadBinSetup from car_bin_setup import CarBinSetup from road_track_setup import RoadTrackSetup from road_block import RoadBlock from road_turn import RoadTurn from block_arc import BlockArc from position_window import PositionWindow from race_control_window import RaceControlWindow SlTrace.setFlags("short_points,starter_track,down" + ",front_road" + ",add_block,mouse_right_info") width = 600 # Window width height = width # Window height rotation = None # No rotation maximum_speed = 20 # Maximum car speed mph minimum_speed = 5 # Maximum car speed mph maximum_speed = 10. minimum_speed = 1. ncar = 3 turn_speed = 2. pos_x = None pos_y = None parser = argparse.ArgumentParser() dispall = False # Display every change
return SelectToken(name=line) def get_line(self): """ Get next source line """ line = self.in_file.readline() if line is None or line == "": SlTrace.lg("Src EOF", "csrc") return None else: line = line.rstrip() self.lineno += 1 if SlTrace.trace("csrc"): SlTrace.lg( "%s %d: %s" % (os.path.basename(self.src_file), self.lineno, line)) return line if __name__ == '__main__': root = Tk() frame = Frame(root) frame.pack() SlTrace.setProps() SlTrace.setFlags("csrc") cF = CommandFile(frame, title="ComandFIle", display=True) ##cF.open("cmdtest") root.mainloop()
SlTrace.lg(f"flag={flag} var={var} val={var.get()}") if __name__ == '__main__': def report_change(flag, val, cklist=None): SlTrace.lg("changed: %s = %d" % (flag, val)) new_val = SlTrace.getLevel(flag) SlTrace.lg("New val: %s = %d" % (flag, new_val)) if cklist is not None: cklist.list_ckbuttons() root = Tk() SlTrace.set_mw(root) ###frame = Frame(root) ###frame.pack() SlTrace.setProps() SlTrace.setFlags("flag1=t,flag2=f,flag3=t,flag4=10, flag5=20. flag6=abc") threshold = 5 SlTrace.setLevel("tint1", 5) end_level = 100 quit_set = False def our_quit(flag=None): """ Test for traceButton :flag: flag arg """ global quit_set if flag is None: flag = "TBD" SlTrace.lg(f"our_quit({flag})") SlTrace.report("Quitting Program") root.destroy quit_set = True
# logging_tracing_menu.py 22Feb2020 crs # Simple with a menu: # 1. Named / Dated log files # 2. Tracing by flag # 3. Plus change settings easily during running # import sys from select_trace import SlTrace from trace_control_window import TraceControlWindow cmd_flags = sys.argv[1] if len(sys.argv) > 1 else "flag1,flag2=0,end_loop=0" SlTrace.setFlags(cmd_flags) SlTrace.lg(f"cmd_flags:{cmd_flags}") SlTrace.lg("flag1", "flag1") SlTrace.lg("flag2", "flag2") tcw = TraceControlWindow() for i in range(20): if SlTrace.trace("big"): SlTrace.lg(f"{i}: big stuff") else: SlTrace.lg(f"{i}: no so big") tcw.sleep(2) if SlTrace.trace("end_loop"): SlTrace.lg("Manual break") break SlTrace.lg("Ending Program")
import csv from select_trace import SlTrace from game_stats import GameStats """ Data origin followed by file format is in game_stats.py """ data_dir = "../data" game_file_pat = r'^GL\d+\.TXT$' SlTrace.setupLogging() SlTrace.setProps() SlTrace.lg("big_inning") ###SlTrace.setFlags("list_file_name,list_file_rows,list_raw_interest") SlTrace.setFlags("list_big_innings") dir_set = () if os.path.isabs(data_dir): data_dir_path = data_dir else: data_dir_path = os.path.abspath(data_dir) print("data_dir: %s" % data_dir_path) data_files = os.listdir(data_dir) n_big_inning_games = 0 n_files = 2 n_files = None n_rows = 10 n_rows = None
parser.add_argument('--list_data', type=str2bool, dest='list_data', default=list_data) parser.add_argument('--list_input', type=str2bool, dest='list_input', default=list_input) parser.add_argument('--date_axis', type=str2bool, dest='date_axis', default=date_axis) parser.add_argument('--trace', dest='trace', default=trace) parser.add_argument('--data_dir', dest='data_dir', default=data_dir) parser.add_argument('--who', dest='who', default=who) args = parser.parse_args() # or die "Illegal options" SlTrace.lg("args: %s\n" % args) data_dir = args.data_dir date_axis = args.date_axis list_input= args.list_input list_data = args.list_data trace = args.trace who = args.who if trace: SlTrace.setFlags(trace) if who.lower() == "jenifer"[:len(who)]: data_dir = "../data/jen" data_files = [ "bp_1.data", "bp_2.data"] else: data_dir = "..\\data" data_files = [] data_path = os.path.join(data_dir, "*.data") for file in glob.glob(data_path): data_files.append(file) data_files_str = '\n\t'.join(data_files) SlTrace.lg(f"Data files:\n\t{data_files_str}")
parser.add_argument('--height=', type=int, dest='height', default=height) parser.add_argument('--pos_x=', type=float, dest='pos_x', default=pos_x) parser.add_argument('--pos_y=', type=float, dest='pos_y', default=pos_y) parser.add_argument('--rotation=', type=float, dest='rotation', default=rotation) args = parser.parse_args() # or die "Illegal options" width = args.width height = args.height pos_x = args.pos_x pos_y = args.pos_y rotation = args.rotation SlTrace.setFlags("short_points") SlTrace.lg("%s %s\n" % (os.path.basename(sys.argv[0]), " ".join(sys.argv[1:]))) SlTrace.lg("args: %s\n" % args) frame = Frame(width=width, height=height, bg="", colormap="new") frame.pack() canvas = Canvas(frame, width=width, height=height) canvas.pack() th_width = 1. th_height = 1. position = None if pos_x is not None or pos_y is not None: if pos_x is None: pos_x = 0. if pos_y is None:
self.mw = None def destroy(self): """ relinquish resources """ self.delete_window() def add(self): if "set" in self.call_d: self.call_d["set"]() def edit(self): if "edit" in self.call_d: self.call_d["edit"]() def delete(self): if "delete" in self.call_d: self.call_d["delete"]() if __name__ == '__main__': root = Tk() frame = Frame(root) frame.pack() SlTrace.setProps() SlTrace.setFlags("") plc = PlayerControl(frame, title="player_control", display=True) root.mainloop()
# tracing_absolute_minimum.py 22Feb2020 crs from select_trace import SlTrace SlTrace.setFlags("good=1,bad=0") SlTrace.lg("we see good", "good") SlTrace.lg("we don't see bad", "bad")
g.makePuzzle) # If defined, generate puzzle with this many cells filled cF.set_val("PuzzleSym", g.makePuzzleSym) # Puzzle symetry pref for initial settings # x, y, center, n - none cF.set_val("nCol", g.nCol) cF.set_val("nSubCol", g.nSubCol) cF.set_val("nRow", g.nRow) cF.set_val("nSubRow", g.nSubRow) cF.set_val("traceList", g.traceList) cF.set_val("update_time", g.update_time) cF.set_val("UsePuzzle", g.UsePuzzle) cF.set_val("xPer", g.xPer) # experimental cF.set_val("Display_time", g.Display_time) trace = True if g.traceList is not None else False SlTrace.setFlags(g.traceList) if g.nSubCol is None: nSubCol = int(sqrt(g.nCol)) if g.nRow is None: g.nRow = g.nCol # Set square by default if g.nSubRow is None: nSubRow = int(sqrt(g.nRow)) makePuzzle = int(g.nCol * g.nRow / 3) if g.makePuzzle % 2 == 1: makePuzzle -= 1 # Make even mw.update() bs_in = int(tkMath.inchesToPixels(g.bSize)) w = bs_in + 200 h = bs_in + 100
def set_stroke_move(self, use_stroke=True): """ Enable/Disable use of stroke moves Generally for use in touch screens """ self.area.set_stroke_move(use_stroke) ######################################################################### # Self Test # ######################################################################### if __name__ == "__main__": # root window created. Here, that would be the only window, but # you can later have windows within windows. from tkinter import * SlTrace.setFlags("display") mw = Tk() def user_exit(): print("user_exit") exit() SlTrace.setProps() SlTrace.setFlags("") width = 400 height = 300 mw.geometry("%dx%d" % (width, height)) frame = Frame(width=width, height=height, bg="", colormap="new") frame.pack(fill=BOTH, expand=YES) #creation of an instance