rbx.cp 0.18.2__tar.gz → 0.18.3__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.2 → rbx_cp-0.18.3}/PKG-INFO +1 -1
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/pyproject.toml +1 -1
- rbx_cp-0.18.3/rbx/__version__.py +1 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/environment.py +10 -3
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/package.py +1 -1
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/boca/boca_language_utils.py +7 -1
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/testing/testing_preset.py +1 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tooling/boca/scraper.py +54 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/env.rbx.yml +6 -2
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/preset.rbx.yml +1 -1
- rbx_cp-0.18.2/rbx/__version__.py +0 -1
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/LICENSE +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/README.md +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/annotations.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/autoenum.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/builder.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/cd.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/checkers.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/cli.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/code.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/compile.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/contest/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/contest/build_contest_statements.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/contest/contest_package.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/contest/contest_utils.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/contest/main.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/contest/schema.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/contest/statements.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/creation.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/deferred.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/download.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/dump_schemas.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/extensions.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/fields.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/formatting.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/generators.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/git_utils.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/global_package.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/header.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/lang.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/lazy_importing_main.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/limits_info.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/linting.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/main.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/naming.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/boca/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/boca/boca_outcome_utils.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/boca/extension.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/boca/packager.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/contest_main.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/importer.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/main.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/moj/packager.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/packager.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/pkg/packager.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/polygon/importer.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/polygon/packager.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/polygon/polygon_api.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/polygon/test.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/polygon/upload.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/packaging/polygon/xml_schema.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/presets/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/presets/fetch.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/presets/lock_schema.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/presets/schema.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/remote.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/retries.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/sanitizers/issue_stack.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/sanitizers/warning_stack.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/schema.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/setter_config.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/solutions.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/state.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/statements/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/statements/build_statements.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/statements/builders.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/statements/expander.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/statements/joiners.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/statements/latex.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/statements/latex_jinja.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/statements/schema.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/stats.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/stresses.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/stressing/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/stressing/finder_parser.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/stressing/generator_parser.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tasks.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/testcase_extractors.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/testcase_utils.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/testcases/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/testcases/main.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/testing/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/testing/testing_package.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/testing/testing_shared.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/timing.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tooling/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tooling/boca/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tooling/boca/debug_utils.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tooling/boca/main.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tooling/boca/manual_scrape.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tooling/boca/scrape.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tooling/converter.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/tooling/main.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/captured_log.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/css/app.tcss +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/main.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/build.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/command.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/differ.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/error.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/rich_log_modal.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/run.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/run_explorer.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/run_test_explorer.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/selector.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/screens/test_explorer.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/utils/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/utils/run_ui.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/widgets/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/widgets/diff_box.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/widgets/file_log.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/widgets/interaction_box.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/widgets/rich_log_box.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/widgets/test_output_box.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/ui/widgets/two_sided_test_output_box.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/unit.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/box/validators.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/config.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/console.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/caching.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/debug_context.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/grading_context.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/judge/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/judge/cacher.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/judge/digester.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/judge/program.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/judge/sandbox.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/judge/sandboxes/__init__.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/judge/sandboxes/tee.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/judge/storage.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/limits.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/profiling.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/steps.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/grading/steps_with_caching.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/checkers/boilerplate.cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/checkers/noop.cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/default_config.json +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/default_setter_config.mac.yml +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/default_setter_config.yml +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/envs/default.rbx.yml +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/checker.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/compare.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/compile/c +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/compile/cc +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/compile/cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/compile/java +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/compile/kt +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/compile/py2 +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/compile/py3 +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/interactive/c +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/interactive/cc +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/interactive/cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/interactive/java +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/interactive/kt +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/interactive/py2 +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/interactive/py3 +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/interactor_compile.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/interactor_run.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/run/bkp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/run/c +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/run/cc +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/run/cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/run/java +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/run/kt +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/run/py2 +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/run/py3 +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/safeexec.c +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/boca/safeexec_compile.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/c/compile.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/c/prep.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/c/run.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/compare.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/cpp/compile.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/cpp/prep.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/cpp/run.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/interactor_prep.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/interactor_run.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/java/compile.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/java/prep.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/java/run.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/py2/compile.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/py2/prep.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/py2/run.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/py3/compile.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/py3/prep.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/packagers/moj/scripts/py3/run.sh +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/contest/.gitignore +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/contest/contest.rbx.yml +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/contest/statement/contest.rbx.tex +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/contest/statement/info.rbx.tex +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/contest/statement/instructions.tex +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/contest/statement/logo.png +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/.gitignore +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/gens/gen.cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/manual_tests/samples/000.in +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/manual_tests/samples/001.in +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/problem.rbx.yml +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/rbx.h +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/sols/main.cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/sols/wa-overflow.cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/statement/statement.rbx.tex +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/testlib.h +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/testplan/random.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/testplan/random.txt +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/validator.cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/wcmp.cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/shared/contest_template.rbx.tex +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/shared/icpc.sty +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/shared/problem_template.rbx.tex +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/templates/rbx.h +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/templates/template.cpp +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/testing_utils.py +0 -0
- {rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/utils.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = '0.18.3'
|
@@ -294,11 +294,18 @@ def get_environment(env: Optional[str] = None) -> Environment:
|
|
294
294
|
|
295
295
|
|
296
296
|
@functools.cache
|
297
|
-
def
|
297
|
+
def get_language_or_nil(name: str) -> Optional[EnvironmentLanguage]:
|
298
298
|
for lang in get_environment().languages:
|
299
299
|
if lang.name == name:
|
300
300
|
return lang
|
301
|
-
|
301
|
+
return None
|
302
|
+
|
303
|
+
|
304
|
+
def get_language(name: str) -> EnvironmentLanguage:
|
305
|
+
lang = get_language_or_nil(name)
|
306
|
+
if lang is not None:
|
307
|
+
return lang
|
308
|
+
console.console.print(f'[error]Language [item]{name}[/item] not found.[/error]')
|
302
309
|
raise typer.Exit()
|
303
310
|
|
304
311
|
|
@@ -315,7 +322,7 @@ def get_language_by_extension(extension: str) -> EnvironmentLanguage:
|
|
315
322
|
if lang is not None:
|
316
323
|
return lang
|
317
324
|
console.console.print(
|
318
|
-
f'Language with extension [item]{extension}[/item] not found.
|
325
|
+
f'[error]Language with extension [item]{extension}[/item] not found.[/error]'
|
319
326
|
)
|
320
327
|
raise typer.Exit()
|
321
328
|
|
@@ -356,7 +356,7 @@ def get_solutions(root: pathlib.Path = pathlib.Path()) -> List[Solution]:
|
|
356
356
|
relative_file = file.relative_to(root)
|
357
357
|
if (
|
358
358
|
entry.language is not None
|
359
|
-
or get_language_by_extension(relative_file.suffix) is not None
|
359
|
+
or get_language_by_extension(relative_file.suffix[1:]) is not None
|
360
360
|
):
|
361
361
|
add_solution(
|
362
362
|
Solution.model_copy(
|
@@ -5,12 +5,18 @@ from rbx.box.packaging.boca.extension import BocaLanguage, BocaLanguageExtension
|
|
5
5
|
|
6
6
|
|
7
7
|
def get_rbx_language_from_boca_language(boca_language: BocaLanguage) -> str:
|
8
|
+
# First by BOCA language name.
|
8
9
|
for language in get_environment().languages:
|
9
10
|
language_extension = language.get_extension_or_default(
|
10
|
-
|
11
|
+
'boca', BocaLanguageExtension
|
11
12
|
)
|
12
13
|
if language_extension.bocaLanguage == boca_language:
|
13
14
|
return language.name
|
15
|
+
# Then by rbx language extension.
|
16
|
+
for language in get_environment().languages:
|
17
|
+
if language.extension == boca_language:
|
18
|
+
return language.name
|
19
|
+
# Then by rbx language name.
|
14
20
|
return boca_language
|
15
21
|
|
16
22
|
|
@@ -16,6 +16,13 @@ from throttlex import Throttler
|
|
16
16
|
|
17
17
|
from rbx import console, utils
|
18
18
|
from rbx.box import naming
|
19
|
+
from rbx.box.environment import (
|
20
|
+
get_environment,
|
21
|
+
get_language_or_nil,
|
22
|
+
)
|
23
|
+
from rbx.box.packaging.boca.boca_language_utils import (
|
24
|
+
get_rbx_language_from_boca_language,
|
25
|
+
)
|
19
26
|
from rbx.box.tooling.boca.debug_utils import pretty_print_request_data
|
20
27
|
from rbx.grading.steps import Outcome
|
21
28
|
|
@@ -104,6 +111,24 @@ class BocaDetailedRun(BocaRun):
|
|
104
111
|
autojudge_answer: str
|
105
112
|
|
106
113
|
|
114
|
+
def get_boca_languages() -> List[BocaLanguage]:
|
115
|
+
env = get_environment()
|
116
|
+
res = []
|
117
|
+
for bocaLanguage in env.extensions.boca.languages:
|
118
|
+
rbxLanguage = get_rbx_language_from_boca_language(bocaLanguage)
|
119
|
+
rbxLanguage = get_language_or_nil(rbxLanguage)
|
120
|
+
if rbxLanguage is None:
|
121
|
+
continue
|
122
|
+
res.append(
|
123
|
+
BocaLanguage(
|
124
|
+
index=len(res) + 1,
|
125
|
+
name=rbxLanguage.readableName,
|
126
|
+
extension=bocaLanguage,
|
127
|
+
)
|
128
|
+
)
|
129
|
+
return res
|
130
|
+
|
131
|
+
|
107
132
|
class BocaScraper:
|
108
133
|
def __init__(
|
109
134
|
self,
|
@@ -778,6 +803,35 @@ class BocaScraper:
|
|
778
803
|
self.open(req)
|
779
804
|
self.log('Main site configured successfully')
|
780
805
|
|
806
|
+
def configure_languages(self, languages: List[BocaLanguage]):
|
807
|
+
self.open(
|
808
|
+
f'{self.base_url}/admin/language.php',
|
809
|
+
error_msg='Error while configuring languages in BOCA',
|
810
|
+
)
|
811
|
+
try:
|
812
|
+
self.br.select_form(name='form1')
|
813
|
+
except mechanize.FormNotFoundError:
|
814
|
+
self.error(
|
815
|
+
'Languages configuration form not found in BOCA website. This might happen when the login failed.'
|
816
|
+
)
|
817
|
+
|
818
|
+
reqs = []
|
819
|
+
for language in languages:
|
820
|
+
form = typing.cast(mechanize.HTMLForm, self.br.form)
|
821
|
+
form.set_all_readonly(False)
|
822
|
+
form['confirmation'] = 'confirm'
|
823
|
+
|
824
|
+
form['langnumber'] = f'{language.index}'
|
825
|
+
form['langname'] = language.name
|
826
|
+
form['langextension'] = language.extension
|
827
|
+
|
828
|
+
reqs.append(self.br.click(name='Submit3', type='submit'))
|
829
|
+
|
830
|
+
for req in reqs:
|
831
|
+
pretty_print_request_data(req)
|
832
|
+
self.open(req)
|
833
|
+
self.log('Languages configured successfully')
|
834
|
+
|
781
835
|
def create_judge_account(self, password: str = 'boca'):
|
782
836
|
_, html = self.open(
|
783
837
|
f'{self.base_url}/admin/user.php',
|
@@ -22,6 +22,9 @@ languages:
|
|
22
22
|
command: "./{executable}"
|
23
23
|
fileMapping:
|
24
24
|
compilable: "compilable.cpp"
|
25
|
+
extensions:
|
26
|
+
boca:
|
27
|
+
bocaLanguage: "cc"
|
25
28
|
- name: "c"
|
26
29
|
readableName: "C"
|
27
30
|
extension: "c"
|
@@ -55,7 +58,7 @@ languages:
|
|
55
58
|
fileMapping:
|
56
59
|
compilable: "Main.java"
|
57
60
|
executable: "Main.jar"
|
58
|
-
- name: "
|
61
|
+
- name: "kt"
|
59
62
|
readableName: "Kotlin"
|
60
63
|
extension: "kt"
|
61
64
|
compilation:
|
@@ -70,8 +73,9 @@ languages:
|
|
70
73
|
executable: "Main.jar"
|
71
74
|
extensions:
|
72
75
|
boca:
|
73
|
-
languages: ["c", "cpp", "java", "py3", "kt"]
|
76
|
+
languages: ["c", "cc", "cpp", "java", "py3", "kt"]
|
74
77
|
flags:
|
75
78
|
c: "-O2 -lm -static"
|
79
|
+
cc: "-std=c++20 -O2 -lm -static"
|
76
80
|
cpp: "-std=c++20 -O2 -lm -static"
|
77
81
|
preferContestLetter: true
|
rbx_cp-0.18.2/rbx/__version__.py
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = '0.18.2'
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/contest/statement/contest.rbx.tex
RENAMED
File without changes
|
{rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/contest/statement/info.rbx.tex
RENAMED
File without changes
|
{rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/contest/statement/instructions.tex
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{rbx_cp-0.18.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/problem/manual_tests/samples/000.in
RENAMED
File without changes
|
{rbx_cp-0.18.2 → rbx_cp-0.18.3}/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.2 → rbx_cp-0.18.3}/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.2 → rbx_cp-0.18.3}/rbx/resources/presets/default/shared/contest_template.rbx.tex
RENAMED
File without changes
|
File without changes
|
{rbx_cp-0.18.2 → rbx_cp-0.18.3}/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
|