rbx.cp 0.5.52__tar.gz → 0.5.53__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 (199) hide show
  1. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/PKG-INFO +1 -1
  2. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/pyproject.toml +2 -1
  3. rbx_cp-0.5.53/rbx/box/dump_schemas.py +18 -0
  4. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/polygon/upload.py +20 -2
  5. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/utils.py +16 -6
  6. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/LICENSE +0 -0
  7. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/README.md +0 -0
  8. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/__init__.py +0 -0
  9. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/annotations.py +0 -0
  10. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/autoenum.py +0 -0
  11. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/__init__.py +0 -0
  12. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/builder.py +0 -0
  13. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/cd.py +0 -0
  14. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/checkers.py +0 -0
  15. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/cli.py +0 -0
  16. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/code.py +0 -0
  17. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/compile.py +0 -0
  18. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/conftest.py +0 -0
  19. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/contest/__init__.py +0 -0
  20. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/contest/build_contest_statements.py +0 -0
  21. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/contest/contest_package.py +0 -0
  22. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/contest/contest_utils.py +0 -0
  23. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/contest/main.py +0 -0
  24. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/contest/schema.py +0 -0
  25. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/contest/statements.py +0 -0
  26. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/creation.py +0 -0
  27. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/deferred.py +0 -0
  28. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/download.py +0 -0
  29. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/environment.py +0 -0
  30. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/extensions.py +0 -0
  31. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/formatting.py +0 -0
  32. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/generators.py +0 -0
  33. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/generators_test.py +0 -0
  34. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/header.py +0 -0
  35. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/lazy_importing_main.py +0 -0
  36. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/lazy_importing_test.py +0 -0
  37. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/main.py +0 -0
  38. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/naming.py +0 -0
  39. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/package.py +0 -0
  40. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/boca/extension.py +0 -0
  41. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/boca/packager.py +0 -0
  42. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/contest_main.py +0 -0
  43. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/main.py +0 -0
  44. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/moj/packager.py +0 -0
  45. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/packager.py +0 -0
  46. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/polygon/packager.py +0 -0
  47. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/polygon/polygon_api.py +0 -0
  48. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/polygon/test.py +0 -0
  49. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/packaging/polygon/xml_schema.py +0 -0
  50. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/presets/__init__.py +0 -0
  51. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/presets/fetch.py +0 -0
  52. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/presets/lock_schema.py +0 -0
  53. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/presets/schema.py +0 -0
  54. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/retries.py +0 -0
  55. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/sanitizers/warning_stack.py +0 -0
  56. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/schema.py +0 -0
  57. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/setter_config.py +0 -0
  58. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/solutions.py +0 -0
  59. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/solutions_test.py +0 -0
  60. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/state.py +0 -0
  61. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/statements/__init__.py +0 -0
  62. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/statements/build_statements.py +0 -0
  63. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/statements/builders.py +0 -0
  64. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/statements/joiners.py +0 -0
  65. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/statements/latex.py +0 -0
  66. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/statements/latex_jinja.py +0 -0
  67. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/statements/schema.py +0 -0
  68. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/stresses.py +0 -0
  69. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/stressing/__init__.py +0 -0
  70. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/stressing/finder_parser.py +0 -0
  71. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/stressing/generator_parser.py +0 -0
  72. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/tasks.py +0 -0
  73. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/testcase_extractors.py +0 -0
  74. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/testcase_utils.py +0 -0
  75. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/testcases/__init__.py +0 -0
  76. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/testcases/main.py +0 -0
  77. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/ui/__init__.py +0 -0
  78. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/ui/captured_log.py +0 -0
  79. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/ui/css/app.tcss +0 -0
  80. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/ui/main.py +0 -0
  81. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/ui/run.py +0 -0
  82. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/unit.py +0 -0
  83. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/validators.py +0 -0
  84. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/box/validators_test.py +0 -0
  85. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/checker.py +0 -0
  86. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/clone.py +0 -0
  87. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/config.py +0 -0
  88. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/conftest.py +0 -0
  89. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/console.py +0 -0
  90. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/create.py +0 -0
  91. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/edit.py +0 -0
  92. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/__init__.py +0 -0
  93. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/caching.py +0 -0
  94. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/conftest.py +0 -0
  95. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/__init__.py +0 -0
  96. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/cacher.py +0 -0
  97. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/digester.py +0 -0
  98. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/sandbox.py +0 -0
  99. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/sandboxes/__init__.py +0 -0
  100. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/sandboxes/isolate.py +0 -0
  101. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
  102. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/sandboxes/timeit.py +0 -0
  103. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/storage.py +0 -0
  104. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/test.py +0 -0
  105. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/judge/testiso.py +0 -0
  106. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/processing_context.py +0 -0
  107. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/steps.py +0 -0
  108. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/steps_with_caching.py +0 -0
  109. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading/steps_with_caching_run_test.py +0 -0
  110. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/grading_utils.py +0 -0
  111. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/hydration.py +0 -0
  112. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/main.py +0 -0
  113. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/metadata.py +0 -0
  114. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/providers/__init__.py +0 -0
  115. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/providers/codeforces.py +0 -0
  116. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/providers/provider.py +0 -0
  117. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/checkers/boilerplate.cpp +0 -0
  118. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/default_config.json +0 -0
  119. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/default_setter_config.mac.yml +0 -0
  120. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/default_setter_config.yml +0 -0
  121. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/envs/default.rbx.yml +0 -0
  122. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/envs/isolate.rbx.yml +0 -0
  123. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/checker.sh +0 -0
  124. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/compare.sh +0 -0
  125. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/compile/c +0 -0
  126. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/compile/cc +0 -0
  127. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/compile/cpp +0 -0
  128. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/compile/java +0 -0
  129. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/compile/kt +0 -0
  130. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/compile/pas +0 -0
  131. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/compile/py2 +0 -0
  132. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/compile/py3 +0 -0
  133. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/interactive/c +0 -0
  134. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/interactive/cc +0 -0
  135. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/interactive/cpp +0 -0
  136. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/interactive/java +0 -0
  137. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/interactive/kt +0 -0
  138. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/interactive/py2 +0 -0
  139. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/interactive/py3 +0 -0
  140. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/interactor_compile.sh +0 -0
  141. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/run/bkp +0 -0
  142. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/run/c +0 -0
  143. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/run/cc +0 -0
  144. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/run/cpp +0 -0
  145. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/run/java +0 -0
  146. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/run/kt +0 -0
  147. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/run/py2 +0 -0
  148. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/boca/run/py3 +0 -0
  149. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/c/compile.sh +0 -0
  150. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/c/prep.sh +0 -0
  151. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/c/run.sh +0 -0
  152. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/compare.sh +0 -0
  153. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/cpp/compile.sh +0 -0
  154. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/cpp/prep.sh +0 -0
  155. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/cpp/run.sh +0 -0
  156. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/interactor_prep.sh +0 -0
  157. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/interactor_run.sh +0 -0
  158. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/java/compile.sh +0 -0
  159. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/java/prep.sh +0 -0
  160. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/java/run.sh +0 -0
  161. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/py2/compile.sh +0 -0
  162. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/py2/prep.sh +0 -0
  163. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/py2/run.sh +0 -0
  164. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/py3/compile.sh +0 -0
  165. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/py3/prep.sh +0 -0
  166. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/packagers/moj/scripts/py3/run.sh +0 -0
  167. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
  168. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
  169. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/contest/statement/olymp.sty +0 -0
  170. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/contest/statement/template.rbx.tex +0 -0
  171. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/preset.rbx.yml +0 -0
  172. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/.gitignore +0 -0
  173. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/gen.cpp +0 -0
  174. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
  175. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/random.py +0 -0
  176. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/random.txt +0 -0
  177. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
  178. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/sols/slow.cpp +0 -0
  179. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/sols/wa.cpp +0 -0
  180. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/statement/olymp.sty +0 -0
  181. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/statement/projecao.png +0 -0
  182. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
  183. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/statement/template.rbx.tex +0 -0
  184. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/tests/samples/000.in +0 -0
  185. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/tests/samples/001.in +0 -0
  186. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/validator.cpp +0 -0
  187. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
  188. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/templates/rbx.h +0 -0
  189. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/resources/templates/template.cpp +0 -0
  190. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/run.py +0 -0
  191. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/schema.py +0 -0
  192. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/submit.py +0 -0
  193. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/submitors/__init__.py +0 -0
  194. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/submitors/codeforces.py +0 -0
  195. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/submitors/submitor.py +0 -0
  196. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/test.py +0 -0
  197. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/testcase.py +0 -0
  198. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/testcase_rendering.py +0 -0
  199. {rbx_cp-0.5.52 → rbx_cp-0.5.53}/rbx/testing_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rbx.cp
3
- Version: 0.5.52
3
+ Version: 0.5.53
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.52"
3
+ version = "0.5.53"
4
4
  description = ""
5
5
  packages = [
6
6
  {include = "rbx"}
@@ -55,6 +55,7 @@ griffe-fieldz = ">=0.1.2, <1.0.0"
55
55
  pytest-cov = "^5.0.0"
56
56
  textual-dev = "^1.6.1"
57
57
  pytest-asyncio = "^0.26.0"
58
+ mkdocs-gen-files = "^0.5.0"
58
59
 
59
60
  [build-system]
60
61
  requires = ["poetry-core"]
@@ -0,0 +1,18 @@
1
+ import pathlib
2
+
3
+ import mkdocs_gen_files
4
+
5
+ from rbx.box.contest.schema import Contest
6
+ from rbx.box.environment import Environment
7
+ from rbx.box.package import Package
8
+ from rbx.box.presets.lock_schema import PresetLock
9
+ from rbx.box.presets.schema import Preset
10
+ from rbx.box.statements.schema import Statement
11
+ from rbx.utils import dump_schema_str
12
+
13
+ models = [Package, Environment, Contest, Preset, PresetLock, Statement]
14
+
15
+ for model in models:
16
+ path = pathlib.Path('schemas') / f'{model.__name__}.json'
17
+ with mkdocs_gen_files.open(str(path), 'w') as f:
18
+ f.write(dump_schema_str(model))
@@ -250,6 +250,24 @@ def _get_statement_blocks(statement: Statement) -> StatementBlocks:
250
250
  )
251
251
 
252
252
 
253
+ def _get_explanations(explanations: Dict[int, str]) -> str:
254
+ entries = []
255
+ for i in sorted(explanations):
256
+ explanation = explanations[i]
257
+ entries.append(f'\\textbf{{Explanation for example {i + 1}}}\n\n{explanation}')
258
+ return '\n\n'.join(entries)
259
+
260
+
261
+ def _get_notes_with_explanations(blocks: StatementBlocks) -> Optional[str]:
262
+ notes = blocks.blocks.get('notes')
263
+ explanations = blocks.explanations
264
+ if notes is None and not explanations:
265
+ return None
266
+ if notes is None:
267
+ return _get_explanations(blocks.explanations)
268
+ return notes + '\n\n' + _get_explanations(blocks.explanations)
269
+
270
+
253
271
  def _upload_statement_resources(problem: api.Problem, statement: Statement):
254
272
  assets = get_relative_assets(statement.path, statement.assets)
255
273
  for asset, relative_asset in assets:
@@ -293,7 +311,7 @@ def _upload_statement(problem: api.Problem):
293
311
  input=blocks.blocks.get('input'),
294
312
  output=blocks.blocks.get('output'),
295
313
  interaction=blocks.blocks.get('interaction'),
296
- notes=blocks.blocks.get('notes'),
314
+ notes=_get_notes_with_explanations(blocks),
297
315
  )
298
316
  problem.save_statement(
299
317
  lang=code_to_langs([language])[0], problem_statement=polygon_statement
@@ -311,8 +329,8 @@ async def upload_problem(name: str):
311
329
  name = _normalize_problem_name(name)
312
330
  problem = _find_or_create_problem(name)
313
331
  _update_problem_info(problem)
314
- _update_checker(problem)
315
332
  _update_rbx_header(problem)
333
+ _update_checker(problem)
316
334
 
317
335
  if (
318
336
  pkg.type == TaskType.COMMUNICATION
@@ -57,21 +57,32 @@ def get_app_path() -> pathlib.Path:
57
57
  return pathlib.Path(app_dir)
58
58
 
59
59
 
60
- def ensure_schema(model: Type[BaseModel]) -> pathlib.Path:
61
- path = get_app_path() / 'schemas' / f'{model.__name__}.json'
60
+ def dump_schema_str(model: Type[BaseModel]) -> str:
61
+ return json.dumps(model.model_json_schema(), indent=4)
62
+
63
+
64
+ def dump_schema(model: Type[BaseModel], path: pathlib.Path):
62
65
  path.parent.mkdir(parents=True, exist_ok=True)
63
- schema = json.dumps(model.model_json_schema(), indent=4)
66
+ schema = dump_schema_str(model)
64
67
  path.write_text(schema)
68
+
69
+
70
+ def ensure_schema(model: Type[BaseModel]) -> pathlib.Path:
71
+ path = get_app_path() / 'schemas' / f'{model.__name__}.json'
72
+ dump_schema(model, path)
65
73
  return path.resolve()
66
74
 
67
75
 
68
76
  def model_json(model: BaseModel) -> str:
69
- ensure_schema(model.__class__)
70
77
  return model.model_dump_json(indent=4, exclude_unset=True, exclude_none=True)
71
78
 
72
79
 
80
+ def uploaded_schema_path(model: Type[BaseModel]) -> str:
81
+ return f'https://rsalesc.github.io/rbx/schemas/{model.__name__}.json'
82
+
83
+
73
84
  def model_to_yaml(model: BaseModel) -> str:
74
- path = ensure_schema(model.__class__)
85
+ path = uploaded_schema_path(model.__class__)
75
86
  return f'# yaml-language-server: $schema={path}\n\n' + yaml.dump(
76
87
  model.model_dump(mode='json', exclude_unset=True, exclude_none=True),
77
88
  sort_keys=False,
@@ -80,7 +91,6 @@ def model_to_yaml(model: BaseModel) -> str:
80
91
 
81
92
 
82
93
  def model_from_yaml(model: Type[T], s: str) -> T:
83
- ensure_schema(model)
84
94
  return model(**yaml.safe_load(s))
85
95
 
86
96
 
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
File without changes
File without changes
File without changes
File without changes