Best Python code snippet using pandera_python
grader.py
Source:grader.py
1#!/usr/bin/python32import click3import configparser4import json5import sys6import os.path7# Hard-coded rubric8# TODO: Load from a configuration file9RUBRIC = [10 ("Task 1: One Dollar", "one_dollar", 10),11 ("Task 1: Double On Win", "double_on_win", 15),12 ("Task 1: Double On Loss", "double_on_loss", 15),13 ("Task 1: Fibonacci Strategy", "fib_strategy", 20),14 ("Task 1: Series Strategy", "series_strategy", 25),15 ("Task 2: Multiple games - One Dollar", "multiple_one_dollar", 3),16 ("Task 2: Multiple games - Double on Win", "multiple_double_on_win", 3),17 ("Task 2: Multiple games - Double on Loss", "multiple_double_on_loss", 3),18 ("Task 2: Multiple games - Fibonacci Strategy", "multiple_fib_strategy", 3),19 ("Task 2: Multiple games - Series Strategy", "multiple_series_strategy", 3)20 ]21def print_empty_gradescope():22 gradescope_json = {}23 gradescope_json["score"] = 0.024 gradescope_json["output"] = "We were unable to run the tests due to an error in your code."25 gradescope_json["visibility"] = "visible"26 gradescope_json["stdout_visibility"] = "visible"27 print(json.dumps(gradescope_json, indent=2))28@click.command(name="criterion-grader")29@click.option('--json-file', type=click.Path(), default="results.json")30@click.option('--csv', is_flag=True)31@click.option('--gradescope', is_flag=True)32def cmd(json_file, csv, gradescope):33 def fail(msg):34 print(msg, file=sys.stderr)35 if gradescope:36 print_empty_gradescope()37 sys.exit(0)38 else:39 sys.exit(1)40 if not os.path.exists(json_file):41 msg = "No such file: {}\n".format(json_file)42 msg += "Make sure you run py.test before running the grader!"43 fail(msg)44 with open(json_file) as f:45 results = json.load(f)46 rubric_ids = [x[1] for x in RUBRIC]47 tests = {}48 for rubric_id in rubric_ids:49 tests[rubric_id] = {}50 for test_suite in results["test_suites"]:51 rubric_entry = test_suite["name"]52 53 for test in test_suite["tests"]:54 test_id = test["name"]55 if test["status"] == "PASSED":56 tests[rubric_entry][test_id] = 157 else:58 tests[rubric_entry][test_id] = 059 scores = {}60 for rubric_id in rubric_ids:61 num_total = len(tests[rubric_id])62 num_success = sum(tests[rubric_id].values())63 num_failed = num_total - num_success64 scores[rubric_id] = (num_success, num_failed, num_total)65 empty_categories = [rubric_id for rubric_id in rubric_ids if len(tests[rubric_id]) == 0]66 if gradescope:67 gradescope_json = {}68 gradescope_json["tests"] = []69 if len(empty_categories) > 0:70 msg = "WARNING: The following test suites had no test results:", ", ".join(empty_categories)71 msg += "\n Make sure you run py.test without '-k' before you run the grader\n"72 fail(msg)73 pscores = []74 pscore = 0.075 if not csv and not gradescope:76 print("%-62s %-6s / %-10s %-6s / %-10s" % ("Category", "Passed", "Total", "Score", "Points"))77 print("-" * 100)78 total_points = 0.079 for rubric_name, rubric_id, rubric_points in RUBRIC:80 total_points += rubric_points81 (num_success, num_failed, num_total) = scores[rubric_id]82 if num_total == 0:83 cscore = 0.084 else:85 cscore = (float(num_success) / num_total) * rubric_points86 pscore += cscore87 if not csv and not gradescope:88 print("%-62s %-6i / %-10i %-6.2f / %-10.2f" % (rubric_name, num_success, num_total, cscore, rubric_points))89 elif gradescope:90 gs_test = {}91 gs_test["score"] = cscore92 gs_test["max_score"] = rubric_points93 gs_test["name"] = rubric_name94 gradescope_json["tests"].append(gs_test)95 if not csv and not gradescope:96 print("-" * 100)97 print("%81s = %-6.2f / %-10i" % ("TOTAL", pscore, total_points))98 print("=" * 100)99 print()100 pscores.append(pscore)101 if csv:102 print(",".join([str(s) for s in pscores]))103 elif gradescope:104 gradescope_json["score"] = pscore105 gradescope_json["visibility"] = "visible"106 gradescope_json["stdout_visibility"] = "visible"107 print(json.dumps(gradescope_json, indent=2))108if __name__ == "__main__":...
__init__.py
Source:__init__.py
1from .multiposition import MultiPositionStrategy2from .series_strategy import SeriesSignals, SeriesStrategy...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!