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.
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/PKG-INFO +1 -1
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/pyproject.toml +1 -1
- rbx_cp-0.18.7/rbx/__version__.py +1 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/extension.py +1 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/packager.py +20 -19
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/py2 +1 -1
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/py3 +12 -10
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/py3 +2 -2
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/py3 +4 -4
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/preset.rbx.yml +1 -1
- rbx_cp-0.18.6/rbx/__version__.py +0 -1
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/LICENSE +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/README.md +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/annotations.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/autoenum.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/builder.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/cd.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/checkers.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/cli.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/code.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/compile.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/build_contest_statements.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/contest_package.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/contest_utils.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/main.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/schema.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/contest/statements.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/creation.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/deferred.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/download.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/dump_schemas.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/environment.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/exception.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/extensions.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/fields.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/formatting.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/generators.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/git_utils.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/global_package.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/header.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/lang.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/lazy_importing_main.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/limits_info.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/linting.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/main.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/naming.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/package.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/boca_language_utils.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/boca/boca_outcome_utils.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/contest_main.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/importer.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/main.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/moj/packager.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/packager.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/pkg/packager.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/importer.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/packager.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/polygon_api.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/test.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/upload.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/packaging/polygon/xml_schema.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/presets/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/presets/fetch.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/presets/lock_schema.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/presets/schema.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/remote.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/retries.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/sanitizers/issue_stack.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/sanitizers/warning_stack.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/schema.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/setter_config.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/solutions.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/state.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/build_statements.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/builders.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/expander.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/joiners.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/latex.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/latex_jinja.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/statements/schema.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stats.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stresses.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stressing/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stressing/finder_parser.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/stressing/generator_parser.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tasks.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testcase_extractors.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testcase_utils.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testcases/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testcases/main.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testing/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testing/testing_package.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testing/testing_preset.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/testing/testing_shared.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/timing.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/debug_utils.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/main.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/manual_scrape.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/scrape.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/boca/scraper.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/converter.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/tooling/main.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/captured_log.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/css/app.tcss +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/main.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/build.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/command.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/differ.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/error.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/rich_log_modal.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/run.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/run_explorer.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/run_test_explorer.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/selector.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/screens/test_explorer.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/utils/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/utils/run_ui.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/diff_box.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/file_log.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/interaction_box.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/rich_log_box.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/test_output_box.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/ui/widgets/two_sided_test_output_box.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/unit.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/box/validators.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/config.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/console.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/caching.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/debug_context.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/grading_context.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/cacher.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/digester.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/program.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/sandbox.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/sandboxes/__init__.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/sandboxes/tee.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/judge/storage.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/limits.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/profiling.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/steps.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/grading/steps_with_caching.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/checkers/boilerplate.cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/checkers/noop.cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/default_config.json +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/default_setter_config.mac.yml +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/default_setter_config.yml +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/checker.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compare.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/c +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/cc +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/java +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/compile/kt +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/c +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/cc +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/java +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/kt +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactive/py2 +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactor_compile.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/interactor_run.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/bkp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/c +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/cc +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/java +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/kt +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/run/py2 +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/safeexec.c +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/boca/safeexec_compile.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/c/compile.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/c/prep.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/c/run.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/compare.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/cpp/compile.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/cpp/prep.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/cpp/run.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/interactor_prep.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/interactor_run.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/java/compile.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/java/prep.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/java/run.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py2/compile.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py2/prep.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py2/run.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py3/compile.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py3/prep.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/packagers/moj/scripts/py3/run.sh +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/.gitignore +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/info.rbx.tex +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/instructions.tex +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/logo.png +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/env.rbx.yml +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/.gitignore +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/gens/gen.cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/manual_tests/samples/000.in +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/manual_tests/samples/001.in +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/rbx.h +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/sols/wa-overflow.cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/testlib.h +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/testplan/random.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/testplan/random.txt +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/validator.cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/shared/contest_template.rbx.tex +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/shared/icpc.sty +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/shared/problem_template.rbx.tex +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/templates/rbx.h +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/templates/template.cpp +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/testing_utils.py +0 -0
- {rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/utils.py +0 -0
@@ -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
|
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
|
-
|
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
|
-
'{{
|
188
|
-
)
|
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
|
-
|
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
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
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'
|
@@ -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
|
108
|
-
[ -x "\$cc" ] || cc=/usr/bin/
|
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
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
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 "
|
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
|
134
|
-
[ -x "\$python3" ] || python3=/usr/bin/
|
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
|
123
|
-
[ -x "\$python3" ] || python3=/usr/bin/
|
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
|
151
|
-
[ -x "$python3" ] || python3=/usr/bin/
|
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
|
rbx_cp-0.18.6/rbx/__version__.py
DELETED
@@ -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
|
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
|
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
|
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
|
{rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/contest.rbx.tex
RENAMED
File without changes
|
{rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/info.rbx.tex
RENAMED
File without changes
|
{rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/contest/statement/instructions.tex
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/manual_tests/samples/000.in
RENAMED
File without changes
|
{rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/manual_tests/samples/001.in
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/problem/statement/statement.rbx.tex
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/shared/contest_template.rbx.tex
RENAMED
File without changes
|
File without changes
|
{rbx_cp-0.18.6 → rbx_cp-0.18.7}/rbx/resources/presets/default/shared/problem_template.rbx.tex
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|