OpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games.
This report summarizes scanner evidence for google-deepmind/open_spiel, a C++ project with 5,526 GitHub stars. SynthScan examined 340,103 lines of code across 1318 source files, recording 3948 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 16.5 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 3341 finding(s).
Are imports declared and package/API names verified? 129 finding(s).
Are wrappers, guards, and repeated structures necessary? 1313 finding(s).
Which changes need focused human review? 3948 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 3948 distinct pattern matches across 19 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | requirements.txt | 1 | # The core OpenSpiel pip dependencies. | COMMENT |
| LOW | .pre-commit-config.yaml | 1 | # Optional developer tooling. Nothing here runs automatically in CI; these | COMMENT |
| LOW | install.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | __init__.py | 1 | # Copyright 2019 DeepMind Technologies Limited | COMMENT |
| LOW | setup.py | 1 | # Copyright 2019 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/game_parameters.h | 1 | // Copyright 2021 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/action_view.h | 1 | // Copyright 2021 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/action_view.h | 81 | int num_actions(Player pl) const { return legal_actions.at(pl).size(); } | COMMENT |
| LOW | open_spiel/canonical_game_strings.h | 1 | // Copyright 2021 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/canonical_game_strings.h | 21 | // can sent to LoadGame to load the game. | COMMENT |
| LOW | open_spiel/observer.h | 1 | // Copyright 2019 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/observer.h | 21 | COMMENT | |
| LOW | open_spiel/observer.h | 41 | // for accessing pieces of the observation tensor by name. See `observation.py` | COMMENT |
| LOW | open_spiel/observer.h | 221 | COMMENT | |
| LOW | open_spiel/observer.h | 241 | // within this sequence. | COMMENT |
| LOW | open_spiel/observer.h | 261 | // his hand in the reflection. Even if everyone was aware of the mirror, then | COMMENT |
| LOW | open_spiel/observer.h | 361 | return tensors_info_; | COMMENT |
| LOW | open_spiel/observer.h | 381 | // Different computer architectures may use different Endianness | COMMENT |
| LOW | open_spiel/observer.h | 441 | observers() { | COMMENT |
| LOW | open_spiel/policy.h | 1 | // Copyright 2021 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/policy.h | 121 | // player at this state. If the policy is not available at the state, returns | COMMENT |
| LOW | open_spiel/tensor_game.h | 1 | // Copyright 2021 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/tensor_game.h | 21 | #include <numeric> | COMMENT |
| LOW | open_spiel/__init__.py | 1 | # Copyright 2019 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/spiel.h | 1 | // Copyright 2021 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/spiel.h | 21 | #include <memory> | COMMENT |
| LOW | open_spiel/spiel.h | 161 | || provides_observation_string; | COMMENT |
| LOW | open_spiel/spiel.h | 181 | // Information about a concrete Game instantiation. | COMMENT |
| LOW | open_spiel/spiel.h | 301 | class State { | COMMENT |
| LOW | open_spiel/spiel.h | 321 | // Change the state of the game by applying the specified action in turn-based | COMMENT |
| LOW | open_spiel/spiel.h | 361 | // be overridden by simultaneous-move games. At least one player should have a | COMMENT |
| LOW | open_spiel/spiel.h | 381 | // least one legal action. | COMMENT |
| LOW | open_spiel/spiel.h | 481 | // implemented. The default is to return 0 except at terminal states, where | COMMENT |
| LOW | open_spiel/spiel.h | 581 | // Is this a first state in the game, i.e. the initial state (root node)? | COMMENT |
| LOW | open_spiel/spiel.h | 601 | // well, like P1Jack and P2Jack. However prefixing by player number is not | COMMENT |
| LOW | open_spiel/spiel.h | 621 | // | COMMENT |
| LOW | open_spiel/spiel.h | 641 | return InformationStateString(CurrentPlayer()); | COMMENT |
| LOW | open_spiel/spiel.h | 681 | // Note that neither of these are valid information states, since the same | COMMENT |
| LOW | open_spiel/spiel.h | 741 | std::unique_ptr<State> child = Clone(); | COMMENT |
| LOW | open_spiel/spiel.h | 781 | // | COMMENT |
| LOW | open_spiel/spiel.h | 801 | outcome_list.push_back(pair.first); | COMMENT |
| LOW | open_spiel/spiel.h | 821 | // Resamples a new history from the information state from player_id's view. | COMMENT |
| LOW | open_spiel/spiel.h | 861 | return {}; | COMMENT |
| LOW | open_spiel/spiel.h | 921 | // Breakthrough(8x8). | COMMENT |
| LOW | open_spiel/spiel.h | 1001 | // give some information to algorithms that require it, and so their | COMMENT |
| LOW | open_spiel/spiel.h | 1061 | } | COMMENT |
| LOW | open_spiel/spiel.h | 1121 | // Returns true if these games are equal, false otherwise. | COMMENT |
| LOW | open_spiel/spiel.h | 1321 | // (with whitespace allowed). | COMMENT |
| LOW | open_spiel/spiel.h | 1341 | COMMENT | |
| LOW | open_spiel/spiel.h | 1361 | // parsed using LoadGame(string) and the state section is parsed using | COMMENT |
| LOW | open_spiel/spiel.h | 1381 | // LoadGame. | COMMENT |
| LOW | open_spiel/spiel_globals.h | 1 | // Copyright 2021 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/spiel_utils.h | 1 | // Copyright 2021 DeepMind Technologies Limited | COMMENT |
| LOW | open_spiel/spiel_utils.h | 21 | #include <cstdint> | COMMENT |
| LOW | open_spiel/spiel_utils.h | 301 | __FILE__, ":", __LINE__, " CHECK_TRUE(", #x, "): ", e), \ | COMMENT |
| LOW | open_spiel/spiel_utils.h | 321 | #define SPIEL_DCHECK_EQ(x, y) SPIEL_CHECK_EQ(x, y) | COMMENT |
| LOW | open_spiel/spiel_utils.h | 341 | #define SPIEL_DCHECK_NE(x, y) | COMMENT |
| LOW | open_spiel/spiel_utils.h | 441 | int operator()(absl::Span<const double> probs); | COMMENT |
| LOW | open_spiel/spiel_utils.h | 461 | // SPIEL_DEFINE_STRUCT(TicTacToeStateStruct, StateStruct, | COMMENT |
| LOW | open_spiel/spiel_utils.h | 481 | // SPIEL_STRUCT_BOILERPLATE: Generates boilerplate for structs with inline | COMMENT |
| 2216 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | open_spiel/python/policy.py | 0 | returns the key to use to look up this (state, player) pair. | STRING |
| HIGH | open_spiel/python/algorithms/policy_aggregator_joint.py | 0 | returns the key to use to look up this (state, player) pair. | STRING |
| HIGH | open_spiel/python/algorithms/policy_aggregator.py | 0 | returns the key to use to look up this (state, player) pair. | STRING |
| HIGH | open_spiel/python/algorithms/noisy_policy.py | 0 | returns the key to use to look up this (state, player) pair. | STRING |
| HIGH | open_spiel/python/algorithms/policy_aggregator_joint.py | 0 | returns the policy for a player in a state. args: state: a `pyspiel.state` object. player_id: optional, the player id fo | STRING |
| HIGH | open_spiel/python/algorithms/policy_aggregator.py | 0 | returns the policy for a player in a state. args: state: a `pyspiel.state` object. player_id: optional, the player id fo | STRING |
| HIGH | open_spiel/python/algorithms/best_response.py | 0 | returns the policy for a player in a state. args: state: a `pyspiel.state` object. player_id: optional, the player id fo | STRING |
| HIGH | open_spiel/python/algorithms/noisy_policy.py | 0 | returns the policy for a player in a state. args: state: a `pyspiel.state` object. player_id: optional, the player id fo | STRING |
| HIGH | …_spiel/python/algorithms/boltzmann_tabular_qlearner.py | 0 | returns a selected action and the probabilities of legal actions. | STRING |
| HIGH | open_spiel/python/pytorch/boltzmann_dqn.py | 0 | returns a selected action and the probabilities of legal actions. | STRING |
| HIGH | open_spiel/python/jax/boltzmann_dqn.py | 0 | returns a selected action and the probabilities of legal actions. | STRING |
| HIGH | open_spiel/python/algorithms/wolf_phc.py | 0 | returns the action to be taken and updates the q-network if needed. args: time_step: an instance of rl_environment.times | STRING |
| HIGH | open_spiel/python/algorithms/tabular_qlearner.py | 0 | returns the action to be taken and updates the q-network if needed. args: time_step: an instance of rl_environment.times | STRING |
| HIGH | open_spiel/python/pytorch/eva.py | 0 | returns the action to be taken and updates the q-network if needed. args: time_step: an instance of rl_environment.times | STRING |
| HIGH | open_spiel/python/pytorch/policy_gradient.py | 0 | returns the action to be taken and updates the q-network if needed. args: time_step: an instance of rl_environment.times | STRING |
| HIGH | open_spiel/python/jax/policy_gradient.py | 0 | returns the action to be taken and updates the q-network if needed. args: time_step: an instance of rl_environment.times | STRING |
| HIGH | open_spiel/python/pytorch/nfsp.py | 0 | returns the action to be taken and updates the q-network if needed. args: time_step: an instance of rl_environment.times | STRING |
| HIGH | open_spiel/python/jax/nfsp.py | 0 | returns the action to be taken and updates the q-network if needed. args: time_step: an instance of rl_environment.times | STRING |
| HIGH | open_spiel/python/jax/dqn.py | 0 | returns the action to be taken and updates the q-network if needed. args: time_step: an instance of rl_environment.times | STRING |
| HIGH | open_spiel/python/algorithms/cfr_br.py | 0 | performs a single step of policy evaluation and policy improvement. | STRING |
| HIGH | open_spiel/python/algorithms/cfr.py | 0 | performs a single step of policy evaluation and policy improvement. | STRING |
| HIGH | open_spiel/python/algorithms/discounted_cfr.py | 0 | performs a single step of policy evaluation and policy improvement. | STRING |
| HIGH | open_spiel/python/algorithms/efr.py | 0 | performs a single step of policy evaluation and policy improvement. | STRING |
| HIGH | …l/python/algorithms/boltzmann_tabular_qlearner_test.py | 0 | efg 2 r "simple single-agent problem" { "player 1" } "" p "root" 1 1 "root" { "l" "r" } 0 t "l" 1 "outcome l" { -1.0 } t | STRING |
| HIGH | open_spiel/python/algorithms/tabular_qlearner_test.py | 0 | efg 2 r "simple single-agent problem" { "player 1" } "" p "root" 1 1 "root" { "l" "r" } 0 t "l" 1 "outcome l" { -1.0 } t | STRING |
| HIGH | …en_spiel/python/examples/rrps_poprl/impala_jax_test.py | 0 | efg 2 r "simple single-agent problem" { "player 1" } "" p "root" 1 1 "root" { "l" "r" } 0 t "l" 1 "outcome l" { -1.0 } t | STRING |
| HIGH | open_spiel/python/pytorch/dqn_pytorch_test.py | 0 | efg 2 r "simple single-agent problem" { "player 1" } "" p "root" 1 1 "root" { "l" "r" } 0 t "l" 1 "outcome l" { -1.0 } t | STRING |
| HIGH | open_spiel/python/pytorch/ppo_pytorch_test.py | 0 | efg 2 r "simple single-agent problem" { "player 1" } "" p "root" 1 1 "root" { "l" "r" } 0 t "l" 1 "outcome l" { -1.0 } t | STRING |
| HIGH | open_spiel/python/pytorch/boltzmann_dqn_pytorch_test.py | 0 | efg 2 r "simple single-agent problem" { "player 1" } "" p "root" 1 1 "root" { "l" "r" } 0 t "l" 1 "outcome l" { -1.0 } t | STRING |
| HIGH | open_spiel/python/jax/dqn_jax_test.py | 0 | efg 2 r "simple single-agent problem" { "player 1" } "" p "root" 1 1 "root" { "l" "r" } 0 t "l" 1 "outcome l" { -1.0 } t | STRING |
| HIGH | open_spiel/python/jax/boltzmann_dqn_jax_test.py | 0 | efg 2 r "simple single-agent problem" { "player 1" } "" p "root" 1 1 "root" { "l" "r" } 0 t "l" 1 "outcome l" { -1.0 } t | STRING |
| HIGH | …python/algorithms/adidas_utils/solvers/symmetric/pg.py | 0 | regret matching does not minimize any exploitability so return nan. args: params: tuple of params (dist,) payoff_matrice | STRING |
| HIGH | …hon/algorithms/adidas_utils/solvers/nonsymmetric/pg.py | 0 | regret matching does not minimize any exploitability so return nan. args: params: tuple of params (dist,) payoff_matrice | STRING |
| HIGH | …/algorithms/adidas_utils/solvers/symmetric/regmatch.py | 0 | regret matching does not minimize any exploitability so return nan. args: params: tuple of params (dist,) payoff_matrice | STRING |
| HIGH | …gorithms/adidas_utils/solvers/symmetric/adam_anneal.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …ython/algorithms/adidas_utils/solvers/symmetric/ate.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …on/algorithms/adidas_utils/solvers/nonsymmetric/ate.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …thms/adidas_utils/solvers/nonsymmetric/ate_regmatch.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …gorithms/adidas_utils/solvers/nonsymmetric/ate_poly.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …lgorithms/adidas_utils/solvers/symmetric/qre_anneal.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …lgorithms/adidas_utils/solvers/symmetric/ate_anneal.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …rithms/adidas_utils/solvers/nonsymmetric/ate_anneal.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …hms/adidas_utils/solvers/symmetric/qre_anneal_noaux.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …ython/algorithms/adidas_utils/solvers/symmetric/qre.py | 0 | compute and return gradients (and exploitabilities) for all parameters. args: params: tuple of params (dist, y), see qre | STRING |
| HIGH | …gorithms/adidas_utils/solvers/symmetric/adam_anneal.py | 0 | compute and return tsallis entropy regularized exploitability. args: params: tuple of params (dist, y), see ate.gradient | STRING |
| HIGH | …lgorithms/adidas_utils/solvers/symmetric/qre_anneal.py | 0 | compute and return tsallis entropy regularized exploitability. args: params: tuple of params (dist, y), see ate.gradient | STRING |
| HIGH | …hms/adidas_utils/solvers/symmetric/qre_anneal_noaux.py | 0 | compute and return tsallis entropy regularized exploitability. args: params: tuple of params (dist, y), see ate.gradient | STRING |
| HIGH | …ython/algorithms/adidas_utils/solvers/symmetric/qre.py | 0 | compute and return tsallis entropy regularized exploitability. args: params: tuple of params (dist, y), see ate.gradient | STRING |
| HIGH | …ython/algorithms/adidas_utils/solvers/symmetric/ate.py | 0 | compute and return tsallis entropy regularized exploitability. args: params: tuple of params (dist, y), see ate.gradient | STRING |
| HIGH | …lgorithms/adidas_utils/solvers/symmetric/ate_anneal.py | 0 | compute and return tsallis entropy regularized exploitability. args: params: tuple of params (dist, y), see ate.gradient | STRING |
| HIGH | …on/algorithms/adidas_utils/solvers/nonsymmetric/ate.py | 0 | compute and return tsallis entropy regularized exploitability. args: params: tuple of params (dist, y), see ate.gradient | STRING |
| HIGH | …rithms/adidas_utils/solvers/nonsymmetric/ate_anneal.py | 0 | compute and return tsallis entropy regularized exploitability. args: params: tuple of params (dist, y), see ate.gradient | STRING |
| HIGH | …gorithms/adidas_utils/solvers/nonsymmetric/ate_poly.py | 0 | compute and return tsallis entropy regularized exploitability. args: params: tuple of params (dist, y), see ate.gradient | STRING |
| HIGH | …gorithms/adidas_utils/solvers/symmetric/adam_anneal.py | 0 | computes exploitablity gradient and aux variable gradients. args: dist: 1-d np.array, current estimate of nash distribut | STRING |
| HIGH | …lgorithms/adidas_utils/solvers/symmetric/qre_anneal.py | 0 | computes exploitablity gradient and aux variable gradients. args: dist: 1-d np.array, current estimate of nash distribut | STRING |
| HIGH | …hms/adidas_utils/solvers/symmetric/qre_anneal_noaux.py | 0 | computes exploitablity gradient and aux variable gradients. args: dist: 1-d np.array, current estimate of nash distribut | STRING |
| HIGH | …ython/algorithms/adidas_utils/solvers/symmetric/qre.py | 0 | computes exploitablity gradient and aux variable gradients. args: dist: 1-d np.array, current estimate of nash distribut | STRING |
| HIGH | …gorithms/adidas_utils/solvers/symmetric/adam_anneal.py | 0 | computes exploitablity gradient. assumption: eta_k = 1 for all k args: dist: 1-d np.array, current estimate of nash dist | STRING |
| HIGH | …thon/algorithms/adidas_utils/solvers/symmetric/adam.py | 0 | computes exploitablity gradient. assumption: eta_k = 1 for all k args: dist: 1-d np.array, current estimate of nash dist | STRING |
| HIGH | …ython/algorithms/adidas_utils/solvers/symmetric/sgd.py | 0 | computes exploitablity gradient. assumption: eta_k = 1 for all k args: dist: 1-d np.array, current estimate of nash dist | STRING |
| 283 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | open_spiel/bots/xinxin/xinxin_bot_test.py | 34 | def test_basic_xinxin_selfplay(self): | CODE |
| LOW | open_spiel/python/policy.py | 53 | def joint_action_probabilities_aux(state, policy): | CODE |
| LOW | open_spiel/python/policy.py | 76 | def joint_action_probabilities(state, policy): | CODE |
| LOW | open_spiel/python/policy.py | 473 | def get_tabular_policy_states(game): | CODE |
| LOW | open_spiel/python/policy.py | 495 | def tabular_policy_from_callable(game, callable_policy, players=None): | CODE |
| LOW | open_spiel/python/policy.py | 522 | def pyspiel_policy_to_python_policy(game, pyspiel_tabular_policy, players=None): | CODE |
| LOW | open_spiel/python/policy.py | 550 | def python_policy_to_pyspiel_policy(python_tabular_policy): | CODE |
| LOW | open_spiel/python/policy.py | 565 | def python_policies_to_pyspiel_policies(policies): | CODE |
| LOW | open_spiel/python/egt/dynamics_test.py | 28 | def _sum_j_x_j_ln_x_j_over_x_i(x): | CODE |
| LOW | open_spiel/python/egt/dynamics_test.py | 50 | def test__sum_j_x_j_ln_x_j_over_x_i(self): | CODE |
| LOW | open_spiel/python/egt/dynamics_test.py | 82 | def test_rd_rps_pure_fixed_points(self): | CODE |
| LOW⚡ | open_spiel/python/egt/dynamics_test.py | 94 | def test_dynamics_rps_mixed_fixed_point(self, func): | CODE |
| LOW⚡ | open_spiel/python/egt/dynamics_test.py | 101 | def test_multi_population_rps(self): | CODE |
| LOW⚡ | open_spiel/python/egt/dynamics_test.py | 109 | def test_multi_population_three_populations(self): | CODE |
| LOW⚡ | open_spiel/python/egt/dynamics_test.py | 116 | def test_multi_population_four_populations(self): | CODE |
| LOW | open_spiel/python/egt/utils_test.py | 86 | def test_distribution_equivalent_implementation(self, num_items, num_slots): | CODE |
| LOW | open_spiel/python/egt/utils_test.py | 95 | def test_sort_rows_lexicographically(self): | CODE |
| LOW | open_spiel/python/egt/utils_test.py | 136 | def test_get_valid_next_profiles(self): | CODE |
| LOW | open_spiel/python/egt/utils_test.py | 151 | def test_constant_sum_checker(self): | CODE |
| LOW | open_spiel/python/egt/utils_test.py | 162 | def test_game_payoffs_array_rps(self): | CODE |
| LOW | open_spiel/python/egt/utils_test.py | 171 | def test_game_payoffs_array_pd(self): | CODE |
| LOW | open_spiel/python/egt/alpharank.py | 256 | def _get_singlepop_transition_matrix(payoff_table, | CODE |
| LOW | open_spiel/python/egt/alpharank.py | 327 | def _get_multipop_transition_matrix(payoff_tables, | CODE |
| LOW | open_spiel/python/egt/alpharank.py | 692 | def compute_and_report_alpharank(payoff_tables, | CODE |
| LOW | open_spiel/python/egt/alpharank_visualizer.py | 314 | def generate_sorted_masses_strats(pi_list, curr_alpha_idx, strats_to_go): | CODE |
| LOW | open_spiel/python/egt/heuristic_payoff_table.py | 177 | def from_heuristic_payoff_table(hpt): | CODE |
| LOW | open_spiel/python/egt/heuristic_payoff_table.py | 195 | def _compute_win_probability_from_elo(rating_1, rating_2): | CODE |
| LOW | open_spiel/python/egt/heuristic_payoff_table.py | 483 | def get_distribution_from_profile(self, strat_profile): | CODE |
| LOW | open_spiel/python/egt/heuristic_payoff_table.py | 502 | def _multinomial_coefficients(distributions): | CODE |
| LOW | open_spiel/python/egt/heuristic_payoff_table_test.py | 29 | def test__multinomial_coefficients(self): | CODE |
| LOW | open_spiel/python/egt/heuristic_payoff_table_test.py | 79 | def test_from_heuristic_payoff_table(self): | CODE |
| LOW | open_spiel/python/egt/alpharank_test.py | 33 | def test_stationary_distribution(self): | CODE |
| LOW | open_spiel/python/egt/alpharank_test.py | 63 | def test_constant_sum_transition_matrix(self): | CODE |
| LOW | open_spiel/python/egt/utils.py | 146 | def sort_rows_lexicographically(array): | CODE |
| LOW | open_spiel/python/egt/utils.py | 185 | def get_num_strats_per_population(payoff_tables, payoffs_are_hpt_format): | CODE |
| LOW | open_spiel/python/egt/utils.py | 268 | def get_strat_profile_from_id(num_strats_per_population, profile_id): | CODE |
| LOW | open_spiel/python/egt/utils.py | 294 | def get_label_from_strat_profile(num_populations, strat_profile, strat_labels): | CODE |
| LOW | open_spiel/python/egt/utils.py | 321 | def get_id_from_strat_profile(num_strats_per_population, strat_profile): | CODE |
| LOW | …ython/bots/bluechip_bridge_uncontested_bidding_test.py | 30 | def test_complete_session_east(self): | CODE |
| LOW | …ython/bots/bluechip_bridge_uncontested_bidding_test.py | 92 | def test_complete_session_west(self): | CODE |
| LOW | …ython/bots/bluechip_bridge_uncontested_bidding_test.py | 151 | def test_invalid_fixed_message(self): | CODE |
| LOW | …ython/bots/bluechip_bridge_uncontested_bidding_test.py | 168 | def test_invalid_variable_message(self): | CODE |
| LOW | …ython/bots/bluechip_bridge_uncontested_bidding_test.py | 189 | def test_string_to_action_to_string_roundtrip(self): | CODE |
| LOW | …ython/bots/bluechip_bridge_uncontested_bidding_test.py | 197 | def test_action_to_string_to_action_roundtrip(self): | CODE |
| LOW | open_spiel/python/environments/catch_test.py | 24 | def _select_random_legal_action(time_step): | CODE |
| LOW | open_spiel/python/environments/cliff_walking_test.py | 23 | def _select_random_legal_action(time_step): | CODE |
| LOW | open_spiel/python/voting/base_test.py | 24 | def test_basic_preference_profile(self): | CODE |
| LOW | open_spiel/python/voting/base_test.py | 43 | def test_basic_preference_profile_weighted(self): | CODE |
| LOW⚡ | open_spiel/python/voting/base_test.py | 60 | def test_weighted_vote_validates_weight(self): | CODE |
| LOW⚡ | open_spiel/python/voting/base_test.py | 69 | def test_preference_profile_incremental_group(self): | CODE |
| LOW | open_spiel/python/voting/base_test.py | 105 | def test_pref_margin_matrices_strong_condorcet(self): | CODE |
| LOW | open_spiel/python/voting/elo.py | 23 | def compute_ratings_from_preference_profile( | CODE |
| LOW | open_spiel/python/voting/maximal_lotteries_test.py | 31 | def test_maximal_lotteries_basic_run(self): | CODE |
| LOW | open_spiel/python/voting/maximal_lotteries_test.py | 45 | def test_maximal_lotteries_basic_iterative(self): | CODE |
| LOW | open_spiel/python/voting/maximal_lotteries_test.py | 67 | def test_maximal_lotteries_cycle(self): | CODE |
| LOW | open_spiel/python/voting/maximal_lotteries_test.py | 79 | def test_maximal_lotteries_iterative_cycle(self): | CODE |
| LOW | open_spiel/python/voting/stv.py | 82 | def _initial_scores_for_round( | CODE |
| LOW | open_spiel/python/voting/stv_test.py | 32 | def test_ranked_pairs_wikipedia_example(self): | CODE |
| LOW | open_spiel/python/voting/schulze_test.py | 28 | def test_shulze_wikipedia_example(self): | CODE |
| LOW | open_spiel/python/voting/elo_test.py | 47 | def test_meeple_pentathlon_with_integer_alternatives(self): | CODE |
| 737 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 70 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | pyproject.toml | 72 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/python/algorithms/sequence_form_lp_test.py | 119 | # │ ├── P1: Stop ──────► Payoff (0, 0) | COMMENT |
| MEDIUM⚡ | open_spiel/python/algorithms/sequence_form_lp_test.py | 120 | # │ └── P1: Play ──────► P2 infoset (cannot see card) | COMMENT |
| MEDIUM⚡ | open_spiel/python/algorithms/sequence_form_lp_test.py | 124 | # ├── P1: Stop ──────► Payoff (0, 0) | COMMENT |
| MEDIUM⚡ | open_spiel/python/algorithms/sequence_form_lp_test.py | 125 | # └── P1: Play ──────► (same P2 infoset) | COMMENT |
| MEDIUM | open_spiel/python/examples/deep_cfr_pytorch.py | 32 | # --------------------------------------- | COMMENT |
| MEDIUM | open_spiel/python/examples/deep_cfr_jax.py | 39 | # --------------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/python/games/pokerkit_wrapper.py | 1473 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | open_spiel/python/games/pokerkit_wrapper.py | 1474 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | open_spiel/python/games/pokerkit_wrapper.py | 1475 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | open_spiel/python/games/pokerkit_wrapper.py | 265 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | open_spiel/python/games/pokerkit_wrapper.py | 2077 | # ------------------------------------------------------------------------------ | COMMENT |
| MEDIUM | open_spiel/python/games/pursuit_evasion.py | 259 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | open_spiel/python/games/pursuit_evasion.py | 261 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 31 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 38 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 42 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 45 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 64 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 71 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 75 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 78 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 137 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 144 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 148 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 151 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 171 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 178 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 182 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 185 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 209 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 216 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 221 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 224 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 244 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 251 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 256 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 259 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 279 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 286 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 291 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 294 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 314 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 321 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 326 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 329 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 457 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 464 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 469 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 472 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 492 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 499 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 504 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 507 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 651 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 658 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 663 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 666 | # --------------------------------- | COMMENT |
| MEDIUM⚡ | open_spiel/integration_tests/playthroughs/cribbage.txt | 686 | # --------------------------------- | COMMENT |
| 55 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | open_spiel/python/rl_environment.py | 338 | Updates the environment according to `actions` and returns a `TimeStep`. If the environment returned a `TimeStep` w | STRING |
| HIGH | open_spiel/python/egt/heuristic_payoff_table.py | 34 | Builds a heuristic payoff table from average win probabilities. Args: df: a Pandas dataframe of match results. Mu | STRING |
| HIGH | open_spiel/python/egt/heuristic_payoff_table.py | 214 | Computes the Elo win probability payoff matrix `X` from the Elo scores. Args: elo_ratings: The elo scores vector | STRING |
| HIGH | open_spiel/python/egt/heuristic_payoff_table.py | 281 | The expected payoff of each pure strategy against the mixed strategy. We define the expected payoff of a strategy A | STRING |
| HIGH | open_spiel/python/egt/utils.py | 223 | Returns strategy labels corresponding to a payoff_table. Namely, for games where strategies have no human-understanda | STRING |
| HIGH | open_spiel/python/algorithms/generate_playthrough.py | 466 | Returns the playthrough parameters from a playthrough record. Args: lines: The playthrough as a list of lines. | STRING |
| HIGH | open_spiel/python/algorithms/exploitability.py | 121 | Returns the exploitability of the policy in the game. This is implemented only for 2 players constant-sum games, and | STRING |
| HIGH | open_spiel/python/algorithms/exploitability.py | 165 | Returns a measure of closeness to Nash for a policy in the game. See https://arxiv.org/pdf/1711.00832.pdf for the Nas | STRING |
| HIGH | …iel/python/algorithms/psro_v2/abstract_meta_trainer.py | 31 | Process a callable or a string representing a callable. Args: string_or_callable: Either a string or a callable | STRING |
| HIGH | open_spiel/python/algorithms/psro_v2/rl_oracle.py | 148 | Randomly samples a set of policies to run during the next episode. Note : sampling is biased to select players & st | STRING |
| HIGH | open_spiel/python/algorithms/psro_v2/rl_oracle.py | 214 | Generates new policies to be trained into best responses. Args: training_parameters: list of list of training | STRING |
| HIGH | open_spiel/python/algorithms/psro_v2/rl_oracle.py | 245 | Call method for oracle, returns best responses against a set of policies. Args: game: The game on which the o | STRING |
| HIGH | …piel/python/algorithms/psro_v2/best_response_oracle.py | 97 | Call method for oracle, returns best responses for training_parameters. Args: game: The game on which the opt | STRING |
| HIGH | open_spiel/python/algorithms/alpha_zero/utils.py | 33 | Allows to choose an implementation API. Args: api_version (str): either of {AVIALABLE_APIS} Returns: model | STRING |
| HIGH | …en_spiel/python/algorithms/alpha_zero/replay_buffer.py | 100 | Returns `num_samples` uniformly sampled from the buffer. Args: rng: `chex.PRNGKey`, a random state state: `Re | STRING |
| HIGH | open_spiel/python/mfg/tabular_distribution.py | 37 | Returns the probability of the distribution on the state string given. Args: state_str: A string. defau | STRING |
| HIGH | open_spiel/python/mfg/algorithms/bandit_regret.py | 135 | Quick implementation of the power method. Args: w_nus: Returns: Highest eigenvalue of the system. Raise | STRING |
| HIGH | open_spiel/python/utils/reservoir_buffer.py | 54 | Returns `num_samples` uniformly sampled from the buffer. Args: num_samples: `int`, number of samples to draw. | STRING |
| HIGH | open_spiel/python/utils/replay_buffer.py | 50 | Returns `num_samples` uniformly sampled from the buffer. Args: num_samples: `int`, number of samples to draw. | STRING |
| HIGH | …el/python/examples/mcp_tool_server/open_spiel_tools.py | 80 | Get detailed information about a specific OpenSpiel game. Args: game_name: The short name of the game (e.g., | STRING |
| HIGH | open_spiel/python/pytorch/deep_cfr.py | 185 | Returns `num_samples` uniformly sampled from the buffer. Args: num_samples: `int`, number of samples to draw. | STRING |
| HIGH | open_spiel/python/pytorch/nfsp.py | 115 | Returns `num_samples` uniformly sampled from the buffer. Args: num_samples: `int`, number of samples to draw. | STRING |
| HIGH | open_spiel/python/pytorch/dqn.py | 97 | Returns `num_samples` uniformly sampled from the buffer. Args: num_samples: `int`, number of samples to draw. | STRING |
| HIGH | open_spiel/python/pytorch/rcfr.py | 169 | Returns a behavioral policy at `state` from sequence weights. Args: sequence_weights: An array of non-negativ | STRING |
| HIGH | open_spiel/python/pytorch/rcfr.py | 240 | Returns counterfactual regrets and reach weights as a tuple. Args: regret_player: The player for whom counter | STRING |
| HIGH | open_spiel/python/pytorch/rcfr.py | 265 | Compute `state`'s counterfactual regrets and reach weights. Args: state: An OpenSpiel `State`. re | STRING |
| HIGH | open_spiel/python/jax/deep_cfr.py | 153 | Returns `num_samples` uniformly sampled from the buffer. Args: rng: `chex.PRNGKey`, a random state stat | STRING |
| HIGH | open_spiel/python/jax/nfsp.py | 137 | Returns `num_samples` uniformly sampled from the buffer. Args: rng: `chex.PRNGKey`, a random state stat | STRING |
| HIGH | open_spiel/python/jax/rcfr.py | 179 | Returns a behavioral policy at `state` from sequence weights. Args: sequence_weights: An array of non-negativ | STRING |
| HIGH | open_spiel/python/jax/rcfr.py | 250 | Returns counterfactual regrets and reach weights as a tuple. Args: regret_player: The player for whom counter | STRING |
| HIGH | open_spiel/python/jax/rcfr.py | 279 | Compute `state`'s counterfactual regrets and reach weights. Args: state: An OpenSpiel `State`. re | STRING |
| HIGH | open_spiel/python/games/chat_games/chat_game_base.py | 1204 | Generates a list of distinct prompts from an initial list. Args: key: str, (descriptive) name of prompt type | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | open_spiel/python/policy.py | 250 | CODE | |
| LOW | open_spiel/python/egt/alpharank.py | 256 | CODE | |
| LOW | open_spiel/python/egt/alpharank.py | 327 | CODE | |
| LOW | open_spiel/python/egt/alpharank.py | 576 | CODE | |
| LOW | open_spiel/python/egt/alpharank_visualizer.py | 356 | CODE | |
| LOW | open_spiel/python/egt/alpharank_visualizer.py | 180 | CODE | |
| LOW | open_spiel/python/egt/visualization.py | 461 | CODE | |
| LOW | open_spiel/python/egt/visualization.py | 495 | CODE | |
| LOW | open_spiel/python/bots/bluechip_bridge.py | 116 | CODE | |
| LOW | open_spiel/python/bots/bluechip_bridge.py | 225 | CODE | |
| LOW | open_spiel/python/bots/bluechip_bridge.py | 323 | CODE | |
| LOW | open_spiel/python/voting/elo.py | 23 | CODE | |
| LOW | open_spiel/python/voting/stv.py | 111 | CODE | |
| LOW | open_spiel/python/voting/ranked_pairs.py | 57 | CODE | |
| LOW | open_spiel/python/voting/schulze.py | 33 | CODE | |
| LOW | open_spiel/python/voting/preflib_util.py | 21 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 50 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 81 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 122 | CODE | |
| LOW | open_spiel/python/algorithms/policy_aggregator_joint.py | 173 | CODE | |
| LOW | open_spiel/python/algorithms/response_graph_ucb.py | 187 | CODE | |
| LOW | open_spiel/python/algorithms/response_graph_ucb.py | 204 | CODE | |
| LOW | open_spiel/python/algorithms/response_graph_ucb.py | 284 | CODE | |
| LOW | open_spiel/python/algorithms/response_graph_ucb.py | 302 | CODE | |
| LOW | open_spiel/python/algorithms/response_graph_ucb.py | 351 | CODE | |
| LOW | open_spiel/python/algorithms/minimax.py | 152 | CODE | |
| LOW | open_spiel/python/algorithms/best_response_test.py | 82 | CODE | |
| LOW | open_spiel/python/algorithms/jpsro.py | 148 | CODE | |
| LOW | open_spiel/python/algorithms/jpsro.py | 319 | CODE | |
| LOW | open_spiel/python/algorithms/jpsro.py | 1048 | CODE | |
| LOW | open_spiel/python/algorithms/jpsro.py | 1184 | CODE | |
| LOW | open_spiel/python/algorithms/evaluate_bots.py | 20 | CODE | |
| LOW | open_spiel/python/algorithms/policy_aggregator.py | 181 | CODE | |
| LOW | open_spiel/python/algorithms/fictitious_play.py | 196 | CODE | |
| LOW | open_spiel/python/algorithms/noisy_policy_test.py | 59 | CODE | |
| LOW | open_spiel/python/algorithms/value_iteration.py | 73 | CODE | |
| LOW | open_spiel/python/algorithms/generate_playthrough.py | 102 | CODE | |
| LOW | open_spiel/python/algorithms/generate_playthrough.py | 211 | CODE | |
| LOW | open_spiel/python/algorithms/generate_playthrough.py | 465 | CODE | |
| LOW | open_spiel/python/algorithms/generate_playthrough.py | 530 | CODE | |
| LOW | open_spiel/python/algorithms/ismcts.py | 161 | CODE | |
| LOW | open_spiel/python/algorithms/async_mcts.py | 664 | CODE | |
| LOW | open_spiel/python/algorithms/discounted_cfr.py | 190 | CODE | |
| LOW | open_spiel/python/algorithms/mmd_dilated.py | 232 | CODE | |
| LOW | open_spiel/python/algorithms/mcts.py | 370 | CODE | |
| LOW | open_spiel/python/algorithms/efr.py | 937 | CODE | |
| LOW | open_spiel/python/algorithms/efr.py | 1129 | CODE | |
| LOW | open_spiel/python/algorithms/efr.py | 1151 | CODE | |
| LOW | open_spiel/python/algorithms/efr.py | 1220 | CODE | |
| LOW | open_spiel/python/algorithms/efr.py | 442 | CODE | |
| LOW | …en_spiel/python/algorithms/response_graph_ucb_utils.py | 66 | CODE | |
| LOW | …en_spiel/python/algorithms/response_graph_ucb_utils.py | 200 | CODE | |
| LOW | open_spiel/python/algorithms/matrix_nash.py | 47 | CODE | |
| LOW | open_spiel/python/algorithms/matrix_nash.py | 106 | CODE | |
| LOW | open_spiel/python/algorithms/lp_solver.py | 520 | CODE | |
| LOW | …l/python/algorithms/psro_v2/strategy_selectors_test.py | 144 | CODE | |
| LOW | open_spiel/python/algorithms/psro_v2/psro_v2.py | 370 | CODE | |
| LOW | …ithms/adidas_utils/solvers/nonsymmetric/adam_anneal.py | 260 | CODE | |
| LOW | …on/algorithms/adidas_utils/solvers/nonsymmetric/sgd.py | 94 | CODE | |
| LOW | …n/algorithms/adidas_utils/solvers/nonsymmetric/adam.py | 157 | CODE | |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | __init__.py | 21 | CODE | |
| LOW | open_spiel/python/voting/examples/atari.py | 19 | CODE | |
| LOW | open_spiel/python/voting/examples/atari.py | 23 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 19 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 21 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 24 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 26 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 31 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 32 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 34 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 36 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 38 | CODE | |
| LOW | open_spiel/python/voting/examples/chatbot_arena.py | 41 | CODE | |
| LOW | open_spiel/python/voting/examples/example.py | 19 | CODE | |
| LOW | open_spiel/python/voting/examples/example.py | 21 | CODE | |
| LOW | open_spiel/python/voting/examples/example.py | 22 | CODE | |
| LOW | …en_spiel/python/algorithms/expected_game_score_test.py | 20 | CODE | |
| LOW | open_spiel/python/algorithms/best_response_test.py | 22 | CODE | |
| LOW | open_spiel/python/algorithms/noisy_policy_test.py | 20 | CODE | |
| LOW | open_spiel/python/algorithms/get_all_states.py | 23 | CODE | |
| LOW | open_spiel/python/algorithms/generate_playthrough.py | 32 | CODE | |
| LOW | open_spiel/python/algorithms/generate_playthrough.py | 33 | CODE | |
| LOW | open_spiel/python/algorithms/best_response.py | 28 | CODE | |
| LOW | open_spiel/python/algorithms/async_mcts.py | 30 | CODE | |
| LOW | …python/algorithms/adidas_utils/solvers/symmetric/pg.py | 17 | CODE | |
| LOW | …gorithms/adidas_utils/solvers/symmetric/adam_anneal.py | 17 | CODE | |
| LOW | …ython/algorithms/adidas_utils/solvers/symmetric/ate.py | 17 | CODE | |
| LOW | …/algorithms/adidas_utils/solvers/symmetric/regmatch.py | 17 | CODE | |
| LOW | …lgorithms/adidas_utils/solvers/symmetric/qre_anneal.py | 17 | CODE | |
| LOW | …ython/algorithms/adidas_utils/solvers/symmetric/sgd.py | 17 | CODE | |
| LOW | …hms/adidas_utils/solvers/symmetric/qre_anneal_noaux.py | 17 | CODE | |
| LOW | …thon/algorithms/adidas_utils/solvers/symmetric/adam.py | 17 | CODE | |
| LOW | …ython/algorithms/adidas_utils/solvers/symmetric/ped.py | 17 | CODE | |
| LOW | …ython/algorithms/adidas_utils/solvers/symmetric/qre.py | 17 | CODE | |
| LOW | …lgorithms/adidas_utils/solvers/symmetric/ate_anneal.py | 17 | CODE | |
| LOW | …hon/algorithms/adidas_utils/solvers/nonsymmetric/pg.py | 17 | CODE | |
| LOW | …ithms/adidas_utils/solvers/nonsymmetric/adam_anneal.py | 17 | CODE | |
| LOW | …on/algorithms/adidas_utils/solvers/nonsymmetric/ate.py | 17 | CODE | |
| LOW | …thms/adidas_utils/solvers/nonsymmetric/ate_regmatch.py | 17 | CODE | |
| LOW | …gorithms/adidas_utils/solvers/nonsymmetric/regmatch.py | 17 | CODE | |
| LOW | …rithms/adidas_utils/solvers/nonsymmetric/qre_anneal.py | 17 | CODE | |
| LOW | …on/algorithms/adidas_utils/solvers/nonsymmetric/sgd.py | 17 | CODE | |
| LOW | …n/algorithms/adidas_utils/solvers/nonsymmetric/adam.py | 17 | CODE | |
| LOW | …on/algorithms/adidas_utils/solvers/nonsymmetric/ped.py | 17 | CODE | |
| LOW | …on/algorithms/adidas_utils/solvers/nonsymmetric/qre.py | 17 | CODE | |
| LOW | …rithms/adidas_utils/solvers/nonsymmetric/ate_anneal.py | 17 | CODE | |
| LOW | …gorithms/adidas_utils/solvers/nonsymmetric/ate_poly.py | 18 | CODE | |
| LOW | …en_spiel/python/algorithms/adidas_utils/games/gamut.py | 21 | CODE | |
| LOW | …n_spiel/python/algorithms/adidas_utils/helpers/misc.py | 17 | CODE | |
| LOW | …piel/python/algorithms/adidas_utils/helpers/simplex.py | 17 | CODE | |
| LOW | …n/algorithms/adidas_utils/helpers/symmetric/updates.py | 17 | CODE | |
| LOW | …ithms/adidas_utils/helpers/symmetric/exploitability.py | 17 | CODE | |
| LOW | …gorithms/adidas_utils/helpers/symmetric/game_runner.py | 18 | CODE | |
| LOW | …lgorithms/adidas_utils/helpers/nonsymmetric/updates.py | 17 | CODE | |
| LOW | …ms/adidas_utils/helpers/nonsymmetric/exploitability.py | 17 | CODE | |
| LOW | …ithms/adidas_utils/helpers/nonsymmetric/game_runner.py | 20 | CODE | |
| LOW | open_spiel/python/tests/games_sim_test.py | 28 | CODE | |
| LOW | open_spiel/python/tests/games_sim_test.py | 30 | CODE | |
| LOW | open_spiel/python/tests/policy_test.py | 19 | CODE | |
| LOW | open_spiel/python/tests/pyspiel_test.py | 22 | CODE | |
| 68 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | open_spiel/python/environments/iterated_matrix_game.py | 15 | """This module implements a generic environment for iterated normal form games. | STRING |
| MEDIUM | open_spiel/python/voting/base_test.py | 25 | # Create a preference profile from preferences: | COMMENT |
| MEDIUM | open_spiel/python/voting/base_test.py | 44 | # Create a weighted preference profile from preferences: | COMMENT |
| MEDIUM⚡ | open_spiel/python/voting/base_test.py | 70 | # Create a weighted preference profile from preferences: | COMMENT |
| MEDIUM | open_spiel/python/voting/ranked_pairs.py | 176 | # Create the top-ranked pair. This needs to be in a conditional block, | COMMENT |
| MEDIUM | open_spiel/python/voting/schulze.py | 64 | # Define the scores as the sum of preferences for everything it beats in | COMMENT |
| MEDIUM | open_spiel/python/voting/examples/example.py | 29 | # Create a preference profile that represents the following votes: | COMMENT |
| MEDIUM | open_spiel/python/algorithms/mcts_agent_test.py | 29 | # Create the MCTS bot. Both agents can share the same bot in this case since | COMMENT |
| MEDIUM | open_spiel/python/algorithms/ismcts_agent_test.py | 35 | # Create the MCTS bot. Both agents can share the same bot in this case since | COMMENT |
| MEDIUM | open_spiel/python/tests/pyspiel_test.py | 485 | # Create a reference state with one move applied | COMMENT |
| MEDIUM | …ython/mfg/algorithms/munchausen_deep_mirror_descent.py | 120 | # Create the replay buffer. | COMMENT |
| MEDIUM | …ython/mfg/algorithms/munchausen_deep_mirror_descent.py | 126 | # Create the Q-network. | COMMENT |
| MEDIUM | …ython/mfg/algorithms/munchausen_deep_mirror_descent.py | 150 | # Create the loss function and the optimizer. | COMMENT |
| MEDIUM | …algorithms/pytorch/mfg_proximal_policy_optimization.py | 282 | """This function is used to log the results to tensor board.""" | STRING |
| MEDIUM | …n_spiel/python/mfg/examples/mfg_munchausen_domd_jax.py | 135 | # Create the environments with uniform initial policy. | COMMENT |
| MEDIUM | …n_spiel/python/mfg/examples/mfg_munchausen_domd_jax.py | 153 | # Create the agents. | COMMENT |
| MEDIUM | …g/examples/mfg_proximal_policy_optimization_pytorch.py | 171 | # Create the game instance | COMMENT |
| MEDIUM | …piel/python/mfg/examples/mfg_average_network_fp_jax.py | 134 | # Create the environments with uniform initial policy. | COMMENT |
| MEDIUM | open_spiel/python/mfg/games/normal_form_game.py | 212 | """This function is central and specific to the logic of the MFG. | STRING |
| MEDIUM | open_spiel/python/mfg/games/predator_prey.py | 482 | """This function is central and specific to the logic of the MFG. | STRING |
| MEDIUM | open_spiel/python/mfg/games/periodic_aversion.py | 307 | """This function is central and specific to the logic of the MFG. | STRING |
| MEDIUM | open_spiel/python/mfg/games/crowd_modelling.py | 210 | """This function is central and specific to the logic of the MFG. | STRING |
| MEDIUM | open_spiel/python/mfg/games/factory.py | 124 | # Create a copy since we modify it below removing the network key. | COMMENT |
| MEDIUM | open_spiel/python/mfg/games/linear_quadratic.py | 282 | """This function is central and specific to the logic of the MFG. | STRING |
| MEDIUM | open_spiel/python/mfg/games/crowd_avoidance.py | 502 | """This function is central and specific to the logic of the MFG. | STRING |
| MEDIUM | open_spiel/python/utils/metrics_test.py | 30 | # Create the writer. | COMMENT |
| MEDIUM | open_spiel/python/examples/example.py | 42 | # Create the initial state | COMMENT |
| MEDIUM | open_spiel/python/pytorch/dqn.py | 290 | # Create the Q-network instances | COMMENT |
| MEDIUM | open_spiel/python/jax/dqn.py | 314 | # Create the Q-network instances | COMMENT |
| MEDIUM | open_spiel/scripts/install.sh | 38 | # This function is only run on Github Actions! | COMMENT |
| MEDIUM | open_spiel/scripts/install.sh | 79 | # Create the cache directory. | COMMENT |
| MEDIUM | open_spiel/scripts/global_variables.sh | 17 | # This file contains the global variables that control conditional dependencies. | COMMENT |
| MEDIUM | open_spiel/scripts/test_wheel.sh | 17 | # This file is called by the wheels workflow .github/workflows/wheels.yml. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | open_spiel/python/egt/alpharank.py | 433 | CODE | |
| LOW | open_spiel/python/egt/alpharank.py | 576 | CODE | |
| LOW | open_spiel/python/algorithms/jpsro.py | 1420 | CODE | |
| LOW | open_spiel/python/algorithms/async_mcts.py | 365 | CODE | |
| LOW | open_spiel/python/algorithms/psro_v2/psro_v2.py | 69 | CODE | |
| LOW | …ython/algorithms/adidas_utils/solvers/symmetric/ate.py | 30 | CODE | |
| LOW | …lgorithms/adidas_utils/solvers/symmetric/qre_anneal.py | 29 | CODE | |
| LOW | …hms/adidas_utils/solvers/symmetric/qre_anneal_noaux.py | 29 | CODE | |
| LOW | …ython/algorithms/adidas_utils/solvers/symmetric/qre.py | 29 | CODE | |
| LOW | …lgorithms/adidas_utils/solvers/symmetric/ate_anneal.py | 30 | CODE | |
| LOW | …rithms/adidas_utils/solvers/nonsymmetric/qre_anneal.py | 29 | CODE | |
| LOW | …rithms/adidas_utils/solvers/nonsymmetric/ate_anneal.py | 30 | CODE | |
| LOW | open_spiel/python/mfg/algorithms/bandit_regret.py | 190 | CODE | |
| LOW | open_spiel/python/mfg/algorithms/bandit_regret.py | 264 | CODE | |
| LOW | open_spiel/python/mfg/algorithms/bandit_regret.py | 516 | CODE | |
| LOW | …ython/mfg/algorithms/munchausen_deep_mirror_descent.py | 55 | CODE | |
| LOW | …thon/mfg/algorithms/average_network_fictitious_play.py | 56 | CODE | |
| LOW | open_spiel/python/mfg/algorithms/regret/hedge.py | 28 | CODE | |
| LOW | …spiel/python/mfg/algorithms/regret/regret_minimizer.py | 48 | CODE | |
| LOW | …_spiel/python/mfg/algorithms/regret/regret_matching.py | 62 | CODE | |
| LOW | …iel/python/mfg/algorithms/regret/nash_random_search.py | 54 | CODE | |
| LOW | …thon/mfg/algorithms/regret/nash_evolutionary_search.py | 56 | CODE | |
| LOW | …iel/python/mfg/algorithms/regret/polynomial_weights.py | 37 | CODE | |
| LOW | open_spiel/python/visualizations/treeviz.py | 130 | CODE | |
| LOW | open_spiel/python/examples/rrps_poprl/impala.py | 190 | CODE | |
| LOW | open_spiel/python/pytorch/deep_cfr.py | 230 | CODE | |
| LOW | open_spiel/python/pytorch/eva.py | 81 | CODE | |
| LOW | open_spiel/python/pytorch/policy_gradient.py | 123 | CODE | |
| LOW | open_spiel/python/pytorch/nfsp.py | 143 | CODE | |
| LOW | open_spiel/python/pytorch/dqn.py | 215 | CODE | |
| LOW | open_spiel/python/pytorch/ppo.py | 168 | CODE | |
| LOW | open_spiel/python/jax/opponent_shaping.py | 605 | CODE | |
| LOW | open_spiel/python/jax/deep_cfr.py | 233 | CODE | |
| LOW | open_spiel/python/jax/policy_gradient.py | 186 | CODE | |
| LOW | open_spiel/python/jax/nfsp.py | 164 | CODE | |
| LOW | open_spiel/python/jax/dqn.py | 237 | CODE | |
| LOW | open_spiel/python/games/chat_game.py | 90 | CODE | |
| LOW | open_spiel/python/games/chat_games/chat_game_base.py | 880 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | open_spiel/python/bots/gtp.py | 76 | except (CommandError, IOError): | CODE |
| HIGH | open_spiel/python/algorithms/alpha_zero/analysis.py | 310 | except KeyboardInterrupt: | CODE |
| HIGH | open_spiel/python/algorithms/alpha_zero/alpha_zero.py | 79 | except RuntimeError: | CODE |
| HIGH | open_spiel/python/algorithms/alpha_zero/alpha_zero.py | 423 | except spawn.Empty: | CODE |
| HIGH | open_spiel/python/mfg/algorithms/fictitious_play.py | 97 | except (KeyError, ValueError): | CODE |
| HIGH | open_spiel/python/utils/spawn.py | 29 | except ( | CODE |
| HIGH | open_spiel/python/utils/spawn_test.py | 64 | except spawn.Empty: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | open_spiel/python/voting/base.py | 168 | # Check if any alternatives are registered for this profile. If not, then | COMMENT |
| LOW | open_spiel/python/algorithms/response_graph_ucb.py | 424 | # Add nodes to queue | COMMENT |
| LOW | open_spiel/python/algorithms/mmd_dilated_test.py | 96 | # Check if a QRE solution is a fixed point of MMD | COMMENT |
| LOW | open_spiel/python/examples/dqn_lewis_signaling.py | 247 | # Loop over data dimensions and create text annotations. | COMMENT |
| LOW | open_spiel/python/examples/lewis_signaling_qlearner.py | 266 | # Loop over data dimensions and create text annotations. | COMMENT |
| LOW | open_spiel/python/examples/rrps_poprl/poprl_main.py | 127 | # Set this to something specific for testing. List of IDs | COMMENT |
| LOW | open_spiel/python/examples/rrps_poprl/poprl_main.py | 128 | # Set back to None to use full population. | COMMENT |
| LOW | open_spiel/python/games/team_dominoes.py | 181 | # Check if all hands are of _HAND_SIZE | COMMENT |
| LOW | open_spiel/python/games/team_dominoes.py | 209 | # Check if a team has played all their tiles. | COMMENT |
| LOW | open_spiel/scripts/install.sh | 328 | # Set brew to use the specific python version | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | open_spiel/python/games/dynamic_routing_utils.py | 31 | # as requested by Open Spiel. | COMMENT |
| HIGH | …en_spiel/games/dynamic_routing/dynamic_routing_utils.h | 37 | // as requested by Open Spiel. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | open_spiel/normal_form_game.h | 30 | // also known as a one-shot game or strategic-form game. Essentially, all | COMMENT |
| MEDIUM | open_spiel/bots/roshambo/roshambo_bot.h | 48 | // results were remarkably robust, and increasing the match length to 10000 | COMMENT |
| LOW | open_spiel/python/games/pokerkit_wrapper.py | 1580 | # easier to just use it rather than checking the relevant values for | COMMENT |
| MEDIUM | open_spiel/python/games/repeated_pokerkit_test.py | 755 | # Definitely excessive, but triple checking this again just to be certain. | COMMENT |
| LOW | open_spiel/scripts/install.sh | 62 | # Instead, just call project-root install.sh file: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | open_spiel/python/egt/alpharank.py | 531 | print('Error: ', value_error, epsilon, min_epsilon) | CODE |
| LOW | open_spiel/python/algorithms/generate_playthrough.py | 555 | except Exception as e: # pylint: disable=broad-except | CODE |
| MEDIUM | open_spiel/python/algorithms/lp_solver.py | 326 | print(f"Something went wrong, as of {e}") | CODE |
| LOW | open_spiel/python/algorithms/alpha_zero/alpha_zero.py | 171 | except Exception as e: | CODE |
| LOW | open_spiel/python/tests/games_sim_test.py | 116 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | open_spiel/python/tests/test_installation.py | 43 | except Exception as e: # pragma: no cover - diagnostic script | CODE |
| MEDIUM | open_spiel/python/tests/games_crossword_test.py | 174 | print(f"Error creating action struct: {e}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | open_spiel/games/oh_hell/oh_hell.h | 37 | // number of tricks they bid. In this implementation, a player scores 1 point | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | __init__.py | 23 | __all__ = ["pyspiel"] | CODE |
| LOW | …spiel/python/examples/meta_cfr/sequential_games/cfr.py | 224 | def update_regrets(infostates: List[InfostateNode]) -> None: | CODE |
| LOW | open_spiel/python/pytorch/boltzmann_dqn.py | 107 | def update_prev_q_network(self) -> None: | CODE |
| LOW | open_spiel/python/jax/opponent_shaping.py | 743 | def update_params(self, state: TrainState, player_id: int) -> None: | CODE |
| LOW | open_spiel/python/games/pokerkit_wrapper.py | 1434 | def set_from(self, state, player) -> None: | CODE |
| LOW | open_spiel/python/games/repeated_pokerkit.py | 1144 | def set_from(self, state, player) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | open_spiel/python/egt/heuristic_payoff_table.py | 494 | # Usage: | COMMENT |
| LOW | open_spiel/scripts/argslib.sh | 29 | # Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | open_spiel/python/games/pokerkit_wrapper_test.py | 3072 | # As discussed above, the extra forced check by universal_poker does | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | open_spiel/python/policy.py | 530 | (the other player's policies will be undefined). Default value of `None` | STRING |