Kaydet (Commit) c2074010 authored tarafından Florent Xicluna's avatar Florent Xicluna

Some cleanup in the Tools directory.

üst 61ea12c9
...@@ -10,7 +10,6 @@ ccbench, a Python concurrency benchmark. ...@@ -10,7 +10,6 @@ ccbench, a Python concurrency benchmark.
import time import time
import os import os
import sys import sys
import functools
import itertools import itertools
import threading import threading
import subprocess import subprocess
......
...@@ -46,38 +46,38 @@ class LifeBoard: ...@@ -46,38 +46,38 @@ class LifeBoard:
self.state = {} self.state = {}
self.scr = scr self.scr = scr
Y, X = self.scr.getmaxyx() Y, X = self.scr.getmaxyx()
self.X, self.Y = X-2, Y-2-1 self.X, self.Y = X - 2, Y - 2 - 1
self.char = char self.char = char
self.scr.clear() self.scr.clear()
# Draw a border around the board # Draw a border around the board
border_line = '+'+(self.X*'-')+'+' border_line = '+' + (self.X * '-') + '+'
self.scr.addstr(0, 0, border_line) self.scr.addstr(0, 0, border_line)
self.scr.addstr(self.Y+1, 0, border_line) self.scr.addstr(self.Y + 1, 0, border_line)
for y in range(0, self.Y): for y in range(0, self.Y):
self.scr.addstr(1+y, 0, '|') self.scr.addstr(1 + y, 0, '|')
self.scr.addstr(1+y, self.X+1, '|') self.scr.addstr(1 + y, self.X + 1, '|')
self.scr.refresh() self.scr.refresh()
def set(self, y, x): def set(self, y, x):
"""Set a cell to the live state""" """Set a cell to the live state"""
if x<0 or self.X<=x or y<0 or self.Y<=y: if x < 0 or self.X <= x or y < 0 or self.Y <= y:
raise ValueError("Coordinates out of range %i,%i"% (y, x)) raise ValueError("Coordinates out of range %i,%i" % (y, x))
self.state[x,y] = 1 self.state[x, y] = 1
def toggle(self, y, x): def toggle(self, y, x):
"""Toggle a cell's state between live and dead""" """Toggle a cell's state between live and dead"""
if x < 0 or self.X <= x or y < 0 or self.Y <= y: if x < 0 or self.X <= x or y < 0 or self.Y <= y:
raise ValueError("Coordinates out of range %i,%i"% (y, x)) raise ValueError("Coordinates out of range %i,%i" % (y, x))
if (x, y) in self.state: if (x, y) in self.state:
del self.state[x, y] del self.state[x, y]
self.scr.addch(y+1, x+1, ' ') self.scr.addch(y + 1, x + 1, ' ')
else: else:
self.state[x, y] = 1 self.state[x, y] = 1
if curses.has_colors(): if curses.has_colors():
# Let's pick a random color! # Let's pick a random color!
self.scr.attrset(curses.color_pair(random.randrange(1, 7))) self.scr.attrset(curses.color_pair(random.randrange(1, 7)))
self.scr.addch(y+1, x+1, self.char) self.scr.addch(y + 1, x + 1, self.char)
self.scr.attrset(0) self.scr.attrset(0)
self.scr.refresh() self.scr.refresh()
...@@ -88,43 +88,46 @@ class LifeBoard: ...@@ -88,43 +88,46 @@ class LifeBoard:
def display(self, update_board=True): def display(self, update_board=True):
"""Display the whole board, optionally computing one generation""" """Display the whole board, optionally computing one generation"""
M,N = self.X, self.Y M, N = self.X, self.Y
if not update_board: if not update_board:
for i in range(0, M): for i in range(0, M):
for j in range(0, N): for j in range(0, N):
if (i,j) in self.state: if (i, j) in self.state:
self.scr.addch(j+1, i+1, self.char) self.scr.addch(j + 1, i + 1, self.char)
else: else:
self.scr.addch(j+1, i+1, ' ') self.scr.addch(j + 1, i + 1, ' ')
self.scr.refresh() self.scr.refresh()
return return
d = {} d = {}
self.boring = 1 self.boring = 1
for i in range(0, M): for i in range(0, M):
L = range( max(0, i-1), min(M, i+2) ) L = range(max(0, i - 1), min(M, i + 2))
for j in range(0, N): for j in range(0, N):
s = 0 s = 0
live = (i,j) in self.state live = (i, j) in self.state
for k in range( max(0, j-1), min(N, j+2) ): for k in range(max(0, j - 1), min(N, j + 2)):
for l in L: for l in L:
if (l,k) in self.state: if (l, k) in self.state:
s += 1 s += 1
s -= live s -= live
if s == 3: if s == 3:
# Birth # Birth
d[i,j] = 1 d[i, j] = 1
if curses.has_colors(): if curses.has_colors():
# Let's pick a random color! # Let's pick a random color!
self.scr.attrset(curses.color_pair( self.scr.attrset(curses.color_pair(
random.randrange(1, 7))) random.randrange(1, 7)))
self.scr.addch(j+1, i+1, self.char) self.scr.addch(j + 1, i + 1, self.char)
self.scr.attrset(0) self.scr.attrset(0)
if not live: self.boring = 0 if not live:
elif s == 2 and live: d[i,j] = 1 # Survival self.boring = 0
elif s == 2 and live:
# Survival
d[i, j] = 1
elif live: elif live:
# Death # Death
self.scr.addch(j+1, i+1, ' ') self.scr.addch(j + 1, i + 1, ' ')
self.boring = 0 self.boring = 0
self.state = d self.state = d
self.scr.refresh() self.scr.refresh()
...@@ -135,16 +138,17 @@ class LifeBoard: ...@@ -135,16 +138,17 @@ class LifeBoard:
for i in range(0, self.X): for i in range(0, self.X):
for j in range(0, self.Y): for j in range(0, self.Y):
if random.random() > 0.5: if random.random() > 0.5:
self.set(j,i) self.set(j, i)
def erase_menu(stdscr, menu_y): def erase_menu(stdscr, menu_y):
"Clear the space where the menu resides" "Clear the space where the menu resides"
stdscr.move(menu_y, 0) stdscr.move(menu_y, 0)
stdscr.clrtoeol() stdscr.clrtoeol()
stdscr.move(menu_y+1, 0) stdscr.move(menu_y + 1, 0)
stdscr.clrtoeol() stdscr.clrtoeol()
def display_menu(stdscr, menu_y): def display_menu(stdscr, menu_y):
"Display the menu of possible keystroke commands" "Display the menu of possible keystroke commands"
erase_menu(stdscr, menu_y) erase_menu(stdscr, menu_y)
...@@ -154,15 +158,16 @@ def display_menu(stdscr, menu_y): ...@@ -154,15 +158,16 @@ def display_menu(stdscr, menu_y):
stdscr.attrset(curses.color_pair(1)) stdscr.attrset(curses.color_pair(1))
stdscr.addstr(menu_y, 4, stdscr.addstr(menu_y, 4,
'Use the cursor keys to move, and space or Enter to toggle a cell.') 'Use the cursor keys to move, and space or Enter to toggle a cell.')
stdscr.addstr(menu_y+1, 4, stdscr.addstr(menu_y + 1, 4,
'E)rase the board, R)andom fill, S)tep once or C)ontinuously, Q)uit') 'E)rase the board, R)andom fill, S)tep once or C)ontinuously, Q)uit')
stdscr.attrset(0) stdscr.attrset(0)
def keyloop(stdscr): def keyloop(stdscr):
# Clear the screen and display the menu of keys # Clear the screen and display the menu of keys
stdscr.clear() stdscr.clear()
stdscr_y, stdscr_x = stdscr.getmaxyx() stdscr_y, stdscr_x = stdscr.getmaxyx()
menu_y = (stdscr_y-3)-1 menu_y = (stdscr_y - 3) - 1
display_menu(stdscr, menu_y) display_menu(stdscr, menu_y)
# If color, then initialize the color pairs # If color, then initialize the color pairs
...@@ -179,16 +184,16 @@ def keyloop(stdscr): ...@@ -179,16 +184,16 @@ def keyloop(stdscr):
curses.mousemask(curses.BUTTON1_CLICKED) curses.mousemask(curses.BUTTON1_CLICKED)
# Allocate a subwindow for the Life board and create the board object # Allocate a subwindow for the Life board and create the board object
subwin = stdscr.subwin(stdscr_y-3, stdscr_x, 0, 0) subwin = stdscr.subwin(stdscr_y - 3, stdscr_x, 0, 0)
board = LifeBoard(subwin, char=ord('*')) board = LifeBoard(subwin, char=ord('*'))
board.display(update_board=False) board.display(update_board=False)
# xpos, ypos are the cursor's position # xpos, ypos are the cursor's position
xpos, ypos = board.X//2, board.Y//2 xpos, ypos = board.X // 2, board.Y // 2
# Main loop: # Main loop:
while True: while True:
stdscr.move(1+ypos, 1+xpos) # Move the cursor stdscr.move(1 + ypos, 1 + xpos) # Move the cursor
c = stdscr.getch() # Get a keystroke c = stdscr.getch() # Get a keystroke
if 0 < c < 256: if 0 < c < 256:
c = chr(c) c = chr(c)
...@@ -224,15 +229,21 @@ def keyloop(stdscr): ...@@ -224,15 +229,21 @@ def keyloop(stdscr):
board.display(update_board=False) board.display(update_board=False)
elif c in 'Ss': elif c in 'Ss':
board.display() board.display()
else: pass # Ignore incorrect keys else:
elif c == curses.KEY_UP and ypos > 0: ypos -= 1 # Ignore incorrect keys
elif c == curses.KEY_DOWN and ypos < board.Y-1: ypos += 1 pass
elif c == curses.KEY_LEFT and xpos > 0: xpos -= 1 elif c == curses.KEY_UP and ypos > 0:
elif c == curses.KEY_RIGHT and xpos < board.X-1: xpos += 1 ypos -= 1
elif c == curses.KEY_DOWN and ypos + 1 < board.Y:
ypos += 1
elif c == curses.KEY_LEFT and xpos > 0:
xpos -= 1
elif c == curses.KEY_RIGHT and xpos + 1 < board.X:
xpos += 1
elif c == curses.KEY_MOUSE: elif c == curses.KEY_MOUSE:
mouse_id, mouse_x, mouse_y, mouse_z, button_state = curses.getmouse() mouse_id, mouse_x, mouse_y, mouse_z, button_state = curses.getmouse()
if (mouse_x > 0 and mouse_x < board.X+1 and if (mouse_x > 0 and mouse_x < board.X + 1 and
mouse_y > 0 and mouse_y < board.Y+1): mouse_y > 0 and mouse_y < board.Y + 1):
xpos = mouse_x - 1 xpos = mouse_x - 1
ypos = mouse_y - 1 ypos = mouse_y - 1
board.toggle(ypos, xpos) board.toggle(ypos, xpos)
......
...@@ -812,7 +812,6 @@ class SheetGUI: ...@@ -812,7 +812,6 @@ class SheetGUI:
def test_basic(): def test_basic():
"Basic non-gui self-test." "Basic non-gui self-test."
import os
a = Sheet() a = Sheet()
for x in range(1, 11): for x in range(1, 11):
for y in range(1, 11): for y in range(1, 11):
......
...@@ -163,7 +163,6 @@ import time ...@@ -163,7 +163,6 @@ import time
import getopt import getopt
import token import token
import tokenize import tokenize
import operator
__version__ = '1.5' __version__ = '1.5'
......
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# This file should be kept compatible with both Python 2.6 and Python >= 3.0. # This file should be kept compatible with both Python 2.6 and Python >= 3.0.
import functools
import hashlib
import itertools import itertools
import os import os
import platform import platform
......
"Usage: unparse.py <path to source file>" "Usage: unparse.py <path to source file>"
import sys import sys
import math
import ast import ast
import tokenize import tokenize
import io import io
......
...@@ -35,7 +35,9 @@ NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION ...@@ -35,7 +35,9 @@ NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE ! WITH THE USE OR PERFORMANCE OF THIS SOFTWARE !
""" """
import sys, time, operator, platform import sys
import time
import platform
from CommandLine import * from CommandLine import *
try: try:
...@@ -962,8 +964,6 @@ python pybench.py -s p25.pybench -c p21.pybench ...@@ -962,8 +964,6 @@ python pybench.py -s p25.pybench -c p21.pybench
bench.name = reportfile bench.name = reportfile
pickle.dump(bench,f) pickle.dump(bench,f)
f.close() f.close()
except IOError as reason:
print('* Error opening/writing reportfile')
except IOError as reason: except IOError as reason:
print('* Error opening/writing reportfile %s: %s' % ( print('* Error opening/writing reportfile %s: %s' % (
reportfile, reportfile,
......
...@@ -32,7 +32,6 @@ import sys ...@@ -32,7 +32,6 @@ import sys
import zipfile import zipfile
from textwrap import dedent from textwrap import dedent
from operator import itemgetter
SCRIPT = sys.argv[0] SCRIPT = sys.argv[0]
VERSION = "3.2" VERSION = "3.2"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment