rbx.cp 0.5.21__tar.gz → 0.5.23__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.21 → rbx_cp-0.5.23}/PKG-INFO +1 -1
  2. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/pyproject.toml +1 -1
  3. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/code.py +3 -4
  4. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/main.py +0 -1
  5. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/package.py +19 -0
  6. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/solutions.py +10 -3
  7. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/LICENSE +0 -0
  8. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/README.md +0 -0
  9. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/__init__.py +0 -0
  10. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/annotations.py +0 -0
  11. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/autoenum.py +0 -0
  12. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/__init__.py +0 -0
  13. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/builder.py +0 -0
  14. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/cd.py +0 -0
  15. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/checkers.py +0 -0
  16. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/compile.py +0 -0
  17. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/conftest.py +0 -0
  18. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/contest/__init__.py +0 -0
  19. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/contest/build_contest_statements.py +0 -0
  20. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/contest/contest_package.py +0 -0
  21. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/contest/contest_utils.py +0 -0
  22. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/contest/main.py +0 -0
  23. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/contest/schema.py +0 -0
  24. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/contest/statements.py +0 -0
  25. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/creation.py +0 -0
  26. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/deferred.py +0 -0
  27. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/download.py +0 -0
  28. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/environment.py +0 -0
  29. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/extensions.py +0 -0
  30. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/generators.py +0 -0
  31. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/generators_test.py +0 -0
  32. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/packaging/boca/extension.py +0 -0
  33. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/packaging/boca/packager.py +0 -0
  34. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/packaging/contest_main.py +0 -0
  35. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/packaging/main.py +0 -0
  36. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/packaging/packager.py +0 -0
  37. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/packaging/polygon/packager.py +0 -0
  38. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/packaging/polygon/test.py +0 -0
  39. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/packaging/polygon/xml_schema.py +0 -0
  40. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/presets/__init__.py +0 -0
  41. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/presets/fetch.py +0 -0
  42. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/presets/lock_schema.py +0 -0
  43. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/presets/schema.py +0 -0
  44. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/sanitizers/warning_stack.py +0 -0
  45. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/schema.py +0 -0
  46. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/setter_config.py +0 -0
  47. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/solutions_test.py +0 -0
  48. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/statements/__init__.py +0 -0
  49. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/statements/build_statements.py +0 -0
  50. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/statements/builders.py +0 -0
  51. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/statements/joiners.py +0 -0
  52. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/statements/latex.py +0 -0
  53. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/statements/latex_jinja.py +0 -0
  54. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/statements/schema.py +0 -0
  55. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/stresses.py +0 -0
  56. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/stressing/__init__.py +0 -0
  57. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/stressing/finder_parser.py +0 -0
  58. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/stressing/generator_parser.py +0 -0
  59. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/testcases.py +0 -0
  60. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/ui/__init__.py +0 -0
  61. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/ui/captured_log.py +0 -0
  62. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/ui/css/app.tcss +0 -0
  63. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/ui/main.py +0 -0
  64. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/ui/run.py +0 -0
  65. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/validators.py +0 -0
  66. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/box/validators_test.py +0 -0
  67. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/checker.py +0 -0
  68. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/clone.py +0 -0
  69. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/config.py +0 -0
  70. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/conftest.py +0 -0
  71. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/console.py +0 -0
  72. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/create.py +0 -0
  73. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/edit.py +0 -0
  74. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/__init__.py +0 -0
  75. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/caching.py +0 -0
  76. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/conftest.py +0 -0
  77. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/__init__.py +0 -0
  78. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/cacher.py +0 -0
  79. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/digester.py +0 -0
  80. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/sandbox.py +0 -0
  81. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/sandboxes/__init__.py +0 -0
  82. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/sandboxes/isolate.py +0 -0
  83. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
  84. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/sandboxes/timeit.py +0 -0
  85. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/storage.py +0 -0
  86. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/test.py +0 -0
  87. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/judge/testiso.py +0 -0
  88. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/steps.py +0 -0
  89. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/steps_with_caching.py +0 -0
  90. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading/steps_with_caching_run_test.py +0 -0
  91. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/grading_utils.py +0 -0
  92. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/hydration.py +0 -0
  93. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/main.py +0 -0
  94. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/metadata.py +0 -0
  95. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/providers/__init__.py +0 -0
  96. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/providers/codeforces.py +0 -0
  97. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/providers/provider.py +0 -0
  98. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/checkers/boilerplate.cpp +0 -0
  99. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/default_config.json +0 -0
  100. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/default_setter_config.mac.yml +0 -0
  101. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/default_setter_config.yml +0 -0
  102. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/envs/default.rbx.yml +0 -0
  103. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/envs/isolate.rbx.yml +0 -0
  104. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/checker.sh +0 -0
  105. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/compare +0 -0
  106. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/compile/c +0 -0
  107. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/compile/cc +0 -0
  108. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/compile/cpp +0 -0
  109. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/compile/java +0 -0
  110. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/compile/kt +0 -0
  111. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/compile/pas +0 -0
  112. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/compile/py2 +0 -0
  113. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/compile/py3 +0 -0
  114. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/run/c +0 -0
  115. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/run/cc +0 -0
  116. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/run/cpp +0 -0
  117. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/run/java +0 -0
  118. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/run/kt +0 -0
  119. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/run/py2 +0 -0
  120. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/packagers/boca/run/py3 +0 -0
  121. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
  122. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
  123. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/contest/statement/olymp.sty +0 -0
  124. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/contest/statement/template.rbx.tex +0 -0
  125. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/preset.rbx.yml +0 -0
  126. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/.gitignore +0 -0
  127. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/gen.cpp +0 -0
  128. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
  129. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/random.py +0 -0
  130. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/random.txt +0 -0
  131. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
  132. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/sols/slow.cpp +0 -0
  133. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/sols/wa.cpp +0 -0
  134. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/statement/olymp.sty +0 -0
  135. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/statement/projecao.png +0 -0
  136. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
  137. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/statement/template.rbx.tex +0 -0
  138. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/tests/samples/000.in +0 -0
  139. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/tests/samples/001.in +0 -0
  140. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/validator.cpp +0 -0
  141. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
  142. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/resources/templates/template.cpp +0 -0
  143. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/run.py +0 -0
  144. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/schema.py +0 -0
  145. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/submit.py +0 -0
  146. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/submitors/__init__.py +0 -0
  147. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/submitors/codeforces.py +0 -0
  148. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/submitors/submitor.py +0 -0
  149. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/test.py +0 -0
  150. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testcase.py +0 -0
  151. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testcase_rendering.py +0 -0
  152. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/gen1.cpp +0 -0
  153. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/gen2.cpp +0 -0
  154. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/genScript.py +0 -0
  155. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/hard-tle.sol.cpp +0 -0
  156. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/ole.cpp +0 -0
  157. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/problem.rbx.yml +0 -0
  158. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/re.sol.cpp +0 -0
  159. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/sol.cpp +0 -0
  160. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/tests/1.in +0 -0
  161. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/tle-and-incorrect.sol.cpp +0 -0
  162. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/tle.sol.cpp +0 -0
  163. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/validator.cpp +0 -0
  164. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/box1/wa.sol.cpp +0 -0
  165. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/caching/executable.py +0 -0
  166. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testdata/compatible +0 -0
  167. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/testing_utils.py +0 -0
  168. {rbx_cp-0.5.21 → rbx_cp-0.5.23}/rbx/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rbx.cp
3
- Version: 0.5.21
3
+ Version: 0.5.23
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.21"
3
+ version = "0.5.23"
4
4
  description = ""
5
5
  packages = [
6
6
  {include = "rbx"}
@@ -1,7 +1,6 @@
1
1
  import pathlib
2
2
  import re
3
3
  import shlex
4
- import tempfile
5
4
  from enum import Enum
6
5
  from pathlib import PosixPath
7
6
  from typing import List, Optional
@@ -126,9 +125,9 @@ def _add_warning_pragmas(code: str) -> str:
126
125
  def _ignore_warning_in_cxx_input(input: GradingFileInput):
127
126
  if input.src is None or input.src.suffix not in ('.cpp', '.c', '.cc', '.cxx'):
128
127
  return
129
- tmp_path = PosixPath(tempfile.mkstemp()[1])
130
- tmp_path.write_text(_add_warning_pragmas(input.src.read_text()))
131
- input.src = tmp_path
128
+ preprocessed_path = package.get_problem_preprocessed_path(input.src)
129
+ preprocessed_path.write_text(_add_warning_pragmas(input.src.read_text()))
130
+ input.src = preprocessed_path
132
131
 
133
132
 
134
133
  # Compile code item and return its digest in the storage.
@@ -3,7 +3,6 @@ from gevent import monkey
3
3
 
4
4
  monkey.patch_all()
5
5
 
6
-
7
6
  import asyncio
8
7
  import tempfile
9
8
  import shlex
@@ -158,6 +158,25 @@ def get_problem_iruns_dir(root: pathlib.Path = pathlib.Path()) -> pathlib.Path:
158
158
  return iruns_dir
159
159
 
160
160
 
161
+ def get_problem_preprocessed_path(
162
+ item: pathlib.Path, root: pathlib.Path = pathlib.Path()
163
+ ) -> pathlib.Path:
164
+ root_resolved = root.resolve()
165
+ item_resolved = item.resolve()
166
+ if not item_resolved.is_relative_to(root_resolved):
167
+ console.console.print(
168
+ f'[error]Item [item]{item}[/item] is not under the root [item]{root}[/item].[/error]'
169
+ )
170
+ raise typer.Exit(1)
171
+ path = (
172
+ get_problem_cache_dir(root)
173
+ / '.preprocessed'
174
+ / item_resolved.relative_to(root_resolved)
175
+ )
176
+ path.parent.mkdir(parents=True, exist_ok=True)
177
+ return path
178
+
179
+
161
180
  @functools.cache
162
181
  def get_cache_storage(root: pathlib.Path = pathlib.Path()) -> Storage:
163
182
  return FilesystemStorage(get_problem_storage_dir(root))
@@ -955,9 +955,16 @@ def _print_limits(limits: Dict[str, Limits]):
955
955
  )
956
956
  for lang, limit in limits.items():
957
957
  console.console.print(f'[bold][status]{lang}[/status][/bold]')
958
- console.console.print(f'Time: {get_formatted_time(limit.time or int('+inf'))}')
959
- memory = limit.memory * 1024 * 1024 if limit.memory is not None else int('+inf')
960
- console.console.print(f'Memory: {get_formatted_memory(memory)}')
958
+ time = (
959
+ '<No time limit>' if limit.time is None else get_formatted_time(limit.time)
960
+ )
961
+ memory = (
962
+ '<No memory limit>'
963
+ if limit.memory is None
964
+ else get_formatted_memory(limit.memory * 1024 * 1024)
965
+ )
966
+ console.console.print(f'Time: {time}')
967
+ console.console.print(f'Memory: {memory}')
961
968
  if limit.isDoubleTL:
962
969
  console.console.print('[warning]Running with 2*TL[/warning]')
963
970
  console.console.print()
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