MCPcopy
hub / github.com/Codium-ai/AlphaCodium / solve_problem

Function solve_problem

alpha_codium/gen/coding_competitor.py:104–158  ·  view source on GitHub ↗
(dataset_name,
                  split_name="valid",
                  problem_name="",
                  problem_number=0)

Source from the content-addressed store, hash-verified

102
103
104def solve_problem(dataset_name,
105 split_name="valid",
106 problem_name="",
107 problem_number=0):
108
109 # load dataset
110 logger = get_logger(__name__)
111 data_provider = CodeContestDataProvider(dataset_location=dataset_name)
112 if problem_number and problem_name:
113 logger.info(f"problem_number and problem_name are both specified, using problem_name")
114 if not problem_name and problem_number:
115 problem_name = data_provider.dataset[split_name][int(problem_number)]['name']
116 logger.info(f"problem_name: {problem_name}")
117
118 # find problem
119 problem = data_provider.find_problem(ds=data_provider.dataset, problem_name=problem_name, split_name=split_name)
120 logger.info(f"problem['name']: {problem['name']}")
121
122 # # check if problem is valid (at least one of the provided solutions actually passes the generated tests)
123 # if not problem.get('is_valid_problem', True):
124 # logger.info(f"problem['is_valid_problem'] == False, skipping")
125 # return None, None
126
127 # evaluate prev solutions
128 evaluate_prev_solutions = get_settings().get("dataset.evaluate_prev_solutions", False)
129 if evaluate_prev_solutions:
130 try:
131 if not problem['solutions']['solution']:
132 logger.info("No public solutions for this problem")
133 found_solution = False
134 for index_published, sol_published in enumerate(problem['solutions']['solution']):
135 if 'python' not in problem['solutions']['language'][index_published].lower():
136 found_solution = True
137 continue
138 logger.info(f"evaluating public solution {index_published} on private tests...")
139 test_results, test_passed_private, test_failed_private, test_timeout_private \
140 = evaluate_solution_on_subset('private_tests', problem, sol_published, silent=True)
141 logger.info(f"evaluating public solution {index_published} on generated tests...")
142 test_results, test_passed_generate, test_failed_generate, test_timeout_generate = (
143 evaluate_solution_on_subset('generated_tests', problem, sol_published, silent=True))
144
145 if (test_failed_private == test_failed_generate == test_timeout_private == test_timeout_generate == 0) \
146 and test_passed_private + test_passed_generate > 0:
147 logger.info(f"sol_published index {index_published} passed all tests:\n{sol_published}")
148 found_solution = True
149 break
150
151 if not found_solution:
152 logger.info(f"None of the public solutions passed all tests")
153 except Exception as e:
154 logger.error(f"Error evaluating public solutions: {e}")
155 pass
156
157
158 return solve_my_problem(problem)
159
160
161def solve_my_problem(problem):

Callers 1

solve_problem.pyFile · 0.90

Calls 6

find_problemMethod · 0.95
get_loggerFunction · 0.90
get_settingsFunction · 0.90
solve_my_problemFunction · 0.85

Tested by

no test coverage detected