rbx.cp 0.18.6__tar.gz → 0.18.7__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 (230) hide show
  1. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/PKG-INFO +1 -1
  2. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/pyproject.toml +1 -1
  3. rbx_cp-0.18.7/rbx/__version__.py +1 -0
  4. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/extension.py +1 -0
  5. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/packager.py +20 -19
  6. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/py2 +1 -1
  7. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/py3 +12 -10
  8. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/py3 +2 -2
  9. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/py3 +4 -4
  10. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/preset.rbx.yml +1 -1
  11. rbx_cp-0.18.6/rbx/__version__.py +0 -1
  12. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/LICENSE +0 -0
  13. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/README.md +0 -0
  14. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/__init__.py +0 -0
  15. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/annotations.py +0 -0
  16. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/autoenum.py +0 -0
  17. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/__init__.py +0 -0
  18. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/builder.py +0 -0
  19. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/cd.py +0 -0
  20. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/checkers.py +0 -0
  21. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/cli.py +0 -0
  22. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/code.py +0 -0
  23. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/compile.py +0 -0
  24. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/__init__.py +0 -0
  25. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/build_contest_statements.py +0 -0
  26. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/contest_package.py +0 -0
  27. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/contest_utils.py +0 -0
  28. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/main.py +0 -0
  29. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/schema.py +0 -0
  30. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/statements.py +0 -0
  31. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/creation.py +0 -0
  32. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/deferred.py +0 -0
  33. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/download.py +0 -0
  34. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/dump_schemas.py +0 -0
  35. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/environment.py +0 -0
  36. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/exception.py +0 -0
  37. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/extensions.py +0 -0
  38. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/fields.py +0 -0
  39. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/formatting.py +0 -0
  40. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/generators.py +0 -0
  41. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/git_utils.py +0 -0
  42. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/global_package.py +0 -0
  43. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/header.py +0 -0
  44. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/lang.py +0 -0
  45. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/lazy_importing_main.py +0 -0
  46. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/limits_info.py +0 -0
  47. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/linting.py +0 -0
  48. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/main.py +0 -0
  49. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/naming.py +0 -0
  50. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/package.py +0 -0
  51. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/__init__.py +0 -0
  52. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/__init__.py +0 -0
  53. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/boca_language_utils.py +0 -0
  54. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/boca_outcome_utils.py +0 -0
  55. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/contest_main.py +0 -0
  56. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/importer.py +0 -0
  57. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/main.py +0 -0
  58. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/moj/packager.py +0 -0
  59. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/packager.py +0 -0
  60. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/pkg/packager.py +0 -0
  61. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/importer.py +0 -0
  62. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/packager.py +0 -0
  63. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/polygon_api.py +0 -0
  64. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/test.py +0 -0
  65. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/upload.py +0 -0
  66. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/xml_schema.py +0 -0
  67. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/presets/__init__.py +0 -0
  68. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/presets/fetch.py +0 -0
  69. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/presets/lock_schema.py +0 -0
  70. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/presets/schema.py +0 -0
  71. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/remote.py +0 -0
  72. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/retries.py +0 -0
  73. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/sanitizers/issue_stack.py +0 -0
  74. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/sanitizers/warning_stack.py +0 -0
  75. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/schema.py +0 -0
  76. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/setter_config.py +0 -0
  77. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/solutions.py +0 -0
  78. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/state.py +0 -0
  79. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/__init__.py +0 -0
  80. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/build_statements.py +0 -0
  81. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/builders.py +0 -0
  82. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/expander.py +0 -0
  83. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/joiners.py +0 -0
  84. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/latex.py +0 -0
  85. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/latex_jinja.py +0 -0
  86. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/schema.py +0 -0
  87. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stats.py +0 -0
  88. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stresses.py +0 -0
  89. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stressing/__init__.py +0 -0
  90. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stressing/finder_parser.py +0 -0
  91. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stressing/generator_parser.py +0 -0
  92. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tasks.py +0 -0
  93. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testcase_extractors.py +0 -0
  94. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testcase_utils.py +0 -0
  95. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testcases/__init__.py +0 -0
  96. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testcases/main.py +0 -0
  97. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testing/__init__.py +0 -0
  98. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testing/testing_package.py +0 -0
  99. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testing/testing_preset.py +0 -0
  100. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testing/testing_shared.py +0 -0
  101. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/timing.py +0 -0
  102. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/__init__.py +0 -0
  103. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/__init__.py +0 -0
  104. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/debug_utils.py +0 -0
  105. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/main.py +0 -0
  106. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/manual_scrape.py +0 -0
  107. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/scrape.py +0 -0
  108. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/scraper.py +0 -0
  109. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/converter.py +0 -0
  110. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/main.py +0 -0
  111. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/__init__.py +0 -0
  112. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/captured_log.py +0 -0
  113. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/css/app.tcss +0 -0
  114. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/main.py +0 -0
  115. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/__init__.py +0 -0
  116. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/build.py +0 -0
  117. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/command.py +0 -0
  118. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/differ.py +0 -0
  119. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/error.py +0 -0
  120. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/rich_log_modal.py +0 -0
  121. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/run.py +0 -0
  122. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/run_explorer.py +0 -0
  123. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/run_test_explorer.py +0 -0
  124. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/selector.py +0 -0
  125. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/test_explorer.py +0 -0
  126. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/utils/__init__.py +0 -0
  127. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/utils/run_ui.py +0 -0
  128. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/__init__.py +0 -0
  129. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/diff_box.py +0 -0
  130. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/file_log.py +0 -0
  131. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/interaction_box.py +0 -0
  132. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/rich_log_box.py +0 -0
  133. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/test_output_box.py +0 -0
  134. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/two_sided_test_output_box.py +0 -0
  135. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/unit.py +0 -0
  136. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/validators.py +0 -0
  137. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/config.py +0 -0
  138. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/console.py +0 -0
  139. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/__init__.py +0 -0
  140. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/caching.py +0 -0
  141. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/debug_context.py +0 -0
  142. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/grading_context.py +0 -0
  143. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/__init__.py +0 -0
  144. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/cacher.py +0 -0
  145. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/digester.py +0 -0
  146. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/program.py +0 -0
  147. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/sandbox.py +0 -0
  148. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/sandboxes/__init__.py +0 -0
  149. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
  150. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/sandboxes/tee.py +0 -0
  151. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/storage.py +0 -0
  152. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/limits.py +0 -0
  153. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/profiling.py +0 -0
  154. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/steps.py +0 -0
  155. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/steps_with_caching.py +0 -0
  156. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/checkers/boilerplate.cpp +0 -0
  157. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/checkers/noop.cpp +0 -0
  158. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/default_config.json +0 -0
  159. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/default_setter_config.mac.yml +0 -0
  160. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/default_setter_config.yml +0 -0
  161. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/checker.sh +0 -0
  162. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compare.sh +0 -0
  163. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/c +0 -0
  164. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/cc +0 -0
  165. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/cpp +0 -0
  166. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/java +0 -0
  167. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/kt +0 -0
  168. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/c +0 -0
  169. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/cc +0 -0
  170. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/cpp +0 -0
  171. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/java +0 -0
  172. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/kt +0 -0
  173. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/py2 +0 -0
  174. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactor_compile.sh +0 -0
  175. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactor_run.sh +0 -0
  176. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/bkp +0 -0
  177. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/c +0 -0
  178. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/cc +0 -0
  179. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/cpp +0 -0
  180. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/java +0 -0
  181. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/kt +0 -0
  182. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/py2 +0 -0
  183. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/safeexec.c +0 -0
  184. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/safeexec_compile.sh +0 -0
  185. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/c/compile.sh +0 -0
  186. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/c/prep.sh +0 -0
  187. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/c/run.sh +0 -0
  188. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/compare.sh +0 -0
  189. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/cpp/compile.sh +0 -0
  190. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/cpp/prep.sh +0 -0
  191. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/cpp/run.sh +0 -0
  192. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/interactor_prep.sh +0 -0
  193. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/interactor_run.sh +0 -0
  194. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/java/compile.sh +0 -0
  195. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/java/prep.sh +0 -0
  196. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/java/run.sh +0 -0
  197. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py2/compile.sh +0 -0
  198. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py2/prep.sh +0 -0
  199. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py2/run.sh +0 -0
  200. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py3/compile.sh +0 -0
  201. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py3/prep.sh +0 -0
  202. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py3/run.sh +0 -0
  203. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/.gitignore +0 -0
  204. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
  205. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
  206. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/info.rbx.tex +0 -0
  207. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/instructions.tex +0 -0
  208. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/logo.png +0 -0
  209. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/env.rbx.yml +0 -0
  210. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/.gitignore +0 -0
  211. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/gens/gen.cpp +0 -0
  212. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/manual_tests/samples/000.in +0 -0
  213. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/manual_tests/samples/001.in +0 -0
  214. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
  215. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/rbx.h +0 -0
  216. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
  217. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/sols/wa-overflow.cpp +0 -0
  218. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
  219. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/testlib.h +0 -0
  220. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/testplan/random.py +0 -0
  221. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/testplan/random.txt +0 -0
  222. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/validator.cpp +0 -0
  223. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
  224. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/shared/contest_template.rbx.tex +0 -0
  225. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/shared/icpc.sty +0 -0
  226. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/shared/problem_template.rbx.tex +0 -0
  227. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/templates/rbx.h +0 -0
  228. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/templates/template.cpp +0 -0
  229. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/testing_utils.py +0 -0
  230. {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rbx.cp
3
- Version: 0.18.6
3
+ Version: 0.18.7
4
4
  Summary:
5
5
  Author: Roberto Sales
6
6
  Requires-Python: >=3.9.1,<4.0.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "rbx.cp"
3
- version = "0.18.6"
3
+ version = "0.18.7"
4
4
  description = ""
5
5
  packages = [
6
6
  {include = "rbx"}
@@ -0,0 +1 @@
1
+ __version__ = '0.18.7'
@@ -12,6 +12,7 @@ class BocaExtension(BaseModel):
12
12
  flags: typing.Dict[BocaLanguage, str] = {}
13
13
  maximumTimeError: float = _MAX_REP_ERROR
14
14
  preferContestLetter: bool = False
15
+ usePypy: bool = False
15
16
 
16
17
  def flags_with_defaults(self) -> typing.Dict[BocaLanguage, str]:
17
18
  res: typing.Dict[BocaLanguage, str] = {
@@ -149,9 +149,16 @@ class BocaPackager(BasePackager):
149
149
  raise typer.Exit(1)
150
150
  return compare_path.read_text()
151
151
 
152
- def _get_checker(self) -> str:
152
+ def _replace_common(self, text: str, lang: str) -> str:
153
153
  extension = get_extension_or_default('boca', BocaExtension)
154
+ flags = extension.flags_with_defaults()
155
+ if lang in flags:
156
+ text = text.replace('{{rbxFlags}}', flags[lang])
157
+ return text.replace(
158
+ '{{rbxPython3}}', 'pypy3' if extension.usePypy else 'python3'
159
+ )
154
160
 
161
+ def _get_checker(self) -> str:
155
162
  checker_path = get_default_app_path() / 'packagers' / 'boca' / 'checker.sh'
156
163
  if not checker_path.exists():
157
164
  console.console.print(
@@ -163,15 +170,13 @@ class BocaPackager(BasePackager):
163
170
  checker = package.get_checker().path.read_text()
164
171
  rbx_header = header.get_header().read_text()
165
172
  return (
166
- checker_text.replace('{{rbxFlags}}', extension.flags_with_defaults()['cc'])
173
+ self._replace_common(checker_text, 'cc')
167
174
  .replace('{{testlib_content}}', testlib)
168
175
  .replace('{{rbx_header_content}}', rbx_header)
169
176
  .replace('{{checker_content}}', checker)
170
177
  )
171
178
 
172
179
  def _get_interactor(self) -> str:
173
- extension = get_extension_or_default('boca', BocaExtension)
174
-
175
180
  interactor_path = (
176
181
  get_default_app_path() / 'packagers' / 'boca' / 'interactor_compile.sh'
177
182
  )
@@ -183,9 +188,9 @@ class BocaPackager(BasePackager):
183
188
 
184
189
  interactor_text = interactor_path.read_text()
185
190
  interactor = package.get_interactor().path.read_text()
186
- return interactor_text.replace(
187
- '{{rbxFlags}}', extension.flags_with_defaults()['cc']
188
- ).replace('{{interactor_content}}', interactor)
191
+ return self._replace_common(interactor_text, 'cc').replace(
192
+ '{{interactor_content}}', interactor
193
+ )
189
194
 
190
195
  def _get_safeexec(self) -> str:
191
196
  safeexec_script_path = (
@@ -208,7 +213,6 @@ class BocaPackager(BasePackager):
208
213
 
209
214
  def _get_compile(self, language: BocaLanguage) -> str:
210
215
  pkg = package.find_problem_package_or_die()
211
- extension = get_extension_or_default('boca', BocaExtension)
212
216
 
213
217
  compile_path = (
214
218
  get_default_app_path() / 'packagers' / 'boca' / 'compile' / language
@@ -233,9 +237,7 @@ class BocaPackager(BasePackager):
233
237
  'umask 0022', 'umask 0022\n\n' + self._get_checker()
234
238
  )
235
239
 
236
- flags = extension.flags_with_defaults()
237
- if language in flags:
238
- compile_text = compile_text.replace('{{rbxFlags}}', flags[language])
240
+ compile_text = self._replace_common(compile_text, language)
239
241
  return compile_text
240
242
 
241
243
  def _copy_solutions(self, into_path: pathlib.Path):
@@ -250,18 +252,17 @@ class BocaPackager(BasePackager):
250
252
  dest_path.parent.mkdir(parents=True, exist_ok=True)
251
253
  shutil.copy(str(solution.path), dest_path)
252
254
 
253
- def _expand_run_script(self, run_path: pathlib.Path):
255
+ def _expand_run_script(self, run_path: pathlib.Path, language: BocaLanguage):
254
256
  pkg = package.find_problem_package_or_die()
257
+ content = run_path.read_text()
255
258
  if pkg.type == TaskType.COMMUNICATION:
256
259
  runit_content = (
257
260
  get_default_app_path() / 'packagers' / 'boca' / 'interactor_run.sh'
258
261
  ).read_text()
259
- run_path.write_text(
260
- run_path.read_text().replace(
261
- '{{runit_content}}',
262
- runit_content,
263
- )
264
- )
262
+ content = content.replace('{{runit_content}}', runit_content)
263
+
264
+ content = self._replace_common(content, language)
265
+ run_path.write_text(content)
265
266
 
266
267
  @classmethod
267
268
  def name(cls) -> str:
@@ -308,7 +309,7 @@ class BocaPackager(BasePackager):
308
309
  )
309
310
  raise typer.Exit(1)
310
311
  shutil.copyfile(run_orig_path, run_path / language)
311
- self._expand_run_script(run_path / language)
312
+ self._expand_run_script(run_path / language, language)
312
313
 
313
314
  # Prepare compile.
314
315
  compile_path = into_path / 'compile'
@@ -119,7 +119,7 @@ cd src
119
119
  # exit 0
120
120
  # fi
121
121
 
122
- echo "#!/usr/bin/python2" | cat - "$name" > "../$exe"
122
+ echo "#!\$cc" | cat - "$name" > "../$exe"
123
123
  chmod 755 "../$exe"
124
124
  echo \$? > ../compileit.retcode
125
125
  exit 0
@@ -101,25 +101,27 @@ else
101
101
  exe=$2
102
102
  fi
103
103
 
104
+ chmod -R 775 src
105
+
104
106
  rm -f "$exe" compileit.retcode runit.retcode 2>/dev/null
105
107
  cat <<EOF >compileit.sh
106
108
  #!/bin/bash
107
- cc=\`which python3\`
108
- [ -x "\$cc" ] || cc=/usr/bin/python3
109
+ cc=\`which {{rbxPython3}}\`
110
+ [ -x "\$cc" ] || cc=/usr/bin/{{rbxPython3}}
109
111
  if [ ! -x "\$cc" ]; then
110
112
  echo "\$cc not found or it's not executable"
111
113
  exit 47
112
114
  fi
113
115
  cd src
114
- # "\$cc" -m py_compile "$name"
115
- # pyc_ret=\$?
116
- # if [ "\$pyc_ret" != "0" ]; then
117
- # echo "python syntax check failed: \$pyc_ret"
118
- # echo \$pyc_ret > ../compileit.retcode
119
- # exit 0
120
- # fi
116
+ "\$cc" -m py_compile "$name"
117
+ pyc_ret=\$?
118
+ if [ "\$pyc_ret" != "0" ]; then
119
+ echo "python syntax check failed: \$pyc_ret"
120
+ echo \$pyc_ret > ../compileit.retcode
121
+ exit 0
122
+ fi
121
123
 
122
- echo "#!/usr/bin/python3" | cat - "$name" > "../$exe"
124
+ echo "#!\$cc" | cat - "$name" > "../$exe"
123
125
  chmod 755 "../$exe"
124
126
  echo \$? > ../compileit.retcode
125
127
  exit 0
@@ -130,8 +130,8 @@ if [ $? -eq 0 ]; then
130
130
  cd "$cdir"
131
131
  [ -f /proc/cpuinfo ] || /bin/mount -t proc proc /proc
132
132
  [ -d /sys/kernel ] || /bin/mount -t sysfs sysfs /sys
133
- python3=$(which python3)
134
- [ -x "\$python3" ] || python3=/usr/bin/python3
133
+ python3=$(which {{rbxPython3}})
134
+ [ -x "\$python3" ] || python3=/usr/bin/{{rbxPython3}}
135
135
  if [ ! -x "\$python3" ]; then
136
136
  echo "\$python3 not found or it's not executable"
137
137
  exit 47
@@ -119,8 +119,8 @@ cd "$cdir"
119
119
  [ -f /proc/cpuinfo ] || /bin/mount -t proc proc /proc
120
120
  #/bin/mount --bind /dev /dev
121
121
  [ -d /sys/kernel ] || /bin/mount -t sysfs sysfs /sys
122
- python3=$(which python3)
123
- [ -x "\$python3" ] || python3=/usr/bin/python3
122
+ python3=$(which {{rbxPython3}})
123
+ [ -x "\$python3" ] || python3=/usr/bin/{{rbxPython3}}
124
124
  if [ ! -x "\$python3" ]; then
125
125
  echo "\$python3 not found or it's not executable"
126
126
  exit 47
@@ -147,8 +147,8 @@ else
147
147
  echo "CODE NOT BEING CHROOTED. DO NOT RUN THIS ON THE MAIN SERVER" >&2
148
148
  echo "CODE NOT BEING CHROOTED. DO NOT RUN THIS ON THE MAIN SERVER" >&2
149
149
  echo "CODE NOT BEING CHROOTED. DO NOT RUN THIS ON THE MAIN SERVER" >&2
150
- python3=$(which python3)
151
- [ -x "$python3" ] || python3=/usr/bin/python3
150
+ python3=$(which {{rbxPython3}})
151
+ [ -x "$python3" ] || python3=/usr/bin/{{rbxPython3}}
152
152
  if [ ! -x "$python3" ]; then
153
153
  echo "$python3 not found or it's not executable"
154
154
  exit 47
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  # yaml-language-server: $schema=https://rsalesc.github.io/rbx/schemas/Preset.json
3
3
  name: "default"
4
- min_version: "0.18.6"
4
+ min_version: "0.18.7"
5
5
  uri: "rsalesc/rbx/rbx/resources/presets/default"
6
6
  problem: "problem"
7
7
  contest: "contest"
@@ -1 +0,0 @@
1
- __version__ = '0.18.6'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes