|
19 | 19 | # name: python |
20 | 20 | # nbconvert_exporter: python |
21 | 21 | # pygments_lexer: ipython3 |
22 | | -# version: 3.12.1 |
| 22 | +# version: 3.12.2 |
23 | 23 | # --- |
24 | 24 |
|
25 | 25 | # %% |
26 | 26 | #################### |
27 | 27 | ## ASSIGN REVIEWS ## |
28 | 28 | #################### |
29 | | -# Imports |
30 | 29 | import json |
31 | 30 | import sys |
| 31 | +from pathlib import Path |
32 | 32 |
|
33 | 33 | import duckdb |
34 | 34 | import pandas as pd |
|
40 | 40 | # # Start script |
41 | 41 |
|
42 | 42 | # %% |
43 | | -# mkdir output |
| 43 | +data_dir = Path().cwd() / ".." / "data" |
| 44 | +output_dir = Path().cwd() / ".." / "output" |
| 45 | +output_dir.mkdir(exist_ok=True) |
44 | 46 |
|
45 | 47 | # %% |
46 | 48 | ASSIGN_TUTORIALS_TO_ANYONE = False |
47 | 49 | TUTORIAL_COEFF = 0.8 |
48 | 50 |
|
49 | 51 | DEBUG = True |
50 | 52 |
|
51 | | -database_file = "../data/assign_reviews.db" |
52 | | -con = duckdb.connect(database_file) |
| 53 | +database_file = data_dir / "assign_reviews.db" |
| 54 | +con = duckdb.connect(str(database_file)) |
53 | 55 | df_submissions = con.sql("table submissions_to_assign").df() |
54 | 56 | df_reviewers = con.sql("table reviewers_to_assign").df() |
55 | 57 |
|
|
82 | 84 | TUTORIAL_COEFF, |
83 | 85 | ASSIGN_TUTORIALS_TO_ANYONE, |
84 | 86 | ) |
85 | | -reviewers, submissions = format_and_output_result(df_reviewers, df_submissions_tutorials, solution, post_fix="00") |
| 87 | +reviewers, submissions = format_and_output_result( |
| 88 | + df_reviewers, df_submissions_tutorials, solution, post_fix="00", output_dir=output_dir |
| 89 | +) |
86 | 90 |
|
87 | 91 | # %% |
88 | 92 | df = pd.DataFrame(reviewers) |
|
141 | 145 | ) |
142 | 146 | if solution is not None: |
143 | 147 | reviewers, submissions = format_and_output_result( |
144 | | - df_reviewers_no_submissions, df_submissions_no_tutorials, solution, post_fix="01" |
| 148 | + df_reviewers_no_submissions, df_submissions_no_tutorials, solution, post_fix="01", output_dir=output_dir |
145 | 149 | ) |
146 | 150 |
|
147 | 151 | # %% |
|
217 | 221 |
|
218 | 222 | if solution is not None: |
219 | 223 | reviewers, submissions = format_and_output_result( |
220 | | - df_reviewers_only_tut, df_submissions_few_reviewers, solution, post_fix="02" |
| 224 | + df_reviewers_only_tut, df_submissions_few_reviewers, solution, post_fix="02", output_dir=output_dir |
221 | 225 | ) |
222 | 226 |
|
223 | 227 | # %% |
|
314 | 318 | # ## Final export |
315 | 319 |
|
316 | 320 | # %% |
317 | | -database_file = "../data/assign_reviews.db" |
318 | | -con = duckdb.connect(database_file) |
| 321 | +database_file = data_dir / "assign_reviews.db" |
| 322 | +con = duckdb.connect(str(database_file)) |
319 | 323 |
|
320 | 324 | # %% |
321 | 325 | reviewer_assignments_final = { |
322 | | - item["reviewer_id"]: item["assigned_submission_ids"] |
| 326 | + item["reviewer_id"]: item["assigned_submission_ids"].tolist() |
323 | 327 | for item in con.sql("table reviewer_assignments_02") |
324 | 328 | .df()[["reviewer_id", "assigned_submission_ids"]] |
325 | 329 | .to_dict("records") |
326 | 330 | } |
327 | | -with open("output/reviewer-assignments.json", "w") as fp: |
| 331 | + |
| 332 | +with open(output_dir / "reviewer-assignments.json", "w") as fp: |
328 | 333 | fp.write(json.dumps(reviewer_assignments_final, indent=4)) |
329 | 334 |
|
330 | 335 | # %% |
|
0 commit comments