MCPcopy Create free account
hub / github.com/battlecode/battlecode-2018 / __init__

Method __init__

battlecode-manager/player_abstract.py:51–78  ·  view source on GitHub ↗
(self, socket_file, working_dir, local_dir, s3_bucket, s3_key,
                 player_key, player_mem_limit, player_cpu)

Source from the content-addressed store, hash-verified

49
50class AbstractPlayer:
51 def __init__(self, socket_file, working_dir, local_dir, s3_bucket, s3_key,
52 player_key, player_mem_limit, player_cpu):
53 self.player_mem_limit = str(player_mem_limit) + 'mb'
54 self.player_cpu_fraction = player_cpu/100.0
55 self.player_key = player_key
56 self.socket_file = socket_file
57
58 # Note that working dir is an absolute path
59 self.working_dir = os.path.abspath(os.path.join(working_dir, random_key(20)))
60
61 if not os.path.exists(working_dir):
62 os.makedirs(working_dir)
63
64 if s3_bucket:
65 if not extract_s3_bucket(s3_bucket, s3_key, self.working_dir):
66 raise ValueError("Incorrect s3 key provided.")
67 elif local_dir:
68 # print("Copying files from {} to {}".format(os.path.abspath(local_dir), self.working_dir))
69 try:
70 copytree(os.path.abspath(local_dir), self.working_dir)
71 except Exception as e:
72 print("Failed to copy files from {} to {}\nMake sure you don't have any broken symlinks in your player directory for example" +
73 " and that your dog didn't eat your hard drive.".format(os.path.abspath(local_dir), self.working_dir))
74 raise
75 else:
76 raise ValueError("Must provide either S3 key and bucket or local directory for code.")
77
78 dos2unix(self.working_dir)
79
80 def _detect_platform(self):
81 if sys.platform.startswith("linux"):

Callers

nothing calls this directly

Calls 4

extract_s3_bucketFunction · 0.85
dos2unixFunction · 0.85
formatMethod · 0.80
random_keyFunction · 0.70

Tested by

no test coverage detected