rbx.cp 0.5.18__tar.gz → 0.5.19__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.
Files changed (168) hide show
  1. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/PKG-INFO +1 -1
  2. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/pyproject.toml +1 -1
  3. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/builder.py +1 -1
  4. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/main.py +2 -2
  5. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/solutions.py +47 -11
  6. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/steps.py +10 -8
  7. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/LICENSE +0 -0
  8. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/README.md +0 -0
  9. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/__init__.py +0 -0
  10. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/annotations.py +0 -0
  11. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/autoenum.py +0 -0
  12. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/__init__.py +0 -0
  13. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/cd.py +0 -0
  14. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/checkers.py +0 -0
  15. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/code.py +0 -0
  16. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/compile.py +0 -0
  17. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/conftest.py +0 -0
  18. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/contest/__init__.py +0 -0
  19. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/contest/build_contest_statements.py +0 -0
  20. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/contest/contest_package.py +0 -0
  21. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/contest/contest_utils.py +0 -0
  22. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/contest/main.py +0 -0
  23. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/contest/schema.py +0 -0
  24. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/contest/statements.py +0 -0
  25. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/creation.py +0 -0
  26. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/deferred.py +0 -0
  27. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/download.py +0 -0
  28. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/environment.py +0 -0
  29. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/extensions.py +0 -0
  30. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/generators.py +0 -0
  31. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/generators_test.py +0 -0
  32. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/package.py +0 -0
  33. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/packaging/boca/extension.py +0 -0
  34. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/packaging/boca/packager.py +0 -0
  35. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/packaging/contest_main.py +0 -0
  36. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/packaging/main.py +0 -0
  37. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/packaging/packager.py +0 -0
  38. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/packaging/polygon/packager.py +0 -0
  39. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/packaging/polygon/test.py +0 -0
  40. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/packaging/polygon/xml_schema.py +0 -0
  41. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/presets/__init__.py +0 -0
  42. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/presets/fetch.py +0 -0
  43. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/presets/lock_schema.py +0 -0
  44. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/presets/schema.py +0 -0
  45. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/sanitizers/warning_stack.py +0 -0
  46. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/schema.py +0 -0
  47. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/setter_config.py +0 -0
  48. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/solutions_test.py +0 -0
  49. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/statements/__init__.py +0 -0
  50. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/statements/build_statements.py +0 -0
  51. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/statements/builders.py +0 -0
  52. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/statements/joiners.py +0 -0
  53. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/statements/latex.py +0 -0
  54. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/statements/latex_jinja.py +0 -0
  55. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/statements/schema.py +0 -0
  56. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/stresses.py +0 -0
  57. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/stressing/__init__.py +0 -0
  58. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/stressing/finder_parser.py +0 -0
  59. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/stressing/generator_parser.py +0 -0
  60. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/testcases.py +0 -0
  61. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/ui/__init__.py +0 -0
  62. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/ui/captured_log.py +0 -0
  63. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/ui/css/app.tcss +0 -0
  64. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/ui/main.py +0 -0
  65. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/ui/run.py +0 -0
  66. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/validators.py +0 -0
  67. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/box/validators_test.py +0 -0
  68. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/checker.py +0 -0
  69. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/clone.py +0 -0
  70. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/config.py +0 -0
  71. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/conftest.py +0 -0
  72. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/console.py +0 -0
  73. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/create.py +0 -0
  74. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/edit.py +0 -0
  75. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/__init__.py +0 -0
  76. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/caching.py +0 -0
  77. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/conftest.py +0 -0
  78. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/__init__.py +0 -0
  79. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/cacher.py +0 -0
  80. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/digester.py +0 -0
  81. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/sandbox.py +0 -0
  82. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/sandboxes/__init__.py +0 -0
  83. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/sandboxes/isolate.py +0 -0
  84. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
  85. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/sandboxes/timeit.py +0 -0
  86. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/storage.py +0 -0
  87. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/test.py +0 -0
  88. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/judge/testiso.py +0 -0
  89. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/steps_with_caching.py +0 -0
  90. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading/steps_with_caching_run_test.py +0 -0
  91. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/grading_utils.py +0 -0
  92. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/hydration.py +0 -0
  93. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/main.py +0 -0
  94. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/metadata.py +0 -0
  95. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/providers/__init__.py +0 -0
  96. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/providers/codeforces.py +0 -0
  97. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/providers/provider.py +0 -0
  98. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/checkers/boilerplate.cpp +0 -0
  99. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/default_config.json +0 -0
  100. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/default_setter_config.mac.yml +0 -0
  101. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/default_setter_config.yml +0 -0
  102. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/envs/default.rbx.yml +0 -0
  103. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/envs/isolate.rbx.yml +0 -0
  104. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/checker.sh +0 -0
  105. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/compare +0 -0
  106. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/compile/c +0 -0
  107. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/compile/cc +0 -0
  108. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/compile/cpp +0 -0
  109. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/compile/java +0 -0
  110. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/compile/kt +0 -0
  111. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/compile/pas +0 -0
  112. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/compile/py2 +0 -0
  113. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/compile/py3 +0 -0
  114. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/run/c +0 -0
  115. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/run/cc +0 -0
  116. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/run/cpp +0 -0
  117. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/run/java +0 -0
  118. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/run/kt +0 -0
  119. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/run/py2 +0 -0
  120. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/packagers/boca/run/py3 +0 -0
  121. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
  122. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
  123. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/contest/statement/olymp.sty +0 -0
  124. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/contest/statement/template.rbx.tex +0 -0
  125. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/preset.rbx.yml +0 -0
  126. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/.gitignore +0 -0
  127. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/gen.cpp +0 -0
  128. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
  129. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/random.py +0 -0
  130. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/random.txt +0 -0
  131. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
  132. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/sols/slow.cpp +0 -0
  133. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/sols/wa.cpp +0 -0
  134. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/statement/olymp.sty +0 -0
  135. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/statement/projecao.png +0 -0
  136. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
  137. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/statement/template.rbx.tex +0 -0
  138. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/tests/samples/000.in +0 -0
  139. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/tests/samples/001.in +0 -0
  140. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/validator.cpp +0 -0
  141. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
  142. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/resources/templates/template.cpp +0 -0
  143. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/run.py +0 -0
  144. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/schema.py +0 -0
  145. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/submit.py +0 -0
  146. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/submitors/__init__.py +0 -0
  147. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/submitors/codeforces.py +0 -0
  148. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/submitors/submitor.py +0 -0
  149. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/test.py +0 -0
  150. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testcase.py +0 -0
  151. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testcase_rendering.py +0 -0
  152. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/gen1.cpp +0 -0
  153. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/gen2.cpp +0 -0
  154. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/genScript.py +0 -0
  155. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/hard-tle.sol.cpp +0 -0
  156. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/ole.cpp +0 -0
  157. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/problem.rbx.yml +0 -0
  158. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/re.sol.cpp +0 -0
  159. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/sol.cpp +0 -0
  160. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/tests/1.in +0 -0
  161. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/tle-and-incorrect.sol.cpp +0 -0
  162. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/tle.sol.cpp +0 -0
  163. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/validator.cpp +0 -0
  164. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/box1/wa.sol.cpp +0 -0
  165. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/caching/executable.py +0 -0
  166. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testdata/compatible +0 -0
  167. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/testing_utils.py +0 -0
  168. {rbx_cp-0.5.18 → rbx_cp-0.5.19}/rbx/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rbx.cp
3
- Version: 0.5.18
3
+ Version: 0.5.19
4
4
  Summary:
5
5
  Author: Roberto Sales
6
6
  Requires-Python: >=3.9,<4.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "rbx.cp"
3
- version = "0.5.18"
3
+ version = "0.5.19"
4
4
  description = ""
5
5
  packages = [
6
6
  {include = "rbx"}
@@ -103,5 +103,5 @@ async def verify(verification: environment.VerificationParam) -> bool:
103
103
  return await print_run_report(
104
104
  solution_result,
105
105
  console.console,
106
- verification,
106
+ VerificationLevel(verification),
107
107
  )
@@ -215,7 +215,7 @@ def run(
215
215
  print_run_report(
216
216
  solution_result,
217
217
  console.console,
218
- verification,
218
+ VerificationLevel(verification),
219
219
  detailed=detailed,
220
220
  )
221
221
  )
@@ -250,7 +250,7 @@ def _time_impl(check: bool, detailed: bool) -> Optional[int]:
250
250
  print_run_report(
251
251
  solution_result,
252
252
  console.console,
253
- verification,
253
+ VerificationLevel(verification),
254
254
  detailed=detailed,
255
255
  )
256
256
  )
@@ -13,7 +13,7 @@ import rich.table
13
13
  from pydantic import BaseModel
14
14
 
15
15
  from rbx import console
16
- from rbx.box import checkers, environment, package
16
+ from rbx.box import checkers, package
17
17
  from rbx.box.code import SanitizationLevel, compile_item, find_language_name, run_item
18
18
  from rbx.box.deferred import Deferred
19
19
  from rbx.box.environment import EnvironmentSandbox, ExecutionConfig, VerificationLevel
@@ -539,6 +539,24 @@ def get_evals_formatted_time(evals: List[Evaluation]) -> str:
539
539
  return f'{max_time} ms'
540
540
 
541
541
 
542
+ def get_capped_evals_formatted_time(
543
+ solution: Solution, evals: List[Evaluation], verification: VerificationLevel
544
+ ) -> str:
545
+ pkg = package.find_problem_package_or_die()
546
+
547
+ max_time = _get_evals_time_in_ms(evals)
548
+ has_tle = any(eval.result.outcome == Outcome.TIME_LIMIT_EXCEEDED for eval in evals)
549
+ tl = pkg.timelimit_for_language(solution.language)
550
+
551
+ if verification.value >= VerificationLevel.FULL.value:
552
+ # Using double TL for verification.
553
+ tl = tl * 2
554
+
555
+ if has_tle and max_time > tl:
556
+ return f'>{tl} ms'
557
+ return f'{max_time} ms'
558
+
559
+
542
560
  def get_evals_formatted_memory(evals: List[Evaluation]) -> str:
543
561
  max_memory = _get_evals_memory_in_bytes(evals)
544
562
  if max_memory < 1024 * 1024:
@@ -631,7 +649,9 @@ def _print_solution_outcome(
631
649
  '[warning]WARNING[/warning] The solution had sanitizer errors or warnings, marked with [warning]*[/warning]. See their stderr for more details.'
632
650
  )
633
651
 
634
- console.print(f'Time: {get_evals_formatted_time(evals)}')
652
+ console.print(
653
+ f'Time: {get_capped_evals_formatted_time(solution, evals, verification)}'
654
+ )
635
655
  console.print(f'Memory: {get_evals_formatted_memory(evals)}')
636
656
  return len(unmatched_bad_verdicts) == 0
637
657
 
@@ -698,6 +718,7 @@ async def _render_detailed_group_table(
698
718
  skeleton: SolutionReportSkeleton,
699
719
  structured_evaluations: StructuredEvaluation,
700
720
  console: rich.console.Console,
721
+ verification: VerificationLevel = VerificationLevel.NONE,
701
722
  ):
702
723
  group_skeleton = skeleton.find_group_skeleton(group.name)
703
724
  assert group_skeleton is not None
@@ -722,12 +743,16 @@ async def _render_detailed_group_table(
722
743
  row.append('...')
723
744
  continue
724
745
 
746
+ evals_per_solution[str(solution.path)].append(eval)
747
+
725
748
  verdict = get_testcase_markup_verdict(eval)
726
- time = get_evals_formatted_time([eval])
749
+ time = get_capped_evals_formatted_time(solution, [eval], verification)
750
+ memory = get_evals_formatted_memory([eval])
751
+ full_item = f'{verdict} {time} / {memory}'
727
752
  if eval.result.sanitizer_warnings:
728
- time = f'{time} [warning]*[/warning]'
729
- evals_per_solution[str(solution.path)].append(eval)
730
- row.append(f'{verdict} {time}')
753
+ full_item = f'{full_item} [warning]*[/warning]'
754
+
755
+ row.append(full_item)
731
756
  table.add_row(*row)
732
757
 
733
758
  if table.row_count > 0:
@@ -738,7 +763,11 @@ async def _render_detailed_group_table(
738
763
  if not non_null_evals:
739
764
  summary_row.append('...')
740
765
  continue
741
- summary_row.append(' ' + get_evals_formatted_time(non_null_evals))
766
+ formatted_time = get_capped_evals_formatted_time(
767
+ solution, non_null_evals, verification
768
+ )
769
+ formatted_memory = get_evals_formatted_memory(non_null_evals)
770
+ summary_row.append(f' {formatted_time} / {formatted_memory}')
742
771
  table.add_section()
743
772
  table.add_row(*summary_row)
744
773
  return table
@@ -763,6 +792,7 @@ async def _print_detailed_run_report(
763
792
  console: rich.console.Console,
764
793
  structured_evaluations: StructuredEvaluation,
765
794
  timing: bool = True,
795
+ verification: VerificationLevel = VerificationLevel.NONE,
766
796
  ):
767
797
  for group in result.skeleton.groups:
768
798
  console.print(f'[bold][status]{group.name}[/status][/bold]')
@@ -772,6 +802,7 @@ async def _print_detailed_run_report(
772
802
  result.skeleton,
773
803
  structured_evaluations,
774
804
  console,
805
+ verification=verification,
775
806
  )
776
807
  continue
777
808
 
@@ -788,6 +819,7 @@ async def _print_detailed_run_report(
788
819
  solution,
789
820
  all_evals,
790
821
  console,
822
+ verification=verification,
791
823
  )
792
824
  ok = ok and cur_ok
793
825
  console.print()
@@ -802,7 +834,7 @@ async def _print_detailed_run_report(
802
834
  async def print_run_report(
803
835
  result: RunSolutionResult,
804
836
  console: rich.console.Console,
805
- verification: environment.VerificationParam,
837
+ verification: VerificationLevel,
806
838
  detailed: bool = False,
807
839
  timing: bool = True,
808
840
  ) -> bool:
@@ -811,7 +843,11 @@ async def print_run_report(
811
843
  )
812
844
  if detailed:
813
845
  return await _print_detailed_run_report(
814
- result, console, structured_evaluations, timing=timing
846
+ result,
847
+ console,
848
+ structured_evaluations,
849
+ verification=verification,
850
+ timing=timing,
815
851
  )
816
852
 
817
853
  ok = True
@@ -836,7 +872,7 @@ async def print_run_report(
836
872
  solution_evals.append(eval)
837
873
 
838
874
  console.print(
839
- f'({get_evals_formatted_time(group_evals)}, {get_evals_formatted_memory(group_evals)})',
875
+ f'({get_capped_evals_formatted_time(solution, group_evals, verification)}, {get_evals_formatted_memory(group_evals)})',
840
876
  end='',
841
877
  )
842
878
  console.print()
@@ -845,7 +881,7 @@ async def print_run_report(
845
881
  solution,
846
882
  solution_evals,
847
883
  console,
848
- verification=VerificationLevel(verification),
884
+ verification=verification,
849
885
  )
850
886
  console.print()
851
887
 
@@ -436,19 +436,21 @@ def _check_for_sanitizer_warnings(
436
436
  return any(_check_for_sanitizer_warnings_in_line(line.decode()) for line in f)
437
437
 
438
438
 
439
- _WARNING_RE = re.compile(r'[^:]+:\d+:\d+:[ ]+warning:.*')
439
+ _WARNING_RE = re.compile(r'([^:]+):\d+:\d+:[ ]+warning:.*')
440
440
 
441
441
 
442
442
  def _check_for_compilation_warnings_in_line(line: str) -> bool:
443
443
  if line.startswith('./'):
444
444
  return False
445
- matched = _WARNING_RE.match(line) is not None
446
- # if matched:
447
- # console.print(
448
- # '[warning]Compilation warning:[/warning]',
449
- # utils.highlight_json_obj(line),
450
- # )
451
- return matched
445
+ match = _WARNING_RE.match(line)
446
+ if match is None:
447
+ return False
448
+ file = match.group(1).strip().lower()
449
+ if 'testlib' in file or 'jngen' in file or 'stresslib' in file:
450
+ return False
451
+ if file.endswith('.h'):
452
+ return False
453
+ return True
452
454
 
453
455
 
454
456
  def _check_for_compilation_warnings(
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