A standard API for multi-agent reinforcement learning environments, with popular reference environments and related utilities
This report presents the forensic synthetic code analysis of Farama-Foundation/PettingZoo, a Python project with 3,486 GitHub stars. SynthScan v2.0 examined 34,886 lines of code across 325 source files, recording 473 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 16.2 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 473 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/wrapper_record_video_test.py | 1 | CODE | |
| LOW | test/unwrapped_test.py | 1 | CODE | |
| LOW | test/pickle_test.py | 1 | CODE | |
| LOW | test/wrapper_test.py | 1 | CODE | |
| LOW | test/all_parameter_combs_test.py | 1 | CODE | |
| LOW | test/doc_examples_test.py | 1 | CODE | |
| LOW | test/variable_env_test.py | 1 | CODE | |
| LOW | test/pygame_init_test.py | 1 | CODE | |
| LOW | pettingzoo/__init__.py | 5 | CODE | |
| LOW | pettingzoo/__init__.py | 5 | CODE | |
| LOW | pettingzoo/__init__.py | 5 | CODE | |
| LOW | pettingzoo/__init__.py | 5 | CODE | |
| LOW | pettingzoo/__init__.py | 5 | CODE | |
| LOW | pettingzoo/__init__.py | 5 | CODE | |
| LOW | pettingzoo/__init__.py | 5 | CODE | |
| LOW | pettingzoo/__init__.py | 14 | CODE | |
| LOW | pettingzoo/__init__.py | 14 | CODE | |
| LOW | pettingzoo/butterfly/knights_archers_zombies_v11.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/knights_archers_zombies_v11.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/knights_archers_zombies_v11.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/knights_archers_zombies_v11.py | 8 | CODE | |
| LOW | pettingzoo/butterfly/pistonball_v6.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/pistonball_v6.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/pistonball_v6.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/pistonball_v6.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/cooperative_pong_v6.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/cooperative_pong_v6.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/cooperative_pong_v6.py | 3 | CODE | |
| LOW | pettingzoo/butterfly/cooperative_pong_v6.py | 8 | CODE | |
| LOW | pettingzoo/butterfly/pistonball/pistonball.py | 95 | CODE | |
| LOW | …tingzoo/butterfly/cooperative_pong/cooperative_pong.py | 92 | CODE | |
| LOW | …fly/knights_archers_zombies/knights_archers_zombies.py | 186 | CODE | |
| LOW | …ttingzoo/butterfly/knights_archers_zombies/test_kaz.py | 3 | CODE | |
| LOW | …ngzoo/butterfly/knights_archers_zombies/src/players.py | 3 | CODE | |
| LOW | …ngzoo/butterfly/knights_archers_zombies/src/weapons.py | 13 | CODE | |
| LOW | …ngzoo/butterfly/knights_archers_zombies/src/weapons.py | 13 | CODE | |
| LOW | …ngzoo/butterfly/knights_archers_zombies/src/weapons.py | 13 | CODE | |
| LOW | pettingzoo/test/parallel_test.py | 1 | CODE | |
| LOW | pettingzoo/test/seed_test.py | 1 | CODE | |
| LOW | pettingzoo/test/__init__.py | 1 | CODE | |
| LOW | pettingzoo/test/__init__.py | 2 | CODE | |
| LOW | pettingzoo/test/__init__.py | 3 | CODE | |
| LOW | pettingzoo/test/__init__.py | 4 | CODE | |
| LOW | pettingzoo/test/__init__.py | 5 | CODE | |
| LOW | pettingzoo/test/__init__.py | 6 | CODE | |
| LOW | pettingzoo/test/__init__.py | 7 | CODE | |
| LOW | pettingzoo/test/__init__.py | 7 | CODE | |
| LOW | pettingzoo/test/__init__.py | 8 | CODE | |
| LOW | pettingzoo/test/__init__.py | 9 | CODE | |
| LOW | pettingzoo/test/__init__.py | 9 | CODE | |
| LOW | pettingzoo/test/__init__.py | 10 | CODE | |
| LOW | pettingzoo/test/state_test.py | 3 | CODE | |
| LOW | pettingzoo/test/save_obs_test.py | 1 | CODE | |
| LOW | pettingzoo/test/render_test.py | 1 | CODE | |
| LOW | pettingzoo/test/api_test.py | 1 | CODE | |
| LOW | pettingzoo/classic/chess_v6.py | 3 | CODE | |
| LOW | pettingzoo/classic/chess_v6.py | 3 | CODE | |
| LOW | pettingzoo/classic/connect_four_v3.py | 3 | CODE | |
| LOW | pettingzoo/classic/connect_four_v3.py | 3 | CODE | |
| LOW | pettingzoo/classic/go_v5.py | 3 | CODE | |
| 171 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 1 | def pytest_markdown_docs_globals(): | CODE |
| LOW⚡ | test/deprecated_module_test.py | 7 | def test_removed_env_raises_with_guidance(): | CODE |
| LOW⚡ | test/deprecated_module_test.py | 13 | def test_unknown_env_raises_attribute_error(): | CODE |
| LOW⚡ | test/deprecated_module_test.py | 19 | def test_getattr_default_still_works(): | CODE |
| LOW⚡ | test/deprecated_module_test.py | 24 | def test_outdated_version_still_deprecated(): | CODE |
| LOW | test/wrapper_record_video_test.py | 11 | def test_video_folder_and_filenames_base( | CODE |
| LOW | test/wrapper_record_video_test.py | 47 | def test_video_folder_and_filenames_parallel( | CODE |
| LOW⚡ | test/test_registry.py | 75 | def test_pettingzoo_suffix_to_gymnasium_suffix(self): | CODE |
| LOW⚡ | test/test_registry.py | 78 | def test_internal_underscore_in_name_is_preserved(self): | CODE |
| LOW⚡ | test/test_registry.py | 84 | def test_non_version_suffix_is_preserved(self): | CODE |
| LOW⚡ | test/test_registry.py | 110 | def test_register_warns_on_override(self): | CODE |
| LOW⚡ | test/test_registry.py | 116 | def test_register_with_kwargs(self): | CODE |
| LOW⚡ | test/test_registry.py | 121 | def test_register_normalizes_pettingzoo_version_suffix(self): | CODE |
| LOW⚡ | test/test_registry.py | 181 | def test_builtin_canonical_id_uses_gymnasium_suffix(self): | CODE |
| LOW⚡ | test/test_registry.py | 187 | def test_builtin_pettingzoo_suffix_alias_resolves(self): | CODE |
| LOW⚡ | test/test_registry.py | 193 | def test_builtin_unversioned_resolves_latest(self): | CODE |
| LOW⚡ | test/test_registry.py | 201 | def test_unversioned_exact_match(self): | CODE |
| LOW⚡ | test/test_registry.py | 208 | def test_unversioned_namespace_not_found(self): | CODE |
| LOW⚡ | test/test_registry.py | 212 | def test_unversioned_name_not_found_no_namespace(self): | CODE |
| LOW⚡ | test/test_registry.py | 222 | def test_load_env_creator_none(self): | CODE |
| LOW⚡ | test/test_registry.py | 228 | def test_load_env_creator_string_success(self): | CODE |
| LOW⚡ | test/test_registry.py | 234 | def test_load_env_creator_non_callable(self): | CODE |
| LOW | test/test_registry.py | 26 | def test_simple_name_with_version(self): | CODE |
| LOW | test/test_registry.py | 32 | def test_namespaced_with_version(self): | CODE |
| LOW | test/test_registry.py | 50 | def test_pettingzoo_version_suffix_alias(self): | CODE |
| LOW | test/test_registry.py | 56 | def test_no_namespace_no_version(self): | CODE |
| LOW | test/test_registry.py | 150 | def test_explicit_pettingzoo_version_suffix_alias(self): | CODE |
| LOW | test/test_registry.py | 267 | def test_envspec_make_with_max_cycles(self): | CODE |
| LOW | test/test_registry.py | 301 | def test_make_with_envspec_directly(self): | CODE |
| LOW | test/test_registry.py | 327 | def test_make_max_cycles_override(self): | CODE |
| LOW | test/test_registry.py | 354 | def test_make_max_cycles_disable(self): | CODE |
| LOW | test/test_registry.py | 387 | def test_make_type_mismatch_warns(self): | CODE |
| LOW | test/test_registry.py | 452 | def test_make_kwargs_override(self): | CODE |
| LOW | test/wrapper_test.py | 16 | def test_multi_episode_env_wrapper(num_episodes: int) -> None: | CODE |
| LOW | test/wrapper_test.py | 50 | def test_multi_episode_parallel_env_wrapper(num_episodes) -> None: | CODE |
| LOW | test/doc_examples_test.py | 12 | def test_rps_parallel_example(): | CODE |
| LOW⚡ | test/variable_env_test.py | 17 | def test_generated_agents_aec(): | CODE |
| LOW⚡ | test/variable_env_test.py | 26 | def test_generated_agents_parallel(): | CODE |
| LOW⚡ | test/variable_env_test.py | 35 | def test_generated_agents_parallel_to_aec(): | CODE |
| LOW | test/variable_env_test.py | 49 | def test_double_conversion_equals(): | CODE |
| LOW | test/pygame_init_test.py | 40 | def test_no_pygame_subsystem_init_without_rendering(env_module): | CODE |
| LOW | test/pygame_init_test.py | 65 | def test_rgb_array_render_does_not_init_audio(env_module): | CODE |
| LOW | pettingzoo/butterfly/cooperative_pong/paddle.py | 125 | def _process_collision_with_rect( | CODE |
| LOW | …fly/knights_archers_zombies/knights_archers_zombies.py | 408 | def _build_observation_spaces(self) -> dict[AgentID, gymnasium.spaces.Space[Any]]: | CODE |
| LOW | …ttingzoo/butterfly/knights_archers_zombies/test_kaz.py | 75 | def test_kaz_image_observation() -> None: | CODE |
| LOW | …ttingzoo/butterfly/knights_archers_zombies/test_kaz.py | 184 | def test_kaz_vector_masked_obs() -> None: | CODE |
| LOW | …ttingzoo/butterfly/knights_archers_zombies/test_kaz.py | 195 | def test_kaz_vector_sequence_obs() -> None: | CODE |
| LOW | …ttingzoo/butterfly/knights_archers_zombies/test_kaz.py | 223 | def test_kaz_agent_management() -> None: | CODE |
| LOW | …ttingzoo/butterfly/knights_archers_zombies/test_kaz.py | 461 | def test_kaz_is_archer_is_knight() -> None: | CODE |
| LOW | …ttingzoo/butterfly/knights_archers_zombies/test_kaz.py | 471 | def test_kaz_player_directions() -> None: | CODE |
| LOW | pettingzoo/test/seed_test.py | 18 | def check_environment_deterministic(env1, env2, num_cycles): | CODE |
| LOW | pettingzoo/test/seed_test.py | 82 | def check_environment_deterministic_parallel(env1, env2, num_cycles): | CODE |
| LOW | pettingzoo/test/api_test.py | 217 | def test_observation_action_spaces(env, agent_0): | CODE |
| LOW | pettingzoo/test/api_test.py | 371 | def test_rewards_terminations_truncations(env, agent_0): | CODE |
| LOW | pettingzoo/test/api_test.py | 385 | def _test_observation_space_compatibility( | CODE |
| LOW | pettingzoo/classic/hanabi/hanabi.py | 359 | def _raise_error_if_config_values_out_of_range( | CODE |
| LOW | pettingzoo/classic/go/go.py | 213 | def _overwrite_go_global_variables(self, board_size: int): | STRING |
| LOW | pettingzoo/classic/tictactoe/test_board.py | 73 | def test_tictactoe_board_games(values: dict[str, Any]) -> None: | CODE |
| LOW | pettingzoo/classic/tictactoe/test_board.py | 90 | def test_tictactoe_winning_boards() -> None: | CODE |
| LOW | pettingzoo/utils/env_logger.py | 50 | def error_possible_agents_attribute_missing(name: str) -> None: | CODE |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/action_mask_test.py | 18 | CODE | |
| LOW | test/print_test.py | 4 | CODE | |
| LOW | pettingzoo/butterfly/pistonball/manual_policy.py | 21 | CODE | |
| LOW | …tingzoo/butterfly/cooperative_pong/cooperative_pong.py | 377 | CODE | |
| LOW | pettingzoo/butterfly/cooperative_pong/manual_policy.py | 50 | CODE | |
| LOW | …fly/knights_archers_zombies/knights_archers_zombies.py | 491 | CODE | |
| LOW | …fly/knights_archers_zombies/knights_archers_zombies.py | 640 | CODE | |
| LOW | …zoo/butterfly/knights_archers_zombies/manual_policy.py | 23 | CODE | |
| LOW | …ngzoo/butterfly/knights_archers_zombies/src/players.py | 69 | CODE | |
| LOW | pettingzoo/test/parallel_test.py | 26 | CODE | |
| LOW | pettingzoo/test/performance_benchmark.py | 7 | CODE | |
| LOW | pettingzoo/test/bombardment_test.py | 35 | CODE | |
| LOW | pettingzoo/test/render_test.py | 9 | CODE | |
| LOW | pettingzoo/test/api_test.py | 425 | CODE | |
| LOW | pettingzoo/test/api_test.py | 553 | CODE | |
| LOW | …mple_envs/generated_agents_parallel_cust_agentid_v0.py | 115 | CODE | |
| LOW | pettingzoo/test/example_envs/generated_agents_env_v0.py | 112 | CODE | |
| LOW | …gzoo/test/example_envs/generated_agents_parallel_v0.py | 115 | CODE | |
| LOW | …ample_envs/generated_agents_env_action_mask_info_v0.py | 118 | CODE | |
| LOW | …xample_envs/generated_agents_env_action_mask_obs_v0.py | 120 | CODE | |
| LOW | …t/example_envs/generated_agents_env_cust_agentid_v0.py | 112 | CODE | |
| LOW | pettingzoo/classic/hanabi/rendering.py | 58 | CODE | |
| LOW | pettingzoo/classic/go/go_base.py | 108 | CODE | |
| LOW | pettingzoo/classic/go/go.py | 337 | CODE | |
| LOW | pettingzoo/classic/rps/rps.py | 220 | CODE | |
| LOW | pettingzoo/classic/rps/rps.py | 452 | CODE | |
| LOW | pettingzoo/classic/rlcard_envs/texas_holdem.py | 138 | CODE | |
| LOW | pettingzoo/classic/rlcard_envs/leduc_holdem.py | 124 | CODE | |
| LOW | pettingzoo/classic/chess/chess_utils.py | 74 | CODE | |
| LOW | pettingzoo/utils/average_total_reward.py | 11 | CODE | |
| LOW | pettingzoo/utils/random_demo.py | 11 | CODE | |
| LOW | pettingzoo/utils/deprecated_module.py | 56 | CODE | |
| LOW | pettingzoo/sisl/pursuit/pursuit_base.py | 535 | CODE | |
| LOW | pettingzoo/sisl/pursuit/manual_policy.py | 22 | CODE | |
| LOW | pettingzoo/sisl/pursuit/utils/agent_utils.py | 65 | CODE | |
| LOW | pettingzoo/sisl/pursuit/utils/two_d_maps.py | 5 | CODE | |
| LOW | pettingzoo/sisl/multiwalker/multiwalker_base.py | 59 | CODE | |
| LOW | pettingzoo/sisl/multiwalker/multiwalker_base.py | 85 | CODE | |
| LOW | pettingzoo/sisl/multiwalker/multiwalker_base.py | 570 | CODE | |
| LOW | pettingzoo/sisl/multiwalker/multiwalker_base.py | 742 | CODE | |
| LOW | docs/_scripts/generate_gif_image.py | 12 | CODE | |
| LOW | docs/_scripts/graph_gen.py | 9 | CODE | |
| LOW | docs/_scripts/gen_envs_docstrings.py | 12 | CODE | |
| LOW | tutorials/AgileRL/agilerl_dqn_curriculum.py | 41 | CODE | |
| LOW | …rials/SB3/connect_four/sb3_connect_four_action_mask.py | 107 | CODE | |
| LOW | tutorials/SB3/pistonball/sb3_pistonball_vector.py | 69 | CODE | |
| LOW | …rials/CustomEnvironment/tutorial2_adding_game_logic.py | 86 | CODE | |
| LOW | tutorials/CustomEnvironment/tutorial3_action_masking.py | 93 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pettingzoo/__init__.py | 16 | __all__ = [ | CODE |
| LOW | pettingzoo/butterfly/knights_archers_zombies_v11.py | 13 | __all__ = ["ManualPolicy", "env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/butterfly/pistonball_v6.py | 13 | __all__ = ["ManualPolicy", "env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/butterfly/cooperative_pong_v6.py | 13 | __all__ = ["ManualPolicy", "env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/butterfly/pistonball/pistonball.py | 101 | __all__ = ["ManualPolicy", "env", "parallel_env", "raw_env"] | CODE |
| LOW | …tingzoo/butterfly/cooperative_pong/cooperative_pong.py | 113 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | …fly/knights_archers_zombies/knights_archers_zombies.py | 220 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | …ngzoo/butterfly/knights_archers_zombies/src/players.py | 115 | def _update_image(self) -> None: | CODE |
| LOW | pettingzoo/classic/chess_v6.py | 8 | __all__ = ["env", "raw_env"] | CODE |
| LOW | pettingzoo/classic/connect_four_v3.py | 8 | __all__ = ["env", "raw_env"] | CODE |
| LOW | pettingzoo/classic/go_v5.py | 8 | __all__ = ["env", "raw_env"] | CODE |
| LOW | pettingzoo/classic/texas_holdem_v4.py | 8 | __all__ = ["env", "raw_env"] | CODE |
| LOW | pettingzoo/classic/tictactoe_v3.py | 8 | __all__ = ["env", "raw_env"] | CODE |
| LOW | pettingzoo/classic/leduc_holdem_v4.py | 8 | __all__ = ["env", "raw_env"] | CODE |
| LOW | pettingzoo/classic/rps_v2.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/classic/hanabi_v5.py | 8 | __all__ = ["env", "raw_env"] | CODE |
| LOW | pettingzoo/classic/texas_holdem_no_limit_v6.py | 8 | __all__ = ["env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/ice_hockey_v2.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/joust_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/warlords_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/double_dunk_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/basketball_pong_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/entombed_competitive_v3.py | 12 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/surround_v2.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/space_war_v2.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/video_checkers_v4.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/pong_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/combat_tank_v2.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/space_invaders_v2.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/volleyball_pong_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/foozpong_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/othello_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/mario_bros_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/maze_craze_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/quadrapong_v4.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/entombed_cooperative_v3.py | 12 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/combat_plane_v2.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/flag_capture_v2.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/tennis_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/wizard_of_wor_v3.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/atari/base_atari_env.py | 20 | __all__ = [ | CODE |
| LOW | pettingzoo/atari/boxing_v2.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/utils/__init__.py | 21 | __all__ = [ | CODE |
| LOW | pettingzoo/utils/wrappers/__init__.py | 13 | __all__ = [ | CODE |
| LOW | pettingzoo/sisl/multiwalker_v9.py | 8 | __all__ = ["env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/sisl/pursuit_v5.py | 8 | __all__ = ["ManualPolicy", "env", "parallel_env", "raw_env"] | CODE |
| LOW | pettingzoo/sisl/pursuit/pursuit.py | 97 | __all__ = ["ManualPolicy", "env", "parallel_env", "raw_env"] | CODE |
| LOW | tutorials/AgileRL/agilerl_dqn_curriculum.py | 358 | def update_top(self) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tutorials/AgileRL/agilerl_dqn_curriculum.py | 542 | # Define the network configuration | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_dqn_curriculum.py | 554 | # Define the initial hyperparameters | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_dqn_curriculum.py | 578 | # Define the connect four environment | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_dqn_curriculum.py | 606 | # Create a population ready for evolutionary hyper-parameter optimisation | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_matd3.py | 24 | # Define the network configuration | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_matd3.py | 31 | # Define the initial hyperparameters | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_matd3.py | 53 | # Define the simple speaker listener environment as a parallel environment | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_matd3.py | 80 | # Create a population ready for evolutionary hyper-parameter optimisation | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_maddpg.py | 24 | # Define the network configuration | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_maddpg.py | 34 | # Define the initial hyperparameters | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_maddpg.py | 55 | # Define the space invaders environment as a parallel environment | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_maddpg.py | 89 | # Create a population ready for evolutionary hyper-parameter optimisation | COMMENT |
| MEDIUM | tutorials/Tianshou/2_training_agents.py | 65 | """This function is needed to provide callables for DummyVectorEnv.""" | STRING |
| MEDIUM | tutorials/CleanRL/cleanrl_advanced.py | 382 | # Create a fresh non-vectorized Atari env with RGB rendering. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pettingzoo/sisl/pursuit/utils/agent_utils.py | 6 | # Implements utility functions for multi-agent DRL | COMMENT |
| MEDIUM | pettingzoo/sisl/pursuit/utils/controllers.py | 6 | # Implements multi-agent controllers | COMMENT |
| MEDIUM | docs/environments/third_party_envs.md | 353 | [//]: # (Set of two environments with numerous multi-agent equilibria popular with researchers) | CODE |
| MEDIUM | docs/api/parallel.md | 8 | In addition to the main API, we have a secondary parallel API for environments where all agents have simultaneous action | CODE |
| MEDIUM | docs/api/wrappers/supersuit_wrappers.md | 123 | [//]: # (Note that a multi-agent environment has a similar interface to a vector environment. Give each possible agent a | CODE |
| MEDIUM | docs/api/wrappers/supersuit_wrappers.md | 226 | [//]: # (* `action_lambda_v1(env, change_action_fn, change_space_fn)` allows you to define arbitrary changes to | CODE |
| MEDIUM | docs/api/wrappers/supersuit_wrappers.md | 229 | [//]: # (* `observation_lambda_v0(env, observation_fn, observation_space_fn)` allows you to define arbitrary cha | CODE |
| MEDIUM | docs/api/wrappers/shimmy_wrappers.md | 9 | ## Supported multi-agent environments: | COMMENT |
| MEDIUM | docs/tutorials/rllib/index.md | 19 | * [PettingZoo Env](https://docs.ray.io/en/latest/rllib/rllib-env.html#pettingzoo-multi-agent-environments) | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_matd3.py | 58 | # Configure the multi-agent algo input arguments | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_matd3.py | 93 | # Configure the multi-agent replay buffer | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_maddpg.py | 68 | # Configure the multi-agent algo input arguments | COMMENT |
| MEDIUM | tutorials/AgileRL/agilerl_maddpg.py | 102 | # Configure the multi-agent replay buffer | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | pettingzoo/classic/hanabi/rendering.py | 12 | R1 || XX|RYGWB12345 | STRING |
| HIGH | pettingzoo/classic/hanabi/rendering.py | 15 | Y3 || XX|RYGWB12345 | STRING |
| HIGH | pettingzoo/classic/chess/chess.py | 277 | self.board.push(chosen_move) | CODE |
| HIGH | pettingzoo/classic/chess/chess_utils.py | 259 | if (history_idx < 0 && fill_empty_history == FillEmptyHistory::NO) break; | STRING |
| HIGH | pettingzoo/classic/chess/chess_utils.py | 261 | if (history_idx < 0 && fill_empty_history == FillEmptyHistory::FEN_ONLY && | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 19 | # Step 1: Load the PettingZoo environment | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 22 | # Step 2: Wrap the environment for Tianshou interfacing | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 25 | # Step 3: Define policies for each agent | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 28 | # Step 4: Convert the env to vector format | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 31 | # Step 5: Construct the Collector, which interfaces the policies with the vectorised environment | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 34 | # Step 6: Execute the environment with the agents playing for 1 episode, and render a frame every 0.1 seconds | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 19 | # Step 1: Load the PettingZoo environment | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 22 | # Step 2: Wrap the environment for Tianshou interfacing | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 25 | # Step 3: Define policies for each agent | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 28 | # Step 4: Convert the env to vector format | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 31 | # Step 5: Construct the Collector, which interfaces the policies with the vectorised environment | COMMENT |
| LOW⚡ | tutorials/Tianshou/1_basic_api_usage.py | 34 | # Step 6: Execute the environment with the agents playing for 1 episode, and render a frame every 0.1 seconds | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pettingzoo/butterfly/pistonball/pistonball.py | 598 | # Check if the ball is touching/within the left-most wall. | COMMENT |
| LOW | pettingzoo/classic/hanabi/hanabi.py | 286 | # Check if all possible dictionary values are within a certain ranges. | COMMENT |
| LOW | pettingzoo/env_registry/helpers.py | 22 | # Check if the env name exists at all | COMMENT |
| LOW | tutorials/AgileRL/agilerl_dqn_curriculum.py | 766 | # Check if game is over (Player 0 win) | COMMENT |
| LOW | tutorials/AgileRL/agilerl_dqn_curriculum.py | 857 | # Check if game is over (Player 1 win) | COMMENT |
| LOW | tutorials/SB3/kaz/sb3_kaz_vector.py | 128 | # Set obs_method to "image" in order to use visual observations (significantly longer training time) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pettingzoo/butterfly/pistonball/pistonball.py | 136 | CODE | |
| LOW | …tingzoo/butterfly/cooperative_pong/cooperative_pong.py | 168 | CODE | |
| LOW | …fly/knights_archers_zombies/knights_archers_zombies.py | 264 | CODE | |
| LOW | pettingzoo/classic/hanabi/hanabi.py | 212 | CODE | |
| LOW | pettingzoo/classic/go/go_base.py | 317 | CODE | |
| LOW | pettingzoo/atari/base_atari_env.py | 52 | CODE | |
| LOW | pettingzoo/sisl/pursuit/pursuit_base.py | 19 | CODE | |
| LOW | pettingzoo/sisl/multiwalker/multiwalker_base.py | 294 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …rials/SB3/connect_four/sb3_connect_four_action_mask.py | 73 | # for the current env. In this example, we assume the env has a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 81 | [tool.ruff] | COMMENT |
| LOW | pettingzoo/butterfly/cooperative_pong/test_ball.py | 81 | if terminate: | COMMENT |
| LOW | pettingzoo/classic/go/coords.py | 1 | # Copyright 2018 Google LLC | COMMENT |
| LOW | pettingzoo/classic/go/go_base.py | 1 | # Copyright 2018 Google LLC | COMMENT |
| LOW | docs/conf.py | 1 | # Configuration file for the Sphinx documentation builder. | COMMENT |
| LOW | docs/_scripts/generate_gifs.py | 21 | # | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/code_examples/parallel_rps.py | 150 | # If a user passes in actions with no agents, then just return empty observations, etc. | COMMENT |
| MEDIUM | …rials/SB3/connect_four/sb3_connect_four_action_mask.py | 67 | """Separate function used in order to access the action mask.""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pettingzoo/__init__.py | 45 | except Exception: # nosec | CODE |
| LOW | pettingzoo/test/manual_control_test.py | 28 | except Exception as e: | CODE |