-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompetitor.py
37 lines (31 loc) · 1016 Bytes
/
competitor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from gladiator import GitGladiator, GenomeGladiator
class Competitor(object):
def __init__(self):
pass
def make_gladiator(self):
raise NotImplementedError()
@classmethod
def from_string(cls, string):
args = string.split(' ')
if args[0] == 'git':
args = args[1:]
return GitCompetitor(*args)
else:
raise ValueError('unrecognized competitor type')
class GitCompetitor(Competitor):
def __init__(self, repository, commit):
self.repository = repository
self.commit = commit
Competitor.__init__(self)
def make_gladiator(self):
return GitGladiator(self.repository, self.commit)
def __str__(self):
return "git %s %s" % (self.repository, self.commit)
class GenomeCompetitor(Competitor):
def __init__(self, repository, commit, genome):
self.repository = repository
self.commit = commit
self.genome = genome
Competitor.__init__(self)
def make_gladiator(self):
return GenomeGladiator(self.repository, self.commit, self.genome)