From cb991467852ef60035e4f5cece80851829e7c8c2 Mon Sep 17 00:00:00 2001 From: akash-suresh Date: Tue, 9 Jun 2020 19:37:53 +0530 Subject: [PATCH 1/8] Added isort, ran isort on all files --- .isort.cfg | 7 ++ .prepare-commit-msg.py | 2 +- axelrod/__init__.py | 30 ++++---- axelrod/classifier.py | 4 +- .../compute_finite_state_machine_memory.py | 6 +- axelrod/deterministic_cache.py | 1 + axelrod/evolvable_player.py | 1 + axelrod/fingerprint.py | 5 +- axelrod/match.py | 4 +- axelrod/moran.py | 2 +- axelrod/player.py | 1 - axelrod/plot.py | 4 +- axelrod/random_.py | 3 +- axelrod/result_set.py | 9 +-- axelrod/strategies/__init__.py | 22 +++--- axelrod/strategies/_strategies.py | 74 ++++++++----------- axelrod/strategies/adaptor.py | 1 - axelrod/strategies/ann.py | 9 ++- axelrod/strategies/axelrod_first.py | 2 +- axelrod/strategies/cycler.py | 6 +- axelrod/strategies/finite_state_machines.py | 9 ++- axelrod/strategies/gambler.py | 11 ++- axelrod/strategies/hmm.py | 11 ++- axelrod/strategies/lookerup.py | 10 ++- axelrod/strategies/meta.py | 4 +- axelrod/strategies/revised_downing.py | 1 - axelrod/strategy_transformers.py | 6 +- axelrod/tests/integration/test_filtering.py | 1 - axelrod/tests/integration/test_matches.py | 1 - axelrod/tests/integration/test_tournament.py | 4 +- axelrod/tests/property.py | 1 - axelrod/tests/strategies/test_ann.py | 3 +- .../tests/strategies/test_axelrod_second.py | 3 - axelrod/tests/strategies/test_cycler.py | 4 +- .../tests/strategies/test_evolvable_player.py | 6 +- .../strategies/test_finite_state_machines.py | 11 ++- axelrod/tests/strategies/test_gambler.py | 7 +- axelrod/tests/strategies/test_hmm.py | 5 +- axelrod/tests/strategies/test_human.py | 3 +- axelrod/tests/strategies/test_hunter.py | 3 +- axelrod/tests/strategies/test_lookerup.py | 5 +- axelrod/tests/strategies/test_memorytwo.py | 4 +- axelrod/tests/strategies/test_meta.py | 5 +- axelrod/tests/strategies/test_player.py | 5 +- axelrod/tests/strategies/test_titfortat.py | 2 - axelrod/tests/unit/test_classification.py | 4 +- ...est_compute_finite_state_machine_memory.py | 1 - .../tests/unit/test_deterministic_cache.py | 2 +- axelrod/tests/unit/test_eigen.py | 4 +- axelrod/tests/unit/test_filters.py | 1 - axelrod/tests/unit/test_fingerprint.py | 11 +-- axelrod/tests/unit/test_game.py | 1 - axelrod/tests/unit/test_graph.py | 1 - axelrod/tests/unit/test_history.py | 1 - axelrod/tests/unit/test_interaction_utils.py | 2 +- axelrod/tests/unit/test_match.py | 2 - axelrod/tests/unit/test_match_generator.py | 1 - axelrod/tests/unit/test_mock_player.py | 1 - axelrod/tests/unit/test_moran.py | 5 +- axelrod/tests/unit/test_pickling.py | 2 +- axelrod/tests/unit/test_plot.py | 10 +-- axelrod/tests/unit/test_property.py | 1 - axelrod/tests/unit/test_random_.py | 7 +- axelrod/tests/unit/test_resultset.py | 11 ++- axelrod/tests/unit/test_strategy_utils.py | 1 - axelrod/tests/unit/test_tournament.py | 13 ++-- docs/conf.py | 6 +- run_strategy_indexer.py | 2 +- 68 files changed, 191 insertions(+), 217 deletions(-) create mode 100644 .isort.cfg diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 000000000..46cb98577 --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,7 @@ +[settings] +default_section = THIRDPARTY +multi_line_output = 3 +include_trailing_comma = True +force_grid_wrap = 0 +combine_as_imports = True +line_length = 88 diff --git a/.prepare-commit-msg.py b/.prepare-commit-msg.py index 198911e21..780f8594b 100755 --- a/.prepare-commit-msg.py +++ b/.prepare-commit-msg.py @@ -21,8 +21,8 @@ # Any issue numbers created by this hook (or entered manually in the correct) # format will now be clickable links in the log view. -import sys import re +import sys from subprocess import check_output # By default, the hook will check to see if the branch name starts with diff --git a/axelrod/__init__.py b/axelrod/__init__.py index bdc39f202..ee0a7440a 100644 --- a/axelrod/__init__.py +++ b/axelrod/__init__.py @@ -1,24 +1,24 @@ DEFAULT_TURNS = 200 -# The order of imports matters! -from axelrod.version import __version__ -from axelrod.load_data_ import load_pso_tables, load_weights from axelrod import graph from axelrod.action import Action -from axelrod.random_ import random_choice, random_flip, seed, Pdf -from axelrod.plot import Plot -from axelrod.game import DefaultGame, Game -from axelrod.history import History, LimitedHistory -from axelrod.player import Player from axelrod.classifier import Classifiers +from axelrod.deterministic_cache import DeterministicCache +from axelrod.ecosystem import Ecosystem from axelrod.evolvable_player import EvolvablePlayer -from axelrod.mock_player import MockPlayer +from axelrod.fingerprint import AshlockFingerprint, TransitiveFingerprint +from axelrod.game import DefaultGame, Game +from axelrod.history import History, LimitedHistory +from axelrod.load_data_ import load_pso_tables, load_weights from axelrod.match import Match -from axelrod.moran import MoranProcess, ApproximateMoranProcess -from axelrod.strategies import * -from axelrod.deterministic_cache import DeterministicCache from axelrod.match_generator import * -from axelrod.tournament import Tournament +from axelrod.mock_player import MockPlayer +from axelrod.moran import ApproximateMoranProcess, MoranProcess +from axelrod.player import Player +from axelrod.plot import Plot +from axelrod.random_ import Pdf, random_choice, random_flip, seed from axelrod.result_set import ResultSet -from axelrod.ecosystem import Ecosystem -from axelrod.fingerprint import AshlockFingerprint, TransitiveFingerprint +from axelrod.strategies import * +from axelrod.tournament import Tournament +# The order of imports matters! +from axelrod.version import __version__ diff --git a/axelrod/classifier.py b/axelrod/classifier.py index a88dbe39e..d0b149a62 100644 --- a/axelrod/classifier.py +++ b/axelrod/classifier.py @@ -1,4 +1,5 @@ import os +import warnings from typing import ( Any, Callable, @@ -11,9 +12,8 @@ TypeVar, Union, ) -import warnings -import yaml +import yaml from axelrod.player import Player ALL_CLASSIFIERS_PATH = "data/all_classifiers.yml" diff --git a/axelrod/compute_finite_state_machine_memory.py b/axelrod/compute_finite_state_machine_memory.py index 0f83d3494..b46ad58db 100644 --- a/axelrod/compute_finite_state_machine_memory.py +++ b/axelrod/compute_finite_state_machine_memory.py @@ -1,6 +1,7 @@ -from axelrod.action import Action from collections import defaultdict, namedtuple -from typing import DefaultDict, Iterator, Dict, Tuple, Set, List +from typing import DefaultDict, Dict, Iterator, List, Set, Tuple + +from axelrod.action import Action C, D = Action.C, Action.D @@ -263,4 +264,3 @@ def get_memory_from_transitions( if len(next_action_set) == 1: return 0 return 1 - diff --git a/axelrod/deterministic_cache.py b/axelrod/deterministic_cache.py index 24fc53b7d..8199f5ad2 100644 --- a/axelrod/deterministic_cache.py +++ b/axelrod/deterministic_cache.py @@ -17,6 +17,7 @@ from typing import List, Tuple from axelrod import Classifiers + from .action import Action from .player import Player diff --git a/axelrod/evolvable_player.py b/axelrod/evolvable_player.py index e80da1c69..c0411780e 100644 --- a/axelrod/evolvable_player.py +++ b/axelrod/evolvable_player.py @@ -2,6 +2,7 @@ from pickle import dumps, loads from random import randrange from typing import Dict, List + from .player import Player diff --git a/axelrod/fingerprint.py b/axelrod/fingerprint.py index 20390abfd..413926b6e 100644 --- a/axelrod/fingerprint.py +++ b/axelrod/fingerprint.py @@ -3,19 +3,18 @@ from tempfile import mkstemp from typing import Any, List, Union +import axelrod as axl import dask.dataframe as dd import matplotlib.pyplot as plt import numpy as np import tqdm -from mpl_toolkits.axes_grid1 import make_axes_locatable - -import axelrod as axl from axelrod import Player from axelrod.interaction_utils import ( compute_final_score_per_turn, read_interactions_from_file, ) from axelrod.strategy_transformers import DualTransformer, JossAnnTransformer +from mpl_toolkits.axes_grid1 import make_axes_locatable Point = namedtuple("Point", "x y") diff --git a/axelrod/match.py b/axelrod/match.py index e9dd29442..92d42b4c9 100644 --- a/axelrod/match.py +++ b/axelrod/match.py @@ -2,10 +2,10 @@ from math import ceil, log import axelrod.interaction_utils as iu -from axelrod import DEFAULT_TURNS +from axelrod import DEFAULT_TURNS, Classifiers from axelrod.action import Action -from axelrod import Classifiers from axelrod.game import Game + from .deterministic_cache import DeterministicCache C, D = Action.C, Action.D diff --git a/axelrod/moran.py b/axelrod/moran.py index 1c0bdc487..ca011e6ed 100644 --- a/axelrod/moran.py +++ b/axelrod/moran.py @@ -6,7 +6,7 @@ import matplotlib.pyplot as plt import numpy as np -from axelrod import EvolvablePlayer, DEFAULT_TURNS, Game, Player +from axelrod import DEFAULT_TURNS, EvolvablePlayer, Game, Player from .deterministic_cache import DeterministicCache from .graph import Graph, complete_graph diff --git a/axelrod/player.py b/axelrod/player.py index 61cc609af..32ef5291c 100644 --- a/axelrod/player.py +++ b/axelrod/player.py @@ -5,7 +5,6 @@ from typing import Any, Dict import numpy as np - from axelrod.action import Action from axelrod.game import DefaultGame from axelrod.history import History diff --git a/axelrod/plot.py b/axelrod/plot.py index edc596529..f56cc9f4f 100644 --- a/axelrod/plot.py +++ b/axelrod/plot.py @@ -1,15 +1,15 @@ +import pathlib from distutils.version import LooseVersion from typing import List, Union import matplotlib import matplotlib.pyplot as plt import matplotlib.transforms as transforms -import pathlib import tqdm from numpy import arange, median, nan_to_num -from .result_set import ResultSet from .load_data_ import axl_filename +from .result_set import ResultSet titleType = List[str] namesType = List[str] diff --git a/axelrod/random_.py b/axelrod/random_.py index 183c77b5f..95d7700d9 100644 --- a/axelrod/random_.py +++ b/axelrod/random_.py @@ -1,9 +1,8 @@ import random import numpy as np -from numpy.random import choice - from axelrod.action import Action +from numpy.random import choice C, D = Action.C, Action.D diff --git a/axelrod/result_set.py b/axelrod/result_set.py index 36e33a4b7..65353cc6d 100644 --- a/axelrod/result_set.py +++ b/axelrod/result_set.py @@ -1,17 +1,16 @@ -from collections import Counter, namedtuple import csv import itertools +import warnings +from collections import Counter, namedtuple from multiprocessing import cpu_count from typing import List -import warnings +import dask as da +import dask.dataframe as dd import numpy as np import tqdm from axelrod.action import Action -import dask as da -import dask.dataframe as dd - from . import eigen C, D = Action.C, Action.D diff --git a/axelrod/strategies/__init__.py b/axelrod/strategies/__init__.py index 1e8e1a4ff..23d214a8e 100644 --- a/axelrod/strategies/__init__.py +++ b/axelrod/strategies/__init__.py @@ -1,38 +1,38 @@ from ..classifier import Classifiers -from ._strategies import * from ._filters import passes_filterset - -# `from ._strategies import *` import the collection `strategies` -# Now import the Meta strategies. This cannot be done in _strategies -# because it creates circular dependencies - +from ._strategies import * from .meta import ( MemoryDecay, MetaHunter, MetaHunterAggressive, - MetaPlayer, MetaMajority, - MetaMajorityMemoryOne, MetaMajorityFiniteMemory, MetaMajorityLongMemory, + MetaMajorityMemoryOne, MetaMinority, MetaMixer, + MetaPlayer, MetaWinner, MetaWinnerDeterministic, MetaWinnerEnsemble, - MetaWinnerMemoryOne, MetaWinnerFiniteMemory, MetaWinnerLongMemory, + MetaWinnerMemoryOne, MetaWinnerStochastic, + NiceMetaWinner, + NiceMetaWinnerEnsemble, NMWEDeterministic, NMWEFiniteMemory, NMWELongMemory, NMWEMemoryOne, NMWEStochastic, - NiceMetaWinner, - NiceMetaWinnerEnsemble, ) +# `from ._strategies import *` import the collection `strategies` +# Now import the Meta strategies. This cannot be done in _strategies +# because it creates circular dependencies + + all_strategies += [ MemoryDecay, MetaHunter, diff --git a/axelrod/strategies/_strategies.py b/axelrod/strategies/_strategies.py index 85e58b4b4..565258812 100644 --- a/axelrod/strategies/_strategies.py +++ b/axelrod/strategies/_strategies.py @@ -22,24 +22,29 @@ from .adaptive import Adaptive from .adaptor import AdaptorBrief, AdaptorLong from .alternator import Alternator -from .ann import EvolvedANN, EvolvedANN5, EvolvedANNNoise05 -from .ann import ANN, EvolvableANN # pylint: disable=unused-import +from .ann import ( # pylint: disable=unused-import + ANN, + EvolvableANN, + EvolvedANN, + EvolvedANN5, + EvolvedANNNoise05, +) from .apavlov import APavlov2006, APavlov2011 from .appeaser import Appeaser from .averagecopier import AverageCopier, NiceAverageCopier from .axelrod_first import ( + FirstByAnonymous, FirstByDavis, + FirstByDowning, FirstByFeld, FirstByGraaskamp, FirstByGrofman, FirstByJoss, FirstByNydegger, - FirstByDowning, FirstByShubik, FirstBySteinAndRapoport, FirstByTidemanAndChieruzzi, FirstByTullock, - FirstByAnonymous, ) from .axelrod_second import ( SecondByAppold, @@ -52,15 +57,15 @@ SecondByGetzler, SecondByGladstein, SecondByGraaskampKatzen, + SecondByGrofman, SecondByHarrington, SecondByKluepfel, SecondByLeyvraz, SecondByMikkelson, - SecondByGrofman, - SecondByTidemanAndChieruzzi, SecondByRichardHufford, SecondByRowsam, SecondByTester, + SecondByTidemanAndChieruzzi, SecondByTranquilizer, SecondByWeiner, SecondByWhite, @@ -72,52 +77,52 @@ from .bush_mosteller import BushMosteller from .calculator import Calculator from .cooperator import Cooperator, TrickyCooperator +from .cycler import AntiCycler # pylint: disable=unused-import from .cycler import ( - AntiCycler, + Cycler, CyclerCCCCCD, CyclerCCCD, CyclerCCCDCD, CyclerCCD, CyclerDC, CyclerDDC, + EvolvableCycler, ) -from .cycler import Cycler, EvolvableCycler # pylint: disable=unused-import from .darwin import Darwin from .dbs import DBS from .defector import Defector, TrickyDefector from .doubler import Doubler -from .finite_state_machines import ( +from .finite_state_machines import ( # pylint: disable=unused-import TF1, TF2, TF3, + EvolvableFSMPlayer, EvolvedFSM4, EvolvedFSM16, EvolvedFSM16Noise05, Fortress3, Fortress4, + FSMPlayer, Predator, Pun1, Raider, Ripoff, - UsuallyCooperates, - UsuallyDefects, SolutionB1, SolutionB5, Thumper, -) -from .finite_state_machines import ( # pylint: disable=unused-import - EvolvableFSMPlayer, - FSMPlayer, + UsuallyCooperates, + UsuallyDefects, ) from .forgiver import Forgiver, ForgivingTitForTat +from .gambler import EvolvableGambler # pylint: disable=unused-import from .gambler import ( + Gambler, PSOGambler1_1_1, PSOGambler2_2_2, PSOGambler2_2_2_Noise05, PSOGamblerMem1, ZDMem2, ) -from .gambler import EvolvableGambler, Gambler # pylint: disable=unused-import from .geller import Geller, GellerCooperator, GellerDefector from .gobymajority import ( GoByMajority, @@ -144,8 +149,8 @@ ) from .grumpy import Grumpy from .handshake import Handshake -from .hmm import EvolvedHMM5 -from .hmm import EvolvableHMMPlayer, HMMPlayer # pylint: disable=unused-import +from .hmm import EvolvableHMMPlayer # pylint: disable=unused-import +from .hmm import EvolvedHMM5, HMMPlayer from .human import Human # pylint: disable=unused-import from .hunter import ( AlternatorHunter, @@ -157,36 +162,29 @@ RandomHunter, ) from .inverse import Inverse +from .lookerup import EvolvableLookerUp # pylint: disable=unused-import from .lookerup import ( EvolvedLookerUp1_1_1, EvolvedLookerUp2_2_2, + LookerUp, Winner12, Winner21, ) -from .lookerup import ( # pylint: disable=unused-import - EvolvableLookerUp, - LookerUp, -) - from .mathematicalconstants import Golden, Pi, e -from .memoryone import ( +from .memoryone import ( # pylint: disable=unused-import GTFT, ALLCorALLD, FirmButFair, + MemoryOnePlayer, + ReactivePlayer, SoftJoss, StochasticCooperator, StochasticWSLS, WinShiftLoseStay, WinStayLoseShift, ) -from .memoryone import ( # pylint: disable=unused-import - ReactivePlayer, - MemoryOnePlayer, -) - -from .memorytwo import AON2, MEM2, DelayedAON1 from .memorytwo import MemoryTwoPlayer # pylint: disable=unused-import - +from .memorytwo import AON2, MEM2, DelayedAON1 from .mindcontrol import MindBender, MindController, MindWarper from .mindreader import MindReader, MirrorMindReader, ProtectedMindReader from .mutual import Desperate, Hopeless, Willing @@ -203,12 +201,7 @@ Prober4, RemorsefulProber, ) -from .punisher import ( - InversePunisher, - LevelPunisher, - Punisher, - TrickyLevelPunisher, -) +from .punisher import InversePunisher, LevelPunisher, Punisher, TrickyLevelPunisher from .qlearner import ( ArrogantQLearner, CautiousQLearner, @@ -227,11 +220,8 @@ ) from .revised_downing import RevisedDowning from .selfsteem import SelfSteem -from .sequence_player import ( # pylint: disable=unused-import - SequencePlayer, - ThueMorse, - ThueMorseInverse, -) +from .sequence_player import SequencePlayer # pylint: disable=unused-import +from .sequence_player import ThueMorse, ThueMorseInverse from .shortmem import ShortMem from .stalker import Stalker from .titfortat import ( diff --git a/axelrod/strategies/adaptor.py b/axelrod/strategies/adaptor.py index 2648b2704..6e89bfd78 100644 --- a/axelrod/strategies/adaptor.py +++ b/axelrod/strategies/adaptor.py @@ -3,7 +3,6 @@ from axelrod.action import Action from axelrod.player import Player from axelrod.random_ import random_choice - from numpy import heaviside C, D = Action.C, Action.D diff --git a/axelrod/strategies/ann.py b/axelrod/strategies/ann.py index 2d3a1bc85..a0393c20f 100644 --- a/axelrod/strategies/ann.py +++ b/axelrod/strategies/ann.py @@ -1,12 +1,16 @@ from typing import List, Tuple + import numpy as np import numpy.random as random from axelrod.action import Action +from axelrod.evolvable_player import ( + EvolvablePlayer, + InsufficientParametersError, + crossover_lists, +) from axelrod.load_data_ import load_weights -from axelrod.evolvable_player import EvolvablePlayer, InsufficientParametersError, crossover_lists from axelrod.player import Player - C, D = Action.C, Action.D nn_weights = load_weights() @@ -347,4 +351,3 @@ def __init__(self) -> None: num_features=num_features, num_hidden=num_hidden, weights=weights) - diff --git a/axelrod/strategies/axelrod_first.py b/axelrod/strategies/axelrod_first.py index f9dab0b94..a7e64a189 100644 --- a/axelrod/strategies/axelrod_first.py +++ b/axelrod/strategies/axelrod_first.py @@ -14,7 +14,7 @@ """ import random -from typing import Dict, List, Tuple, Optional +from typing import Dict, List, Optional, Tuple from axelrod.action import Action from axelrod.player import Player diff --git a/axelrod/strategies/cycler.py b/axelrod/strategies/cycler.py index 509141717..0253e2c2a 100644 --- a/axelrod/strategies/cycler.py +++ b/axelrod/strategies/cycler.py @@ -4,7 +4,11 @@ from typing import List, Tuple from axelrod.action import Action, actions_to_str, str_to_actions -from axelrod.evolvable_player import EvolvablePlayer, InsufficientParametersError, crossover_lists +from axelrod.evolvable_player import ( + EvolvablePlayer, + InsufficientParametersError, + crossover_lists, +) from axelrod.player import Player C, D = Action.C, Action.D diff --git a/axelrod/strategies/finite_state_machines.py b/axelrod/strategies/finite_state_machines.py index e7bdd7f63..6af796093 100644 --- a/axelrod/strategies/finite_state_machines.py +++ b/axelrod/strategies/finite_state_machines.py @@ -1,11 +1,16 @@ import itertools from random import randrange from typing import Any, List, Sequence, Tuple, Union + import numpy.random as random -from numpy.random import choice from axelrod.action import Action -from axelrod.evolvable_player import EvolvablePlayer, InsufficientParametersError, copy_lists +from axelrod.evolvable_player import ( + EvolvablePlayer, + InsufficientParametersError, + copy_lists, +) from axelrod.player import Player +from numpy.random import choice C, D = Action.C, Action.D actions = (C, D) diff --git a/axelrod/strategies/gambler.py b/axelrod/strategies/gambler.py index f127ce0f4..7c757b067 100644 --- a/axelrod/strategies/gambler.py +++ b/axelrod/strategies/gambler.py @@ -7,13 +7,18 @@ import random from typing import Any -from axelrod.action import Action, str_to_actions, actions_to_str +from axelrod.action import Action, actions_to_str, str_to_actions from axelrod.load_data_ import load_pso_tables from axelrod.player import Player - from axelrod.random_ import random_choice -from .lookerup import EvolvableLookerUp, LookupTable, LookerUp, Plays, create_lookup_table_keys +from .lookerup import ( + EvolvableLookerUp, + LookerUp, + LookupTable, + Plays, + create_lookup_table_keys, +) C, D = Action.C, Action.D tables = load_pso_tables("pso_gambler.csv", directory="data") diff --git a/axelrod/strategies/hmm.py b/axelrod/strategies/hmm.py index 8ae2ed811..802f271dc 100644 --- a/axelrod/strategies/hmm.py +++ b/axelrod/strategies/hmm.py @@ -1,11 +1,16 @@ from random import randrange -import numpy.random as random -from numpy.random import choice +import numpy.random as random from axelrod.action import Action -from axelrod.evolvable_player import EvolvablePlayer, InsufficientParametersError, copy_lists, crossover_lists +from axelrod.evolvable_player import ( + EvolvablePlayer, + InsufficientParametersError, + copy_lists, + crossover_lists, +) from axelrod.player import Player from axelrod.random_ import random_choice, random_vector +from numpy.random import choice C, D = Action.C, Action.D diff --git a/axelrod/strategies/lookerup.py b/axelrod/strategies/lookerup.py index b66d06293..8be5e0558 100644 --- a/axelrod/strategies/lookerup.py +++ b/axelrod/strategies/lookerup.py @@ -3,12 +3,14 @@ from typing import Any, TypeVar import numpy.random as random -from numpy.random import choice - from axelrod.action import Action, actions_to_str, str_to_actions -from axelrod.evolvable_player import EvolvablePlayer, InsufficientParametersError, crossover_dictionaries +from axelrod.evolvable_player import ( + EvolvablePlayer, + InsufficientParametersError, + crossover_dictionaries, +) from axelrod.player import Player - +from numpy.random import choice C, D = Action.C, Action.D actions = (C, D) diff --git a/axelrod/strategies/meta.py b/axelrod/strategies/meta.py index 09bebd26b..00dffb4bf 100644 --- a/axelrod/strategies/meta.py +++ b/axelrod/strategies/meta.py @@ -1,13 +1,13 @@ import random import numpy as np -from numpy.random import choice - from axelrod.action import Action from axelrod.classifier import Classifiers from axelrod.player import Player from axelrod.strategies import TitForTat from axelrod.strategy_transformers import NiceTransformer +from numpy.random import choice + from ._strategies import all_strategies from .hunter import ( AlternatorHunter, diff --git a/axelrod/strategies/revised_downing.py b/axelrod/strategies/revised_downing.py index 530905c1b..dbc39d834 100644 --- a/axelrod/strategies/revised_downing.py +++ b/axelrod/strategies/revised_downing.py @@ -72,4 +72,3 @@ def strategy(self, opponent: Player) -> Action: else: move = D return move - diff --git a/axelrod/strategy_transformers.py b/axelrod/strategy_transformers.py index 6d50d77c2..ac4e1a30b 100644 --- a/axelrod/strategy_transformers.py +++ b/axelrod/strategy_transformers.py @@ -5,16 +5,16 @@ See the various Meta strategies for another type of transformation. """ -from collections import Iterable import copy import inspect -from importlib import import_module import random +from collections import Iterable +from importlib import import_module from typing import Any +from axelrod.strategies.sequence_player import SequencePlayer from numpy.random import choice -from axelrod.strategies.sequence_player import SequencePlayer from .action import Action from .player import Player from .random_ import random_choice diff --git a/axelrod/tests/integration/test_filtering.py b/axelrod/tests/integration/test_filtering.py index bce495b76..cddffd3da 100644 --- a/axelrod/tests/integration/test_filtering.py +++ b/axelrod/tests/integration/test_filtering.py @@ -3,7 +3,6 @@ import axelrod as axl from axelrod.tests.property import strategy_lists - from hypothesis import example, given, settings from hypothesis.strategies import integers diff --git a/axelrod/tests/integration/test_matches.py b/axelrod/tests/integration/test_matches.py index a627fe885..f8fa78438 100644 --- a/axelrod/tests/integration/test_matches.py +++ b/axelrod/tests/integration/test_matches.py @@ -3,7 +3,6 @@ import axelrod as axl from axelrod.tests.property import strategy_lists - from hypothesis import given, settings from hypothesis.strategies import integers diff --git a/axelrod/tests/integration/test_tournament.py b/axelrod/tests/integration/test_tournament.py index 2ab59c974..2b58c4db1 100644 --- a/axelrod/tests/integration/test_tournament.py +++ b/axelrod/tests/integration/test_tournament.py @@ -1,13 +1,11 @@ -import unittest - import filecmp import pathlib +import unittest import axelrod as axl from axelrod.load_data_ import axl_filename from axelrod.strategy_transformers import FinalTransformer from axelrod.tests.property import tournaments - from hypothesis import given, settings diff --git a/axelrod/tests/property.py b/axelrod/tests/property.py index 95d08e2b8..85991cff9 100644 --- a/axelrod/tests/property.py +++ b/axelrod/tests/property.py @@ -4,7 +4,6 @@ import itertools import axelrod as axl - from hypothesis.strategies import composite, floats, integers, lists, sampled_from diff --git a/axelrod/tests/strategies/test_ann.py b/axelrod/tests/strategies/test_ann.py index 3a63d2131..8ca6b0b5b 100644 --- a/axelrod/tests/strategies/test_ann.py +++ b/axelrod/tests/strategies/test_ann.py @@ -6,9 +6,8 @@ from axelrod.load_data_ import load_weights from axelrod.strategies.ann import split_weights -from .test_player import TestPlayer from .test_evolvable_player import PartialClass, TestEvolvablePlayer - +from .test_player import TestPlayer C, D = axl.Action.C, axl.Action.D nn_weights = load_weights() diff --git a/axelrod/tests/strategies/test_axelrod_second.py b/axelrod/tests/strategies/test_axelrod_second.py index 7c9122d8d..de4b9de3b 100644 --- a/axelrod/tests/strategies/test_axelrod_second.py +++ b/axelrod/tests/strategies/test_axelrod_second.py @@ -3,7 +3,6 @@ import random import axelrod as axl - import numpy as np from .test_player import TestPlayer @@ -2031,5 +2030,3 @@ def test_strategy(self): (C, C), (D, C)] self.versus_test(axl.Random(0.5), expected_actions=actions, seed=7) - - diff --git a/axelrod/tests/strategies/test_cycler.py b/axelrod/tests/strategies/test_cycler.py index 83de4f135..74615e5fa 100644 --- a/axelrod/tests/strategies/test_cycler.py +++ b/axelrod/tests/strategies/test_cycler.py @@ -1,15 +1,15 @@ """Tests for the Cycler strategies.""" -import unittest import itertools import random +import unittest import axelrod as axl from axelrod._strategy_utils import detect_cycle from axelrod.action import Action, str_to_actions from axelrod.evolvable_player import InsufficientParametersError -from .test_player import TestPlayer from .test_evolvable_player import PartialClass, TestEvolvablePlayer +from .test_player import TestPlayer C, D = Action.C, Action.D diff --git a/axelrod/tests/strategies/test_evolvable_player.py b/axelrod/tests/strategies/test_evolvable_player.py index ccb6ac37d..7a4c6b2d2 100644 --- a/axelrod/tests/strategies/test_evolvable_player.py +++ b/axelrod/tests/strategies/test_evolvable_player.py @@ -1,10 +1,11 @@ -import unittest import functools import random +import unittest import axelrod as axl from axelrod.action import Action -from axelrod.evolvable_player import copy_lists, crossover_lists, crossover_dictionaries +from axelrod.evolvable_player import copy_lists, crossover_dictionaries, crossover_lists + from .test_player import TestPlayer C, D = Action.C, Action.D @@ -210,4 +211,3 @@ def test_crossover_dictionaries(self): axl.seed(1) crossed = crossover_dictionaries(dict1, dict2) self.assertEqual(crossed, dict2) - diff --git a/axelrod/tests/strategies/test_finite_state_machines.py b/axelrod/tests/strategies/test_finite_state_machines.py index 12fe52e5d..90815f780 100644 --- a/axelrod/tests/strategies/test_finite_state_machines.py +++ b/axelrod/tests/strategies/test_finite_state_machines.py @@ -1,16 +1,19 @@ """Tests for Finite State Machine Strategies.""" -import unittest - import random +import unittest import axelrod as axl from axelrod.compute_finite_state_machine_memory import get_memory_from_transitions from axelrod.evolvable_player import InsufficientParametersError -from axelrod.strategies.finite_state_machines import EvolvableFSMPlayer, FSMPlayer, SimpleFSM +from axelrod.strategies.finite_state_machines import ( + EvolvableFSMPlayer, + FSMPlayer, + SimpleFSM, +) -from .test_player import TestPlayer from .test_evolvable_player import PartialClass, TestEvolvablePlayer +from .test_player import TestPlayer C, D = axl.Action.C, axl.Action.D diff --git a/axelrod/tests/strategies/test_gambler.py b/axelrod/tests/strategies/test_gambler.py index 2749526a3..e7dc02893 100755 --- a/axelrod/tests/strategies/test_gambler.py +++ b/axelrod/tests/strategies/test_gambler.py @@ -1,19 +1,16 @@ """Test for the Gambler strategy. Most tests come from the LookerUp test suite. """ -import unittest - import copy - import random +import unittest import axelrod as axl from axelrod.load_data_ import load_pso_tables from axelrod.strategies.lookerup import create_lookup_table_keys +from .test_evolvable_player import PartialClass, TestEvolvablePlayer from .test_lookerup import convert_original_to_current from .test_player import TestPlayer -from .test_evolvable_player import PartialClass, TestEvolvablePlayer - tables = load_pso_tables("pso_gambler.csv", directory="data") C, D = axl.Action.C, axl.Action.D diff --git a/axelrod/tests/strategies/test_hmm.py b/axelrod/tests/strategies/test_hmm.py index 558da9bf4..7c6c1fcae 100644 --- a/axelrod/tests/strategies/test_hmm.py +++ b/axelrod/tests/strategies/test_hmm.py @@ -1,7 +1,7 @@ """Tests for Hidden Markov Model Strategies.""" -import unittest import random +import unittest import axelrod as axl from axelrod.evolvable_player import InsufficientParametersError @@ -12,8 +12,9 @@ is_stochastic_matrix, random_vector, ) -from .test_player import TestMatch, TestPlayer + from .test_evolvable_player import PartialClass, TestEvolvablePlayer +from .test_player import TestMatch, TestPlayer C, D = axl.Action.C, axl.Action.D diff --git a/axelrod/tests/strategies/test_human.py b/axelrod/tests/strategies/test_human.py index 46c1f3f8a..8b5c5e383 100644 --- a/axelrod/tests/strategies/test_human.py +++ b/axelrod/tests/strategies/test_human.py @@ -1,8 +1,7 @@ +from os import linesep from unittest import TestCase from unittest.mock import patch -from os import linesep - import axelrod as axl from axelrod.strategies.human import ActionValidator, Human from prompt_toolkit.validation import ValidationError diff --git a/axelrod/tests/strategies/test_hunter.py b/axelrod/tests/strategies/test_hunter.py index 7c2912494..6f2aebaf4 100644 --- a/axelrod/tests/strategies/test_hunter.py +++ b/axelrod/tests/strategies/test_hunter.py @@ -1,8 +1,7 @@ """Tests for the Hunter strategy.""" -import unittest - import random +import unittest import axelrod as axl from axelrod.strategies.hunter import detect_cycle diff --git a/axelrod/tests/strategies/test_lookerup.py b/axelrod/tests/strategies/test_lookerup.py index 024328c93..4dc226d35 100755 --- a/axelrod/tests/strategies/test_lookerup.py +++ b/axelrod/tests/strategies/test_lookerup.py @@ -1,10 +1,8 @@ """Test for the Looker Up strategy.""" -import unittest - import copy - import random +import unittest import axelrod as axl from axelrod.action import str_to_actions @@ -16,6 +14,7 @@ create_lookup_table_keys, make_keys_into_plays, ) + from .test_evolvable_player import PartialClass, TestEvolvablePlayer from .test_player import TestPlayer diff --git a/axelrod/tests/strategies/test_memorytwo.py b/axelrod/tests/strategies/test_memorytwo.py index d6aec4494..a619a8d4c 100644 --- a/axelrod/tests/strategies/test_memorytwo.py +++ b/axelrod/tests/strategies/test_memorytwo.py @@ -1,9 +1,7 @@ """Tests for the Memorytwo strategies.""" -import unittest - import random - +import unittest import warnings import axelrod as axl diff --git a/axelrod/tests/strategies/test_meta.py b/axelrod/tests/strategies/test_meta.py index 7256369c8..5bcb348a9 100644 --- a/axelrod/tests/strategies/test_meta.py +++ b/axelrod/tests/strategies/test_meta.py @@ -1,12 +1,11 @@ """Tests for the various Meta strategies.""" import axelrod as axl - -from .test_player import TestPlayer - from hypothesis import given, settings from hypothesis.strategies import integers +from .test_player import TestPlayer + C, D = axl.Action.C, axl.Action.D diff --git a/axelrod/tests/strategies/test_player.py b/axelrod/tests/strategies/test_player.py index 2b4dd33c4..779053fdb 100644 --- a/axelrod/tests/strategies/test_player.py +++ b/axelrod/tests/strategies/test_player.py @@ -1,14 +1,13 @@ -import unittest import itertools import pickle import random import types -import numpy as np +import unittest import axelrod as axl +import numpy as np from axelrod.player import simultaneous_play from axelrod.tests.property import strategy_lists - from hypothesis import given, settings from hypothesis.strategies import integers, sampled_from diff --git a/axelrod/tests/strategies/test_titfortat.py b/axelrod/tests/strategies/test_titfortat.py index b99522d5f..0dc978eaf 100644 --- a/axelrod/tests/strategies/test_titfortat.py +++ b/axelrod/tests/strategies/test_titfortat.py @@ -1,12 +1,10 @@ """Tests for the tit for tat strategies.""" import copy - import random import axelrod as axl from axelrod.tests.property import strategy_lists - from hypothesis import given from hypothesis.strategies import integers diff --git a/axelrod/tests/unit/test_classification.py b/axelrod/tests/unit/test_classification.py index e0db01e5d..c5d90df5f 100644 --- a/axelrod/tests/unit/test_classification.py +++ b/axelrod/tests/unit/test_classification.py @@ -2,11 +2,11 @@ import os import unittest -from typing import Any, Text import warnings -import yaml +from typing import Any, Text import axelrod as axl +import yaml from axelrod.classifier import ( Classifier, Classifiers, diff --git a/axelrod/tests/unit/test_compute_finite_state_machine_memory.py b/axelrod/tests/unit/test_compute_finite_state_machine_memory.py index 82e828676..2b8ac5408 100644 --- a/axelrod/tests/unit/test_compute_finite_state_machine_memory.py +++ b/axelrod/tests/unit/test_compute_finite_state_machine_memory.py @@ -347,4 +347,3 @@ def test_evolved_fsm_4(self): trans_dict = self.transitions_to_dict(transitions) self.assertEqual(get_memory_from_transitions(trans_dict), float("inf")) - diff --git a/axelrod/tests/unit/test_deterministic_cache.py b/axelrod/tests/unit/test_deterministic_cache.py index 82d11904c..e2c1d1ae3 100644 --- a/axelrod/tests/unit/test_deterministic_cache.py +++ b/axelrod/tests/unit/test_deterministic_cache.py @@ -1,7 +1,7 @@ -import unittest import os import pathlib import pickle +import unittest import axelrod as axl from axelrod.load_data_ import axl_filename diff --git a/axelrod/tests/unit/test_eigen.py b/axelrod/tests/unit/test_eigen.py index 36f0bf5b9..f95c57e83 100644 --- a/axelrod/tests/unit/test_eigen.py +++ b/axelrod/tests/unit/test_eigen.py @@ -3,10 +3,8 @@ import unittest import numpy -from numpy.testing import assert_array_almost_equal - from axelrod.eigen import _normalise, principal_eigenvector - +from numpy.testing import assert_array_almost_equal class FunctionCases(unittest.TestCase): diff --git a/axelrod/tests/unit/test_filters.py b/axelrod/tests/unit/test_filters.py index f2d9e2e17..88133a6b0 100644 --- a/axelrod/tests/unit/test_filters.py +++ b/axelrod/tests/unit/test_filters.py @@ -3,7 +3,6 @@ import axelrod as axl from axelrod.player import Player from axelrod.strategies._filters import * - from hypothesis import example, given, settings from hypothesis.strategies import integers diff --git a/axelrod/tests/unit/test_fingerprint.py b/axelrod/tests/unit/test_fingerprint.py index f60a93e7a..e68e015e6 100644 --- a/axelrod/tests/unit/test_fingerprint.py +++ b/axelrod/tests/unit/test_fingerprint.py @@ -1,21 +1,18 @@ +import os +import pathlib import unittest +from tempfile import mkstemp from unittest.mock import patch -import os -from tempfile import mkstemp +import axelrod as axl import matplotlib.pyplot import numpy as np -import pathlib - -import axelrod as axl from axelrod.fingerprint import AshlockFingerprint, Point, TransitiveFingerprint from axelrod.load_data_ import axl_filename from axelrod.strategy_transformers import DualTransformer, JossAnnTransformer from axelrod.tests.property import strategy_lists - from hypothesis import given, settings - C, D = axl.Action.C, axl.Action.D diff --git a/axelrod/tests/unit/test_game.py b/axelrod/tests/unit/test_game.py index c52d22b7b..e14eb0fb4 100644 --- a/axelrod/tests/unit/test_game.py +++ b/axelrod/tests/unit/test_game.py @@ -2,7 +2,6 @@ import axelrod as axl from axelrod.tests.property import games - from hypothesis import given, settings from hypothesis.strategies import integers diff --git a/axelrod/tests/unit/test_graph.py b/axelrod/tests/unit/test_graph.py index 1e0666ee6..41f7d6d62 100644 --- a/axelrod/tests/unit/test_graph.py +++ b/axelrod/tests/unit/test_graph.py @@ -1,5 +1,4 @@ import unittest - from collections import defaultdict import axelrod as axl diff --git a/axelrod/tests/unit/test_history.py b/axelrod/tests/unit/test_history.py index 7c517958b..3eda019ce 100644 --- a/axelrod/tests/unit/test_history.py +++ b/axelrod/tests/unit/test_history.py @@ -1,5 +1,4 @@ import unittest - from collections import Counter import axelrod as axl diff --git a/axelrod/tests/unit/test_interaction_utils.py b/axelrod/tests/unit/test_interaction_utils.py index 2e1d2c5e1..49706fe01 100644 --- a/axelrod/tests/unit/test_interaction_utils.py +++ b/axelrod/tests/unit/test_interaction_utils.py @@ -1,5 +1,5 @@ -import unittest import tempfile +import unittest from collections import Counter import axelrod as axl diff --git a/axelrod/tests/unit/test_match.py b/axelrod/tests/unit/test_match.py index 71913d103..73dcfec8a 100644 --- a/axelrod/tests/unit/test_match.py +++ b/axelrod/tests/unit/test_match.py @@ -1,11 +1,9 @@ import unittest - from collections import Counter import axelrod as axl from axelrod.deterministic_cache import DeterministicCache from axelrod.tests.property import games - from hypothesis import example, given from hypothesis.strategies import assume, floats, integers diff --git a/axelrod/tests/unit/test_match_generator.py b/axelrod/tests/unit/test_match_generator.py index 27faa78c0..d96b62fd6 100644 --- a/axelrod/tests/unit/test_match_generator.py +++ b/axelrod/tests/unit/test_match_generator.py @@ -2,7 +2,6 @@ import axelrod as axl from axelrod.match_generator import graph_is_connected - from hypothesis import example, given, settings from hypothesis.strategies import floats, integers diff --git a/axelrod/tests/unit/test_mock_player.py b/axelrod/tests/unit/test_mock_player.py index 457e77711..1f380b5ba 100644 --- a/axelrod/tests/unit/test_mock_player.py +++ b/axelrod/tests/unit/test_mock_player.py @@ -17,4 +17,3 @@ def test_strategy(self): p2 = axl.Player() for action in actions: self.assertEqual(action, m.strategy(p2)) - diff --git a/axelrod/tests/unit/test_moran.py b/axelrod/tests/unit/test_moran.py index d972b288f..9ea8c9903 100644 --- a/axelrod/tests/unit/test_moran.py +++ b/axelrod/tests/unit/test_moran.py @@ -1,13 +1,12 @@ -import unittest import itertools import random +import unittest from collections import Counter -import matplotlib.pyplot as plt import axelrod as axl +import matplotlib.pyplot as plt from axelrod.moran import fitness_proportionate_selection from axelrod.tests.property import strategy_lists - from hypothesis import example, given, settings C, D = axl.Action.C, axl.Action.D diff --git a/axelrod/tests/unit/test_pickling.py b/axelrod/tests/unit/test_pickling.py index 1cb14101d..757917212 100644 --- a/axelrod/tests/unit/test_pickling.py +++ b/axelrod/tests/unit/test_pickling.py @@ -1,6 +1,6 @@ -import unittest import pickle import random +import unittest import axelrod as axl diff --git a/axelrod/tests/unit/test_plot.py b/axelrod/tests/unit/test_plot.py index 89d40d8d9..847419035 100644 --- a/axelrod/tests/unit/test_plot.py +++ b/axelrod/tests/unit/test_plot.py @@ -1,14 +1,12 @@ +import pathlib +import tempfile import unittest -import tempfile +import axelrod as axl import matplotlib import matplotlib.pyplot as plt -import pathlib - -from numpy import mean - -import axelrod as axl from axelrod.load_data_ import axl_filename +from numpy import mean class TestPlot(unittest.TestCase): diff --git a/axelrod/tests/unit/test_property.py b/axelrod/tests/unit/test_property.py index fbf89cca2..ae992a035 100644 --- a/axelrod/tests/unit/test_property.py +++ b/axelrod/tests/unit/test_property.py @@ -10,7 +10,6 @@ strategy_lists, tournaments, ) - from hypothesis import given, settings stochastic_strategies = [s for s in axl.strategies if axl.Classifiers["stochastic"](s())] diff --git a/axelrod/tests/unit/test_random_.py b/axelrod/tests/unit/test_random_.py index fdb1d361f..506f7adef 100644 --- a/axelrod/tests/unit/test_random_.py +++ b/axelrod/tests/unit/test_random_.py @@ -1,14 +1,11 @@ """Tests for the random functions.""" -import unittest - import random - +import unittest from collections import Counter -import numpy - import axelrod as axl +import numpy C, D = axl.Action.C, axl.Action.D diff --git a/axelrod/tests/unit/test_resultset.py b/axelrod/tests/unit/test_resultset.py index 8bd0be3af..335d65360 100644 --- a/axelrod/tests/unit/test_resultset.py +++ b/axelrod/tests/unit/test_resultset.py @@ -1,17 +1,16 @@ -import unittest import csv -from collections import Counter -import pandas as pd -from dask.dataframe.core import DataFrame -from numpy import mean, nanmedian, std import pathlib +import unittest +from collections import Counter import axelrod as axl +import pandas as pd from axelrod.load_data_ import axl_filename from axelrod.result_set import create_counter_dict from axelrod.tests.property import prob_end_tournaments, tournaments - +from dask.dataframe.core import DataFrame from hypothesis import given, settings +from numpy import mean, nanmedian, std C, D = axl.Action.C, axl.Action.D diff --git a/axelrod/tests/unit/test_strategy_utils.py b/axelrod/tests/unit/test_strategy_utils.py index fef7e2af6..4f849d621 100644 --- a/axelrod/tests/unit/test_strategy_utils.py +++ b/axelrod/tests/unit/test_strategy_utils.py @@ -11,7 +11,6 @@ simulate_match, thue_morse_generator, ) - from hypothesis import given, settings from hypothesis.strategies import integers, lists, sampled_from diff --git a/axelrod/tests/unit/test_tournament.py b/axelrod/tests/unit/test_tournament.py index c91abcf46..13b814554 100644 --- a/axelrod/tests/unit/test_tournament.py +++ b/axelrod/tests/unit/test_tournament.py @@ -1,21 +1,18 @@ """Tests for the main tournament class.""" -import unittest -from unittest.mock import MagicMock, patch - import io import logging import os import pathlib import pickle +import unittest import warnings from multiprocessing import Queue, cpu_count +from unittest.mock import MagicMock, patch -from axelrod.load_data_ import axl_filename +import axelrod as axl import numpy as np import pandas as pd -from tqdm import tqdm - -import axelrod as axl +from axelrod.load_data_ import axl_filename from axelrod.tests.property import ( prob_end_tournaments, spatial_tournaments, @@ -23,9 +20,9 @@ tournaments, ) from axelrod.tournament import _close_objects - from hypothesis import example, given, settings from hypothesis.strategies import floats, integers +from tqdm import tqdm C, D = axl.Action.C, axl.Action.D diff --git a/docs/conf.py b/docs/conf.py index 4f7d3347c..b277d9fda 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -12,9 +12,11 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import sys import os +import sys +# Import the library (for automodule) +import axelrod import mock MOCK_MODULES = [ @@ -52,8 +54,6 @@ # Adds absolute path to axelrod module sys.path.insert(0, os.path.abspath("../")) # Adding path to module -# Import the library (for automodule) -import axelrod # -- General configuration ------------------------------------------------ diff --git a/run_strategy_indexer.py b/run_strategy_indexer.py index ae8a972a3..268b6791e 100644 --- a/run_strategy_indexer.py +++ b/run_strategy_indexer.py @@ -2,8 +2,8 @@ A script to check that all strategy modules have been included in `./docs/reference/all_strategies.rst` """ -import sys import pathlib +import sys default_index_path = pathlib.Path("./docs/reference/all_strategies.rst") excluded_modules = ("_strategies", "__init__", "_filters", "human") From bde4215297d0fccaf57e53300a1d9c14db978a06 Mon Sep 17 00:00:00 2001 From: akash-suresh Date: Wed, 10 Jun 2020 10:55:29 +0530 Subject: [PATCH 2/8] moved import axelrod after os.path --- docs/conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index b277d9fda..ec9ea028a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,8 +15,6 @@ import os import sys -# Import the library (for automodule) -import axelrod import mock MOCK_MODULES = [ @@ -54,6 +52,8 @@ # Adds absolute path to axelrod module sys.path.insert(0, os.path.abspath("../")) # Adding path to module +# Import the library (for automodule) +import axelrod # -- General configuration ------------------------------------------------ From 83e6c541d495e440efff5639b09c8b4608835193 Mon Sep 17 00:00:00 2001 From: akash-suresh Date: Wed, 10 Jun 2020 11:02:41 +0530 Subject: [PATCH 3/8] Maintained same order of imports in __init__.py --- axelrod/__init__.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/axelrod/__init__.py b/axelrod/__init__.py index ee0a7440a..bdc39f202 100644 --- a/axelrod/__init__.py +++ b/axelrod/__init__.py @@ -1,24 +1,24 @@ DEFAULT_TURNS = 200 +# The order of imports matters! +from axelrod.version import __version__ +from axelrod.load_data_ import load_pso_tables, load_weights from axelrod import graph from axelrod.action import Action -from axelrod.classifier import Classifiers -from axelrod.deterministic_cache import DeterministicCache -from axelrod.ecosystem import Ecosystem -from axelrod.evolvable_player import EvolvablePlayer -from axelrod.fingerprint import AshlockFingerprint, TransitiveFingerprint +from axelrod.random_ import random_choice, random_flip, seed, Pdf +from axelrod.plot import Plot from axelrod.game import DefaultGame, Game from axelrod.history import History, LimitedHistory -from axelrod.load_data_ import load_pso_tables, load_weights -from axelrod.match import Match -from axelrod.match_generator import * -from axelrod.mock_player import MockPlayer -from axelrod.moran import ApproximateMoranProcess, MoranProcess from axelrod.player import Player -from axelrod.plot import Plot -from axelrod.random_ import Pdf, random_choice, random_flip, seed -from axelrod.result_set import ResultSet +from axelrod.classifier import Classifiers +from axelrod.evolvable_player import EvolvablePlayer +from axelrod.mock_player import MockPlayer +from axelrod.match import Match +from axelrod.moran import MoranProcess, ApproximateMoranProcess from axelrod.strategies import * +from axelrod.deterministic_cache import DeterministicCache +from axelrod.match_generator import * from axelrod.tournament import Tournament -# The order of imports matters! -from axelrod.version import __version__ +from axelrod.result_set import ResultSet +from axelrod.ecosystem import Ecosystem +from axelrod.fingerprint import AshlockFingerprint, TransitiveFingerprint From 89078dd4c0173331202727af9efa41130e70938d Mon Sep 17 00:00:00 2001 From: akash-suresh Date: Wed, 10 Jun 2020 11:57:04 +0530 Subject: [PATCH 4/8] Maintained same order of imports in strategies/__init__.py --- axelrod/strategies/__init__.py | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/axelrod/strategies/__init__.py b/axelrod/strategies/__init__.py index 23d214a8e..bb15e7ef6 100644 --- a/axelrod/strategies/__init__.py +++ b/axelrod/strategies/__init__.py @@ -1,38 +1,38 @@ from ..classifier import Classifiers -from ._filters import passes_filterset from ._strategies import * +from ._filters import passes_filterset + +# `from ._strategies import *` import the collection `strategies` +# Now import the Meta strategies. This cannot be done in _strategies +# because it creates circular dependencies + from .meta import ( MemoryDecay, MetaHunter, MetaHunterAggressive, + MetaPlayer, MetaMajority, + MetaMajorityMemoryOne, MetaMajorityFiniteMemory, MetaMajorityLongMemory, - MetaMajorityMemoryOne, MetaMinority, MetaMixer, - MetaPlayer, MetaWinner, MetaWinnerDeterministic, MetaWinnerEnsemble, + MetaWinnerMemoryOne, MetaWinnerFiniteMemory, MetaWinnerLongMemory, - MetaWinnerMemoryOne, MetaWinnerStochastic, - NiceMetaWinner, - NiceMetaWinnerEnsemble, NMWEDeterministic, NMWEFiniteMemory, NMWELongMemory, NMWEMemoryOne, NMWEStochastic, + NiceMetaWinner, + NiceMetaWinnerEnsemble, ) -# `from ._strategies import *` import the collection `strategies` -# Now import the Meta strategies. This cannot be done in _strategies -# because it creates circular dependencies - - all_strategies += [ MemoryDecay, MetaHunter, @@ -99,18 +99,14 @@ def filtered_strategies(filterset, strategies=all_strategies): Applies the filters defined in the given filterset dict and returns those strategy classes which pass all of those filters from the given list of strategies. - e.g. - For the filterset dict: { 'stochastic': True, 'min_memory_depth': 2 } - the function will return a list of all deterministic strategies with a memory_depth of 2 or more. - Parameters ---------- filterset : dict @@ -122,12 +118,9 @@ def filtered_strategies(filterset, strategies=all_strategies): } strategies: list of subclasses of axelrod.Player - Returns ------- list - of subclasses of axelrod.Player - """ return [s for s in strategies if passes_filterset(s, filterset)] From 2c0bf785684dc5b2d55578039ddeec42dd91b842 Mon Sep 17 00:00:00 2001 From: akash-suresh Date: Thu, 11 Jun 2020 09:56:06 +0530 Subject: [PATCH 5/8] Added isort:skip --- axelrod/__init__.py | 1 + axelrod/strategies/__init__.py | 1 + axelrod/strategies/_strategies.py | 1 + docs/conf.py | 1 + 4 files changed, 4 insertions(+) diff --git a/axelrod/__init__.py b/axelrod/__init__.py index bdc39f202..90eb959e1 100644 --- a/axelrod/__init__.py +++ b/axelrod/__init__.py @@ -1,3 +1,4 @@ +# isort:skip_file DEFAULT_TURNS = 200 # The order of imports matters! diff --git a/axelrod/strategies/__init__.py b/axelrod/strategies/__init__.py index bb15e7ef6..748b6ff84 100644 --- a/axelrod/strategies/__init__.py +++ b/axelrod/strategies/__init__.py @@ -1,3 +1,4 @@ +# isort:skip_file from ..classifier import Classifiers from ._strategies import * from ._filters import passes_filterset diff --git a/axelrod/strategies/_strategies.py b/axelrod/strategies/_strategies.py index 565258812..067325b2d 100644 --- a/axelrod/strategies/_strategies.py +++ b/axelrod/strategies/_strategies.py @@ -18,6 +18,7 @@ ReactivePlayer, MemoryOnePlayer ) + isort:skip_file """ from .adaptive import Adaptive from .adaptor import AdaptorBrief, AdaptorLong diff --git a/docs/conf.py b/docs/conf.py index ec9ea028a..7d77121f6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,3 +1,4 @@ +# isort:skip_file # -*- coding: utf-8 -*- # # Axelrod documentation build configuration file, created by From d811278f8687ab75b87eeb3fc904725da7048181 Mon Sep 17 00:00:00 2001 From: akash-suresh Date: Thu, 11 Jun 2020 10:31:19 +0530 Subject: [PATCH 6/8] reverted _strategies.py --- axelrod/strategies/_strategies.py | 76 +++++++++++++++++-------------- 1 file changed, 43 insertions(+), 33 deletions(-) diff --git a/axelrod/strategies/_strategies.py b/axelrod/strategies/_strategies.py index 067325b2d..752e56f20 100644 --- a/axelrod/strategies/_strategies.py +++ b/axelrod/strategies/_strategies.py @@ -18,34 +18,29 @@ ReactivePlayer, MemoryOnePlayer ) - isort:skip_file + # isort:skip_file """ from .adaptive import Adaptive from .adaptor import AdaptorBrief, AdaptorLong from .alternator import Alternator -from .ann import ( # pylint: disable=unused-import - ANN, - EvolvableANN, - EvolvedANN, - EvolvedANN5, - EvolvedANNNoise05, -) +from .ann import EvolvedANN, EvolvedANN5, EvolvedANNNoise05 +from .ann import ANN, EvolvableANN # pylint: disable=unused-import from .apavlov import APavlov2006, APavlov2011 from .appeaser import Appeaser from .averagecopier import AverageCopier, NiceAverageCopier from .axelrod_first import ( - FirstByAnonymous, FirstByDavis, - FirstByDowning, FirstByFeld, FirstByGraaskamp, FirstByGrofman, FirstByJoss, FirstByNydegger, + FirstByDowning, FirstByShubik, FirstBySteinAndRapoport, FirstByTidemanAndChieruzzi, FirstByTullock, + FirstByAnonymous, ) from .axelrod_second import ( SecondByAppold, @@ -58,15 +53,15 @@ SecondByGetzler, SecondByGladstein, SecondByGraaskampKatzen, - SecondByGrofman, SecondByHarrington, SecondByKluepfel, SecondByLeyvraz, SecondByMikkelson, + SecondByGrofman, + SecondByTidemanAndChieruzzi, SecondByRichardHufford, SecondByRowsam, SecondByTester, - SecondByTidemanAndChieruzzi, SecondByTranquilizer, SecondByWeiner, SecondByWhite, @@ -78,52 +73,52 @@ from .bush_mosteller import BushMosteller from .calculator import Calculator from .cooperator import Cooperator, TrickyCooperator -from .cycler import AntiCycler # pylint: disable=unused-import from .cycler import ( - Cycler, + AntiCycler, CyclerCCCCCD, CyclerCCCD, CyclerCCCDCD, CyclerCCD, CyclerDC, CyclerDDC, - EvolvableCycler, ) +from .cycler import Cycler, EvolvableCycler # pylint: disable=unused-import from .darwin import Darwin from .dbs import DBS from .defector import Defector, TrickyDefector from .doubler import Doubler -from .finite_state_machines import ( # pylint: disable=unused-import +from .finite_state_machines import ( TF1, TF2, TF3, - EvolvableFSMPlayer, EvolvedFSM4, EvolvedFSM16, EvolvedFSM16Noise05, Fortress3, Fortress4, - FSMPlayer, Predator, Pun1, Raider, Ripoff, + UsuallyCooperates, + UsuallyDefects, SolutionB1, SolutionB5, Thumper, - UsuallyCooperates, - UsuallyDefects, +) +from .finite_state_machines import ( # pylint: disable=unused-import + EvolvableFSMPlayer, + FSMPlayer, ) from .forgiver import Forgiver, ForgivingTitForTat -from .gambler import EvolvableGambler # pylint: disable=unused-import from .gambler import ( - Gambler, PSOGambler1_1_1, PSOGambler2_2_2, PSOGambler2_2_2_Noise05, PSOGamblerMem1, ZDMem2, ) +from .gambler import EvolvableGambler, Gambler # pylint: disable=unused-import from .geller import Geller, GellerCooperator, GellerDefector from .gobymajority import ( GoByMajority, @@ -150,8 +145,8 @@ ) from .grumpy import Grumpy from .handshake import Handshake -from .hmm import EvolvableHMMPlayer # pylint: disable=unused-import -from .hmm import EvolvedHMM5, HMMPlayer +from .hmm import EvolvedHMM5 +from .hmm import EvolvableHMMPlayer, HMMPlayer # pylint: disable=unused-import from .human import Human # pylint: disable=unused-import from .hunter import ( AlternatorHunter, @@ -163,29 +158,36 @@ RandomHunter, ) from .inverse import Inverse -from .lookerup import EvolvableLookerUp # pylint: disable=unused-import from .lookerup import ( EvolvedLookerUp1_1_1, EvolvedLookerUp2_2_2, - LookerUp, Winner12, Winner21, ) +from .lookerup import ( # pylint: disable=unused-import + EvolvableLookerUp, + LookerUp, +) + from .mathematicalconstants import Golden, Pi, e -from .memoryone import ( # pylint: disable=unused-import +from .memoryone import ( GTFT, ALLCorALLD, FirmButFair, - MemoryOnePlayer, - ReactivePlayer, SoftJoss, StochasticCooperator, StochasticWSLS, WinShiftLoseStay, WinStayLoseShift, ) -from .memorytwo import MemoryTwoPlayer # pylint: disable=unused-import +from .memoryone import ( # pylint: disable=unused-import + ReactivePlayer, + MemoryOnePlayer, +) + from .memorytwo import AON2, MEM2, DelayedAON1 +from .memorytwo import MemoryTwoPlayer # pylint: disable=unused-import + from .mindcontrol import MindBender, MindController, MindWarper from .mindreader import MindReader, MirrorMindReader, ProtectedMindReader from .mutual import Desperate, Hopeless, Willing @@ -202,7 +204,12 @@ Prober4, RemorsefulProber, ) -from .punisher import InversePunisher, LevelPunisher, Punisher, TrickyLevelPunisher +from .punisher import ( + InversePunisher, + LevelPunisher, + Punisher, + TrickyLevelPunisher, +) from .qlearner import ( ArrogantQLearner, CautiousQLearner, @@ -221,8 +228,11 @@ ) from .revised_downing import RevisedDowning from .selfsteem import SelfSteem -from .sequence_player import SequencePlayer # pylint: disable=unused-import -from .sequence_player import ThueMorse, ThueMorseInverse +from .sequence_player import ( # pylint: disable=unused-import + SequencePlayer, + ThueMorse, + ThueMorseInverse, +) from .shortmem import ShortMem from .stalker import Stalker from .titfortat import ( From 14a4ae69d643fe08370885eaa76161972095f72f Mon Sep 17 00:00:00 2001 From: akash-suresh Date: Thu, 11 Jun 2020 12:53:40 +0530 Subject: [PATCH 7/8] Added back newlines --- axelrod/strategies/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/axelrod/strategies/__init__.py b/axelrod/strategies/__init__.py index 748b6ff84..a7635596e 100644 --- a/axelrod/strategies/__init__.py +++ b/axelrod/strategies/__init__.py @@ -100,14 +100,18 @@ def filtered_strategies(filterset, strategies=all_strategies): Applies the filters defined in the given filterset dict and returns those strategy classes which pass all of those filters from the given list of strategies. + e.g. + For the filterset dict: { 'stochastic': True, 'min_memory_depth': 2 } + the function will return a list of all deterministic strategies with a memory_depth of 2 or more. + Parameters ---------- filterset : dict @@ -119,9 +123,12 @@ def filtered_strategies(filterset, strategies=all_strategies): } strategies: list of subclasses of axelrod.Player + Returns ------- list + of subclasses of axelrod.Player + """ return [s for s in strategies if passes_filterset(s, filterset)] From aff7443fac18313d8e827fe6c2a0445d49938883 Mon Sep 17 00:00:00 2001 From: akash-suresh Date: Sat, 13 Jun 2020 11:18:38 +0530 Subject: [PATCH 8/8] Added isort check in workflow config --- .github/workflows/config.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 67f5a16c9..4599f2d8f 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -49,6 +49,10 @@ jobs: run: | python -m pip install mypy python run_mypy.py + - name: Check imports are sorted + run: | + python -m pip install isort + python -m isort --check-only - name: Check that all strategies are indexed run: | python run_strategy_indexer.py