rbx.cp 0.5.50__py3-none-any.whl → 0.5.52__py3-none-any.whl
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.
- rbx/box/cli.py +17 -4
- rbx/box/code.py +2 -1
- rbx/box/download.py +11 -1
- rbx/box/environment.py +11 -1
- rbx/box/header.py +73 -0
- rbx/box/main.py +4 -0
- rbx/box/naming.py +9 -0
- rbx/box/packaging/boca/packager.py +3 -1
- rbx/box/packaging/contest_main.py +6 -4
- rbx/box/packaging/main.py +15 -1
- rbx/box/packaging/moj/packager.py +6 -1
- rbx/box/packaging/polygon/packager.py +30 -7
- rbx/box/packaging/polygon/polygon_api.py +1327 -0
- rbx/box/packaging/polygon/upload.py +336 -0
- rbx/box/packaging/polygon/xml_schema.py +6 -0
- rbx/box/solutions.py +55 -25
- rbx/box/stresses.py +9 -6
- rbx/box/testcase_utils.py +15 -0
- rbx/box/ui/captured_log.py +9 -5
- rbx/box/ui/css/app.tcss +1 -1
- rbx/box/ui/run.py +19 -18
- rbx/box/unit.py +1 -1
- rbx/resources/packagers/boca/checker.sh +5 -0
- rbx/resources/templates/rbx.h +90 -0
- rbx/testing_utils.py +2 -2
- {rbx_cp-0.5.50.dist-info → rbx_cp-0.5.52.dist-info}/METADATA +3 -1
- {rbx_cp-0.5.50.dist-info → rbx_cp-0.5.52.dist-info}/RECORD +30 -26
- {rbx_cp-0.5.50.dist-info → rbx_cp-0.5.52.dist-info}/LICENSE +0 -0
- {rbx_cp-0.5.50.dist-info → rbx_cp-0.5.52.dist-info}/WHEEL +0 -0
- {rbx_cp-0.5.50.dist-info → rbx_cp-0.5.52.dist-info}/entry_points.txt +0 -0
rbx/box/ui/run.py
CHANGED
@@ -4,7 +4,7 @@ from typing import Optional, Set
|
|
4
4
|
import textual
|
5
5
|
from rich.text import Text
|
6
6
|
from textual.app import ComposeResult
|
7
|
-
from textual.containers import Center,
|
7
|
+
from textual.containers import Center, Grid
|
8
8
|
from textual.coordinate import Coordinate
|
9
9
|
from textual.screen import Screen
|
10
10
|
from textual.widgets import Button, DataTable, Footer, Header, SelectionList
|
@@ -57,12 +57,12 @@ class SolutionReportScreen(Screen):
|
|
57
57
|
cursor_type='row', cursor_foreground_priority='renderable'
|
58
58
|
)
|
59
59
|
if self.log_display_state is not None:
|
60
|
-
yield LogDisplay()
|
60
|
+
yield LogDisplay(id='build-output')
|
61
61
|
|
62
62
|
def on_mount(self):
|
63
|
-
self.query_one(
|
64
|
-
|
65
|
-
).border_title = 'Test generation and validation'
|
63
|
+
# self.query_one(
|
64
|
+
# '#build-output', Container
|
65
|
+
# ).border_title = 'Test generation and validation'
|
66
66
|
for solution, table in zip(
|
67
67
|
self.skeleton.solutions,
|
68
68
|
self.query(DataTable),
|
@@ -86,8 +86,7 @@ class SolutionReportScreen(Screen):
|
|
86
86
|
return i
|
87
87
|
raise
|
88
88
|
|
89
|
-
def process(self, item: EvaluationItem):
|
90
|
-
textual.log(item)
|
89
|
+
async def process(self, item: EvaluationItem):
|
91
90
|
pkg = package.find_problem_package_or_die()
|
92
91
|
sol_idx_in_skeleton = self._find_solution_index_in_skeleton(
|
93
92
|
pkg.solutions[item.solution_index]
|
@@ -102,12 +101,12 @@ class SolutionReportScreen(Screen):
|
|
102
101
|
|
103
102
|
table.update_cell_at(
|
104
103
|
Coordinate(row=row_idx, column=2),
|
105
|
-
get_testcase_markup_verdict(item.eval),
|
104
|
+
get_testcase_markup_verdict(await item.eval()),
|
106
105
|
update_width=True,
|
107
106
|
)
|
108
107
|
table.update_cell_at(
|
109
108
|
Coordinate(row=row_idx, column=3),
|
110
|
-
get_evals_formatted_time([item.eval]),
|
109
|
+
get_evals_formatted_time([await item.eval()]),
|
111
110
|
update_width=True,
|
112
111
|
)
|
113
112
|
|
@@ -158,11 +157,11 @@ class RunScreen(Screen):
|
|
158
157
|
def on_screen_resume(self):
|
159
158
|
self.query_one('#run-sols', SelectionList).focus()
|
160
159
|
|
161
|
-
def on_button_pressed(self, _: Button.Pressed):
|
162
|
-
self.action_run()
|
160
|
+
async def on_button_pressed(self, _: Button.Pressed):
|
161
|
+
await self.action_run()
|
163
162
|
|
164
163
|
@textual.work(thread=True)
|
165
|
-
def _run_solutions(self, tracked_solutions: Set[str], check: bool):
|
164
|
+
async def _run_solutions(self, tracked_solutions: Set[str], check: bool):
|
166
165
|
main_solution = package.get_main_solution()
|
167
166
|
if check and main_solution is None:
|
168
167
|
console.console.print(
|
@@ -176,9 +175,11 @@ class RunScreen(Screen):
|
|
176
175
|
exitcode = self.app.call_from_thread(build)
|
177
176
|
|
178
177
|
if exitcode != 0:
|
179
|
-
textual.log('early quit')
|
178
|
+
textual.log(f'early quit: {exitcode}')
|
180
179
|
return
|
181
180
|
|
181
|
+
textual.log('build finished ok, running solutions')
|
182
|
+
|
182
183
|
res = run_solutions(tracked_solutions=tracked_solutions, check=check)
|
183
184
|
|
184
185
|
async def mount_report_widget() -> SolutionReportScreen:
|
@@ -191,15 +192,15 @@ class RunScreen(Screen):
|
|
191
192
|
)
|
192
193
|
return screen
|
193
194
|
|
194
|
-
new_screen =
|
195
|
+
new_screen = await mount_report_widget()
|
195
196
|
|
196
|
-
def
|
197
|
-
new_screen.process(item)
|
197
|
+
async def process_item(item: EvaluationItem):
|
198
|
+
await new_screen.process(item)
|
198
199
|
|
199
200
|
for item in res.items:
|
200
|
-
self.app.call_from_thread(
|
201
|
+
self.app.call_from_thread(process_item, item)
|
201
202
|
|
202
|
-
def action_run(self):
|
203
|
+
async def action_run(self):
|
203
204
|
sols = self.query_one('#run-sols', SelectionList)
|
204
205
|
config = self.query_one('#run-config', SelectionList)
|
205
206
|
|
rbx/box/unit.py
CHANGED
@@ -103,7 +103,7 @@ async def run_validator_unit_tests(progress: StatusProgress):
|
|
103
103
|
|
104
104
|
console.console.rule('Validator tests', style='info')
|
105
105
|
if not entries:
|
106
|
-
console.console.print('
|
106
|
+
console.console.print('No validator unit tests found.')
|
107
107
|
return
|
108
108
|
|
109
109
|
compiled_validators = validators.compile_validators(vals, progress=progress)
|
@@ -14,11 +14,16 @@ read -r -d '' TestlibContent <<"EOF"
|
|
14
14
|
{{testlib_content}}
|
15
15
|
EOF
|
16
16
|
|
17
|
+
read -r -d '' RbxHeaderContent <<"EOF"
|
18
|
+
{{rbx_header_content}}
|
19
|
+
EOF
|
20
|
+
|
17
21
|
read -r -d '' CheckerContent <<"EOF"
|
18
22
|
{{checker_content}}
|
19
23
|
EOF
|
20
24
|
|
21
25
|
printf "%s" "${TestlibContent}" >testlib.h
|
26
|
+
printf "%s" "${RbxHeaderContent}" >rbx.h
|
22
27
|
printf "%s" "${CheckerContent}" >$CHECKER_PATH
|
23
28
|
|
24
29
|
checker_hash=($(md5sum $CHECKER_PATH))
|
@@ -0,0 +1,90 @@
|
|
1
|
+
#include <optional>
|
2
|
+
#include <stdexcept>
|
3
|
+
#include <string>
|
4
|
+
|
5
|
+
#ifndef _RBX_H
|
6
|
+
#define _RBX_H
|
7
|
+
|
8
|
+
std::optional<std::string> getStringVar(std::string name) {
|
9
|
+
//<rbx::string_var>
|
10
|
+
return std::nullopt;
|
11
|
+
}
|
12
|
+
|
13
|
+
std::optional<int> getIntVar(std::string name) {
|
14
|
+
//<rbx::int_var>
|
15
|
+
return std::nullopt;
|
16
|
+
}
|
17
|
+
|
18
|
+
std::optional<float> getFloatVar(std::string name) {
|
19
|
+
//<rbx::float_var>
|
20
|
+
return std::nullopt;
|
21
|
+
}
|
22
|
+
|
23
|
+
std::optional<bool> getBoolVar(std::string name) {
|
24
|
+
//<rbx::bool_var>
|
25
|
+
return std::nullopt;
|
26
|
+
}
|
27
|
+
|
28
|
+
template <typename T> T getVar(std::string name);
|
29
|
+
|
30
|
+
template <> int getVar<int>(std::string name) {
|
31
|
+
auto opt = getIntVar(name);
|
32
|
+
if (!opt.has_value()) {
|
33
|
+
throw std::runtime_error("Variable " + name +
|
34
|
+
" is not an integer or could not be found");
|
35
|
+
}
|
36
|
+
return opt.value();
|
37
|
+
}
|
38
|
+
|
39
|
+
template <> float getVar<float>(std::string name) {
|
40
|
+
auto opt = getFloatVar(name);
|
41
|
+
if (!opt.has_value()) {
|
42
|
+
auto intOpt = getIntVar(name);
|
43
|
+
if (intOpt.has_value()) {
|
44
|
+
opt = (float)intOpt.value();
|
45
|
+
}
|
46
|
+
}
|
47
|
+
if (!opt.has_value()) {
|
48
|
+
throw std::runtime_error("Variable " + name +
|
49
|
+
" is not a float or could not be found");
|
50
|
+
}
|
51
|
+
return opt.value();
|
52
|
+
}
|
53
|
+
|
54
|
+
template <> double getVar<double>(std::string name) {
|
55
|
+
return getVar<float>(name);
|
56
|
+
}
|
57
|
+
|
58
|
+
template <> std::string getVar<std::string>(std::string name) {
|
59
|
+
auto opt = getStringVar(name);
|
60
|
+
if (!opt.has_value()) {
|
61
|
+
auto intOpt = getIntVar(name);
|
62
|
+
if (intOpt.has_value()) {
|
63
|
+
opt = std::to_string(intOpt.value());
|
64
|
+
}
|
65
|
+
}
|
66
|
+
if (!opt.has_value()) {
|
67
|
+
auto floatOpt = getFloatVar(name);
|
68
|
+
if (floatOpt.has_value()) {
|
69
|
+
opt = std::to_string(floatOpt.value());
|
70
|
+
}
|
71
|
+
}
|
72
|
+
if (!opt.has_value()) {
|
73
|
+
throw std::runtime_error("Variable " + name +
|
74
|
+
" is not a string or could not be found");
|
75
|
+
}
|
76
|
+
return opt.value();
|
77
|
+
}
|
78
|
+
|
79
|
+
template <> bool getVar<bool>(std::string name) {
|
80
|
+
auto opt = getBoolVar(name);
|
81
|
+
if (!opt.has_value()) {
|
82
|
+
opt = getIntVar(name) != 0;
|
83
|
+
}
|
84
|
+
if (!opt.has_value()) {
|
85
|
+
throw std::runtime_error("Variable " + name +
|
86
|
+
" is not a boolean or could not be found");
|
87
|
+
}
|
88
|
+
return opt.value();
|
89
|
+
}
|
90
|
+
#endif
|
rbx/testing_utils.py
CHANGED
@@ -17,9 +17,9 @@ def get_testdata_path() -> pathlib.Path:
|
|
17
17
|
|
18
18
|
|
19
19
|
def clear_all_functools_cache():
|
20
|
-
from rbx.box import environment, package
|
20
|
+
from rbx.box import environment, header, package
|
21
21
|
|
22
|
-
pkgs = [environment, package]
|
22
|
+
pkgs = [environment, package, header]
|
23
23
|
|
24
24
|
for pkg in pkgs:
|
25
25
|
for fn in pkg.__dict__.values():
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: rbx.cp
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.52
|
4
4
|
Summary:
|
5
5
|
Author: Roberto Sales
|
6
6
|
Requires-Python: >=3.9,<4.0
|
@@ -10,6 +10,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
12
12
|
Classifier: Programming Language :: Python :: 3.13
|
13
|
+
Requires-Dist: async-lru (>=2.0.5,<3.0.0)
|
13
14
|
Requires-Dist: chardet (>=5.2.0,<6.0.0)
|
14
15
|
Requires-Dist: fastapi (>=0.115.8,<0.116.0)
|
15
16
|
Requires-Dist: filelock (>=3.14.0,<4.0.0)
|
@@ -19,6 +20,7 @@ Requires-Dist: lark (>=1.2.2,<2.0.0)
|
|
19
20
|
Requires-Dist: latexbuild (>=0.2.2,<0.3.0)
|
20
21
|
Requires-Dist: mechanize (>=0.4.10,<0.5.0)
|
21
22
|
Requires-Dist: more-itertools (>=10.5.0,<11.0.0)
|
23
|
+
Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
|
22
24
|
Requires-Dist: pydantic (==2.8.2)
|
23
25
|
Requires-Dist: pydantic-xml[lxml] (>=2.11.0,<3.0.0)
|
24
26
|
Requires-Dist: pyte (>=0.8.2,<0.9.0)
|
@@ -5,8 +5,8 @@ rbx/box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
rbx/box/builder.py,sha256=MDm2qqmhedAbhn3rWP6cDwbBsGhV6sz_2sg1zLkPDw0,3613
|
6
6
|
rbx/box/cd.py,sha256=9a_SOnzoJBXxxffp4Wbf3UKXIwKuN3Hvj7K6SocALwE,1194
|
7
7
|
rbx/box/checkers.py,sha256=eb4tqtVUJYlme_Vkj2TGkUABM7EMS0P1EswhMYjN7BI,11459
|
8
|
-
rbx/box/cli.py,sha256=
|
9
|
-
rbx/box/code.py,sha256=
|
8
|
+
rbx/box/cli.py,sha256=GPoGDgmaV1lXL9puXhUbZUIEU0lOMvdH1kD4TGCXkCo,26738
|
9
|
+
rbx/box/code.py,sha256=hmA2EoGOr13AYzicHNsnU2SkFW-44l7kOdu8QRwTJlI,18848
|
10
10
|
rbx/box/compile.py,sha256=OJLthDQ921w9vyoE6Gk1Df54i5RwtRJ2YG-8XEfefcs,2489
|
11
11
|
rbx/box/conftest.py,sha256=sEmciXSeDC-wmrZ1JSxbsUenKNP_VWW32mrCun2pY3I,1070
|
12
12
|
rbx/box/contest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -18,26 +18,29 @@ rbx/box/contest/schema.py,sha256=JMAig5WpaOahNgAHxA9vX4zYeVYDxpjKP_PFGvmmkE0,495
|
|
18
18
|
rbx/box/contest/statements.py,sha256=Or8gFb6P_oViGdeiVgepXsvd_W84mA7LRaVmiAXWWSg,2977
|
19
19
|
rbx/box/creation.py,sha256=Evz7K6JoarD-4JJQsZsgoxU9FgCF9Z7-LfuroG4Cqls,2444
|
20
20
|
rbx/box/deferred.py,sha256=II3X9e87JCOZtmspnHh-n4PFqh-FsH_oc0XJHZ9ZYVQ,691
|
21
|
-
rbx/box/download.py,sha256=
|
22
|
-
rbx/box/environment.py,sha256=
|
21
|
+
rbx/box/download.py,sha256=DxAiAk4lDYWEz1C9UTvZzHTq6hgm4fxGezApm2IkCTM,2601
|
22
|
+
rbx/box/environment.py,sha256=fZnNQCdpG3xzKne0FY7gkuaopy6fdYvVFAXeHmC1ZOo,11498
|
23
23
|
rbx/box/extensions.py,sha256=Von8kIeXvNFTkGlMRMTvL2HIHPwlkuiMswr-ydbGV1w,519
|
24
24
|
rbx/box/formatting.py,sha256=3phFRHzqVXj4Ok1yDhCq6Clbw6KlqwJNpMhs--oTWFI,405
|
25
25
|
rbx/box/generators.py,sha256=5-3K0JSLR9GbV0LmOkvNsWiQaMvhFBrI56ZaV1WgodQ,13472
|
26
26
|
rbx/box/generators_test.py,sha256=J7aBfuJhU84MWDWzgReRoOuQw_hVa09B8gTKAvL2XVo,1987
|
27
|
+
rbx/box/header.py,sha256=ifErXcIxG5lM5AyRiHDr7JE401vR4ORNXCNpHXxN_ls,2001
|
27
28
|
rbx/box/lazy_importing_main.py,sha256=6Z8As7qVFFT619xHH9Xt8VCH57NjC4aDxfAgkWiUwT8,116
|
28
29
|
rbx/box/lazy_importing_test.py,sha256=B0-b3y_DkxEmtVfu4NfmVsgVdFl6kRCsEL6GLMHJISo,628
|
29
|
-
rbx/box/main.py,sha256=
|
30
|
-
rbx/box/naming.py,sha256=
|
30
|
+
rbx/box/main.py,sha256=a8CYi77kOywPFly4-ucEIJLXQW-1NFp91kK2fA42YTE,86
|
31
|
+
rbx/box/naming.py,sha256=OiaiLe0k1sBx4vIXemUqnzfdNte79rrCgOvBze9XaTw,940
|
31
32
|
rbx/box/package.py,sha256=YuX_FS6yKx6FaFz0NF0cx3v6jzhqwvsLr3Oprx_TTJA,13645
|
32
33
|
rbx/box/packaging/boca/extension.py,sha256=EQALNEOv4zVDXSKs_dk11n92y7cBZVn8TogIK683lE0,890
|
33
|
-
rbx/box/packaging/boca/packager.py,sha256=
|
34
|
-
rbx/box/packaging/contest_main.py,sha256=
|
35
|
-
rbx/box/packaging/main.py,sha256=
|
36
|
-
rbx/box/packaging/moj/packager.py,sha256=
|
34
|
+
rbx/box/packaging/boca/packager.py,sha256=XPCauwbemjWNNnfIocJ8pxnlsxRjst4wYXJsVDyMQlM,12632
|
35
|
+
rbx/box/packaging/contest_main.py,sha256=UsRfIdNmOf0iLUbzgjxzyECfMuCQINstG1SCClGHaUQ,2808
|
36
|
+
rbx/box/packaging/main.py,sha256=qltqDncaxtvP3xXyUZGqWampBvh340JJjLru0h8XTPI,3476
|
37
|
+
rbx/box/packaging/moj/packager.py,sha256=tk0S0hayPnbGrFQsw1Ht_mYOriRlzYHgrkXLO-0ZknY,8724
|
37
38
|
rbx/box/packaging/packager.py,sha256=da2haC1L9cG30myneMrRIAdGubtid0Xmy38BHKPCZZ4,3633
|
38
|
-
rbx/box/packaging/polygon/packager.py,sha256=
|
39
|
+
rbx/box/packaging/polygon/packager.py,sha256=GfZ-Dc2TDKkb3QNnfOy8yxldho2L401Ao06oWg--Gcs,11714
|
40
|
+
rbx/box/packaging/polygon/polygon_api.py,sha256=mPKEqiwANJ1nr-JhOgzGMaDhnbljsAgzzPHW6kkf7R4,41016
|
39
41
|
rbx/box/packaging/polygon/test.py,sha256=bgEju5PwudgyfwxXJagm8fM6CJVlWM6l_-2q1V-oKaQ,3069
|
40
|
-
rbx/box/packaging/polygon/
|
42
|
+
rbx/box/packaging/polygon/upload.py,sha256=2WyEXlfprLUDbq-9AMB5hXOQVvvmsT1-stO60MHrEo0,11182
|
43
|
+
rbx/box/packaging/polygon/xml_schema.py,sha256=ZgcLyvxggMUccbTNdzflue5G-FTN2_ZmOGGF7FD0Y5A,2851
|
41
44
|
rbx/box/presets/__init__.py,sha256=BwmjBw8wF8yiZFjCYBjMk-HGMZaRwhlfszbWAj3B0vw,18689
|
42
45
|
rbx/box/presets/fetch.py,sha256=F-BCOlvEBEyDqtOhiDuGPn4EDtA4Bwm-fqHJ7zZGlW8,1975
|
43
46
|
rbx/box/presets/lock_schema.py,sha256=6sRPnyePOC8yy-5WcD5JRZdDJHf8loqbvpQ1IPiOU9s,349
|
@@ -46,7 +49,7 @@ rbx/box/retries.py,sha256=tRk2K1bXw2xnwkAj2CsktRHTEhw7YKcPxMQTT6mCy-E,4707
|
|
46
49
|
rbx/box/sanitizers/warning_stack.py,sha256=RI97_GJgdjTKIXY_r0EKp5h0qQQSDSdNDh5K7zINrqs,2861
|
47
50
|
rbx/box/schema.py,sha256=tOQ1tLHqc_5V-UgrzM44aS8ULAkq-IkeErxjLCFVA8I,16778
|
48
51
|
rbx/box/setter_config.py,sha256=s53talhwM6FTGDCcBhY7IlZ6_6mJ3PMp6V4kTtaSs50,4262
|
49
|
-
rbx/box/solutions.py,sha256=
|
52
|
+
rbx/box/solutions.py,sha256=1DnO6iygX9IflVk5ierP0oL9LS8EuU2cSui8z1YhN08,44653
|
50
53
|
rbx/box/solutions_test.py,sha256=TCowbxBG3SvDlFO5-qtBj_M_HrAHe0IJaI1XwoQ1d00,1718
|
51
54
|
rbx/box/state.py,sha256=MMf3DvfQji0jKEliCHct2Tpp_0epL1tvP8HbHNArQIc,166
|
52
55
|
rbx/box/statements/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -56,21 +59,21 @@ rbx/box/statements/joiners.py,sha256=jItNXkAbTjFQpPMgfDMW86n3vMTbaE8sgo9I8Yf4Txg
|
|
56
59
|
rbx/box/statements/latex.py,sha256=LkcHwXjMFxbw--Gj9T1VkFKQFsXhY9dN7xZHpZycNW8,1346
|
57
60
|
rbx/box/statements/latex_jinja.py,sha256=7WBfn1h8DpqCAmSE6Av64HfURMnJ2AO4QX1CD72sz5E,7096
|
58
61
|
rbx/box/statements/schema.py,sha256=ES8EUE9JE_uJlDwQx1kZd_5nQJyABtlnjP5IjbWaJ-0,3897
|
59
|
-
rbx/box/stresses.py,sha256=
|
62
|
+
rbx/box/stresses.py,sha256=k-m8Q2IVd5dap2fSDCbVqLj2LKqXzz6rIR8j9F8sLhY,12310
|
60
63
|
rbx/box/stressing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
61
64
|
rbx/box/stressing/finder_parser.py,sha256=jXpYNa4FyugzmHi3r96Uv4rU1krRQJc5Ihr9jf1cvNo,11918
|
62
65
|
rbx/box/stressing/generator_parser.py,sha256=oHZryjR3YohgaSO9WEirQ7b2e-98WgZStF0N99W4Thw,7380
|
63
66
|
rbx/box/tasks.py,sha256=oyWtgZvIEIkVV6e-GcJx7x8Z3T5tIDFBZbp0638sLeY,10036
|
64
67
|
rbx/box/testcase_extractors.py,sha256=T5vCW5qERlqitGrFP6RuITEVr9o8XQozNa4AsxfuV_Y,11871
|
65
|
-
rbx/box/testcase_utils.py,sha256=
|
68
|
+
rbx/box/testcase_utils.py,sha256=31rvCpLi681R6Xm1WpG8HPDOkTtF0bRWa8IsmdWGLCk,7556
|
66
69
|
rbx/box/testcases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
67
70
|
rbx/box/testcases/main.py,sha256=_I7h_obRcpNLRQ6dDJDIE5NAvTyn5nBOhdsBhRA_PvU,5442
|
68
71
|
rbx/box/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
69
|
-
rbx/box/ui/captured_log.py,sha256=
|
70
|
-
rbx/box/ui/css/app.tcss,sha256=
|
72
|
+
rbx/box/ui/captured_log.py,sha256=BIlhMFrDcWFa9YD8pUY21G-fJSIBzAz9lpaCZH2WJmc,11526
|
73
|
+
rbx/box/ui/css/app.tcss,sha256=88tmZCnn4Y2wD-JFEGHoD3VuJGhMU7S7rM2k8FHUZek,777
|
71
74
|
rbx/box/ui/main.py,sha256=b0rHcBF42W4AOCv7WhtiGf_rUnY0yxpqO5oj3wfR4R4,984
|
72
|
-
rbx/box/ui/run.py,sha256=
|
73
|
-
rbx/box/unit.py,sha256=
|
75
|
+
rbx/box/ui/run.py,sha256=Ed5zk3kg3vMggQCud-5GimfGL_n_QwtgATiIim5HYw0,7169
|
76
|
+
rbx/box/unit.py,sha256=PY96t8qnsHLsoJVanbDnrIx-s8Dada9Fj_v375MhvTw,6477
|
74
77
|
rbx/box/validators.py,sha256=oqlNhw7jivbbH5l8g3xwihPRy76AM7MA3G4A8nyI_V0,10416
|
75
78
|
rbx/box/validators_test.py,sha256=WY4Ho-wlsPHc0YNuz0KFVd6KQ9ouuiou3w5_zMOZ4Fs,362
|
76
79
|
rbx/checker.py,sha256=pj1jO3my48ru-qugbER5onccANCjoR0-PaFe3H3VGEY,4118
|
@@ -111,7 +114,7 @@ rbx/resources/default_setter_config.mac.yml,sha256=i28xwAUDg-kuxx19knCiYkh-NR7Qe
|
|
111
114
|
rbx/resources/default_setter_config.yml,sha256=oy6fbuQyYaJS2Cw2zcbYcBBGt6138CyB3-bLl45_QqY,1000
|
112
115
|
rbx/resources/envs/default.rbx.yml,sha256=8gl4DXc5mVISx__1libPQfmuHYdW32xjysfqpNESIAo,853
|
113
116
|
rbx/resources/envs/isolate.rbx.yml,sha256=VZAJ-Mu-A5Rt4m0VtMygOXA7eLLvCCmoorv_0acDmXQ,870
|
114
|
-
rbx/resources/packagers/boca/checker.sh,sha256=
|
117
|
+
rbx/resources/packagers/boca/checker.sh,sha256=q34ZS2clnctOj_8XPUxUGc-qm0kGgUG9ThDm-WZRz3I,1196
|
115
118
|
rbx/resources/packagers/boca/compare.sh,sha256=a6AmQqwrIq616DHjp_S2l95wO7UiMVy0LQ9EajZKDDk,1201
|
116
119
|
rbx/resources/packagers/boca/compile/c,sha256=lHLvxzkG_he5jmxWrix0WT80ipMWWUZdOgOQMSpj8oo,4507
|
117
120
|
rbx/resources/packagers/boca/compile/cc,sha256=B_18QkUGcjUg6yrTFlTQuMWnHpTWUKPZmFuk7Y0l1VA,4561
|
@@ -176,6 +179,7 @@ rbx/resources/presets/default/problem/tests/samples/000.in,sha256=w66OEtCJGqjUNj
|
|
176
179
|
rbx/resources/presets/default/problem/tests/samples/001.in,sha256=P4QInDX87xXoDWu4PVIzUeNW5LtTlUKbMCvJ9uZOPGw,20
|
177
180
|
rbx/resources/presets/default/problem/validator.cpp,sha256=VwZZUVq8GZHB07eOb6AoQirrYttPfTpF6P5m6I9nsLI,333
|
178
181
|
rbx/resources/presets/default/problem/wcmp.cpp,sha256=gbjJe3Vf9-YzHCEqBUq30aI3jMZXhqBDn3jjecYOn-w,902
|
182
|
+
rbx/resources/templates/rbx.h,sha256=7v-dm4cwP6trsJR-Ixk3_JNfaG1dwM_Lm8FcVPaA0YA,2180
|
179
183
|
rbx/resources/templates/template.cpp,sha256=xXWpWo7fa7HfmPNqkmHcmv3i46Wm0ZL-gPmkRfGvLn4,317
|
180
184
|
rbx/run.py,sha256=8WsEAdj7FwYSc9itfJ977n5HN5CYN63T__HRYI6IB1A,1515
|
181
185
|
rbx/schema.py,sha256=qcxuuxUJ0KwHR03CEYvdoP1SYW7yes3QyuI_0lnVMl0,1494
|
@@ -186,10 +190,10 @@ rbx/submitors/submitor.py,sha256=8q-Hbdahxt30ciT_R9j_xF6lEPUh9IcfAUnzjQjbvHU,457
|
|
186
190
|
rbx/test.py,sha256=tZyTrXDK8MLR-1TyCRxiOiNz-PhlXVpshfUGphakkT4,11830
|
187
191
|
rbx/testcase.py,sha256=yKOq3CAJZ1YTmInvnoIs0u1iJnRj_X85XiWbLI-p9d8,1951
|
188
192
|
rbx/testcase_rendering.py,sha256=nfmv6dSEqd4aR3TsaODwkKGK6AXty_DDKtWf_ejiQpI,2084
|
189
|
-
rbx/testing_utils.py,sha256=
|
193
|
+
rbx/testing_utils.py,sha256=x_PqD8Zd2PkN91NxVHUnSTs044-1WK5KKtttKQBXpFs,2083
|
190
194
|
rbx/utils.py,sha256=6e1eXRzNE-52D0UVtqclePxqR4Haiqt8qWCrSVjnGuE,4585
|
191
|
-
rbx_cp-0.5.
|
192
|
-
rbx_cp-0.5.
|
193
|
-
rbx_cp-0.5.
|
194
|
-
rbx_cp-0.5.
|
195
|
-
rbx_cp-0.5.
|
195
|
+
rbx_cp-0.5.52.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
196
|
+
rbx_cp-0.5.52.dist-info/METADATA,sha256=zA9fGYWC651-X-bxyI87ll66EM9GqMSn7FF28UIcAkE,3348
|
197
|
+
rbx_cp-0.5.52.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
198
|
+
rbx_cp-0.5.52.dist-info/entry_points.txt,sha256=qBTLBOeifT1F00LWaEewRRE_jQPgvH7BUdJfZ-dYsFU,57
|
199
|
+
rbx_cp-0.5.52.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|