1
0
Fork 0
mirror of https://github.com/shlomif/PySolFC.git synced 2025-04-05 00:02:29 -04:00

flake8 - games/s*

This commit is contained in:
Shlomi Fish 2017-04-18 10:45:10 +03:00
parent a32fc12218
commit e1bc790664
5 changed files with 100 additions and 62 deletions

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- mode: python; coding: utf-8; -*- # -*- mode: python; coding: utf-8; -*-
# ---------------------------------------------------------------------------## # ---------------------------------------------------------------------------
# #
# Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer
# Copyright (C) 2003 Mt. Hood Playing Card Co. # Copyright (C) 2003 Mt. Hood Playing Card Co.
@ -19,22 +19,31 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
# ---------------------------------------------------------------------------## # ---------------------------------------------------------------------------
__all__ = [] __all__ = []
# imports # imports
import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_ from pysollib.mygettext import _
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import *
from pysollib.mfxutil import kwdefault
from pysollib.stack import *
from pysollib.game import Game from pysollib.game import Game
from pysollib.layout import Layout from pysollib.layout import Layout
from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint
from pysollib.util import ANY_RANK, ANY_SUIT, JACK, KING, QUEEN
from pysollib.stack import \
AC_RowStack, \
AbstractFoundationStack, \
BasicRowStack, \
InitialDealTalonStack, \
OpenStack, \
Stack, \
UD_RK_RowStack, \
isAlternateColorSequence, \
StackWrapper
# ************************************************************************ # ************************************************************************
# * Take Away # * Take Away
@ -110,6 +119,7 @@ class TakeAway(Game):
class FourStacks_RowStack(AC_RowStack): class FourStacks_RowStack(AC_RowStack):
getBottomImage = Stack._getReserveBottomImage getBottomImage = Stack._getReserveBottomImage
class FourStacks(Game): class FourStacks(Game):
def createGame(self): def createGame(self):
# create layout # create layout
@ -159,7 +169,7 @@ class Striptease_RowStack(UD_RK_RowStack):
return True return True
r1, r2 = self.cards[-1].rank, cards[0].rank r1, r2 = self.cards[-1].rank, cards[0].rank
if ((r1 == JACK and r2 == KING) or if ((r1 == JACK and r2 == KING) or
(r2 == JACK and r1 == KING)): (r2 == JACK and r1 == KING)):
return True return True
return ((r1+1) % 13 == r2 or (r2+1) % 13 == r1) return ((r1+1) % 13 == r2 or (r2+1) % 13 == r1)
@ -224,7 +234,7 @@ class Striptease(TakeAway):
if r1 == QUEEN or r2 == QUEEN: if r1 == QUEEN or r2 == QUEEN:
return False return False
if ((r1 == JACK and r2 == KING) or if ((r1 == JACK and r2 == KING) or
(r2 == JACK and r1 == KING)): (r2 == JACK and r1 == KING)):
return True return True
return ((r1+1) % 13 == r2 or (r2+1) % 13 == r1) return ((r1+1) % 13 == r2 or (r2+1) % 13 == r1)
@ -236,4 +246,3 @@ registerGame(GameInfo(335, FourStacks, "Four Stacks",
GI.GT_1DECK_TYPE | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_1DECK_TYPE | GI.GT_OPEN, 1, 0, GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(654, Striptease, "Striptease", registerGame(GameInfo(654, Striptease, "Striptease",
GI.GT_1DECK_TYPE, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_1DECK_TYPE, 1, 0, GI.SL_MOSTLY_SKILL))

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- mode: python; coding: utf-8; -*- # -*- mode: python; coding: utf-8; -*-
# ---------------------------------------------------------------------------## # ---------------------------------------------------------------------------
# #
# Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer
# Copyright (C) 2003 Mt. Hood Playing Card Co. # Copyright (C) 2003 Mt. Hood Playing Card Co.
@ -19,27 +19,37 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
# #
# ---------------------------------------------------------------------------## # ---------------------------------------------------------------------------
__all__ = [] __all__ = []
# imports # imports
import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_ from pysollib.mygettext import _
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault
from pysollib.stack import *
from pysollib.game import Game from pysollib.game import Game
from pysollib.layout import Layout from pysollib.layout import Layout
from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint from pysollib.hint import CautiousDefaultHint
from pysollib.util import KING, NO_RANK
from pysollib.stack import \
AC_FoundationStack, \
AC_RowStack, \
OpenStack, \
SS_FoundationStack, \
Stack, \
StackWrapper, \
WasteStack, \
WasteTalonStack
# ************************************************************************ # ************************************************************************
# * # *
# ************************************************************************ # ************************************************************************
class Terrace_Talon(WasteTalonStack): class Terrace_Talon(WasteTalonStack):
def canDealCards(self): def canDealCards(self):
if self.game.getState() == 0: if self.game.getState() == 0:
@ -102,12 +112,14 @@ class Terrace_RowStack(AC_RowStack):
def moveMove(self, ncards, to_stack, frames=-1, shadow=-1): def moveMove(self, ncards, to_stack, frames=-1, shadow=-1):
state = self.game.getState() state = self.game.getState()
if state > 0: if state > 0:
AC_RowStack.moveMove(self, ncards, to_stack, frames=frames, shadow=shadow) AC_RowStack.moveMove(
self, ncards, to_stack, frames=frames, shadow=shadow)
return return
assert to_stack in self.game.s.foundations assert to_stack in self.game.s.foundations
assert ncards == 1 assert ncards == 1
assert not self.game.s.waste.cards assert not self.game.s.waste.cards
self.game.moveMove(ncards, self, to_stack, frames=frames, shadow=shadow) self.game.moveMove(
ncards, self, to_stack, frames=frames, shadow=shadow)
for s in self.game.s.foundations: for s in self.game.s.foundations:
s.cap.base_rank = to_stack.cards[0].rank s.cap.base_rank = to_stack.cards[0].rank
freerows = [s for s in self.game.s.rows if not s.cards] freerows = [s for s in self.game.s.rows if not s.cards]
@ -151,7 +163,8 @@ class Terrace(Game):
# create stacks # create stacks
x, y = l.XM + w1, l.YM x, y = l.XM + w1, l.YM
s.talon = self.Talon_Class(x, y, self, max_rounds=max_rounds, num_deal=num_deal) s.talon = self.Talon_Class(
x, y, self, max_rounds=max_rounds, num_deal=num_deal)
l.createText(s.talon, "sw") l.createText(s.talon, "sw")
x = x + l.XS x = x + l.XS
s.waste = WasteStack(x, y, self) s.waste = WasteStack(x, y, self)
@ -227,6 +240,7 @@ class Terrace(Game):
class QueenOfItaly(Terrace): class QueenOfItaly(Terrace):
Foundation_Class = StackWrapper(Terrace_AC_Foundation, max_move=1) Foundation_Class = StackWrapper(Terrace_AC_Foundation, max_move=1)
def fillStack(self, stack): def fillStack(self, stack):
pass pass
@ -277,8 +291,10 @@ class Wood_RowStack(AC_RowStack):
return from_stack is self.game.s.waste return from_stack is self.game.s.waste
return from_stack not in self.game.s.reserves return from_stack not in self.game.s.reserves
class Wood(BlondesAndBrunettes): class Wood(BlondesAndBrunettes):
RowStack_Class = StackWrapper(Wood_RowStack, mod=13, max_move=1) RowStack_Class = StackWrapper(Wood_RowStack, mod=13, max_move=1)
def fillStack(self, stack): def fillStack(self, stack):
pass pass
@ -298,8 +314,10 @@ class Signora(Terrace):
class Madame(Terrace): class Madame(Terrace):
INITIAL_RESERVE_CARDS = 15 INITIAL_RESERVE_CARDS = 15
def createGame(self): def createGame(self):
Terrace.createGame(self, rows=10, playcards=20) Terrace.createGame(self, rows=10, playcards=20)
def startGame(self): def startGame(self):
Terrace.startGame(self, nrows=10) Terrace.startGame(self, nrows=10)
@ -336,10 +354,13 @@ class MamySusan(Terrace):
def fillStack(self, stack): def fillStack(self, stack):
pass pass
def _restoreGameHook(self, game): def _restoreGameHook(self, game):
pass pass
def _loadGameHook(self, p): def _loadGameHook(self, p):
pass pass
def _saveGameHook(self, p): def _saveGameHook(self, p):
pass pass
@ -372,7 +393,7 @@ class BastilleDay_BastilleStack(Stack):
return 1 return 1
def getHelp(self): def getHelp(self):
return '' # FIXME return '' # FIXME
class BastilleDay(Game): class BastilleDay(Game):
@ -399,7 +420,7 @@ class BastilleDay(Game):
x, y = l.XM, l.YM+l.YS+l.TEXT_HEIGHT x, y = l.XM, l.YM+l.YS+l.TEXT_HEIGHT
for i in range(8): for i in range(8):
s.foundations.append(SS_FoundationStack(x, y, self, suit=i%4)) s.foundations.append(SS_FoundationStack(x, y, self, suit=i % 4))
x = x + l.XS x = x + l.XS
x, y = l.XM, l.YM+2*l.YS+l.TEXT_HEIGHT x, y = l.XM, l.YM+2*l.YS+l.TEXT_HEIGHT
for i in range(8): for i in range(8):
@ -408,17 +429,17 @@ class BastilleDay(Game):
l.defaultStackGroups() l.defaultStackGroups()
def _shuffleHook(self, cards): def _shuffleHook(self, cards):
# move Kings to top # move Kings to top
cards = self._shuffleHookMoveToTop(cards, cards = self._shuffleHookMoveToTop(
lambda c: (c.rank == KING, None)) cards,
lambda c: (c.rank == KING, None))
# move any 4 cards to top # move any 4 cards to top
cards = cards[4:]+cards[:4] cards = cards[4:]+cards[:4]
return cards return cards
def startGame(self, nrows=4): def startGame(self, nrows=4):
for i in range(12): # deal to Bastille for i in range(12): # deal to Bastille
self.s.talon.dealRow(flip=0, rows=[self.s.reserves[0]], frames=0) self.s.talon.dealRow(flip=0, rows=[self.s.reserves[0]], frames=0)
for i in range(9): for i in range(9):
self.s.talon.dealRow(rows=[self.s.reserves[-1]], frames=0) self.s.talon.dealRow(rows=[self.s.reserves[-1]], frames=0)
@ -433,14 +454,13 @@ class BastilleDay(Game):
if self.demo: if self.demo:
r = self.s.reserves[0] r = self.s.reserves[0]
if r.canDealCards(): if r.canDealCards():
##self.demo.last_deal = [] # don't check last deal # self.demo.last_deal = [] # don't check last deal
return r.dealCards(sound=sound) return r.dealCards(sound=sound)
return Game.dealCards(self, sound=sound) return Game.dealCards(self, sound=sound)
shallHighlightMatch = Game._shallHighlightMatch_AC shallHighlightMatch = Game._shallHighlightMatch_AC
# register the game # register the game
registerGame(GameInfo(135, Terrace, "Terrace", registerGame(GameInfo(135, Terrace, "Terrace",
GI.GT_TERRACE, 2, 0, GI.SL_MOSTLY_SKILL)) GI.GT_TERRACE, 2, 0, GI.SL_MOSTLY_SKILL))
@ -462,4 +482,3 @@ registerGame(GameInfo(582, Wood, "Wood",
GI.GT_TERRACE, 2, 0, GI.SL_BALANCED)) GI.GT_TERRACE, 2, 0, GI.SL_BALANCED))
registerGame(GameInfo(637, BastilleDay, "Bastille Day", registerGame(GameInfo(637, BastilleDay, "Bastille Day",
GI.GT_TERRACE, 2, 0, GI.SL_BALANCED)) GI.GT_TERRACE, 2, 0, GI.SL_BALANCED))

View file

@ -26,23 +26,27 @@ __all__ = []
# Imports # Imports
# PySol imports # PySol imports
from pysollib.mygettext import _, n_ from pysollib.mygettext import _
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault
from pysollib.stack import *
from pysollib.game import Game from pysollib.game import Game
from pysollib.layout import Layout from pysollib.layout import Layout
from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint
from pysollib.pysoltk import MfxCanvasText from pysollib.pysoltk import MfxCanvasText
from golf import Golf_Waste, Golf_Hint from golf import Golf_Waste, Golf_Hint
from pysollib.util import ANY_RANK
from pysollib.stack import \
OpenStack, \
StackWrapper, \
WasteTalonStack
# ************************************************************************ # ************************************************************************
# * Three Peaks Row Stack # * Three Peaks Row Stack
# ************************************************************************ # ************************************************************************
class ThreePeaks_TalonStack(WasteTalonStack): class ThreePeaks_TalonStack(WasteTalonStack):
def dealCards(self, sound=False): def dealCards(self, sound=False):
@ -79,7 +83,8 @@ class ThreePeaks_RowStack(OpenStack):
OpenStack.__init__(self, x, y, game, **cap) OpenStack.__init__(self, x, y, game, **cap)
def basicIsBlocked(self): def basicIsBlocked(self):
r, step = self.game.s.rows, (3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9) r = self.game.s.rows
step = (3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9)
i = self.id i = self.id
while i < 18: while i < 18:
i = i + step[i] i = i + step[i]
@ -111,7 +116,6 @@ class ThreePeaks(Game):
l, s = Layout(self), self.s l, s = Layout(self), self.s
# set window # set window
decks = self.gameinfo.decks
# compute best XOFFSET # compute best XOFFSET
xoffset = int(l.XS * 8 / self.gameinfo.ncards) xoffset = int(l.XS * 8 / self.gameinfo.ncards)
if xoffset < l.XOFFSET: if xoffset < l.XOFFSET:
@ -158,10 +162,11 @@ class ThreePeaks(Game):
# Create text for scores # Create text for scores
if self.preview <= 1: if self.preview <= 1:
self.texts.info = MfxCanvasText(self.canvas, self.texts.info = MfxCanvasText(
l.XM + l.XS * 3, h - l.YM, self.canvas,
anchor="sw", l.XM + l.XS * 3, h - l.YM,
font=self.app.getFont("canvas_default")) anchor="sw",
font=self.app.getFont("canvas_default"))
# Define stack groups # Define stack groups
l.defaultStackGroups() l.defaultStackGroups()
@ -206,7 +211,7 @@ class ThreePeaks(Game):
def getHandScore(self): def getHandScore(self):
# FIXME: bug #2937253 # FIXME: bug #2937253
score, i = self.hand_score, 1 score, i = self.hand_score, 1
if 0: #self.busy: if 0: # self.busy:
return score return score
# First count the empty peaks # First count the empty peaks
for r in self.s.rows[:3]: for r in self.s.rows[:3]:
@ -220,7 +225,7 @@ class ThreePeaks(Game):
if self.sequence and len(self.s.waste.cards) - 1: if self.sequence and len(self.s.waste.cards) - 1:
score = score + i * 2 ** int((self.sequence - 1) / 4) score = score + i * 2 ** int((self.sequence - 1) / 4)
self.hand_score = score self.hand_score = score
#print 'getHandScore: score:', score # print 'getHandScore: score:', score
return score return score
def canUndo(self): def canUndo(self):
@ -260,12 +265,9 @@ class ThreePeaksNoScore(ThreePeaks):
return True return True
registerGame(GameInfo(22216, ThreePeaks, "Three Peaks", registerGame(GameInfo(22216, ThreePeaks, "Three Peaks",
GI.GT_PAIRING_TYPE | GI.GT_SCORE, 1, 0, GI.SL_BALANCED, GI.GT_PAIRING_TYPE | GI.GT_SCORE, 1, 0, GI.SL_BALANCED,
altnames=("Tri Peaks",) altnames=("Tri Peaks",)
)) ))
registerGame(GameInfo(22231, ThreePeaksNoScore, "Three Peaks Non-scoring", registerGame(GameInfo(22231, ThreePeaksNoScore, "Three Peaks Non-scoring",
GI.GT_PAIRING_TYPE, 1, 0, GI.SL_BALANCED)) GI.GT_PAIRING_TYPE, 1, 0, GI.SL_BALANCED))

View file

@ -24,23 +24,32 @@
__all__ = [] __all__ = []
# imports # imports
import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_ from pysollib.mygettext import _
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import *
from pysollib.mfxutil import kwdefault
from pysollib.stack import *
from pysollib.game import Game from pysollib.game import Game
from pysollib.layout import Layout from pysollib.layout import Layout
from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint from pysollib.hint import CautiousDefaultHint
from pysollib.util import ACE, JACK, KING, QUEEN
from pysollib.stack import \
AC_RowStack, \
BasicRowStack, \
DealRowRedealTalonStack, \
DealRowTalonStack, \
OpenStack, \
ReserveStack, \
SS_RowStack, \
Stack, \
SS_FoundationStack
# ************************************************************************ # ************************************************************************
# * Tournament # * Tournament
# ************************************************************************ # ************************************************************************
class Tournament_Talon(DealRowRedealTalonStack): class Tournament_Talon(DealRowRedealTalonStack):
def dealCards(self, sound=False): def dealCards(self, sound=False):
num_cards = 0 num_cards = 0
@ -147,6 +156,7 @@ class LaNivernaise(Tournament):
# * Kingsdown Eights # * Kingsdown Eights
# ************************************************************************ # ************************************************************************
class KingsdownEights_Talon(DealRowTalonStack): class KingsdownEights_Talon(DealRowTalonStack):
def dealCards(self, sound=False): def dealCards(self, sound=False):
if len(self.cards) == 0: if len(self.cards) == 0:
@ -161,6 +171,7 @@ class KingsdownEights_Talon(DealRowTalonStack):
self.game.stopSamples() self.game.stopSamples()
return n return n
class KingsdownEights(Game): class KingsdownEights(Game):
Hint_Class = CautiousDefaultHint Hint_Class = CautiousDefaultHint
@ -215,6 +226,7 @@ class KingsdownEights(Game):
class Saxony_Reserve(SS_RowStack): class Saxony_Reserve(SS_RowStack):
getBottomImage = Stack._getReserveBottomImage getBottomImage = Stack._getReserveBottomImage
def getHelp(self): def getHelp(self):
return _('Reserve. Build down by suit.') return _('Reserve. Build down by suit.')
@ -232,11 +244,12 @@ class Saxony(Game):
x, y, = l.XM+1.5*l.XS, l.YM x, y, = l.XM+1.5*l.XS, l.YM
for i in range(8): for i in range(8):
s.foundations.append(SS_FoundationStack(x, y, self, suit=i%4)) s.foundations.append(SS_FoundationStack(x, y, self, suit=i % 4))
x += l.XS x += l.XS
x, y = l.XM+1.5*l.XS, 2*l.YM+l.YS x, y = l.XM+1.5*l.XS, 2*l.YM+l.YS
for i in range(8): for i in range(8):
s.reserves.append(BasicRowStack(x, y, self, max_move=1, max_accept=0)) s.reserves.append(
BasicRowStack(x, y, self, max_move=1, max_accept=0))
x += l.XS x += l.XS
x, y = l.XM, 2*l.YM+l.YS x, y = l.XM, 2*l.YM+l.YS
for i in range(4): for i in range(4):
@ -253,7 +266,6 @@ class Saxony(Game):
l.defaultStackGroups() l.defaultStackGroups()
def startGame(self): def startGame(self):
self.s.talon.dealRow(rows=self.s.reserves[8:], frames=0) self.s.talon.dealRow(rows=self.s.reserves[8:], frames=0)
self.s.talon.dealRow(frames=0) self.s.talon.dealRow(frames=0)
@ -301,7 +313,8 @@ class LadiesBattle(Game):
l.defaultStackGroups() l.defaultStackGroups()
def _shuffleHook(self, cards): def _shuffleHook(self, cards):
return self._shuffleHookMoveToTop(cards, return self._shuffleHookMoveToTop(
cards,
lambda c: (c.rank in (JACK, QUEEN), (c.rank, c.suit))) lambda c: (c.rank in (JACK, QUEEN), (c.rank, c.suit)))
def startGame(self): def startGame(self):
@ -319,20 +332,15 @@ class LadiesBattle(Game):
shallHighlightMatch = Game._shallHighlightMatch_ACW shallHighlightMatch = Game._shallHighlightMatch_ACW
# register the game # register the game
registerGame(GameInfo(303, Tournament, "Tournament", registerGame(GameInfo(303, Tournament, "Tournament",
GI.GT_2DECK_TYPE, 2, 2, GI.SL_MOSTLY_LUCK)) GI.GT_2DECK_TYPE, 2, 2, GI.SL_MOSTLY_LUCK))
registerGame(GameInfo(304, LaNivernaise, "La Nivernaise", registerGame(GameInfo(304, LaNivernaise, "La Nivernaise",
GI.GT_2DECK_TYPE, 2, 2, GI.SL_MOSTLY_LUCK, GI.GT_2DECK_TYPE, 2, 2, GI.SL_MOSTLY_LUCK,
altnames = ("Napoleon's Flank", ),)) altnames=("Napoleon's Flank", ),))
registerGame(GameInfo(386, KingsdownEights, "Kingsdown Eights", registerGame(GameInfo(386, KingsdownEights, "Kingsdown Eights",
GI.GT_2DECK_TYPE, 2, 0, GI.SL_BALANCED)) GI.GT_2DECK_TYPE, 2, 0, GI.SL_BALANCED))
registerGame(GameInfo(645, Saxony, "Saxony", registerGame(GameInfo(645, Saxony, "Saxony",
GI.GT_2DECK_TYPE, 2, 0, GI.SL_MOSTLY_SKILL)) GI.GT_2DECK_TYPE, 2, 0, GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(652, LadiesBattle, "Ladies Battle", registerGame(GameInfo(652, LadiesBattle, "Ladies Battle",
GI.GT_1DECK_TYPE, 1, 0, GI.SL_MOSTLY_LUCK)) GI.GT_1DECK_TYPE, 1, 0, GI.SL_MOSTLY_LUCK))

View file

@ -10,7 +10,7 @@ use String::ShellQuote qw/ shell_quote /;
# my $cmd = shell_quote( 'flake8', '.' ); # my $cmd = shell_quote( 'flake8', '.' );
my $cmd = shell_quote( 'flake8', my $cmd = shell_quote( 'flake8',
grep { not($_ eq './pysollib/pysoltk.py' or $_ eq './pysollib/tile/ttk.py') } glob('./pysollib/*.py ./pysollib/[cmpuw]*/*.py ./pysollib/tile/*.py ./pysollib/ui/tktile/*.py ./pysollib/games/[a-sy-z]*.py') ); grep { not($_ eq './pysollib/pysoltk.py' or $_ eq './pysollib/tile/ttk.py') } glob('./pysollib/*.py ./pysollib/[cmpuw]*/*.py ./pysollib/tile/*.py ./pysollib/ui/tktile/*.py ./pysollib/games/[a-ty-z]*.py') );
# TEST # TEST
eq_or_diff( scalar(`$cmd`), '', "flake8 is happy with the code." ); eq_or_diff( scalar(`$cmd`), '', "flake8 is happy with the code." );