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.
Files changed (363) hide show
  1. agilerl-2.5.1.dev0/.github/codeql/install_codeql.sh +51 -0
  2. agilerl-2.5.1.dev0/.github/codeql/run_codeql.py +139 -0
  3. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/workflows/codeql.yml +2 -2
  4. agilerl-2.5.0.dev4/.github/workflows/python-app.yml → agilerl-2.5.1.dev0/.github/workflows/linux-tests.yml +2 -2
  5. agilerl-2.5.1.dev0/.github/workflows/macos-tests.yml +41 -0
  6. agilerl-2.5.1.dev0/.github/workflows/windows-tests.yml +41 -0
  7. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.pre-commit-config.yaml +14 -3
  8. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/PKG-INFO +11 -6
  9. agilerl-2.5.1.dev0/agilerl/__init__.py +30 -0
  10. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/core/base.py +137 -42
  11. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/core/optimizer_wrapper.py +2 -3
  12. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/core/registry.py +9 -0
  13. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/cqn.py +2 -2
  14. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/ddpg.py +7 -3
  15. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/dpo.py +283 -72
  16. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/dqn.py +2 -2
  17. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/dqn_rainbow.py +18 -13
  18. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/grpo.py +213 -41
  19. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/ilql.py +4 -13
  20. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/ippo.py +15 -11
  21. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/maddpg.py +2 -0
  22. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/matd3.py +2 -2
  23. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/neural_ts_bandit.py +32 -15
  24. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/neural_ucb_bandit.py +26 -6
  25. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/ppo.py +3 -2
  26. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/td3.py +7 -3
  27. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/rollout_buffer.py +6 -3
  28. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/language_environment.py +2 -3
  29. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/rl_data.py +2 -2
  30. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/bert.py +0 -8
  31. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/gpt.py +0 -4
  32. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/actors.py +6 -4
  33. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/base.py +10 -4
  34. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/protocols.py +214 -73
  35. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_bandits.py +3 -2
  36. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_multi_agent_off_policy.py +5 -2
  37. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_multi_agent_on_policy.py +2 -1
  38. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_off_policy.py +2 -1
  39. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_on_policy.py +2 -1
  40. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/typing.py +2 -4
  41. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/algo_utils.py +4 -2
  42. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/llm_utils.py +19 -5
  43. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/minari_utils.py +25 -9
  44. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/probe_envs.py +6 -6
  45. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/probe_envs_ma.py +10 -20
  46. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/torch_utils.py +4 -0
  47. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/utils.py +2 -1
  48. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/vector/pz_async_vec_env.py +45 -44
  49. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/vector/pz_vec_env.py +65 -22
  50. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/make_evolvable.py +7 -7
  51. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_offline.py +0 -4
  52. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_offline_distributed.py +0 -4
  53. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/make_evolvable_benchmarking.py +38 -56
  54. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/grpo.yaml +1 -1
  55. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_bandit.py +5 -12
  56. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_custom_network.py +4 -4
  57. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_multi_agent.py +0 -7
  58. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_off_policy.py +5 -7
  59. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_off_policy_distributed.py +6 -7
  60. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_offline.py +4 -8
  61. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_offline_distributed.py +5 -10
  62. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_on_policy.py +7 -4
  63. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_on_policy_rnn_cartpole.py +8 -12
  64. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_on_policy_rnn_memory.py +8 -12
  65. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/demo_on_policy_rnn_minigrid.py +8 -12
  66. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/performance_flamegraph_lunar_lander.py +3 -1
  67. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/performance_flamegraph_lunar_lander_rnn.py +3 -1
  68. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/performance_flamegraph_rnn_memory.py +8 -5
  69. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/cql.rst +1 -1
  70. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/ddpg.rst +1 -1
  71. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/dpo.rst +2 -2
  72. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/grpo.rst +1 -1
  73. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/ilql.rst +1 -2
  74. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/index.rst +3 -5
  75. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/ippo.rst +1 -1
  76. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/maddpg.rst +1 -1
  77. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/matd3.rst +2 -2
  78. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/ppo.rst +1 -1
  79. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/td3.rst +1 -1
  80. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/train.rst +2 -0
  81. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/utils.rst +4 -0
  82. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/distributed_training/index.rst +2 -1
  83. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/get_started/index.rst +5 -0
  84. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/llm_finetuning/index.rst +2 -1
  85. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/pyproject.toml +31 -20
  86. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/conftest.py +32 -6
  87. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/subprocess_runner.py +18 -6
  88. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_bandits/test_neural_ts.py +52 -4
  89. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_bandits/test_neural_ucb.py +52 -4
  90. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_base.py +12 -16
  91. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_bc_lm.py +6 -6
  92. agilerl-2.5.1.dev0/tests/test_algorithms/test_core_base.py +3508 -0
  93. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_llms/conftest.py +45 -10
  94. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_llms/test_dpo.py +76 -1
  95. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_llms/test_grpo.py +179 -36
  96. agilerl-2.5.1.dev0/tests/test_algorithms/test_multi_agent/conftest.py +41 -0
  97. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_multi_agent/test_ippo.py +255 -70
  98. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_multi_agent/test_maddpg.py +6 -6
  99. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_multi_agent/test_matd3.py +6 -5
  100. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_optimizer_wrapper.py +375 -2
  101. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_registry.py +282 -0
  102. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_cqn.py +44 -15
  103. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_ddpg.py +26 -4
  104. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_dqn.py +34 -4
  105. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_dqn_rainbow.py +30 -14
  106. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_ilql.py +463 -18
  107. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_ppo.py +416 -23
  108. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/test_td3.py +15 -4
  109. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_replay_buffer.py +205 -0
  110. agilerl-2.5.1.dev0/tests/test_components/test_replay_data.py +174 -0
  111. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_rollout_buffer.py +300 -0
  112. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_sampler.py +126 -1
  113. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_data.py +120 -0
  114. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_hpo/test_mutation.py +433 -92
  115. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_hpo/test_tournament.py +71 -6
  116. agilerl-2.5.1.dev0/tests/test_init.py +23 -0
  117. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_base.py +364 -2
  118. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_bert.py +16 -0
  119. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_cnn.py +186 -0
  120. agilerl-2.5.1.dev0/tests/test_modules/test_configs.py +79 -0
  121. agilerl-2.5.1.dev0/tests/test_modules/test_dummy.py +79 -0
  122. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_gpt.py +26 -0
  123. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_lstm.py +207 -17
  124. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_mlp.py +0 -3
  125. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_multi_input.py +56 -16
  126. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_resnet.py +119 -0
  127. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_simba.py +147 -0
  128. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_actors.py +29 -1
  129. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_base.py +259 -1
  130. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_distributions.py +100 -3
  131. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_q_networks.py +33 -0
  132. agilerl-2.5.1.dev0/tests/test_protocols.py +536 -0
  133. agilerl-2.5.1.dev0/tests/test_rollouts/test_on_policy.py +149 -0
  134. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_train/test_train.py +800 -186
  135. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_algo_utils.py +602 -34
  136. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_cache.py +2 -4
  137. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_llm_utils.py +3 -8
  138. agilerl-2.5.1.dev0/tests/test_utils/test_log_utils.py +211 -0
  139. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_minari_utils.py +114 -10
  140. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_probe_envs.py +16 -16
  141. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_probe_envs_ma.py +16 -16
  142. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_utils.py +320 -9
  143. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_utils_evolvable.py +193 -0
  144. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_vector/test_vector.py +110 -31
  145. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_wrappers/test_agent.py +412 -2
  146. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_wrappers/test_autoreset.py +81 -13
  147. {agilerl-2.5.0.dev4/tests/test_modules → agilerl-2.5.1.dev0/tests/test_wrappers}/test_make_evolvable.py +108 -51
  148. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/utils.py +6 -4
  149. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/uv.lock +673 -585
  150. agilerl-2.5.0.dev4/agilerl/__init__.py +0 -18
  151. agilerl-2.5.0.dev4/tests/test_components/test_replay_data.py +0 -60
  152. agilerl-2.5.0.dev4/tests/test_modules/test_dummy.py +0 -34
  153. agilerl-2.5.0.dev4/tests/test_protocols.py +0 -238
  154. agilerl-2.5.0.dev4/tests/test_utils/test_log_utils.py +0 -115
  155. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  156. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  157. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  158. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.github/badges/arena-github-badge.svg +0 -0
  159. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.gitignore +0 -0
  160. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/.readthedocs.yaml +0 -0
  161. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/CITATION.cff +0 -0
  162. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/CODE_OF_CONDUCT.md +0 -0
  163. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/CONTRIBUTING.md +0 -0
  164. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/LICENSE +0 -0
  165. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/README.md +0 -0
  166. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/__init__.py +0 -0
  167. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/bc_lm.py +0 -0
  168. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/algorithms/core/__init__.py +0 -0
  169. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/__init__.py +0 -0
  170. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/data.py +0 -0
  171. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/multi_agent_replay_buffer.py +0 -0
  172. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/replay_buffer.py +0 -0
  173. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/sampler.py +0 -0
  174. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/components/segment_tree.py +0 -0
  175. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/__init__.py +0 -0
  176. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/tokenizer.py +0 -0
  177. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/data/torch_datasets.py +0 -0
  178. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/hpo/__init__.py +0 -0
  179. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/hpo/mutation.py +0 -0
  180. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/hpo/tournament.py +0 -0
  181. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/__init__.py +0 -0
  182. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/base.py +0 -0
  183. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/cnn.py +0 -0
  184. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/configs.py +0 -0
  185. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/custom_components.py +0 -0
  186. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/dummy.py +0 -0
  187. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/lstm.py +0 -0
  188. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/mlp.py +0 -0
  189. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/multi_input.py +0 -0
  190. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/resnet.py +0 -0
  191. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/modules/simba.py +0 -0
  192. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/__init__.py +0 -0
  193. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/custom_modules.py +0 -0
  194. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/distributions.py +0 -0
  195. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/q_networks.py +0 -0
  196. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/networks/value_networks.py +0 -0
  197. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/rollouts/__init__.py +0 -0
  198. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/rollouts/on_policy.py +0 -0
  199. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/__init__.py +0 -0
  200. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_llm.py +0 -0
  201. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/training/train_offline.py +0 -0
  202. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/__init__.py +0 -0
  203. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/cache.py +0 -0
  204. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/evolvable_networks.py +0 -0
  205. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/ilql_utils.py +0 -0
  206. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/log_utils.py +0 -0
  207. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/utils/sampling_utils.py +0 -0
  208. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/vector/__init__.py +0 -0
  209. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/__init__.py +0 -0
  210. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/agent.py +0 -0
  211. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/learning.py +0 -0
  212. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/pettingzoo_wrappers.py +0 -0
  213. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/agilerl/wrappers/utils.py +0 -0
  214. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_bandits.py +0 -0
  215. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_dpo.py +0 -0
  216. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_grpo.py +0 -0
  217. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_multi_agent_off_policy.py +0 -0
  218. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_multi_agent_on_policy.py +0 -0
  219. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_off_policy.py +0 -0
  220. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_off_policy_distributed.py +0 -0
  221. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_on_policy.py +0 -0
  222. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_rainbow.py +0 -0
  223. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_recurrent.py +0 -0
  224. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_resnet.py +0 -0
  225. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/benchmarking_simba.py +0 -0
  226. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/configs/ds_config.json +0 -0
  227. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/benchmarking/networks.py +0 -0
  228. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/accelerate/accelerate.yaml +0 -0
  229. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/accelerate/grpo_accelerate_config.yaml +0 -0
  230. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/bandit/neural_ts.yaml +0 -0
  231. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/bandit/neural_ucb.yaml +0 -0
  232. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/cqn.yaml +0 -0
  233. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ddpg/ddpg.yaml +0 -0
  234. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ddpg/ddpg_lstm.yaml +0 -0
  235. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ddpg/ddpg_simba.yaml +0 -0
  236. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/dpo.yaml +0 -0
  237. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/dqn/dqn.yaml +0 -0
  238. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/dqn/dqn_lstm.yaml +0 -0
  239. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/dqn/dqn_rainbow.yaml +0 -0
  240. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_agent/ippo.yaml +0 -0
  241. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_agent/ippo_pong.yaml +0 -0
  242. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_agent/maddpg.yaml +0 -0
  243. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_agent/matd3.yaml +0 -0
  244. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/multi_input.yaml +0 -0
  245. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ppo/ppo.yaml +0 -0
  246. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ppo/ppo_image.yaml +0 -0
  247. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/ppo/ppo_recurrent.yaml +0 -0
  248. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/configs/training/td3.yaml +0 -0
  249. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/data/cartpole/cartpole_random_v1.1.0.h5 +0 -0
  250. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/data/cartpole/cartpole_v1.1.0.h5 +0 -0
  251. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/data/pendulum/pendulum_random_v1.1.0.h5 +0 -0
  252. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/data/pendulum/pendulum_v1.1.0.h5 +0 -0
  253. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/demos/performance_flamegraph_cartpole.py +0 -0
  254. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/dependabot.yml +0 -0
  255. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/Makefile +0 -0
  256. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/__init__.py +0 -0
  257. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/arena-github-badge.svg +0 -0
  258. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/css/custom.css +0 -0
  259. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/favicon.ico +0 -0
  260. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/js/expand_sidebar.js +0 -0
  261. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/logo_teal.png +0 -0
  262. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/logo_white.png +0 -0
  263. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/module.png +0 -0
  264. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/network.png +0 -0
  265. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/thumbnails/iris-thumbnail.png +0 -0
  266. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/thumbnails/pendigits-thumbnail.png +0 -0
  267. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/thumbnails/rainbow_performance.png +0 -0
  268. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/_static/thumbnails/simba_thumbnail.png +0 -0
  269. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/base.rst +0 -0
  270. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/dqn.rst +0 -0
  271. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/dqn_rainbow.rst +0 -0
  272. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/neural_ts.rst +0 -0
  273. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/neural_ucb.rst +0 -0
  274. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/registry.rst +0 -0
  275. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/algorithms/wrappers.rst +0 -0
  276. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/data.rst +0 -0
  277. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/index.rst +0 -0
  278. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/multi_agent_replay_buffer.rst +0 -0
  279. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/replay_buffer.rst +0 -0
  280. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/rollout_buffer.rst +0 -0
  281. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/sampler.rst +0 -0
  282. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/components/segment_tree.rst +0 -0
  283. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/hpo/index.rst +0 -0
  284. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/hpo/mutation.rst +0 -0
  285. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/hpo/tournament.rst +0 -0
  286. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/base.rst +0 -0
  287. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/bert.rst +0 -0
  288. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/cnn.rst +0 -0
  289. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/custom_activation.rst +0 -0
  290. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/dummy.rst +0 -0
  291. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/gpt.rst +0 -0
  292. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/index.rst +0 -0
  293. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/lstm.rst +0 -0
  294. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/mlp.rst +0 -0
  295. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/multi_input.rst +0 -0
  296. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/resnet.rst +0 -0
  297. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/modules/simba.rst +0 -0
  298. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/actors.rst +0 -0
  299. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/base.rst +0 -0
  300. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/index.rst +0 -0
  301. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/q_networks.rst +0 -0
  302. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/networks/value_networks.rst +0 -0
  303. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/rollouts/index.rst +0 -0
  304. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/rollouts/on_policy.rst +0 -0
  305. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/algo_utils.rst +0 -0
  306. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/cache.rst +0 -0
  307. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/evolvable_networks.rst +0 -0
  308. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/ilql_utils.rst +0 -0
  309. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/index.rst +0 -0
  310. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/llm_utils.rst +0 -0
  311. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/log_utils.rst +0 -0
  312. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/minari_utils.rst +0 -0
  313. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/probe_envs.rst +0 -0
  314. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/utils/torch_utils.rst +0 -0
  315. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/vector/index.rst +0 -0
  316. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/vector/petting_zoo_async_vector_env.rst +0 -0
  317. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/vector/petting_zoo_vector_env.rst +0 -0
  318. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/agent.rst +0 -0
  319. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/index.rst +0 -0
  320. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/learning.rst +0 -0
  321. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/make_evolvable.rst +0 -0
  322. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/api/wrappers/pettingzoo.rst +0 -0
  323. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/bandits/index.rst +0 -0
  324. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/conf.py +0 -0
  325. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/custom_algorithms/index.rst +0 -0
  326. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/debugging_rl/index.rst +0 -0
  327. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/evo_hyperparam_opt/index.rst +0 -0
  328. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/evolvable_networks/index.rst +0 -0
  329. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/get_started/agilerl2changes.rst +0 -0
  330. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/index.rst +0 -0
  331. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/make.bat +0 -0
  332. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/multi_agent_training/index.rst +0 -0
  333. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/off_policy/index.rst +0 -0
  334. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/offline_training/index.rst +0 -0
  335. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/on_policy/index.rst +0 -0
  336. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/pomdp/index.rst +0 -0
  337. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/releases/index.rst +0 -0
  338. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/docs/requirements.txt +0 -0
  339. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/sitecustomize.py +0 -0
  340. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/__init__.py +0 -0
  341. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/helper_functions.py +0 -0
  342. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/pz_vector_test_utils.py +0 -0
  343. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/__init__.py +0 -0
  344. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_bandits/__init__.py +0 -0
  345. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_llms/__init__.py +0 -0
  346. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_multi_agent/__init__.py +0 -0
  347. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_algorithms/test_single_agent/__init__.py +0 -0
  348. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/__init__.py +0 -0
  349. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_multi_agent_replay_buffer.py +0 -0
  350. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_components/test_segment_tree.py +0 -0
  351. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_hpo/__init__.py +0 -0
  352. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/__init__.py +0 -0
  353. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_modules/test_custom_activation.py +0 -0
  354. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/__init__.py +0 -0
  355. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_networks/test_value_functions.py +0 -0
  356. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_train/test_train_llm.py +0 -0
  357. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/__init__.py +0 -0
  358. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_ilql_utils.py +0 -0
  359. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_sampling_utils.py +0 -0
  360. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_utils/test_torch_utils.py +0 -0
  361. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_wrappers/__init__.py +0 -0
  362. {agilerl-2.5.0.dev4 → agilerl-2.5.1.dev0}/tests/test_wrappers/test_bandit_env.py +0 -0
  363. {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())
@@ -14,9 +14,9 @@ name: CodeQL Advanced
14
14
 
15
15
  on:
16
16
  push:
17
- branches: [main]
17
+ branches: [main, nightly]
18
18
  pull_request:
19
- branches: [main]
19
+ branches: [main, nightly]
20
20
  schedule:
21
21
  - cron: 40 9 * * 4
22
22
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: Tests
2
+ name: Linux
3
3
 
4
4
  on:
5
5
  push:
@@ -15,7 +15,7 @@ permissions:
15
15
  contents: read
16
16
 
17
17
  jobs:
18
- build:
18
+ tests:
19
19
  runs-on: gha-runner-scale-set
20
20
  strategy:
21
21
  fail-fast: false
@@ -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.1
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.2
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.4
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.0.dev4
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.9.0
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.13.0; extra == 'all'
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.13.0; extra == 'llm'
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)