rbx.cp 0.5.22__tar.gz → 0.5.24__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.22 → rbx_cp-0.5.24}/PKG-INFO +1 -1
  2. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/pyproject.toml +1 -1
  3. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/code.py +27 -8
  4. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/main.py +0 -1
  5. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/package.py +15 -0
  6. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/LICENSE +0 -0
  7. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/README.md +0 -0
  8. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/__init__.py +0 -0
  9. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/annotations.py +0 -0
  10. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/autoenum.py +0 -0
  11. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/__init__.py +0 -0
  12. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/builder.py +0 -0
  13. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/cd.py +0 -0
  14. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/checkers.py +0 -0
  15. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/compile.py +0 -0
  16. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/conftest.py +0 -0
  17. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/contest/__init__.py +0 -0
  18. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/contest/build_contest_statements.py +0 -0
  19. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/contest/contest_package.py +0 -0
  20. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/contest/contest_utils.py +0 -0
  21. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/contest/main.py +0 -0
  22. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/contest/schema.py +0 -0
  23. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/contest/statements.py +0 -0
  24. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/creation.py +0 -0
  25. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/deferred.py +0 -0
  26. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/download.py +0 -0
  27. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/environment.py +0 -0
  28. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/extensions.py +0 -0
  29. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/generators.py +0 -0
  30. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/generators_test.py +0 -0
  31. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/packaging/boca/extension.py +0 -0
  32. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/packaging/boca/packager.py +0 -0
  33. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/packaging/contest_main.py +0 -0
  34. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/packaging/main.py +0 -0
  35. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/packaging/packager.py +0 -0
  36. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/packaging/polygon/packager.py +0 -0
  37. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/packaging/polygon/test.py +0 -0
  38. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/packaging/polygon/xml_schema.py +0 -0
  39. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/presets/__init__.py +0 -0
  40. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/presets/fetch.py +0 -0
  41. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/presets/lock_schema.py +0 -0
  42. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/presets/schema.py +0 -0
  43. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/sanitizers/warning_stack.py +0 -0
  44. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/schema.py +0 -0
  45. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/setter_config.py +0 -0
  46. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/solutions.py +0 -0
  47. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/solutions_test.py +0 -0
  48. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/statements/__init__.py +0 -0
  49. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/statements/build_statements.py +0 -0
  50. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/statements/builders.py +0 -0
  51. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/statements/joiners.py +0 -0
  52. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/statements/latex.py +0 -0
  53. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/statements/latex_jinja.py +0 -0
  54. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/statements/schema.py +0 -0
  55. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/stresses.py +0 -0
  56. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/stressing/__init__.py +0 -0
  57. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/stressing/finder_parser.py +0 -0
  58. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/stressing/generator_parser.py +0 -0
  59. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/testcases.py +0 -0
  60. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/ui/__init__.py +0 -0
  61. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/ui/captured_log.py +0 -0
  62. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/ui/css/app.tcss +0 -0
  63. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/ui/main.py +0 -0
  64. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/ui/run.py +0 -0
  65. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/validators.py +0 -0
  66. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/box/validators_test.py +0 -0
  67. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/checker.py +0 -0
  68. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/clone.py +0 -0
  69. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/config.py +0 -0
  70. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/conftest.py +0 -0
  71. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/console.py +0 -0
  72. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/create.py +0 -0
  73. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/edit.py +0 -0
  74. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/__init__.py +0 -0
  75. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/caching.py +0 -0
  76. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/conftest.py +0 -0
  77. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/__init__.py +0 -0
  78. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/cacher.py +0 -0
  79. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/digester.py +0 -0
  80. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/sandbox.py +0 -0
  81. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/sandboxes/__init__.py +0 -0
  82. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/sandboxes/isolate.py +0 -0
  83. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
  84. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/sandboxes/timeit.py +0 -0
  85. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/storage.py +0 -0
  86. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/test.py +0 -0
  87. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/judge/testiso.py +0 -0
  88. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/steps.py +0 -0
  89. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/steps_with_caching.py +0 -0
  90. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading/steps_with_caching_run_test.py +0 -0
  91. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/grading_utils.py +0 -0
  92. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/hydration.py +0 -0
  93. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/main.py +0 -0
  94. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/metadata.py +0 -0
  95. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/providers/__init__.py +0 -0
  96. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/providers/codeforces.py +0 -0
  97. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/providers/provider.py +0 -0
  98. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/checkers/boilerplate.cpp +0 -0
  99. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/default_config.json +0 -0
  100. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/default_setter_config.mac.yml +0 -0
  101. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/default_setter_config.yml +0 -0
  102. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/envs/default.rbx.yml +0 -0
  103. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/envs/isolate.rbx.yml +0 -0
  104. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/checker.sh +0 -0
  105. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/compare +0 -0
  106. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/compile/c +0 -0
  107. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/compile/cc +0 -0
  108. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/compile/cpp +0 -0
  109. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/compile/java +0 -0
  110. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/compile/kt +0 -0
  111. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/compile/pas +0 -0
  112. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/compile/py2 +0 -0
  113. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/compile/py3 +0 -0
  114. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/run/c +0 -0
  115. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/run/cc +0 -0
  116. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/run/cpp +0 -0
  117. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/run/java +0 -0
  118. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/run/kt +0 -0
  119. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/run/py2 +0 -0
  120. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/packagers/boca/run/py3 +0 -0
  121. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
  122. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
  123. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/contest/statement/olymp.sty +0 -0
  124. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/contest/statement/template.rbx.tex +0 -0
  125. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/preset.rbx.yml +0 -0
  126. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/.gitignore +0 -0
  127. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/gen.cpp +0 -0
  128. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
  129. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/random.py +0 -0
  130. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/random.txt +0 -0
  131. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
  132. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/sols/slow.cpp +0 -0
  133. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/sols/wa.cpp +0 -0
  134. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/statement/olymp.sty +0 -0
  135. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/statement/projecao.png +0 -0
  136. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
  137. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/statement/template.rbx.tex +0 -0
  138. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/tests/samples/000.in +0 -0
  139. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/tests/samples/001.in +0 -0
  140. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/validator.cpp +0 -0
  141. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
  142. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/resources/templates/template.cpp +0 -0
  143. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/run.py +0 -0
  144. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/schema.py +0 -0
  145. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/submit.py +0 -0
  146. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/submitors/__init__.py +0 -0
  147. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/submitors/codeforces.py +0 -0
  148. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/submitors/submitor.py +0 -0
  149. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/test.py +0 -0
  150. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testcase.py +0 -0
  151. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testcase_rendering.py +0 -0
  152. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/gen1.cpp +0 -0
  153. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/gen2.cpp +0 -0
  154. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/genScript.py +0 -0
  155. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/hard-tle.sol.cpp +0 -0
  156. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/ole.cpp +0 -0
  157. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/problem.rbx.yml +0 -0
  158. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/re.sol.cpp +0 -0
  159. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/sol.cpp +0 -0
  160. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/tests/1.in +0 -0
  161. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/tle-and-incorrect.sol.cpp +0 -0
  162. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/tle.sol.cpp +0 -0
  163. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/validator.cpp +0 -0
  164. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/box1/wa.sol.cpp +0 -0
  165. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/caching/executable.py +0 -0
  166. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testdata/compatible +0 -0
  167. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/testing_utils.py +0 -0
  168. {rbx_cp-0.5.22 → rbx_cp-0.5.24}/rbx/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rbx.cp
3
- Version: 0.5.22
3
+ Version: 0.5.24
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.22"
3
+ version = "0.5.24"
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
@@ -123,12 +122,32 @@ def _add_warning_pragmas(code: str) -> str:
123
122
  )
124
123
 
125
124
 
125
+ def _add_warning_pragmas_around(code: str) -> str:
126
+ flags = CXX_WARNING_FLAGS.split()
127
+ pragma_lines = '\n'.join(
128
+ [
129
+ f'#pragma GCC diagnostic ignored "{flag}"'
130
+ for flag in flags
131
+ if not flag.startswith('-Wno-')
132
+ ]
133
+ )
134
+
135
+ return (
136
+ '#pragma GCC diagnostic push\n'
137
+ + pragma_lines
138
+ + '\n'
139
+ + code
140
+ + '\n'
141
+ + '#pragma GCC diagnostic pop\n'
142
+ )
143
+
144
+
126
145
  def _ignore_warning_in_cxx_input(input: GradingFileInput):
127
- if input.src is None or input.src.suffix not in ('.cpp', '.c', '.cc', '.cxx'):
146
+ if input.src is None or input.src.suffix not in ('.h', '.hpp'):
128
147
  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
148
+ preprocessed_path = package.get_problem_preprocessed_path(input.src)
149
+ preprocessed_path.write_text(_add_warning_pragmas_around(input.src.read_text()))
150
+ input.src = preprocessed_path
132
151
 
133
152
 
134
153
  # Compile code item and return its digest in the storage.
@@ -186,9 +205,6 @@ def compile_item(
186
205
  GradingFileInput(src=generator_path, dest=PosixPath(file_mapping.compilable))
187
206
  )
188
207
 
189
- for input in artifacts.inputs:
190
- _ignore_warning_in_cxx_input(input)
191
-
192
208
  artifacts.outputs.append(
193
209
  GradingFileOutput(
194
210
  src=PosixPath(file_mapping.executable),
@@ -197,6 +213,9 @@ def compile_item(
197
213
  )
198
214
  )
199
215
 
216
+ for input in artifacts.inputs:
217
+ _ignore_warning_in_cxx_input(input)
218
+
200
219
  if not steps_with_caching.compile(
201
220
  commands,
202
221
  params=sandbox_params,
@@ -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,21 @@ 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
+
167
+ if not item_resolved.is_relative_to(root_resolved):
168
+ final_path = pathlib.Path('remote') / item_resolved.name
169
+ else:
170
+ final_path = item_resolved.relative_to(root_resolved)
171
+ path = get_problem_cache_dir(root) / '.preprocessed' / final_path
172
+ path.parent.mkdir(parents=True, exist_ok=True)
173
+ return path
174
+
175
+
161
176
  @functools.cache
162
177
  def get_cache_storage(root: pathlib.Path = pathlib.Path()) -> Storage:
163
178
  return FilesystemStorage(get_problem_storage_dir(root))
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes