rbx.cp 0.5.14__tar.gz → 0.5.16__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 (163) hide show
  1. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/PKG-INFO +1 -1
  2. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/pyproject.toml +1 -1
  3. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/generators.py +1 -7
  4. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/packaging/polygon/packager.py +2 -2
  5. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/schema.py +9 -9
  6. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/solutions.py +12 -2
  7. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/sandboxes/timeit.py +3 -3
  8. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/LICENSE +0 -0
  9. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/README.md +0 -0
  10. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/__init__.py +0 -0
  11. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/annotations.py +0 -0
  12. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/autoenum.py +0 -0
  13. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/__init__.py +0 -0
  14. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/builder.py +0 -0
  15. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/cd.py +0 -0
  16. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/checkers.py +0 -0
  17. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/code.py +0 -0
  18. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/compile.py +0 -0
  19. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/conftest.py +0 -0
  20. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/contest/__init__.py +0 -0
  21. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/contest/build_contest_statements.py +0 -0
  22. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/contest/contest_package.py +0 -0
  23. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/contest/contest_utils.py +0 -0
  24. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/contest/main.py +0 -0
  25. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/contest/schema.py +0 -0
  26. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/contest/statements.py +0 -0
  27. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/creation.py +0 -0
  28. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/download.py +0 -0
  29. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/environment.py +0 -0
  30. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/extensions.py +0 -0
  31. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/generators_test.py +0 -0
  32. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/main.py +0 -0
  33. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/package.py +0 -0
  34. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/packaging/boca/extension.py +0 -0
  35. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/packaging/boca/packager.py +0 -0
  36. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/packaging/contest_main.py +0 -0
  37. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/packaging/main.py +0 -0
  38. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/packaging/packager.py +0 -0
  39. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/packaging/polygon/test.py +0 -0
  40. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/packaging/polygon/xml_schema.py +0 -0
  41. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/presets/__init__.py +0 -0
  42. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/presets/fetch.py +0 -0
  43. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/presets/lock_schema.py +0 -0
  44. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/presets/schema.py +0 -0
  45. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/solutions_test.py +0 -0
  46. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/statements/__init__.py +0 -0
  47. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/statements/build_statements.py +0 -0
  48. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/statements/builders.py +0 -0
  49. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/statements/joiners.py +0 -0
  50. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/statements/latex.py +0 -0
  51. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/statements/latex_jinja.py +0 -0
  52. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/statements/schema.py +0 -0
  53. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/stresses.py +0 -0
  54. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/stressing/__init__.py +0 -0
  55. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/stressing/finder_parser.py +0 -0
  56. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/stressing/generator_parser.py +0 -0
  57. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/testcases.py +0 -0
  58. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/ui/__init__.py +0 -0
  59. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/ui/captured_log.py +0 -0
  60. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/ui/css/app.tcss +0 -0
  61. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/ui/main.py +0 -0
  62. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/ui/run.py +0 -0
  63. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/validators.py +0 -0
  64. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/box/validators_test.py +0 -0
  65. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/checker.py +0 -0
  66. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/clone.py +0 -0
  67. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/config.py +0 -0
  68. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/conftest.py +0 -0
  69. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/console.py +0 -0
  70. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/create.py +0 -0
  71. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/edit.py +0 -0
  72. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/__init__.py +0 -0
  73. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/caching.py +0 -0
  74. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/conftest.py +0 -0
  75. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/__init__.py +0 -0
  76. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/cacher.py +0 -0
  77. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/digester.py +0 -0
  78. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/sandbox.py +0 -0
  79. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/sandboxes/__init__.py +0 -0
  80. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/sandboxes/isolate.py +0 -0
  81. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
  82. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/storage.py +0 -0
  83. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/test.py +0 -0
  84. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/judge/testiso.py +0 -0
  85. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/steps.py +0 -0
  86. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/steps_with_caching.py +0 -0
  87. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading/steps_with_caching_run_test.py +0 -0
  88. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/grading_utils.py +0 -0
  89. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/hydration.py +0 -0
  90. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/main.py +0 -0
  91. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/metadata.py +0 -0
  92. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/providers/__init__.py +0 -0
  93. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/providers/codeforces.py +0 -0
  94. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/providers/provider.py +0 -0
  95. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/checkers/boilerplate.cpp +0 -0
  96. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/default_config.json +0 -0
  97. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/envs/default.rbx.yml +0 -0
  98. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/envs/isolate.rbx.yml +0 -0
  99. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/checker.sh +0 -0
  100. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/compare +0 -0
  101. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/compile/c +0 -0
  102. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/compile/cc +0 -0
  103. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/compile/cpp +0 -0
  104. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/compile/java +0 -0
  105. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/compile/kt +0 -0
  106. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/compile/pas +0 -0
  107. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/compile/py2 +0 -0
  108. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/compile/py3 +0 -0
  109. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/run/c +0 -0
  110. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/run/cc +0 -0
  111. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/run/cpp +0 -0
  112. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/run/java +0 -0
  113. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/run/kt +0 -0
  114. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/run/py2 +0 -0
  115. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/packagers/boca/run/py3 +0 -0
  116. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
  117. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
  118. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/contest/statement/olymp.sty +0 -0
  119. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/contest/statement/template.rbx.tex +0 -0
  120. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/preset.rbx.yml +0 -0
  121. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/.gitignore +0 -0
  122. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/gen.cpp +0 -0
  123. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
  124. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/random.py +0 -0
  125. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/random.txt +0 -0
  126. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
  127. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/sols/slow.cpp +0 -0
  128. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/sols/wa.cpp +0 -0
  129. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/statement/olymp.sty +0 -0
  130. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/statement/projecao.png +0 -0
  131. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
  132. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/statement/template.rbx.tex +0 -0
  133. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/tests/samples/000.in +0 -0
  134. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/tests/samples/001.in +0 -0
  135. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/validator.cpp +0 -0
  136. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
  137. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/resources/templates/template.cpp +0 -0
  138. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/run.py +0 -0
  139. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/schema.py +0 -0
  140. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/submit.py +0 -0
  141. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/submitors/__init__.py +0 -0
  142. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/submitors/codeforces.py +0 -0
  143. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/submitors/submitor.py +0 -0
  144. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/test.py +0 -0
  145. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testcase.py +0 -0
  146. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testcase_rendering.py +0 -0
  147. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/gen1.cpp +0 -0
  148. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/gen2.cpp +0 -0
  149. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/genScript.py +0 -0
  150. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/hard-tle.sol.cpp +0 -0
  151. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/ole.cpp +0 -0
  152. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/problem.rbx.yml +0 -0
  153. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/re.sol.cpp +0 -0
  154. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/sol.cpp +0 -0
  155. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/tests/1.in +0 -0
  156. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/tle-and-incorrect.sol.cpp +0 -0
  157. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/tle.sol.cpp +0 -0
  158. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/validator.cpp +0 -0
  159. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/box1/wa.sol.cpp +0 -0
  160. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/caching/executable.py +0 -0
  161. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testdata/compatible +0 -0
  162. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/testing_utils.py +0 -0
  163. {rbx_cp-0.5.14 → rbx_cp-0.5.16}/rbx/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rbx.cp
3
- Version: 0.5.14
3
+ Version: 0.5.16
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.14"
3
+ version = "0.5.16"
4
4
  description = ""
5
5
  packages = [
6
6
  {include = "rbx"}
@@ -114,11 +114,8 @@ def generate_output_for_testcase(
114
114
  if main_solution is None:
115
115
  return
116
116
 
117
- timelimit = pkg.timelimit_for_language(main_solution.language)
117
+ # Obey no limits when generating testcases.
118
118
  sandbox = EnvironmentSandbox()
119
- sandbox.timeLimit = timelimit * 2
120
- sandbox.wallTimeLimit = timelimit * 2
121
- sandbox.memoryLimit = pkg.memorylimit_for_language(main_solution.language)
122
119
  sandbox.fileSizeLimit = pkg.outputLimit
123
120
  extra_config = ExecutionConfig(sandbox=sandbox)
124
121
 
@@ -146,9 +143,6 @@ def generate_output_for_testcase(
146
143
  if run_log is not None:
147
144
  console.console.print(f'[error]Summary:[/error] {run_log.get_summary()}')
148
145
  checker_result = checkers.check_with_no_output(run_log)
149
- console.console.print(
150
- f'[warning]Time: [item]{run_log.time:.2f}s[/item][/warning]',
151
- )
152
146
  console.console.print(
153
147
  f'[warning]Verdict: [item]{checker_result.outcome.value}[/item][/warning]',
154
148
  )
@@ -106,8 +106,8 @@ class PolygonPackager(BasePackager):
106
106
 
107
107
  return polygon_schema.Testset(
108
108
  name='tests',
109
- timelimit=pkg.timeLimit,
110
- memorylimit=pkg.memoryLimit * 1024 * 1024,
109
+ timelimit=pkg.timelimit_for_language(None),
110
+ memorylimit=pkg.memorylimit_for_language(None) * 1024 * 1024,
111
111
  size=len(testcases),
112
112
  inputPattern='tests/%03d',
113
113
  answerPattern='tests/%03d.a',
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import os
3
4
  import pathlib
4
5
  from typing import Dict, List, Optional, Union
5
6
 
@@ -350,15 +351,14 @@ that is correct and used as reference -- and should have the `accepted` outcome.
350
351
 
351
352
  def timelimit_for_language(self, language: Optional[str]) -> int:
352
353
  res = self.timeLimit
353
- if language is None:
354
- return res
355
- if language not in self.modifiers:
356
- return res
357
- modifier = self.modifiers[language]
358
- if modifier.time is not None:
359
- return modifier.time
360
- if modifier.timeMultiplier is not None:
361
- return int(res * float(modifier.timeMultiplier))
354
+ if language is not None and language in self.modifiers:
355
+ modifier = self.modifiers[language]
356
+ if modifier.time is not None:
357
+ res = modifier.time
358
+ if modifier.timeMultiplier is not None:
359
+ res = int(res * float(modifier.timeMultiplier))
360
+ if 'RBX_TIME_MULTIPLIER' in os.environ:
361
+ res = int(res * float(os.environ['RBX_TIME_MULTIPLIER']))
362
362
  return res
363
363
 
364
364
  def memorylimit_for_language(self, language: Optional[str]) -> int:
@@ -491,14 +491,24 @@ def _get_evals_memory_in_mb(evals: List[Evaluation]) -> int:
491
491
  return max(int(eval.log.memory or 0) // (1024 * 1024) for eval in evals)
492
492
 
493
493
 
494
+ def _get_evals_memory_in_bytes(evals: List[Evaluation]) -> int:
495
+ if not evals:
496
+ return 0
497
+ return max(int(eval.log.memory or 0) for eval in evals)
498
+
499
+
494
500
  def get_evals_formatted_time(evals: List[Evaluation]) -> str:
495
501
  max_time = _get_evals_time_in_ms(evals)
496
502
  return f'{max_time} ms'
497
503
 
498
504
 
499
505
  def get_evals_formatted_memory(evals: List[Evaluation]) -> str:
500
- max_memory = _get_evals_memory_in_mb(evals)
501
- return f'{max_memory} MiB'
506
+ max_memory = _get_evals_memory_in_bytes(evals)
507
+ if max_memory < 1024 * 1024:
508
+ if max_memory < 1024:
509
+ return f'{max_memory} B'
510
+ return f'{max_memory // 1024} KiB'
511
+ return f'{max_memory // (1024 * 1024)} MiB'
502
512
 
503
513
 
504
514
  def _print_solution_outcome(
@@ -5,7 +5,6 @@ import resource
5
5
  import signal
6
6
  import stat
7
7
  import sys
8
- from math import ceil
9
8
  from time import monotonic
10
9
  from typing import List, Optional
11
10
 
@@ -58,8 +57,9 @@ def parse_opts() -> Options:
58
57
 
59
58
 
60
59
  def get_memory_usage(ru: resource.struct_rusage) -> int:
61
- used = ceil((ru.ru_maxrss + ru.ru_ixrss + ru.ru_idrss + ru.ru_isrss) / 1024)
62
- return used
60
+ if sys.platform == 'darwin':
61
+ return ru.ru_maxrss // 1024 + ru.ru_ixrss
62
+ return ru.ru_maxrss + ru.ru_ixrss + ru.ru_idrss + ru.ru_isrss
63
63
 
64
64
 
65
65
  def get_cpu_time(ru: resource.struct_rusage) -> float:
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