agilerl 2.5.0.dev4__tar.gz → 2.5.1.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agilerl-2.5.1.dev0/.github/codeql/install_codeql.sh +51 -0
- agilerl-2.5.1.dev0/.github/codeql/run_codeql.py +139 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/workflows/codeql.yml +2 -2
- agilerl-2.5.0.dev4/.github/workflows/python-app.yml → agilerl-2.5.1.dev0/.github/workflows/linux-tests.yml +2 -2
- agilerl-2.5.1.dev0/.github/workflows/macos-tests.yml +41 -0
- agilerl-2.5.1.dev0/.github/workflows/windows-tests.yml +41 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.pre-commit-config.yaml +14 -3
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/PKG-INFO +11 -6
- agilerl-2.5.1.dev0/agilerl/__init__.py +30 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/core/base.py +137 -42
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/core/optimizer_wrapper.py +2 -3
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/core/registry.py +9 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/cqn.py +2 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/ddpg.py +7 -3
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/dpo.py +283 -72
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/dqn.py +2 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/dqn_rainbow.py +18 -13
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/grpo.py +213 -41
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/ilql.py +4 -13
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/ippo.py +15 -11
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/maddpg.py +2 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/matd3.py +2 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/neural_ts_bandit.py +32 -15
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/neural_ucb_bandit.py +26 -6
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/ppo.py +3 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/td3.py +7 -3
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/rollout_buffer.py +6 -3
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/language_environment.py +2 -3
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/rl_data.py +2 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/bert.py +0 -8
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/gpt.py +0 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/actors.py +6 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/base.py +10 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/protocols.py +214 -73
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_bandits.py +3 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_multi_agent_off_policy.py +5 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_multi_agent_on_policy.py +2 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_off_policy.py +2 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_on_policy.py +2 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/typing.py +2 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/algo_utils.py +4 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/llm_utils.py +19 -5
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/minari_utils.py +25 -9
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/probe_envs.py +6 -6
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/probe_envs_ma.py +10 -20
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/torch_utils.py +4 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/utils.py +2 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/vector/pz_async_vec_env.py +45 -44
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/vector/pz_vec_env.py +65 -22
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/make_evolvable.py +7 -7
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_offline.py +0 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_offline_distributed.py +0 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/make_evolvable_benchmarking.py +38 -56
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/grpo.yaml +1 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_bandit.py +5 -12
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_custom_network.py +4 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_multi_agent.py +0 -7
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_off_policy.py +5 -7
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_off_policy_distributed.py +6 -7
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_offline.py +4 -8
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_offline_distributed.py +5 -10
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_on_policy.py +7 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_on_policy_rnn_cartpole.py +8 -12
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_on_policy_rnn_memory.py +8 -12
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_on_policy_rnn_minigrid.py +8 -12
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/performance_flamegraph_lunar_lander.py +3 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/performance_flamegraph_lunar_lander_rnn.py +3 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/performance_flamegraph_rnn_memory.py +8 -5
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/cql.rst +1 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/ddpg.rst +1 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/dpo.rst +2 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/grpo.rst +1 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/ilql.rst +1 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/index.rst +3 -5
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/ippo.rst +1 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/maddpg.rst +1 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/matd3.rst +2 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/ppo.rst +1 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/td3.rst +1 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/train.rst +2 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/utils.rst +4 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/distributed_training/index.rst +2 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/get_started/index.rst +5 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/llm_finetuning/index.rst +2 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/pyproject.toml +31 -20
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/conftest.py +32 -6
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/subprocess_runner.py +18 -6
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_bandits/test_neural_ts.py +52 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_bandits/test_neural_ucb.py +52 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_base.py +12 -16
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_bc_lm.py +6 -6
- agilerl-2.5.1.dev0/tests/test_algorithms/test_core_base.py +3508 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_llms/conftest.py +45 -10
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_llms/test_dpo.py +76 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_llms/test_grpo.py +179 -36
- agilerl-2.5.1.dev0/tests/test_algorithms/test_multi_agent/conftest.py +41 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_multi_agent/test_ippo.py +255 -70
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_multi_agent/test_maddpg.py +6 -6
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_multi_agent/test_matd3.py +6 -5
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_optimizer_wrapper.py +375 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_registry.py +282 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_cqn.py +44 -15
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_ddpg.py +26 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_dqn.py +34 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_dqn_rainbow.py +30 -14
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_ilql.py +463 -18
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_ppo.py +416 -23
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_td3.py +15 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_replay_buffer.py +205 -0
- agilerl-2.5.1.dev0/tests/test_components/test_replay_data.py +174 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_rollout_buffer.py +300 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_sampler.py +126 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_data.py +120 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_hpo/test_mutation.py +433 -92
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_hpo/test_tournament.py +71 -6
- agilerl-2.5.1.dev0/tests/test_init.py +23 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_base.py +364 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_bert.py +16 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_cnn.py +186 -0
- agilerl-2.5.1.dev0/tests/test_modules/test_configs.py +79 -0
- agilerl-2.5.1.dev0/tests/test_modules/test_dummy.py +79 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_gpt.py +26 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_lstm.py +207 -17
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_mlp.py +0 -3
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_multi_input.py +56 -16
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_resnet.py +119 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_simba.py +147 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_actors.py +29 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_base.py +259 -1
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_distributions.py +100 -3
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_q_networks.py +33 -0
- agilerl-2.5.1.dev0/tests/test_protocols.py +536 -0
- agilerl-2.5.1.dev0/tests/test_rollouts/test_on_policy.py +149 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_train/test_train.py +800 -186
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_algo_utils.py +602 -34
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_cache.py +2 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_llm_utils.py +3 -8
- agilerl-2.5.1.dev0/tests/test_utils/test_log_utils.py +211 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_minari_utils.py +114 -10
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_probe_envs.py +16 -16
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_probe_envs_ma.py +16 -16
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_utils.py +320 -9
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_utils_evolvable.py +193 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_vector/test_vector.py +110 -31
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_wrappers/test_agent.py +412 -2
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_wrappers/test_autoreset.py +81 -13
- {agilerl-2.5.0.dev4/tests/test_modules → agilerl-2.5.1.dev0/tests/test_wrappers}/test_make_evolvable.py +108 -51
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/utils.py +6 -4
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/uv.lock +673 -585
- agilerl-2.5.0.dev4/agilerl/__init__.py +0 -18
- agilerl-2.5.0.dev4/tests/test_components/test_replay_data.py +0 -60
- agilerl-2.5.0.dev4/tests/test_modules/test_dummy.py +0 -34
- agilerl-2.5.0.dev4/tests/test_protocols.py +0 -238
- agilerl-2.5.0.dev4/tests/test_utils/test_log_utils.py +0 -115
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/badges/arena-github-badge.svg +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.gitignore +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.readthedocs.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/CITATION.cff +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/CODE_OF_CONDUCT.md +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/CONTRIBUTING.md +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/LICENSE +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/README.md +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/bc_lm.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/core/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/data.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/multi_agent_replay_buffer.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/replay_buffer.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/sampler.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/segment_tree.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/tokenizer.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/torch_datasets.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/hpo/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/hpo/mutation.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/hpo/tournament.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/base.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/cnn.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/configs.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/custom_components.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/dummy.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/lstm.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/mlp.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/multi_input.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/resnet.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/simba.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/custom_modules.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/distributions.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/q_networks.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/value_networks.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/rollouts/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/rollouts/on_policy.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_llm.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_offline.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/cache.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/evolvable_networks.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/ilql_utils.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/log_utils.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/sampling_utils.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/vector/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/agent.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/learning.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/pettingzoo_wrappers.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/utils.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_bandits.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_dpo.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_grpo.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_multi_agent_off_policy.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_multi_agent_on_policy.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_off_policy.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_off_policy_distributed.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_on_policy.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_rainbow.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_recurrent.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_resnet.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_simba.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/configs/ds_config.json +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/networks.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/accelerate/accelerate.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/accelerate/grpo_accelerate_config.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/bandit/neural_ts.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/bandit/neural_ucb.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/cqn.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ddpg/ddpg.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ddpg/ddpg_lstm.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ddpg/ddpg_simba.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/dpo.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/dqn/dqn.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/dqn/dqn_lstm.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/dqn/dqn_rainbow.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_agent/ippo.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_agent/ippo_pong.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_agent/maddpg.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_agent/matd3.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_input.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ppo/ppo.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ppo/ppo_image.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ppo/ppo_recurrent.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/td3.yaml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/data/cartpole/cartpole_random_v1.1.0.h5 +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/data/cartpole/cartpole_v1.1.0.h5 +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/data/pendulum/pendulum_random_v1.1.0.h5 +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/data/pendulum/pendulum_v1.1.0.h5 +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/performance_flamegraph_cartpole.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/dependabot.yml +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/Makefile +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/arena-github-badge.svg +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/css/custom.css +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/favicon.ico +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/js/expand_sidebar.js +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/logo_teal.png +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/logo_white.png +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/module.png +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/network.png +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/thumbnails/iris-thumbnail.png +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/thumbnails/pendigits-thumbnail.png +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/thumbnails/rainbow_performance.png +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/thumbnails/simba_thumbnail.png +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/base.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/dqn.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/dqn_rainbow.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/neural_ts.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/neural_ucb.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/registry.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/wrappers.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/data.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/multi_agent_replay_buffer.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/replay_buffer.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/rollout_buffer.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/sampler.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/segment_tree.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/hpo/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/hpo/mutation.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/hpo/tournament.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/base.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/bert.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/cnn.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/custom_activation.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/dummy.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/gpt.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/lstm.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/mlp.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/multi_input.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/resnet.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/simba.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/actors.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/base.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/q_networks.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/value_networks.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/rollouts/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/rollouts/on_policy.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/algo_utils.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/cache.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/evolvable_networks.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/ilql_utils.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/llm_utils.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/log_utils.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/minari_utils.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/probe_envs.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/torch_utils.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/vector/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/vector/petting_zoo_async_vector_env.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/vector/petting_zoo_vector_env.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/agent.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/learning.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/make_evolvable.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/pettingzoo.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/bandits/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/conf.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/custom_algorithms/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/debugging_rl/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/evo_hyperparam_opt/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/evolvable_networks/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/get_started/agilerl2changes.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/make.bat +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/multi_agent_training/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/off_policy/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/offline_training/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/on_policy/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/pomdp/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/releases/index.rst +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/requirements.txt +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/sitecustomize.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/helper_functions.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/pz_vector_test_utils.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_bandits/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_llms/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_multi_agent/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_multi_agent_replay_buffer.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_segment_tree.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_hpo/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_custom_activation.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_value_functions.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_train/test_train_llm.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_ilql_utils.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_sampling_utils.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_torch_utils.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_wrappers/__init__.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_wrappers/test_bandit_env.py +0 -0
- {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_wrappers/test_skills.py +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Install the CodeQL CLI locally for developer workflows.
|
|
5
|
+
# Environment variables:
|
|
6
|
+
# - CODEQL_VERSION (default: 2.24.2)
|
|
7
|
+
# - CODEQL_INSTALL_DIR (default: /tmp/codeql)
|
|
8
|
+
|
|
9
|
+
CODEQL_VERSION="${CODEQL_VERSION:-2.24.2}"
|
|
10
|
+
CODEQL_INSTALL_DIR="${CODEQL_INSTALL_DIR:-/tmp/codeql}"
|
|
11
|
+
|
|
12
|
+
if [[ -x "${CODEQL_INSTALL_DIR}/codeql" ]]; then
|
|
13
|
+
echo "CodeQL already installed at ${CODEQL_INSTALL_DIR}/codeql"
|
|
14
|
+
exit 0
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
OS="$(uname -s)"
|
|
18
|
+
case "${OS}" in
|
|
19
|
+
Linux)
|
|
20
|
+
ASSET="codeql-linux64.zip"
|
|
21
|
+
;;
|
|
22
|
+
Darwin)
|
|
23
|
+
# CodeQL distributes an osx64 bundle that works on current macOS setups.
|
|
24
|
+
ASSET="codeql-osx64.zip"
|
|
25
|
+
;;
|
|
26
|
+
MINGW*|MSYS*|CYGWIN*)
|
|
27
|
+
ASSET="codeql-win64.zip"
|
|
28
|
+
;;
|
|
29
|
+
*)
|
|
30
|
+
echo "Unsupported OS: ${OS}" >&2
|
|
31
|
+
exit 1
|
|
32
|
+
;;
|
|
33
|
+
esac
|
|
34
|
+
|
|
35
|
+
URL="https://github.com/github/codeql-cli-binaries/releases/download/v${CODEQL_VERSION}/${ASSET}"
|
|
36
|
+
TMP_DIR="$(mktemp -d)"
|
|
37
|
+
ARCHIVE_PATH="${TMP_DIR}/${ASSET}"
|
|
38
|
+
EXTRACT_DIR="${TMP_DIR}/extract"
|
|
39
|
+
|
|
40
|
+
echo "Downloading CodeQL ${CODEQL_VERSION} from ${URL}"
|
|
41
|
+
curl -fsSL "${URL}" -o "${ARCHIVE_PATH}"
|
|
42
|
+
|
|
43
|
+
mkdir -p "${EXTRACT_DIR}"
|
|
44
|
+
unzip -q "${ARCHIVE_PATH}" -d "${EXTRACT_DIR}"
|
|
45
|
+
|
|
46
|
+
mkdir -p "${CODEQL_INSTALL_DIR}"
|
|
47
|
+
rm -rf "${CODEQL_INSTALL_DIR:?}"/*
|
|
48
|
+
cp -R "${EXTRACT_DIR}/codeql/." "${CODEQL_INSTALL_DIR}"
|
|
49
|
+
|
|
50
|
+
echo "Installed CodeQL to ${CODEQL_INSTALL_DIR}"
|
|
51
|
+
"${CODEQL_INSTALL_DIR}/codeql" version
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# noqa: INP001
|
|
2
|
+
"""Run local CodeQL and fail on findings.
|
|
3
|
+
|
|
4
|
+
This script is designed for local developer use (including pre-commit).
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import csv
|
|
10
|
+
import os
|
|
11
|
+
import shutil
|
|
12
|
+
import subprocess
|
|
13
|
+
import sys
|
|
14
|
+
import tempfile
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
|
|
17
|
+
REPO_ROOT = Path(__file__).resolve().parents[2]
|
|
18
|
+
DEFAULT_DB_PATH = Path(tempfile.gettempdir()) / "agilerl-codeql-db"
|
|
19
|
+
DEFAULT_CONFIG_PATH = REPO_ROOT / ".github" / "codeql" / "codeql-config.yml"
|
|
20
|
+
DEFAULT_CODEQL_INSTALL_DIR = Path("/tmp/codeql") # noqa: S108
|
|
21
|
+
INSTALL_SCRIPT_PATH = Path(__file__).with_name("install_codeql.sh")
|
|
22
|
+
CSV_FILE_COL_IDX = 4
|
|
23
|
+
PYTHON_QUERY_SUITE = (
|
|
24
|
+
"codeql/python-queries:codeql-suites/python-security-and-quality.qls"
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def resolve_codeql_bin() -> str | None:
|
|
29
|
+
"""Resolve CodeQL binary path from env/PATH/common local install."""
|
|
30
|
+
env_bin = os.environ.get("CODEQL_BIN")
|
|
31
|
+
if env_bin:
|
|
32
|
+
return env_bin
|
|
33
|
+
path_bin = shutil.which("codeql")
|
|
34
|
+
if path_bin:
|
|
35
|
+
return path_bin
|
|
36
|
+
install_dir = Path(
|
|
37
|
+
os.environ.get("CODEQL_INSTALL_DIR", str(DEFAULT_CODEQL_INSTALL_DIR))
|
|
38
|
+
)
|
|
39
|
+
candidates = (
|
|
40
|
+
[install_dir]
|
|
41
|
+
if install_dir.is_file()
|
|
42
|
+
else [
|
|
43
|
+
install_dir / "codeql",
|
|
44
|
+
install_dir / "codeql.exe",
|
|
45
|
+
]
|
|
46
|
+
)
|
|
47
|
+
for fallback in candidates:
|
|
48
|
+
if fallback.exists():
|
|
49
|
+
return str(fallback)
|
|
50
|
+
return None
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def ensure_codeql_installed() -> str | None:
|
|
54
|
+
"""Install CodeQL via bootstrap script when not present."""
|
|
55
|
+
codeql = resolve_codeql_bin()
|
|
56
|
+
if codeql is not None:
|
|
57
|
+
return codeql
|
|
58
|
+
if not INSTALL_SCRIPT_PATH.exists():
|
|
59
|
+
return None
|
|
60
|
+
|
|
61
|
+
bash_bin = shutil.which("bash")
|
|
62
|
+
if bash_bin is None:
|
|
63
|
+
return None
|
|
64
|
+
|
|
65
|
+
subprocess.run( # noqa: S603
|
|
66
|
+
[bash_bin, str(INSTALL_SCRIPT_PATH)],
|
|
67
|
+
cwd=REPO_ROOT,
|
|
68
|
+
check=True,
|
|
69
|
+
)
|
|
70
|
+
return resolve_codeql_bin()
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def run(cmd: list[str], cwd: Path) -> None:
|
|
74
|
+
"""Run subprocess command and propagate failure."""
|
|
75
|
+
subprocess.run(cmd, cwd=cwd, check=True) # noqa: S603
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def format_clickable_path(path: str) -> str:
|
|
79
|
+
"""Normalize finding file paths for IDE click-through."""
|
|
80
|
+
return path.lstrip("/\\")
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def main() -> int:
|
|
84
|
+
"""Execute local CodeQL scan and return process exit code."""
|
|
85
|
+
codeql = ensure_codeql_installed()
|
|
86
|
+
if codeql is None:
|
|
87
|
+
print(
|
|
88
|
+
"CodeQL binary not found. Set CODEQL_BIN or install CodeQL "
|
|
89
|
+
"(e.g. /tmp/codeql/codeql).",
|
|
90
|
+
file=sys.stderr,
|
|
91
|
+
)
|
|
92
|
+
return 1
|
|
93
|
+
|
|
94
|
+
with tempfile.TemporaryDirectory(prefix="agilerl-codeql-") as td:
|
|
95
|
+
output_csv = Path(td) / "results.csv"
|
|
96
|
+
|
|
97
|
+
run(
|
|
98
|
+
[
|
|
99
|
+
codeql,
|
|
100
|
+
"database",
|
|
101
|
+
"create",
|
|
102
|
+
str(DEFAULT_DB_PATH),
|
|
103
|
+
"--overwrite",
|
|
104
|
+
"--language=python",
|
|
105
|
+
f"--source-root={REPO_ROOT}",
|
|
106
|
+
],
|
|
107
|
+
cwd=REPO_ROOT,
|
|
108
|
+
)
|
|
109
|
+
run(
|
|
110
|
+
[
|
|
111
|
+
codeql,
|
|
112
|
+
"database",
|
|
113
|
+
"analyze",
|
|
114
|
+
str(DEFAULT_DB_PATH),
|
|
115
|
+
PYTHON_QUERY_SUITE,
|
|
116
|
+
"--download",
|
|
117
|
+
"--format=csv",
|
|
118
|
+
f"--output={output_csv}",
|
|
119
|
+
],
|
|
120
|
+
cwd=REPO_ROOT,
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
with output_csv.open(newline="") as f:
|
|
124
|
+
rows = list(csv.reader(f))
|
|
125
|
+
|
|
126
|
+
actionable = [r for r in rows if len(r) > CSV_FILE_COL_IDX]
|
|
127
|
+
if actionable:
|
|
128
|
+
print(f"CodeQL found {len(actionable)} actionable issue(s):", file=sys.stderr)
|
|
129
|
+
for row in actionable[:20]:
|
|
130
|
+
file_path = format_clickable_path(row[4])
|
|
131
|
+
print(f"- {row[0]} at {file_path}:{row[5]}", file=sys.stderr)
|
|
132
|
+
return 1
|
|
133
|
+
|
|
134
|
+
print("CodeQL passed (no actionable issues).")
|
|
135
|
+
return 0
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
if __name__ == "__main__":
|
|
139
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: macOS
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main, nightly]
|
|
7
|
+
paths:
|
|
8
|
+
- agilerl/**
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: [main, nightly]
|
|
11
|
+
paths:
|
|
12
|
+
- agilerl/**
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
tests:
|
|
19
|
+
runs-on: ${{ matrix.os }}
|
|
20
|
+
strategy:
|
|
21
|
+
fail-fast: false
|
|
22
|
+
max-parallel: 4
|
|
23
|
+
matrix:
|
|
24
|
+
os: [macos-26]
|
|
25
|
+
python-version: ['3.10', '3.11', '3.12', '3.13']
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
- uses: astral-sh/setup-uv@v7
|
|
30
|
+
with:
|
|
31
|
+
enable-cache: true
|
|
32
|
+
python-version: ${{ matrix.python-version }}
|
|
33
|
+
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: |
|
|
36
|
+
pip install uv
|
|
37
|
+
uv sync --locked --all-groups --extra all
|
|
38
|
+
|
|
39
|
+
- name: Test with pytest
|
|
40
|
+
run: |
|
|
41
|
+
uv run pytest --exitfirst --cov=agilerl --cov-report=term-missing
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Windows
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main, nightly]
|
|
7
|
+
paths:
|
|
8
|
+
- agilerl/**
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: [main, nightly]
|
|
11
|
+
paths:
|
|
12
|
+
- agilerl/**
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
tests:
|
|
19
|
+
runs-on: ${{ matrix.os }}
|
|
20
|
+
strategy:
|
|
21
|
+
fail-fast: false
|
|
22
|
+
max-parallel: 4
|
|
23
|
+
matrix:
|
|
24
|
+
os: [windows-2025]
|
|
25
|
+
python-version: ['3.10', '3.11', '3.12', '3.13']
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
- uses: actions/checkout@v4
|
|
29
|
+
- uses: astral-sh/setup-uv@v7
|
|
30
|
+
with:
|
|
31
|
+
enable-cache: true
|
|
32
|
+
python-version: ${{ matrix.python-version }}
|
|
33
|
+
|
|
34
|
+
- name: Install dependencies
|
|
35
|
+
run: |
|
|
36
|
+
pip install uv
|
|
37
|
+
uv sync --locked --all-groups --extra all
|
|
38
|
+
|
|
39
|
+
- name: Test with pytest
|
|
40
|
+
run: |
|
|
41
|
+
uv run pytest --exitfirst -m "not llm" --cov=agilerl --cov-report=term-missing
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
# See https://pre-commit.com/hooks.html for more hooks
|
|
4
4
|
ci:
|
|
5
5
|
autoupdate_branch: nightly
|
|
6
|
+
skip: [codeql-python]
|
|
6
7
|
repos:
|
|
7
8
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
8
9
|
rev: v6.0.0
|
|
@@ -24,14 +25,14 @@ repos:
|
|
|
24
25
|
- id: mixed-line-ending
|
|
25
26
|
args: [--fix=lf]
|
|
26
27
|
- repo: https://github.com/codespell-project/codespell
|
|
27
|
-
rev: v2.4.
|
|
28
|
+
rev: v2.4.2
|
|
28
29
|
hooks:
|
|
29
30
|
- id: codespell
|
|
30
31
|
args:
|
|
31
32
|
- --skip=*.css,*.js,*.map,*.scss,*.svg
|
|
32
33
|
- --ignore-words-list=magent,pres,roate
|
|
33
34
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
34
|
-
rev: v0.15.
|
|
35
|
+
rev: v0.15.6
|
|
35
36
|
hooks:
|
|
36
37
|
- id: ruff
|
|
37
38
|
name: Ruff Linter
|
|
@@ -46,6 +47,16 @@ repos:
|
|
|
46
47
|
|
|
47
48
|
- repo: https://github.com/astral-sh/uv-pre-commit
|
|
48
49
|
# uv version.
|
|
49
|
-
rev: 0.10.
|
|
50
|
+
rev: 0.10.10
|
|
50
51
|
hooks:
|
|
51
52
|
- id: uv-lock
|
|
53
|
+
|
|
54
|
+
- repo: local
|
|
55
|
+
hooks:
|
|
56
|
+
- id: codeql-python
|
|
57
|
+
name: CodeQL Python Security & Quality (manual)
|
|
58
|
+
entry: python .github/codeql/run_codeql.py
|
|
59
|
+
language: system
|
|
60
|
+
pass_filenames: false
|
|
61
|
+
always_run: true
|
|
62
|
+
stages: [manual]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agilerl
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.1.dev0
|
|
4
4
|
Summary: AgileRL is a deep reinforcement learning library focused on improving RL development through RLOps.
|
|
5
5
|
Author-email: Nick Ustaran-Anderegg <dev@agilerl.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -29,21 +29,26 @@ Requires-Dist: redis~=4.4.4
|
|
|
29
29
|
Requires-Dist: supersuit~=3.9.0
|
|
30
30
|
Requires-Dist: tensordict~=0.8
|
|
31
31
|
Requires-Dist: termcolor~=1.1.0
|
|
32
|
-
Requires-Dist: torch==2.
|
|
32
|
+
Requires-Dist: torch==2.8.0; sys_platform == 'darwin'
|
|
33
|
+
Requires-Dist: torch==2.9.0; sys_platform != 'darwin'
|
|
33
34
|
Requires-Dist: tqdm>=4.66.4
|
|
34
35
|
Requires-Dist: wandb~=0.18.0
|
|
35
36
|
Provides-Extra: all
|
|
36
37
|
Requires-Dist: datasets==4.4.1; extra == 'all'
|
|
37
|
-
Requires-Dist: deepspeed~=0.17.1; extra == 'all'
|
|
38
|
+
Requires-Dist: deepspeed~=0.17.1; (sys_platform != 'win32') and extra == 'all'
|
|
39
|
+
Requires-Dist: liger-kernel==0.7.0; (sys_platform == 'linux') and extra == 'all'
|
|
38
40
|
Requires-Dist: peft~=0.18.0; extra == 'all'
|
|
39
41
|
Requires-Dist: transformers~=4.57.1; extra == 'all'
|
|
40
|
-
Requires-Dist: vllm==0.
|
|
42
|
+
Requires-Dist: vllm==0.11.0; (sys_platform == 'darwin') and extra == 'all'
|
|
43
|
+
Requires-Dist: vllm==0.13.0; (sys_platform == 'linux') and extra == 'all'
|
|
41
44
|
Provides-Extra: llm
|
|
42
45
|
Requires-Dist: datasets==4.4.1; extra == 'llm'
|
|
43
|
-
Requires-Dist: deepspeed~=0.17.1; extra == 'llm'
|
|
46
|
+
Requires-Dist: deepspeed~=0.17.1; (sys_platform != 'win32') and extra == 'llm'
|
|
47
|
+
Requires-Dist: liger-kernel==0.7.0; (sys_platform == 'linux') and extra == 'llm'
|
|
44
48
|
Requires-Dist: peft~=0.18.0; extra == 'llm'
|
|
45
49
|
Requires-Dist: transformers~=4.57.1; extra == 'llm'
|
|
46
|
-
Requires-Dist: vllm==0.
|
|
50
|
+
Requires-Dist: vllm==0.11.0; (sys_platform == 'darwin') and extra == 'llm'
|
|
51
|
+
Requires-Dist: vllm==0.13.0; (sys_platform == 'linux') and extra == 'llm'
|
|
47
52
|
Description-Content-Type: text/markdown
|
|
48
53
|
|
|
49
54
|
<p align="center">
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from importlib.metadata import PackageNotFoundError, metadata, version
|
|
2
|
+
|
|
3
|
+
from packaging.markers import default_environment
|
|
4
|
+
from packaging.requirements import Requirement
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def get_extra_dependencies(package: str, extra: str) -> list[str]:
|
|
8
|
+
requires = metadata(package).get_all("Requires-Dist") or []
|
|
9
|
+
marker_environment = default_environment()
|
|
10
|
+
marker_environment["extra"] = extra
|
|
11
|
+
deps = []
|
|
12
|
+
for req in requires:
|
|
13
|
+
r = Requirement(req)
|
|
14
|
+
if r.marker and r.marker.evaluate(marker_environment):
|
|
15
|
+
deps.append(r.name)
|
|
16
|
+
return deps
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
LLM_PACKAGES = get_extra_dependencies("agilerl", "llm")
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _is_distribution_installed(distribution: str) -> bool:
|
|
23
|
+
try:
|
|
24
|
+
version(distribution)
|
|
25
|
+
except PackageNotFoundError:
|
|
26
|
+
return False
|
|
27
|
+
return True
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
HAS_LLM_DEPENDENCIES = all(_is_distribution_installed(pkg) for pkg in LLM_PACKAGES)
|