rbx.cp 0.5.32__tar.gz → 0.5.33__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.
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/PKG-INFO +3 -2
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/pyproject.toml +1 -1
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/code.py +6 -7
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/main.py +0 -5
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/solutions.py +60 -13
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/validators.py +5 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/LICENSE +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/README.md +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/annotations.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/autoenum.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/builder.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/cd.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/checkers.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/compile.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/conftest.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/contest/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/contest/build_contest_statements.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/contest/contest_package.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/contest/contest_utils.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/contest/main.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/contest/schema.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/contest/statements.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/creation.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/deferred.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/download.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/environment.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/extensions.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/formatting.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/generators.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/generators_test.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/package.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/packaging/boca/extension.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/packaging/boca/packager.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/packaging/contest_main.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/packaging/main.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/packaging/packager.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/packaging/polygon/packager.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/packaging/polygon/test.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/packaging/polygon/xml_schema.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/presets/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/presets/fetch.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/presets/lock_schema.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/presets/schema.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/retries.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/sanitizers/warning_stack.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/schema.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/setter_config.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/solutions_test.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/state.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/statements/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/statements/build_statements.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/statements/builders.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/statements/joiners.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/statements/latex.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/statements/latex_jinja.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/statements/schema.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/stresses.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/stressing/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/stressing/finder_parser.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/stressing/generator_parser.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/testcases.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/ui/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/ui/captured_log.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/ui/css/app.tcss +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/ui/main.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/ui/run.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/box/validators_test.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/checker.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/clone.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/config.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/conftest.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/console.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/create.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/edit.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/caching.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/conftest.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/cacher.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/digester.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/sandbox.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/sandboxes/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/sandboxes/isolate.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/sandboxes/timeit.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/storage.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/test.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/judge/testiso.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/steps.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/steps_with_caching.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading/steps_with_caching_run_test.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/grading_utils.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/hydration.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/main.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/metadata.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/providers/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/providers/codeforces.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/providers/provider.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/checkers/boilerplate.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/default_config.json +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/default_setter_config.mac.yml +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/default_setter_config.yml +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/envs/default.rbx.yml +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/envs/isolate.rbx.yml +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/checker.sh +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/compare +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/compile/c +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/compile/cc +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/compile/cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/compile/java +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/compile/kt +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/compile/pas +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/compile/py2 +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/compile/py3 +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/run/c +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/run/cc +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/run/cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/run/java +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/run/kt +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/run/py2 +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/packagers/boca/run/py3 +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/contest/statement/olymp.sty +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/contest/statement/template.rbx.tex +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/preset.rbx.yml +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/.gitignore +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/gen.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/random.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/random.txt +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/sols/slow.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/sols/wa.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/statement/olymp.sty +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/statement/projecao.png +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/statement/template.rbx.tex +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/tests/samples/000.in +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/tests/samples/001.in +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/validator.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/templates/template.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/run.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/schema.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/submit.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/submitors/__init__.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/submitors/codeforces.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/submitors/submitor.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/test.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testcase.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testcase_rendering.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/gen1.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/gen2.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/genScript.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/hard-tle.sol.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/ole.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/problem.rbx.yml +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/re.sol.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/sol.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/tests/1.in +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/tle-and-incorrect.sol.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/tle.sol.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/validator.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/box1/wa.sol.cpp +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/caching/executable.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testdata/compatible +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/testing_utils.py +0 -0
- {rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.3
|
2
2
|
Name: rbx.cp
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.33
|
4
4
|
Summary:
|
5
5
|
Author: Roberto Sales
|
6
6
|
Requires-Python: >=3.9,<4.0
|
@@ -9,6 +9,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.10
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
12
13
|
Requires-Dist: chardet (>=5.2.0,<6.0.0)
|
13
14
|
Requires-Dist: fastapi (>=0.115.8,<0.116.0)
|
14
15
|
Requires-Dist: filelock (>=3.14.0,<4.0.0)
|
@@ -186,15 +186,14 @@ def _check_stack_limit():
|
|
186
186
|
if hard != resource.RLIM_INFINITY:
|
187
187
|
target_text = min(hard, TARGET)
|
188
188
|
console.console.print(
|
189
|
-
"""
|
189
|
+
f"""
|
190
190
|
```
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
}
|
191
|
+
function rbx() {{
|
192
|
+
local rbx_bin=`bash -c "type -P rbx"`
|
193
|
+
ulimit -s {target_text} && $rbx_bin $@
|
194
|
+
}}
|
195
195
|
```
|
196
|
-
|
197
|
-
% target_text
|
196
|
+
"""
|
198
197
|
)
|
199
198
|
console.console.print()
|
200
199
|
console.console.print(
|
@@ -911,38 +911,81 @@ class TimingSummary:
|
|
911
911
|
if self.fastest_slow is None or time < self.fastest_slow:
|
912
912
|
self.fastest_slow = time
|
913
913
|
|
914
|
+
def print(self, console: rich.console.Console, tl: Optional[int] = None):
|
915
|
+
if self.slowest_good is not None:
|
916
|
+
console.print(
|
917
|
+
f'Slowest [success]OK[/success] solution: {self.slowest_good} ms'
|
918
|
+
)
|
919
|
+
if self.fastest_slow is not None:
|
920
|
+
fastest_slow = self.fastest_slow
|
921
|
+
if tl is not None and self.fastest_slow > tl:
|
922
|
+
fastest_slow = f'>{tl}'
|
923
|
+
console.print(f'Fastest [error]slow[/error] solution: {fastest_slow} ms')
|
924
|
+
|
914
925
|
|
915
926
|
async def _print_timing(
|
916
927
|
console: rich.console.Console,
|
917
928
|
skeleton: SolutionReportSkeleton,
|
918
929
|
evaluations: StructuredEvaluation,
|
930
|
+
verification: VerificationLevel,
|
919
931
|
):
|
932
|
+
pkg = package.find_problem_package_or_die()
|
920
933
|
summary = TimingSummary()
|
921
|
-
|
934
|
+
summary_per_language = collections.defaultdict(TimingSummary)
|
935
|
+
tls_per_language = {}
|
936
|
+
all_tls = set()
|
922
937
|
for solution in skeleton.solutions:
|
923
|
-
all_evals = []
|
938
|
+
all_evals: List[Evaluation] = []
|
924
939
|
for evals in evaluations[str(solution.path)].values():
|
925
940
|
all_evals.extend([await eval() for eval in evals if eval is not None])
|
941
|
+
if not all_evals:
|
942
|
+
continue
|
943
|
+
|
944
|
+
# Get solution TL.
|
926
945
|
solution_time = _get_evals_time_in_ms(all_evals)
|
946
|
+
solution_tls = [
|
947
|
+
eval.log.metadata.timeLimit
|
948
|
+
for eval in all_evals
|
949
|
+
if eval.log.metadata is not None and eval.log.metadata.timeLimit is not None
|
950
|
+
]
|
951
|
+
solution_tl = 0
|
952
|
+
if solution_tls:
|
953
|
+
solution_tl = min(solution_tls)
|
954
|
+
else:
|
955
|
+
solution_tl = pkg.timelimit_for_language(solution.language)
|
956
|
+
if verification.value >= VerificationLevel.FULL.value:
|
957
|
+
solution_tl = solution_tl * 2
|
958
|
+
all_tls.add(solution_tl)
|
959
|
+
for eval in all_evals:
|
960
|
+
if eval.log.get_run_language() is not None:
|
961
|
+
tls_per_language[eval.log.get_run_language()] = solution_tl
|
962
|
+
|
963
|
+
# Get solution timings.
|
927
964
|
if solution.outcome.match(Outcome.ACCEPTED):
|
928
965
|
summary.add_good(solution_time)
|
929
|
-
|
966
|
+
summary_per_language[solution.language].add_good(solution_time)
|
930
967
|
if solution.outcome.is_slow():
|
931
968
|
summary.add_slow(solution_time)
|
932
|
-
|
969
|
+
summary_per_language[solution.language].add_slow(solution_time)
|
933
970
|
|
934
971
|
if summary.slowest_good is None and summary.fastest_slow is None:
|
935
972
|
return
|
936
973
|
|
974
|
+
all_languages = set(summary_per_language)
|
975
|
+
all_tl = min(all_tls) if all_tls else None
|
937
976
|
console.print('[status]Timing summary:[/status]')
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
977
|
+
|
978
|
+
if len(all_languages) <= 1 or len(all_tls) <= 1:
|
979
|
+
summary.print(console, tl=all_tl)
|
980
|
+
return
|
981
|
+
|
982
|
+
# Otherwise, print per language.
|
983
|
+
for lang in sorted(all_languages):
|
984
|
+
console.print(f'[status]{lang}[/status]')
|
985
|
+
summary_per_language[lang].print(
|
986
|
+
console, tl=tls_per_language.get(lang) or all_tl
|
945
987
|
)
|
988
|
+
console.print()
|
946
989
|
|
947
990
|
|
948
991
|
def _length_markup(markup: str) -> int:
|
@@ -1109,7 +1152,9 @@ async def _print_detailed_run_report(
|
|
1109
1152
|
console.print()
|
1110
1153
|
|
1111
1154
|
if timing:
|
1112
|
-
await _print_timing(
|
1155
|
+
await _print_timing(
|
1156
|
+
console, result.skeleton, structured_evaluations, verification=verification
|
1157
|
+
)
|
1113
1158
|
return ok
|
1114
1159
|
|
1115
1160
|
|
@@ -1193,7 +1238,9 @@ async def print_run_report(
|
|
1193
1238
|
ok = ok and cur_ok
|
1194
1239
|
console.print()
|
1195
1240
|
|
1196
|
-
await _print_timing(
|
1241
|
+
await _print_timing(
|
1242
|
+
console, result.skeleton, structured_evaluations, verification=verification
|
1243
|
+
)
|
1197
1244
|
|
1198
1245
|
return ok
|
1199
1246
|
|
@@ -273,6 +273,11 @@ def print_validation_report(infos: List[TestcaseValidationInfo]):
|
|
273
273
|
if _is_hit_bound_good(v) and k != 'samples'
|
274
274
|
}
|
275
275
|
|
276
|
+
all_groups = set(info.group for info in infos)
|
277
|
+
if len(all_groups) == 1 and 'samples' in all_groups:
|
278
|
+
# If there's only the samples group, do not check for hit bounds.
|
279
|
+
hit_bounds_per_group = {}
|
280
|
+
|
276
281
|
if not hit_bounds_per_group:
|
277
282
|
console.console.print('[info]No validation issues found.[/info]')
|
278
283
|
return
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
{rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/contest/statement/contest.rbx.tex
RENAMED
File without changes
|
File without changes
|
{rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/contest/statement/template.rbx.tex
RENAMED
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
|
{rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/statement/projecao.png
RENAMED
File without changes
|
{rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/statement/statement.rbx.tex
RENAMED
File without changes
|
{rbx_cp-0.5.32 → rbx_cp-0.5.33}/rbx/resources/presets/default/problem/statement/template.rbx.tex
RENAMED
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|