rbx.cp 0.5.36__py3-none-any.whl → 0.5.38__py3-none-any.whl
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/annotations.py +0 -1
- rbx/box/builder.py +5 -2
- rbx/box/contest/statements.py +3 -1
- rbx/box/generators.py +19 -319
- rbx/box/generators_test.py +1 -1
- rbx/box/lazy_importing_main.py +7 -0
- rbx/box/lazy_importing_test.py +25 -0
- rbx/box/main.py +12 -3
- rbx/box/packaging/contest_main.py +5 -1
- rbx/box/packaging/main.py +7 -3
- rbx/box/presets/__init__.py +6 -2
- rbx/box/schema.py +8 -1
- rbx/box/setter_config.py +0 -1
- rbx/box/solutions.py +3 -2
- rbx/box/solutions_test.py +1 -1
- rbx/box/statements/build_statements.py +3 -1
- rbx/box/statements/builders.py +7 -6
- rbx/box/statements/joiners.py +7 -6
- rbx/box/testcase_extractors.py +348 -0
- rbx/box/testcase_utils.py +10 -0
- rbx/box/testcases/main.py +4 -2
- rbx/box/validators.py +61 -33
- rbx/config.py +8 -2
- rbx/grading/judge/sandboxes/stupid_sandbox.py +0 -1
- rbx/testing_utils.py +0 -1
- rbx/utils.py +1 -4
- {rbx_cp-0.5.36.dist-info → rbx_cp-0.5.38.dist-info}/METADATA +1 -1
- {rbx_cp-0.5.36.dist-info → rbx_cp-0.5.38.dist-info}/RECORD +31 -28
- {rbx_cp-0.5.36.dist-info → rbx_cp-0.5.38.dist-info}/LICENSE +0 -0
- {rbx_cp-0.5.36.dist-info → rbx_cp-0.5.38.dist-info}/WHEEL +0 -0
- {rbx_cp-0.5.36.dist-info → rbx_cp-0.5.38.dist-info}/entry_points.txt +0 -0
rbx/config.py
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
import functools
|
2
|
-
import importlib
|
3
2
|
import importlib.resources
|
4
3
|
import os
|
5
4
|
import pathlib
|
@@ -8,7 +7,6 @@ import subprocess
|
|
8
7
|
import tempfile
|
9
8
|
from typing import Any, Dict, List, Optional
|
10
9
|
|
11
|
-
import requests
|
12
10
|
import typer
|
13
11
|
from pydantic import BaseModel
|
14
12
|
|
@@ -109,6 +107,8 @@ def get_app_file(path: pathlib.Path) -> pathlib.Path:
|
|
109
107
|
|
110
108
|
|
111
109
|
def _download_checker(name: str, save_at: pathlib.Path):
|
110
|
+
import requests
|
111
|
+
|
112
112
|
console.print(f'Downloading checker {name}...')
|
113
113
|
r = requests.get(
|
114
114
|
f'https://raw.githubusercontent.com/MikeMirzayanov/testlib/master/checkers/{name}'
|
@@ -121,6 +121,8 @@ def _download_checker(name: str, save_at: pathlib.Path):
|
|
121
121
|
|
122
122
|
|
123
123
|
def _download_testlib(save_at: pathlib.Path):
|
124
|
+
import requests
|
125
|
+
|
124
126
|
console.print('Downloading testlib.h...')
|
125
127
|
r = requests.get(
|
126
128
|
'https://raw.githubusercontent.com/MikeMirzayanov/testlib/master/testlib.h'
|
@@ -136,6 +138,8 @@ def _download_testlib(save_at: pathlib.Path):
|
|
136
138
|
|
137
139
|
|
138
140
|
def _download_jngen(save_at: pathlib.Path):
|
141
|
+
import requests
|
142
|
+
|
139
143
|
console.print('Downloading jngen.h...')
|
140
144
|
r = requests.get('https://raw.githubusercontent.com/ifsmirnov/jngen/master/jngen.h')
|
141
145
|
|
@@ -149,6 +153,8 @@ def _download_jngen(save_at: pathlib.Path):
|
|
149
153
|
|
150
154
|
|
151
155
|
def _download_bits_stdcpp(save_at: pathlib.Path):
|
156
|
+
import requests
|
157
|
+
|
152
158
|
console.print('Downloading bits/stdc++.h...')
|
153
159
|
r = requests.get(
|
154
160
|
'https://raw.githubusercontent.com/tekfyl/bits-stdc-.h-for-mac/master/stdc%2B%2B.h'
|
rbx/testing_utils.py
CHANGED
rbx/utils.py
CHANGED
@@ -13,7 +13,6 @@ import rich.status
|
|
13
13
|
import ruyaml
|
14
14
|
import typer
|
15
15
|
import yaml
|
16
|
-
from fastapi.encoders import jsonable_encoder
|
17
16
|
from pydantic import BaseModel
|
18
17
|
from rich import text
|
19
18
|
from rich.highlighter import JSONHighlighter
|
@@ -74,9 +73,7 @@ def model_json(model: BaseModel) -> str:
|
|
74
73
|
def model_to_yaml(model: BaseModel) -> str:
|
75
74
|
path = ensure_schema(model.__class__)
|
76
75
|
return f'# yaml-language-server: $schema={path}\n\n' + yaml.dump(
|
77
|
-
|
78
|
-
model.model_dump(mode='json', exclude_unset=True, exclude_none=True)
|
79
|
-
),
|
76
|
+
model.model_dump(mode='json', exclude_unset=True, exclude_none=True),
|
80
77
|
sort_keys=False,
|
81
78
|
allow_unicode=True,
|
82
79
|
)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
rbx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
rbx/annotations.py,sha256=
|
2
|
+
rbx/annotations.py,sha256=LXbVOSkE9kwcxEirsOMo10cEnvol854QvaCBIjhWyE8,3047
|
3
3
|
rbx/autoenum.py,sha256=cusv8ClXRlDVvhZ8eDrtYcL_2peXlHugAey_ht8roXk,12025
|
4
4
|
rbx/box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
rbx/box/builder.py,sha256=
|
5
|
+
rbx/box/builder.py,sha256=qIXgV-div21Tw8knwCrTtHyDCgYwBrJc0I5b9KhZuKM,3577
|
6
6
|
rbx/box/cd.py,sha256=9a_SOnzoJBXxxffp4Wbf3UKXIwKuN3Hvj7K6SocALwE,1194
|
7
7
|
rbx/box/checkers.py,sha256=VpgDzevOK7hrffG2zJGxquNiu-a9Fl3wquLn7xadcK0,6285
|
8
8
|
rbx/box/code.py,sha256=UFy7jOeTvxtIu9pdVUDv2-D6IW-beJGPC3uCanIKZh0,13412
|
@@ -14,40 +14,42 @@ rbx/box/contest/contest_package.py,sha256=OaUbpBtkhkgOPzJ1ccI_Vq4FMSaJvZm3gMOKfV
|
|
14
14
|
rbx/box/contest/contest_utils.py,sha256=TDE7I6YQJlu4dQd68wzOp019bNgqiT0RlM-LMQMjL9w,301
|
15
15
|
rbx/box/contest/main.py,sha256=oL-GbyLKdpMjIWiSuWTQgRhQ9hcb7DuNn0axkunx0io,7436
|
16
16
|
rbx/box/contest/schema.py,sha256=JMAig5WpaOahNgAHxA9vX4zYeVYDxpjKP_PFGvmmkE0,4954
|
17
|
-
rbx/box/contest/statements.py,sha256=
|
17
|
+
rbx/box/contest/statements.py,sha256=lzfGc_9NtFpN_TlRIP8jRg9QXmPjbdC6uI4B7NRrNKs,2938
|
18
18
|
rbx/box/creation.py,sha256=Evz7K6JoarD-4JJQsZsgoxU9FgCF9Z7-LfuroG4Cqls,2444
|
19
19
|
rbx/box/deferred.py,sha256=II3X9e87JCOZtmspnHh-n4PFqh-FsH_oc0XJHZ9ZYVQ,691
|
20
20
|
rbx/box/download.py,sha256=MFP-R26JiYGAP89I0TK-0fYc69Fsd20tsBqgtRCy5AE,2234
|
21
21
|
rbx/box/environment.py,sha256=47NtyuVC6zSQKAtQaXPEXvqcD-KJiuWRpWF8pYvcG4c,11158
|
22
22
|
rbx/box/extensions.py,sha256=Von8kIeXvNFTkGlMRMTvL2HIHPwlkuiMswr-ydbGV1w,519
|
23
23
|
rbx/box/formatting.py,sha256=3phFRHzqVXj4Ok1yDhCq6Clbw6KlqwJNpMhs--oTWFI,405
|
24
|
-
rbx/box/generators.py,sha256=
|
25
|
-
rbx/box/generators_test.py,sha256=
|
26
|
-
rbx/box/
|
24
|
+
rbx/box/generators.py,sha256=6hm1G4BHmq6Nmbbm2aXHewgVntEjQ5HJtPu6z-sTVrY,12163
|
25
|
+
rbx/box/generators_test.py,sha256=ZRqdolU7YE8HXjxr0met5oGn4DCJ5erdsMt5cSOoXIw,1945
|
26
|
+
rbx/box/lazy_importing_main.py,sha256=6Z8As7qVFFT619xHH9Xt8VCH57NjC4aDxfAgkWiUwT8,116
|
27
|
+
rbx/box/lazy_importing_test.py,sha256=B0-b3y_DkxEmtVfu4NfmVsgVdFl6kRCsEL6GLMHJISo,628
|
28
|
+
rbx/box/main.py,sha256=iSVQYMWo6OOS2LVGlibTTOT_nJVjkLXdlF5xY64CcR8,24451
|
27
29
|
rbx/box/package.py,sha256=80SDHvSzfraCUYutMn_kwsFsmmrSZiaeRHhhrWGmIY4,12081
|
28
30
|
rbx/box/packaging/boca/extension.py,sha256=hQhcbocNfW2ESv5RalS1wf6uvOoOfOnR_gHvbXUbSzY,852
|
29
31
|
rbx/box/packaging/boca/packager.py,sha256=FOhSRg5K5Y4qNB0WyTR3DKgrpObf9I0JbyGpJHOtxpo,10673
|
30
|
-
rbx/box/packaging/contest_main.py,sha256=
|
31
|
-
rbx/box/packaging/main.py,sha256=
|
32
|
+
rbx/box/packaging/contest_main.py,sha256=nMdgPE4OK_tsnUMdRI1cJwLpgxGrwW_mJjox0oOALWw,2757
|
33
|
+
rbx/box/packaging/main.py,sha256=xd6nohKwkKH1ltyVO_uWwydlx47NkJOpkuTtIk46GVw,2271
|
32
34
|
rbx/box/packaging/packager.py,sha256=suCT_SLnWa915rV2j8VFqzH43HGKRTr9mGGlrvj45aw,3267
|
33
35
|
rbx/box/packaging/polygon/packager.py,sha256=HNpxP2nclLChSnrQtkT7tLwDdXHl1dzXMIF5RZwr9M4,10811
|
34
36
|
rbx/box/packaging/polygon/test.py,sha256=bgEju5PwudgyfwxXJagm8fM6CJVlWM6l_-2q1V-oKaQ,3069
|
35
37
|
rbx/box/packaging/polygon/xml_schema.py,sha256=-r24bCeRMGLrGGoT9FIgmqr87xHL-JzrFaR6bztbYtw,2703
|
36
|
-
rbx/box/presets/__init__.py,sha256=
|
38
|
+
rbx/box/presets/__init__.py,sha256=BwmjBw8wF8yiZFjCYBjMk-HGMZaRwhlfszbWAj3B0vw,18689
|
37
39
|
rbx/box/presets/fetch.py,sha256=F-BCOlvEBEyDqtOhiDuGPn4EDtA4Bwm-fqHJ7zZGlW8,1975
|
38
40
|
rbx/box/presets/lock_schema.py,sha256=6sRPnyePOC8yy-5WcD5JRZdDJHf8loqbvpQ1IPiOU9s,349
|
39
41
|
rbx/box/presets/schema.py,sha256=mZmSPkQsw7eQM0lQN6er1MO_LiW1ObwwAZFDK0F5fxE,1962
|
40
42
|
rbx/box/retries.py,sha256=z7cIh1QmLVUsTr3Attt_28dbwNg6KWTwpulcWCFwMPo,4667
|
41
43
|
rbx/box/sanitizers/warning_stack.py,sha256=RI97_GJgdjTKIXY_r0EKp5h0qQQSDSdNDh5K7zINrqs,2861
|
42
|
-
rbx/box/schema.py,sha256=
|
43
|
-
rbx/box/setter_config.py,sha256=
|
44
|
-
rbx/box/solutions.py,sha256=
|
45
|
-
rbx/box/solutions_test.py,sha256=
|
44
|
+
rbx/box/schema.py,sha256=I7Uh_KXBqAX8fHZr4s9LGPEFHxyBttoLSq_hYJefwto,14581
|
45
|
+
rbx/box/setter_config.py,sha256=s53talhwM6FTGDCcBhY7IlZ6_6mJ3PMp6V4kTtaSs50,4262
|
46
|
+
rbx/box/solutions.py,sha256=zt3wOfkQLAndfvY6u6l-1_41-_99x0ZUPW7w6vcC7E0,44019
|
47
|
+
rbx/box/solutions_test.py,sha256=txjAg-n_pkHHolw4WF4foBrpJAL-llAXw6fUIrGURMc,1716
|
46
48
|
rbx/box/state.py,sha256=yTpjfASpnSXkRB3JiDNvCg5b9JNnNxuYT4uMcbdr59s,109
|
47
49
|
rbx/box/statements/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
|
-
rbx/box/statements/build_statements.py,sha256=
|
49
|
-
rbx/box/statements/builders.py,sha256=
|
50
|
-
rbx/box/statements/joiners.py,sha256=
|
50
|
+
rbx/box/statements/build_statements.py,sha256=S23fqp6kmw97PAfk5zn2MVK8BhH1wjRMm2-kKdAOwlI,12052
|
51
|
+
rbx/box/statements/builders.py,sha256=L67i-CP6ftDm2wR6VWywTd3ad7-fhWSSMfaN66Gt13s,11201
|
52
|
+
rbx/box/statements/joiners.py,sha256=jItNXkAbTjFQpPMgfDMW86n3vMTbaE8sgo9I8Yf4Txg,2886
|
51
53
|
rbx/box/statements/latex.py,sha256=LkcHwXjMFxbw--Gj9T1VkFKQFsXhY9dN7xZHpZycNW8,1346
|
52
54
|
rbx/box/statements/latex_jinja.py,sha256=7WBfn1h8DpqCAmSE6Av64HfURMnJ2AO4QX1CD72sz5E,7096
|
53
55
|
rbx/box/statements/schema.py,sha256=ES8EUE9JE_uJlDwQx1kZd_5nQJyABtlnjP5IjbWaJ-0,3897
|
@@ -55,19 +57,20 @@ rbx/box/stresses.py,sha256=ceFpkZVKBfKKVrKFjeARdub5VGKmU9JPZwj-FxcqYjQ,11771
|
|
55
57
|
rbx/box/stressing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
58
|
rbx/box/stressing/finder_parser.py,sha256=jXpYNa4FyugzmHi3r96Uv4rU1krRQJc5Ihr9jf1cvNo,11918
|
57
59
|
rbx/box/stressing/generator_parser.py,sha256=oHZryjR3YohgaSO9WEirQ7b2e-98WgZStF0N99W4Thw,7380
|
58
|
-
rbx/box/
|
60
|
+
rbx/box/testcase_extractors.py,sha256=jh75iTaJ_8TVVGldcdNhQe999GFOwSDUDOccvagDqLw,11745
|
61
|
+
rbx/box/testcase_utils.py,sha256=qtv7-bJbbblMgINvcf_3YTdD85MTtWpD23KUSZUL1as,4327
|
59
62
|
rbx/box/testcases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
60
|
-
rbx/box/testcases/main.py,sha256=
|
63
|
+
rbx/box/testcases/main.py,sha256=vDj7ErK0Y5jUGrwGvDIisqSm5uObKoeknbP5gPxhgzU,5256
|
61
64
|
rbx/box/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
65
|
rbx/box/ui/captured_log.py,sha256=ptICDPViVnz-_2NfrcB0SSBXNW5L74zI-vAZNN7kSok,11319
|
63
66
|
rbx/box/ui/css/app.tcss,sha256=apd5PkPEvl5jK3kE2qrxPyVED1VnvSsj08QQwzUPwEA,786
|
64
67
|
rbx/box/ui/main.py,sha256=b0rHcBF42W4AOCv7WhtiGf_rUnY0yxpqO5oj3wfR4R4,984
|
65
68
|
rbx/box/ui/run.py,sha256=wMEXrEFdQvMHz2hRKAFIithTnTtaL0kNQZu0jKmb8jI,7060
|
66
|
-
rbx/box/validators.py,sha256=
|
69
|
+
rbx/box/validators.py,sha256=WX6PR-eVXm9ghv0cJYYhoe9eyQJDZrkXoK6p_Ya_BY0,10106
|
67
70
|
rbx/box/validators_test.py,sha256=hriR6rD32Ouu64eKYYTPLZVvqMxXj7Q2h1l_JAefL7U,344
|
68
71
|
rbx/checker.py,sha256=pj1jO3my48ru-qugbER5onccANCjoR0-PaFe3H3VGEY,4118
|
69
72
|
rbx/clone.py,sha256=wpHyED0_7ST7LD3vj7HjXhzqEzlwh6dRQvKQVDYhGeU,6744
|
70
|
-
rbx/config.py,sha256=
|
73
|
+
rbx/config.py,sha256=0Mzlh5Ud4Ju7o7uyyRYhQpg8sMP7psUns_xlou6Bopk,8187
|
71
74
|
rbx/conftest.py,sha256=ouilbOIpvX8jTEdCAiWT85CbdBQKUUf41BjmDI82u-Y,967
|
72
75
|
rbx/console.py,sha256=X8EJy68OROgh6ao3ZcUjZm5Y56VFMzen58ywAuQ7pAU,990
|
73
76
|
rbx/create.py,sha256=ezUq9KiSA-88ASd8CtjWXw8UB4LCaQ3Gib3OgvsLK-Q,986
|
@@ -81,7 +84,7 @@ rbx/grading/judge/digester.py,sha256=m6o-kjwyFOXKdImUXtVbdMHhwrgrXk8FDnJFVefnTIw
|
|
81
84
|
rbx/grading/judge/sandbox.py,sha256=0h3YCmGabf9OfORJgx6v2Bed4kE-i8FyuZkPux-sDVk,23569
|
82
85
|
rbx/grading/judge/sandboxes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
83
86
|
rbx/grading/judge/sandboxes/isolate.py,sha256=9xgBuNfAvGtO2zME1FXRah2rcPvzDShsPG0TTuX_UDU,25649
|
84
|
-
rbx/grading/judge/sandboxes/stupid_sandbox.py,sha256=
|
87
|
+
rbx/grading/judge/sandboxes/stupid_sandbox.py,sha256=NBhBO4YnU5xmfRltv1OtdnEuZT0zn32Sdtpzz40UxvE,10137
|
85
88
|
rbx/grading/judge/sandboxes/timeit.py,sha256=xScfasI2lsSQGZVpIZ7qBZfi0IaKC-1k8wO5qFp7UoM,6634
|
86
89
|
rbx/grading/judge/storage.py,sha256=FirqjwDqb0m0h2OTFyWrZL7CQ4XjZNxhqB4JpnDIhZY,9485
|
87
90
|
rbx/grading/judge/test.py,sha256=ll0Iw7zyOpGdKPD_PGH7dvUkb4stQLu-ikbQnqJvuAc,944
|
@@ -165,10 +168,10 @@ rbx/testdata/box1/validator.cpp,sha256=EWiKEWB6Nvke3SjBWHnkhkKJjwOqY_WX5kuXLxibA
|
|
165
168
|
rbx/testdata/box1/wa.sol.cpp,sha256=qsHmvtLJOFI_sdvUT6ITqk7FJYqhrRTCmEIRdy4gSGE,407
|
166
169
|
rbx/testdata/caching/executable.py,sha256=WKRHNf_fprFJd1Fq1ubmQtR3mZzTYVNwKPLWuZ4HrWg,10
|
167
170
|
rbx/testdata/compatible,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
168
|
-
rbx/testing_utils.py,sha256=
|
169
|
-
rbx/utils.py,sha256=
|
170
|
-
rbx_cp-0.5.
|
171
|
-
rbx_cp-0.5.
|
172
|
-
rbx_cp-0.5.
|
173
|
-
rbx_cp-0.5.
|
174
|
-
rbx_cp-0.5.
|
171
|
+
rbx/testing_utils.py,sha256=ZXMysGXpTtvS1lfLL38FuD5iSIyxi3ARjQePDrUmEtc,2067
|
172
|
+
rbx/utils.py,sha256=6e1eXRzNE-52D0UVtqclePxqR4Haiqt8qWCrSVjnGuE,4585
|
173
|
+
rbx_cp-0.5.38.dist-info/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
174
|
+
rbx_cp-0.5.38.dist-info/METADATA,sha256=Gz2gwOfNCvlcHJ9hS4iQI7S8gN7uP_lTLQ1AMll1ca8,3263
|
175
|
+
rbx_cp-0.5.38.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
176
|
+
rbx_cp-0.5.38.dist-info/entry_points.txt,sha256=qBTLBOeifT1F00LWaEewRRE_jQPgvH7BUdJfZ-dYsFU,57
|
177
|
+
rbx_cp-0.5.38.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|