code-battles-cli 1.2.0__tar.gz → 1.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- code_battles_cli-1.2.1/.python-version +1 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/PKG-INFO +1 -1
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/pyproject.toml +1 -1
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/requirements-dev.lock +7 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/requirements.lock +2 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/src/code_battles_cli/api.py +21 -6
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/src/code_battles_cli/commands/upload.py +2 -1
- code_battles_cli-1.2.0/.python-version +0 -1
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/.github/workflows/test.yml +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/.gitignore +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/LICENSE.md +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/README.md +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/src/code_battles_cli/__init__.py +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/src/code_battles_cli/__main__.py +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/src/code_battles_cli/cli.py +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/src/code_battles_cli/commands/__init__.py +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/src/code_battles_cli/commands/download.py +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/src/code_battles_cli/commands/run.py +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/src/code_battles_cli/log.py +0 -0
- {code_battles_cli-1.2.0 → code_battles_cli-1.2.1}/tests/test_cli.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.8
|
|
@@ -18,6 +18,8 @@ charset-normalizer==3.4.0
|
|
|
18
18
|
# via requests
|
|
19
19
|
click==8.1.7
|
|
20
20
|
# via code-battles-cli
|
|
21
|
+
exceptiongroup==1.3.0
|
|
22
|
+
# via pytest
|
|
21
23
|
google-api-core==2.21.0
|
|
22
24
|
# via google-cloud-core
|
|
23
25
|
# via google-cloud-firestore
|
|
@@ -73,5 +75,10 @@ rich==13.9.3
|
|
|
73
75
|
# via code-battles-cli
|
|
74
76
|
rsa==4.9
|
|
75
77
|
# via google-auth
|
|
78
|
+
tomli==2.2.1
|
|
79
|
+
# via pytest
|
|
80
|
+
typing-extensions==4.13.2
|
|
81
|
+
# via exceptiongroup
|
|
82
|
+
# via rich
|
|
76
83
|
urllib3==2.2.3
|
|
77
84
|
# via requests
|
|
@@ -28,6 +28,18 @@ SIMULATION_FINISHED_MARK = b"--- SIMULATION FINISHED ---"
|
|
|
28
28
|
SIMULATION_STEP_MARK = b"__CODE_BATTLES_ADVANCE_STEP"
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
def normalize(url: str):
|
|
32
|
+
if url.startswith("https"):
|
|
33
|
+
url = url[5:]
|
|
34
|
+
|
|
35
|
+
try:
|
|
36
|
+
url = url[: url.index(".web.app")]
|
|
37
|
+
except ValueError:
|
|
38
|
+
pass
|
|
39
|
+
|
|
40
|
+
return url
|
|
41
|
+
|
|
42
|
+
|
|
31
43
|
class SimulationException(Exception):
|
|
32
44
|
def __init__(self, stderr: bytes, exit_code: int):
|
|
33
45
|
self.stderr = stderr
|
|
@@ -213,11 +225,7 @@ class Client:
|
|
|
213
225
|
|
|
214
226
|
def _possibly_download(self, force_download=False):
|
|
215
227
|
directory_name = "".join(
|
|
216
|
-
[
|
|
217
|
-
c
|
|
218
|
-
for c in self.url.removeprefix("https").removesuffix(".web.app")
|
|
219
|
-
if c.isalnum() or c == "-"
|
|
220
|
-
]
|
|
228
|
+
[c for c in normalize(self.url) if c.isalnum() or c == "-"]
|
|
221
229
|
)
|
|
222
230
|
code_directory = os.path.expanduser(f"~/.cache/code-battles/{directory_name}")
|
|
223
231
|
|
|
@@ -242,6 +250,9 @@ class Client:
|
|
|
242
250
|
on_step: Optional[Callable[[], None]] = None,
|
|
243
251
|
) -> Union[SimulationResults, str]:
|
|
244
252
|
while True:
|
|
253
|
+
if p.poll() is not None:
|
|
254
|
+
raise SimulationException(p.stderr.read(), p.returncode)
|
|
255
|
+
|
|
245
256
|
line: bytes = p.stdout.readline()
|
|
246
257
|
line = line.strip()
|
|
247
258
|
if line == SIMULATION_FINISHED_MARK:
|
|
@@ -310,7 +321,11 @@ class Client:
|
|
|
310
321
|
os.path.join(code_directory, "packed.py"),
|
|
311
322
|
"simulate",
|
|
312
323
|
str(seed),
|
|
313
|
-
str(
|
|
324
|
+
str(
|
|
325
|
+
os.path.abspath(output_file)
|
|
326
|
+
if output_file is not None
|
|
327
|
+
else output_file
|
|
328
|
+
),
|
|
314
329
|
json.dumps(parameters),
|
|
315
330
|
"-".join(bot_names),
|
|
316
331
|
]
|
|
@@ -45,4 +45,5 @@ def upload(
|
|
|
45
45
|
|
|
46
46
|
client = Client(url, username, password, dump_credentials)
|
|
47
47
|
client.set_bots({bot_name: bot_code})
|
|
48
|
-
|
|
48
|
+
line_count = bot_code.count("\n") + 1
|
|
49
|
+
log.info(f"{line_count} lines of code were uploaded as '{bot_name}'.")
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.12.2
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|