continual-foragax 0.34.0__tar.gz → 0.35.0__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 (143) hide show
  1. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/PKG-INFO +1 -1
  2. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/pyproject.toml +2 -2
  3. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/continual_foragax.egg-info/PKG-INFO +1 -1
  4. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/env.py +10 -5
  5. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/objects.py +9 -1
  6. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/registry.py +21 -0
  7. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/tests/test_registry.py +57 -0
  8. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/README.md +0 -0
  9. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/setup.cfg +0 -0
  10. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/continual_foragax.egg-info/SOURCES.txt +0 -0
  11. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/continual_foragax.egg-info/dependency_links.txt +0 -0
  12. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/continual_foragax.egg-info/entry_points.txt +0 -0
  13. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/continual_foragax.egg-info/requires.txt +0 -0
  14. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/continual_foragax.egg-info/top_level.txt +0 -0
  15. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/__init__.py +0 -0
  16. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/colors.py +0 -0
  17. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100897.txt +0 -0
  18. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100928.txt +0 -0
  19. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100929.txt +0 -0
  20. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100930.txt +0 -0
  21. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID100931.txt +0 -0
  22. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106714.txt +0 -0
  23. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106715.txt +0 -0
  24. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106716.txt +0 -0
  25. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106717.txt +0 -0
  26. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106718.txt +0 -0
  27. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106930.txt +0 -0
  28. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106931.txt +0 -0
  29. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106932.txt +0 -0
  30. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106933.txt +0 -0
  31. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106934.txt +0 -0
  32. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106935.txt +0 -0
  33. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106936.txt +0 -0
  34. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106937.txt +0 -0
  35. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106938.txt +0 -0
  36. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106939.txt +0 -0
  37. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106940.txt +0 -0
  38. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106941.txt +0 -0
  39. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106942.txt +0 -0
  40. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106943.txt +0 -0
  41. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106994.txt +0 -0
  42. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106995.txt +0 -0
  43. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106996.txt +0 -0
  44. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106997.txt +0 -0
  45. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106998.txt +0 -0
  46. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID106999.txt +0 -0
  47. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107000.txt +0 -0
  48. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107001.txt +0 -0
  49. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107002.txt +0 -0
  50. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107003.txt +0 -0
  51. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107004.txt +0 -0
  52. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107005.txt +0 -0
  53. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107006.txt +0 -0
  54. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107007.txt +0 -0
  55. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107008.txt +0 -0
  56. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107009.txt +0 -0
  57. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107010.txt +0 -0
  58. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107011.txt +0 -0
  59. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107012.txt +0 -0
  60. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107013.txt +0 -0
  61. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107014.txt +0 -0
  62. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107015.txt +0 -0
  63. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107016.txt +0 -0
  64. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107017.txt +0 -0
  65. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107018.txt +0 -0
  66. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107019.txt +0 -0
  67. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107020.txt +0 -0
  68. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107021.txt +0 -0
  69. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107022.txt +0 -0
  70. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107023.txt +0 -0
  71. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107024.txt +0 -0
  72. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107025.txt +0 -0
  73. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107026.txt +0 -0
  74. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107027.txt +0 -0
  75. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107028.txt +0 -0
  76. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107029.txt +0 -0
  77. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107030.txt +0 -0
  78. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107031.txt +0 -0
  79. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107032.txt +0 -0
  80. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107033.txt +0 -0
  81. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107034.txt +0 -0
  82. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107035.txt +0 -0
  83. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107036.txt +0 -0
  84. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107037.txt +0 -0
  85. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107038.txt +0 -0
  86. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107039.txt +0 -0
  87. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107040.txt +0 -0
  88. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107041.txt +0 -0
  89. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107042.txt +0 -0
  90. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107043.txt +0 -0
  91. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107044.txt +0 -0
  92. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107045.txt +0 -0
  93. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107046.txt +0 -0
  94. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107047.txt +0 -0
  95. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107048.txt +0 -0
  96. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107049.txt +0 -0
  97. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107050.txt +0 -0
  98. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107051.txt +0 -0
  99. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107052.txt +0 -0
  100. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107053.txt +0 -0
  101. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107054.txt +0 -0
  102. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107055.txt +0 -0
  103. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107056.txt +0 -0
  104. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107057.txt +0 -0
  105. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107058.txt +0 -0
  106. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107059.txt +0 -0
  107. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107060.txt +0 -0
  108. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107061.txt +0 -0
  109. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107062.txt +0 -0
  110. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107063.txt +0 -0
  111. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107064.txt +0 -0
  112. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107065.txt +0 -0
  113. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107066.txt +0 -0
  114. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107067.txt +0 -0
  115. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107068.txt +0 -0
  116. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107069.txt +0 -0
  117. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107070.txt +0 -0
  118. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID107071.txt +0 -0
  119. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID115808.txt +0 -0
  120. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID115812.txt +0 -0
  121. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID146811.txt +0 -0
  122. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156831.txt +0 -0
  123. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156835.txt +0 -0
  124. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156839.txt +0 -0
  125. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156843.txt +0 -0
  126. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156847.txt +0 -0
  127. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156851.txt +0 -0
  128. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156855.txt +0 -0
  129. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156859.txt +0 -0
  130. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156863.txt +0 -0
  131. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156867.txt +0 -0
  132. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156871.txt +0 -0
  133. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156875.txt +0 -0
  134. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156879.txt +0 -0
  135. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156883.txt +0 -0
  136. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/TG_SOUID156887.txt +0 -0
  137. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/elements.txt +0 -0
  138. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/metadata.txt +0 -0
  139. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/data/ECA_non-blended_custom/sources.txt +0 -0
  140. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/rendering.py +0 -0
  141. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/src/foragax/weather.py +0 -0
  142. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/tests/test_benchmark.py +0 -0
  143. {continual_foragax-0.34.0 → continual_foragax-0.35.0}/tests/test_foragax.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: continual-foragax
3
- Version: 0.34.0
3
+ Version: 0.35.0
4
4
  Summary: A continual reinforcement learning benchmark
5
5
  Author-email: Steven Tang <stang5@ualberta.ca>
6
6
  Requires-Python: >=3.8
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "continual-foragax"
3
- version = "0.34.0"
3
+ version = "0.35.0"
4
4
  description = "A continual reinforcement learning benchmark"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -30,7 +30,7 @@ build-backend = "setuptools.build_meta"
30
30
  [tool]
31
31
  [tool.commitizen]
32
32
  name = "cz_conventional_commits"
33
- version = "0.34.0"
33
+ version = "0.35.0"
34
34
  tag_format = "$version"
35
35
  version_files = ["pyproject.toml"]
36
36
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: continual-foragax
3
- Version: 0.34.0
3
+ Version: 0.35.0
4
4
  Summary: A continual reinforcement learning benchmark
5
5
  Author-email: Steven Tang <stang5@ualberta.ca>
6
6
  Requires-Python: >=3.8
@@ -690,11 +690,16 @@ class ForagaxEnv(environment.Environment):
690
690
 
691
691
  num_biomes = self.biome_object_frequencies.shape[0]
692
692
 
693
- # Compute consumption rates for all biomes
694
- consumption_rates = biome_state.consumption_count / jnp.maximum(
695
- 1.0, biome_state.total_objects.astype(float)
696
- )
697
- should_respawn = consumption_rates >= self.biome_consumption_threshold
693
+ if isinstance(self.biome_consumption_threshold, float):
694
+ # Compute consumption rates for all biomes
695
+ consumption_rates = biome_state.consumption_count / jnp.maximum(
696
+ 1.0, biome_state.total_objects.astype(float)
697
+ )
698
+ should_respawn = consumption_rates >= self.biome_consumption_threshold
699
+ else:
700
+ should_respawn = (
701
+ biome_state.consumption_count >= self.biome_consumption_threshold
702
+ )
698
703
 
699
704
  # Split key for all biomes in parallel
700
705
  key, subkey = jax.random.split(key)
@@ -240,6 +240,7 @@ class FourierObject(BaseForagaxObject):
240
240
  color: Tuple[int, int, int] = (0, 0, 0),
241
241
  reward_delay: int = 0,
242
242
  max_reward_delay: Optional[int] = None,
243
+ regen_delay: Optional[Tuple[int, int]] = None,
243
244
  ):
244
245
  if max_reward_delay is None:
245
246
  max_reward_delay = reward_delay
@@ -248,13 +249,14 @@ class FourierObject(BaseForagaxObject):
248
249
  blocking=False,
249
250
  collectable=True,
250
251
  color=color,
251
- random_respawn=False, # Objects don't respawn individually
252
+ random_respawn=True,
252
253
  max_reward_delay=max_reward_delay,
253
254
  expiry_time=None,
254
255
  )
255
256
  self.num_fourier_terms = num_fourier_terms
256
257
  self.base_magnitude = base_magnitude
257
258
  self.reward_delay_val = reward_delay
259
+ self.regen_delay_range = regen_delay
258
260
 
259
261
  def get_state(self, key: jax.Array) -> jax.Array:
260
262
  """Generate random Fourier series parameters.
@@ -353,6 +355,9 @@ class FourierObject(BaseForagaxObject):
353
355
 
354
356
  def regen_delay(self, clock: int, rng: jax.Array) -> int:
355
357
  """No individual regeneration - returns infinity."""
358
+ if self.regen_delay_range is not None:
359
+ min_delay, max_delay = self.regen_delay_range
360
+ return jax.random.randint(rng, (), min_delay, max_delay)
356
361
  return jnp.iinfo(jnp.int32).max
357
362
 
358
363
  def expiry_regen_delay(self, clock: int, rng: jax.Array) -> int:
@@ -709,6 +714,7 @@ def create_fourier_objects(
709
714
  num_fourier_terms: int = 10,
710
715
  base_magnitude: float = 1.0,
711
716
  reward_delay: int = 0,
717
+ regen_delay: Optional[Tuple[int, int]] = None,
712
718
  ):
713
719
  """Create HOT and COLD FourierObject instances.
714
720
 
@@ -726,6 +732,7 @@ def create_fourier_objects(
726
732
  base_magnitude=base_magnitude,
727
733
  color=(0, 0, 0),
728
734
  reward_delay=reward_delay,
735
+ regen_delay=regen_delay,
729
736
  )
730
737
 
731
738
  cold = FourierObject(
@@ -734,6 +741,7 @@ def create_fourier_objects(
734
741
  base_magnitude=base_magnitude,
735
742
  color=(0, 0, 0),
736
743
  reward_delay=reward_delay,
744
+ regen_delay=regen_delay,
737
745
  )
738
746
 
739
747
  return hot, cold
@@ -104,6 +104,21 @@ ENV_CONFIGS: Dict[str, Dict[str, Any]] = {
104
104
  "dynamic_biomes": True,
105
105
  "biome_consumption_threshold": 0.9,
106
106
  },
107
+ "ForagaxDiwali-v2": {
108
+ "size": (15, 15),
109
+ "aperture_size": None,
110
+ "objects": None,
111
+ "biomes": (
112
+ # Hot biome
113
+ Biome(start=(0, 2), stop=(15, 6), object_frequencies=(0.5, 0.0)),
114
+ # Cold biome
115
+ Biome(start=(0, 9), stop=(15, 13), object_frequencies=(0.0, 0.5)),
116
+ ),
117
+ "nowrap": False,
118
+ "deterministic_spawn": True,
119
+ "dynamic_biomes": True,
120
+ "biome_consumption_threshold": 200,
121
+ },
107
122
  "ForagaxTwoBiome-v1": {
108
123
  "size": (15, 15),
109
124
  "aperture_size": None,
@@ -539,6 +554,12 @@ def make(
539
554
  num_fourier_terms=10,
540
555
  reward_delay=reward_delay,
541
556
  )
557
+ if env_id == "ForagaxDiwali-v2":
558
+ config["objects"] = create_fourier_objects(
559
+ num_fourier_terms=10,
560
+ reward_delay=reward_delay,
561
+ regen_delay=(9, 11),
562
+ )
542
563
 
543
564
  if env_id == "ForagaxSineTwoBiome-v1":
544
565
  biome1_oyster, biome1_deathcap, biome2_oyster, biome2_deathcap = (
@@ -586,6 +586,63 @@ def test_foragax_diwali_v1_creation():
586
586
  assert jnp.all(state.biome_state.generation == 0), "Initial generation should be 0"
587
587
 
588
588
 
589
+ def test_foragax_diwali_v2_creation():
590
+ """Test that ForagaxDiwali-v2 can be created and initialized."""
591
+ env = make("ForagaxDiwali-v2", observation_type="object", aperture_size=(5, 5))
592
+
593
+ # Check that dynamic biomes are enabled
594
+ assert env.dynamic_biomes, "Dynamic biomes should be enabled for ForagaxDiwali-v2"
595
+ assert env.biome_consumption_threshold == 200, "Threshold should be 200"
596
+ assert env.num_fourier_terms == 10, "Should have 10 Fourier terms"
597
+
598
+ # Check that objects are FourierObjects
599
+ assert isinstance(env.objects[1], FourierObject), (
600
+ "First object should be FourierObject"
601
+ )
602
+ assert isinstance(env.objects[2], FourierObject), (
603
+ "Second object should be FourierObject"
604
+ )
605
+
606
+ # Check regen_delay for objects
607
+ assert env.objects[1].regen_delay_range == (9, 11), (
608
+ "Object 1 should have regen_delay_range (9, 11)"
609
+ )
610
+ assert env.objects[2].regen_delay_range == (9, 11), (
611
+ "Object 2 should have regen_delay_range (9, 11)"
612
+ )
613
+
614
+ # Initialize environment
615
+ key = jax.random.key(0)
616
+ obs, state = env.reset(key, env.default_params)
617
+
618
+ # Check state has new fields
619
+ assert hasattr(state, "object_state"), "State should have object_state"
620
+ assert hasattr(state.object_state, "color"), "ObjectState should have color"
621
+ assert hasattr(state.object_state, "state_params"), (
622
+ "ObjectState should have state_params"
623
+ )
624
+ assert hasattr(state, "biome_state"), "State should have biome_state"
625
+ assert hasattr(state.biome_state, "consumption_count"), (
626
+ "BiomeState should have consumption_count"
627
+ )
628
+ assert hasattr(state.biome_state, "total_objects"), (
629
+ "BiomeState should have total_objects"
630
+ )
631
+ assert hasattr(state.biome_state, "generation"), "BiomeState should have generation"
632
+
633
+ # Check shapes
634
+ chex.assert_shape(state.object_state.color, (15, 15, 3))
635
+ chex.assert_shape(
636
+ state.object_state.state_params, (15, 15, 22)
637
+ ) # 2 + 2*10 = 22 params
638
+ chex.assert_shape(state.biome_state.consumption_count, (2,)) # 2 biomes
639
+ chex.assert_shape(state.biome_state.total_objects, (2,))
640
+ chex.assert_shape(state.biome_state.generation, (2,))
641
+
642
+ # Check initial generation is 0
643
+ assert jnp.all(state.biome_state.generation == 0), "Initial generation should be 0"
644
+
645
+
589
646
  def test_foragax_sine_twobiome_v1_creation():
590
647
  """Test that ForagaxSineTwoBiome-v1 can be created and initialized."""
591
648
  env = make("ForagaxSineTwoBiome-v1", observation_type="color", aperture_size=(5, 5))