laser-learning-environment 2.2.2__tar.gz → 2.3.1__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.
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/.github/workflows/docs.yml +2 -2
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/Cargo.lock +63 -148
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/Cargo.toml +1 -1
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/PKG-INFO +12 -16
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/pyproject.toml +1 -0
- laser_learning_environment-2.3.1/python/lle/env/__init__.py +15 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/env/builder.py +8 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/env/env.py +36 -12
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/env/extras_generators.py +18 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/env/reward_strategy.py +18 -10
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/lle.pyi +26 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/observations.py +3 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/readme.md +10 -15
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pyexceptions.rs +1 -1
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pyworld.rs +49 -1
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/world_config.rs +1 -1
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/tiles/tile.rs +1 -1
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/tiles/void.rs +0 -4
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/world/world.rs +1 -1
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/unit_tests/test_tile.rs +3 -3
- laser_learning_environment-2.2.2/python/lle/env/__init__.py +0 -5
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/.github/workflows/test_and_release.yaml +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/.gitignore +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/build.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/licence +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/__init__.py +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/env/utils.py +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/exceptions.pyi +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/py.typed +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/tiles.pyi +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/types.py +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/levels/lvl1 +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/levels/lvl2 +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/levels/lvl3 +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/levels/lvl4 +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/levels/lvl5 +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/levels/lvl6 +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/agents/blue.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/agents/green.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/agents/red.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/agents/yellow.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/convert.py +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/gem.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/east/blue.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/east/green.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/east/red.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/east/yellow.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/north/blue.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/north/green.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/north/red.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/north/yellow.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/south/blue.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/south/green.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/south/red.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/south/yellow.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/west/blue.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/west/green.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/west/red.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/laser_sources/west/yellow.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/lasers/horizontal/blue.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/lasers/horizontal/green.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/lasers/horizontal/red.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/lasers/horizontal/yellow.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/lasers/vertical/blue.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/lasers/vertical/green.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/lasers/vertical/red.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/lasers/vertical/yellow.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/resources/sprites/void.png +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/action.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/agent.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/mod.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pyaction.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pyagent.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pydirection.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pyevent.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pyposition.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pytile/mod.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pytile/pygem.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pytile/pylaser.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pytile/pylaser_source.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pyworld_builder.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/bindings/pyworld_state.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/errors.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/levels.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/mod.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/errors.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/laser_config.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/mod.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/parser_v1.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/toml/agent_config.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/toml/mod.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/toml/position_config.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/toml/toml_config.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/parsing/toml/toml_laser_config.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/tiles/direction.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/tiles/gem.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/tiles/laser.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/tiles/laser_source.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/tiles/mod.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/tiles/start.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/world/event.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/world/mod.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/world/world/test.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/core/world/world_state.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/lib.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/position.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/rendering/mod.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/rendering/renderer.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/rendering/sprites.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/rendering/tile_visitor.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/stub_gen.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/utils/mod.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/src/utils/test.rs +0 -0
- {laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/tests/world_integration_tests.rs +0 -0
{laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/.github/workflows/docs.yml
RENAMED
|
@@ -4,7 +4,7 @@ name: Deploy static content to Pages
|
|
|
4
4
|
on:
|
|
5
5
|
# Runs on pushes targeting the default branch
|
|
6
6
|
push:
|
|
7
|
-
branches: ["master"]
|
|
7
|
+
branches: ["master", "main"]
|
|
8
8
|
# Only deploy the documentation on new version tags
|
|
9
9
|
tags:
|
|
10
10
|
- 'v[0-9]+.[0-9]+.[0-9]+'
|
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
- name: Install UV
|
|
46
46
|
uses: yezz123/setup-uv@v4
|
|
47
47
|
with:
|
|
48
|
-
uv-version: 0.
|
|
48
|
+
uv-version: 0.6.4
|
|
49
49
|
- name: Install dependencies
|
|
50
50
|
run: |
|
|
51
51
|
uv sync
|
|
@@ -16,9 +16,9 @@ checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1"
|
|
|
16
16
|
|
|
17
17
|
[[package]]
|
|
18
18
|
name = "anyhow"
|
|
19
|
-
version = "1.0.
|
|
19
|
+
version = "1.0.97"
|
|
20
20
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
21
|
-
checksum = "
|
|
21
|
+
checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f"
|
|
22
22
|
|
|
23
23
|
[[package]]
|
|
24
24
|
name = "arbitrary"
|
|
@@ -110,15 +110,9 @@ checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf"
|
|
|
110
110
|
|
|
111
111
|
[[package]]
|
|
112
112
|
name = "bytemuck"
|
|
113
|
-
version = "1.
|
|
113
|
+
version = "1.22.0"
|
|
114
114
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
115
|
-
checksum = "
|
|
116
|
-
|
|
117
|
-
[[package]]
|
|
118
|
-
name = "byteorder"
|
|
119
|
-
version = "1.5.0"
|
|
120
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
121
|
-
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
|
115
|
+
checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540"
|
|
122
116
|
|
|
123
117
|
[[package]]
|
|
124
118
|
name = "byteorder-lite"
|
|
@@ -201,9 +195,9 @@ checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929"
|
|
|
201
195
|
|
|
202
196
|
[[package]]
|
|
203
197
|
name = "either"
|
|
204
|
-
version = "1.
|
|
198
|
+
version = "1.15.0"
|
|
205
199
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
206
|
-
checksum = "
|
|
200
|
+
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
|
207
201
|
|
|
208
202
|
[[package]]
|
|
209
203
|
name = "equivalent"
|
|
@@ -258,14 +252,14 @@ dependencies = [
|
|
|
258
252
|
|
|
259
253
|
[[package]]
|
|
260
254
|
name = "getrandom"
|
|
261
|
-
version = "0.3.
|
|
255
|
+
version = "0.3.2"
|
|
262
256
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
263
|
-
checksum = "
|
|
257
|
+
checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0"
|
|
264
258
|
dependencies = [
|
|
265
259
|
"cfg-if",
|
|
266
260
|
"libc",
|
|
267
|
-
"
|
|
268
|
-
"
|
|
261
|
+
"r-efi",
|
|
262
|
+
"wasi 0.14.2+wasi-0.2.4",
|
|
269
263
|
]
|
|
270
264
|
|
|
271
265
|
[[package]]
|
|
@@ -280,9 +274,9 @@ dependencies = [
|
|
|
280
274
|
|
|
281
275
|
[[package]]
|
|
282
276
|
name = "half"
|
|
283
|
-
version = "2.
|
|
277
|
+
version = "2.5.0"
|
|
284
278
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
285
|
-
checksum = "
|
|
279
|
+
checksum = "7db2ff139bba50379da6aa0766b52fdcb62cb5b263009b09ed58ba604e14bbd1"
|
|
286
280
|
dependencies = [
|
|
287
281
|
"cfg-if",
|
|
288
282
|
"crunchy",
|
|
@@ -341,9 +335,9 @@ checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408"
|
|
|
341
335
|
|
|
342
336
|
[[package]]
|
|
343
337
|
name = "indexmap"
|
|
344
|
-
version = "2.
|
|
338
|
+
version = "2.8.0"
|
|
345
339
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
346
|
-
checksum = "
|
|
340
|
+
checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058"
|
|
347
341
|
dependencies = [
|
|
348
342
|
"equivalent",
|
|
349
343
|
"hashbrown",
|
|
@@ -351,9 +345,9 @@ dependencies = [
|
|
|
351
345
|
|
|
352
346
|
[[package]]
|
|
353
347
|
name = "indoc"
|
|
354
|
-
version = "2.0.
|
|
348
|
+
version = "2.0.6"
|
|
355
349
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
356
|
-
checksum = "
|
|
350
|
+
checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
|
|
357
351
|
|
|
358
352
|
[[package]]
|
|
359
353
|
name = "interpolate_name"
|
|
@@ -368,9 +362,9 @@ dependencies = [
|
|
|
368
362
|
|
|
369
363
|
[[package]]
|
|
370
364
|
name = "inventory"
|
|
371
|
-
version = "0.3.
|
|
365
|
+
version = "0.3.20"
|
|
372
366
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
373
|
-
checksum = "
|
|
367
|
+
checksum = "ab08d7cd2c5897f2c949e5383ea7c7db03fb19130ffcfbf7eda795137ae3cb83"
|
|
374
368
|
dependencies = [
|
|
375
369
|
"rustversion",
|
|
376
370
|
]
|
|
@@ -431,9 +425,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
|
|
|
431
425
|
|
|
432
426
|
[[package]]
|
|
433
427
|
name = "libc"
|
|
434
|
-
version = "0.2.
|
|
428
|
+
version = "0.2.171"
|
|
435
429
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
436
|
-
checksum = "
|
|
430
|
+
checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6"
|
|
437
431
|
|
|
438
432
|
[[package]]
|
|
439
433
|
name = "libfuzzer-sys"
|
|
@@ -447,7 +441,7 @@ dependencies = [
|
|
|
447
441
|
|
|
448
442
|
[[package]]
|
|
449
443
|
name = "lle"
|
|
450
|
-
version = "2.
|
|
444
|
+
version = "2.3.1"
|
|
451
445
|
dependencies = [
|
|
452
446
|
"image",
|
|
453
447
|
"itertools 0.14.0",
|
|
@@ -645,9 +639,9 @@ dependencies = [
|
|
|
645
639
|
|
|
646
640
|
[[package]]
|
|
647
641
|
name = "once_cell"
|
|
648
|
-
version = "1.
|
|
642
|
+
version = "1.21.1"
|
|
649
643
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
650
|
-
checksum = "
|
|
644
|
+
checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc"
|
|
651
645
|
|
|
652
646
|
[[package]]
|
|
653
647
|
name = "paste"
|
|
@@ -657,9 +651,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
|
|
|
657
651
|
|
|
658
652
|
[[package]]
|
|
659
653
|
name = "pkg-config"
|
|
660
|
-
version = "0.3.
|
|
654
|
+
version = "0.3.32"
|
|
661
655
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
662
|
-
checksum = "
|
|
656
|
+
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
|
663
657
|
|
|
664
658
|
[[package]]
|
|
665
659
|
name = "png"
|
|
@@ -691,18 +685,18 @@ dependencies = [
|
|
|
691
685
|
|
|
692
686
|
[[package]]
|
|
693
687
|
name = "ppv-lite86"
|
|
694
|
-
version = "0.2.
|
|
688
|
+
version = "0.2.21"
|
|
695
689
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
696
|
-
checksum = "
|
|
690
|
+
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
|
|
697
691
|
dependencies = [
|
|
698
|
-
"zerocopy
|
|
692
|
+
"zerocopy",
|
|
699
693
|
]
|
|
700
694
|
|
|
701
695
|
[[package]]
|
|
702
696
|
name = "proc-macro2"
|
|
703
|
-
version = "1.0.
|
|
697
|
+
version = "1.0.94"
|
|
704
698
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
705
|
-
checksum = "
|
|
699
|
+
checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84"
|
|
706
700
|
dependencies = [
|
|
707
701
|
"unicode-ident",
|
|
708
702
|
]
|
|
@@ -834,13 +828,19 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
|
|
|
834
828
|
|
|
835
829
|
[[package]]
|
|
836
830
|
name = "quote"
|
|
837
|
-
version = "1.0.
|
|
831
|
+
version = "1.0.40"
|
|
838
832
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
839
|
-
checksum = "
|
|
833
|
+
checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
|
|
840
834
|
dependencies = [
|
|
841
835
|
"proc-macro2",
|
|
842
836
|
]
|
|
843
837
|
|
|
838
|
+
[[package]]
|
|
839
|
+
name = "r-efi"
|
|
840
|
+
version = "5.2.0"
|
|
841
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
842
|
+
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
|
|
843
|
+
|
|
844
844
|
[[package]]
|
|
845
845
|
name = "rand"
|
|
846
846
|
version = "0.8.5"
|
|
@@ -860,7 +860,7 @@ checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94"
|
|
|
860
860
|
dependencies = [
|
|
861
861
|
"rand_chacha 0.9.0",
|
|
862
862
|
"rand_core 0.9.3",
|
|
863
|
-
"zerocopy
|
|
863
|
+
"zerocopy",
|
|
864
864
|
]
|
|
865
865
|
|
|
866
866
|
[[package]]
|
|
@@ -898,7 +898,7 @@ version = "0.9.3"
|
|
|
898
898
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
899
899
|
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
|
|
900
900
|
dependencies = [
|
|
901
|
-
"getrandom 0.3.
|
|
901
|
+
"getrandom 0.3.2",
|
|
902
902
|
]
|
|
903
903
|
|
|
904
904
|
[[package]]
|
|
@@ -991,24 +991,24 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
|
|
|
991
991
|
|
|
992
992
|
[[package]]
|
|
993
993
|
name = "rustversion"
|
|
994
|
-
version = "1.0.
|
|
994
|
+
version = "1.0.20"
|
|
995
995
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
996
|
-
checksum = "
|
|
996
|
+
checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2"
|
|
997
997
|
|
|
998
998
|
[[package]]
|
|
999
999
|
name = "serde"
|
|
1000
|
-
version = "1.0.
|
|
1000
|
+
version = "1.0.219"
|
|
1001
1001
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1002
|
-
checksum = "
|
|
1002
|
+
checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
|
|
1003
1003
|
dependencies = [
|
|
1004
1004
|
"serde_derive",
|
|
1005
1005
|
]
|
|
1006
1006
|
|
|
1007
1007
|
[[package]]
|
|
1008
1008
|
name = "serde_derive"
|
|
1009
|
-
version = "1.0.
|
|
1009
|
+
version = "1.0.219"
|
|
1010
1010
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1011
|
-
checksum = "
|
|
1011
|
+
checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
|
|
1012
1012
|
dependencies = [
|
|
1013
1013
|
"proc-macro2",
|
|
1014
1014
|
"quote",
|
|
@@ -1053,9 +1053,9 @@ checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd"
|
|
|
1053
1053
|
|
|
1054
1054
|
[[package]]
|
|
1055
1055
|
name = "syn"
|
|
1056
|
-
version = "2.0.
|
|
1056
|
+
version = "2.0.100"
|
|
1057
1057
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1058
|
-
checksum = "
|
|
1058
|
+
checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0"
|
|
1059
1059
|
dependencies = [
|
|
1060
1060
|
"proc-macro2",
|
|
1061
1061
|
"quote",
|
|
@@ -1148,15 +1148,15 @@ dependencies = [
|
|
|
1148
1148
|
|
|
1149
1149
|
[[package]]
|
|
1150
1150
|
name = "unicode-ident"
|
|
1151
|
-
version = "1.0.
|
|
1151
|
+
version = "1.0.18"
|
|
1152
1152
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1153
|
-
checksum = "
|
|
1153
|
+
checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
|
|
1154
1154
|
|
|
1155
1155
|
[[package]]
|
|
1156
1156
|
name = "unindent"
|
|
1157
|
-
version = "0.2.
|
|
1157
|
+
version = "0.2.4"
|
|
1158
1158
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1159
|
-
checksum = "
|
|
1159
|
+
checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
|
|
1160
1160
|
|
|
1161
1161
|
[[package]]
|
|
1162
1162
|
name = "v_frame"
|
|
@@ -1183,9 +1183,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
|
|
1183
1183
|
|
|
1184
1184
|
[[package]]
|
|
1185
1185
|
name = "wasi"
|
|
1186
|
-
version = "0.
|
|
1186
|
+
version = "0.14.2+wasi-0.2.4"
|
|
1187
1187
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1188
|
-
checksum = "
|
|
1188
|
+
checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
|
|
1189
1189
|
dependencies = [
|
|
1190
1190
|
"wit-bindgen-rt",
|
|
1191
1191
|
]
|
|
@@ -1254,123 +1254,38 @@ version = "0.1.8"
|
|
|
1254
1254
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1255
1255
|
checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
|
|
1256
1256
|
|
|
1257
|
-
[[package]]
|
|
1258
|
-
name = "windows-targets"
|
|
1259
|
-
version = "0.52.6"
|
|
1260
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1261
|
-
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
|
|
1262
|
-
dependencies = [
|
|
1263
|
-
"windows_aarch64_gnullvm",
|
|
1264
|
-
"windows_aarch64_msvc",
|
|
1265
|
-
"windows_i686_gnu",
|
|
1266
|
-
"windows_i686_gnullvm",
|
|
1267
|
-
"windows_i686_msvc",
|
|
1268
|
-
"windows_x86_64_gnu",
|
|
1269
|
-
"windows_x86_64_gnullvm",
|
|
1270
|
-
"windows_x86_64_msvc",
|
|
1271
|
-
]
|
|
1272
|
-
|
|
1273
|
-
[[package]]
|
|
1274
|
-
name = "windows_aarch64_gnullvm"
|
|
1275
|
-
version = "0.52.6"
|
|
1276
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1277
|
-
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
|
|
1278
|
-
|
|
1279
|
-
[[package]]
|
|
1280
|
-
name = "windows_aarch64_msvc"
|
|
1281
|
-
version = "0.52.6"
|
|
1282
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1283
|
-
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
|
|
1284
|
-
|
|
1285
|
-
[[package]]
|
|
1286
|
-
name = "windows_i686_gnu"
|
|
1287
|
-
version = "0.52.6"
|
|
1288
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1289
|
-
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
|
|
1290
|
-
|
|
1291
|
-
[[package]]
|
|
1292
|
-
name = "windows_i686_gnullvm"
|
|
1293
|
-
version = "0.52.6"
|
|
1294
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1295
|
-
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
|
|
1296
|
-
|
|
1297
|
-
[[package]]
|
|
1298
|
-
name = "windows_i686_msvc"
|
|
1299
|
-
version = "0.52.6"
|
|
1300
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1301
|
-
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
|
|
1302
|
-
|
|
1303
|
-
[[package]]
|
|
1304
|
-
name = "windows_x86_64_gnu"
|
|
1305
|
-
version = "0.52.6"
|
|
1306
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1307
|
-
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
|
|
1308
|
-
|
|
1309
|
-
[[package]]
|
|
1310
|
-
name = "windows_x86_64_gnullvm"
|
|
1311
|
-
version = "0.52.6"
|
|
1312
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1313
|
-
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
|
|
1314
|
-
|
|
1315
|
-
[[package]]
|
|
1316
|
-
name = "windows_x86_64_msvc"
|
|
1317
|
-
version = "0.52.6"
|
|
1318
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1319
|
-
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
|
1320
|
-
|
|
1321
1257
|
[[package]]
|
|
1322
1258
|
name = "winnow"
|
|
1323
|
-
version = "0.7.
|
|
1259
|
+
version = "0.7.4"
|
|
1324
1260
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1325
|
-
checksum = "
|
|
1261
|
+
checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36"
|
|
1326
1262
|
dependencies = [
|
|
1327
1263
|
"memchr",
|
|
1328
1264
|
]
|
|
1329
1265
|
|
|
1330
1266
|
[[package]]
|
|
1331
1267
|
name = "wit-bindgen-rt"
|
|
1332
|
-
version = "0.
|
|
1268
|
+
version = "0.39.0"
|
|
1333
1269
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1334
|
-
checksum = "
|
|
1270
|
+
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
|
|
1335
1271
|
dependencies = [
|
|
1336
1272
|
"bitflags 2.9.0",
|
|
1337
1273
|
]
|
|
1338
1274
|
|
|
1339
1275
|
[[package]]
|
|
1340
1276
|
name = "zerocopy"
|
|
1341
|
-
version = "0.
|
|
1342
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1343
|
-
checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
|
|
1344
|
-
dependencies = [
|
|
1345
|
-
"byteorder",
|
|
1346
|
-
"zerocopy-derive 0.7.35",
|
|
1347
|
-
]
|
|
1348
|
-
|
|
1349
|
-
[[package]]
|
|
1350
|
-
name = "zerocopy"
|
|
1351
|
-
version = "0.8.21"
|
|
1352
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1353
|
-
checksum = "dcf01143b2dd5d134f11f545cf9f1431b13b749695cb33bcce051e7568f99478"
|
|
1354
|
-
dependencies = [
|
|
1355
|
-
"zerocopy-derive 0.8.21",
|
|
1356
|
-
]
|
|
1357
|
-
|
|
1358
|
-
[[package]]
|
|
1359
|
-
name = "zerocopy-derive"
|
|
1360
|
-
version = "0.7.35"
|
|
1277
|
+
version = "0.8.23"
|
|
1361
1278
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1362
|
-
checksum = "
|
|
1279
|
+
checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6"
|
|
1363
1280
|
dependencies = [
|
|
1364
|
-
"
|
|
1365
|
-
"quote",
|
|
1366
|
-
"syn",
|
|
1281
|
+
"zerocopy-derive",
|
|
1367
1282
|
]
|
|
1368
1283
|
|
|
1369
1284
|
[[package]]
|
|
1370
1285
|
name = "zerocopy-derive"
|
|
1371
|
-
version = "0.8.
|
|
1286
|
+
version = "0.8.23"
|
|
1372
1287
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1373
|
-
checksum = "
|
|
1288
|
+
checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154"
|
|
1374
1289
|
dependencies = [
|
|
1375
1290
|
"proc-macro2",
|
|
1376
1291
|
"quote",
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: laser-learning-environment
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.1
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
6
6
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
7
7
|
Requires-Dist: numpy>=2.0.0
|
|
8
8
|
Requires-Dist: multi-agent-rlenv>=3.2.0
|
|
9
9
|
Requires-Dist: opencv-python>=4.0.0
|
|
10
|
+
Requires-Dist: orjson>=3.10.15
|
|
10
11
|
License-File: licence
|
|
11
12
|
Summary: Laser Learning Environment (LLE) for Multi-Agent Reinforcement Learning
|
|
12
13
|
Keywords: marl,rl,lle,laser,environment
|
|
@@ -27,28 +28,30 @@ When an agent enters a laser of its own colour, it blocks it. Otherwise, it dies
|
|
|
27
28
|
|
|
28
29
|
# Quick start
|
|
29
30
|
## Installation
|
|
30
|
-
|
|
31
|
+
Install the Laser Learning Environment with uv, pip, poetry, ...
|
|
31
32
|
```bash
|
|
32
33
|
pip install laser-learning-environment # Latest stable release with pip
|
|
33
34
|
pip install git+https://github.com/yamoling/lle # latest push on master
|
|
34
35
|
```
|
|
35
36
|
|
|
36
37
|
## Usage
|
|
37
|
-
LLE can be used at two levels of abstraction: as an `
|
|
38
|
+
LLE can be used at two levels of abstraction: as an `MARLEnv` for cooperative multi-agent reinforcement learning or as a `World` for many other purposes.
|
|
38
39
|
### For cooperative multi-agent reinforcement learning
|
|
39
|
-
The `LLE` class inherits from the `
|
|
40
|
+
The `LLE` class inherits from the `MARLEnv` class in the [marlenv](https://github.com/yamoling/multi-agent-rlenv) framework. Here is an example with the following map: 
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
```python
|
|
43
44
|
from lle import LLE
|
|
44
45
|
|
|
45
|
-
env = LLE.from_str("S0 G X").
|
|
46
|
-
done =
|
|
46
|
+
env = LLE.from_str("S0 G X").build()
|
|
47
|
+
done = False
|
|
47
48
|
obs, state = env.reset()
|
|
48
|
-
while not
|
|
49
|
+
while not done:
|
|
49
50
|
# env.render() # Uncomment to render
|
|
50
51
|
actions = env.sample_action()
|
|
51
|
-
|
|
52
|
+
step = env.step(actions)
|
|
53
|
+
# Access the step data with `step.obs`, `step.reward`, ...
|
|
54
|
+
done = step.is_terminal # Either done or truncated
|
|
52
55
|
```
|
|
53
56
|
|
|
54
57
|
|
|
@@ -109,16 +112,9 @@ cargo run --bin stub-gen
|
|
|
109
112
|
|
|
110
113
|
|
|
111
114
|
## Tests
|
|
112
|
-
|
|
113
|
-
Integration tests are written on the python side.
|
|
114
|
-
|
|
115
|
-
Run unit tests with
|
|
115
|
+
Run unit tests in rust & python with
|
|
116
116
|
```bash
|
|
117
117
|
cargo test
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Run integration tests with
|
|
121
|
-
```bash
|
|
122
118
|
maturin develop
|
|
123
119
|
pytest
|
|
124
120
|
```
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from .reward_strategy import RewardStrategy, SingleObjective, MultiObjective
|
|
2
|
+
from .extras_generators import ExtraGenerator, NoExtras, LaserSubgoal
|
|
3
|
+
from .env import LLE
|
|
4
|
+
from .builder import Builder
|
|
5
|
+
|
|
6
|
+
__all__ = [
|
|
7
|
+
"LLE",
|
|
8
|
+
"Builder",
|
|
9
|
+
"RewardStrategy",
|
|
10
|
+
"SingleObjective",
|
|
11
|
+
"MultiObjective",
|
|
12
|
+
"ExtraGenerator",
|
|
13
|
+
"NoExtras",
|
|
14
|
+
"LaserSubgoal",
|
|
15
|
+
]
|
{laser_learning_environment-2.2.2 → laser_learning_environment-2.3.1}/python/lle/env/builder.py
RENAMED
|
@@ -19,6 +19,7 @@ class Builder:
|
|
|
19
19
|
_env_name: str
|
|
20
20
|
_reward_strategy: RewardStrategy
|
|
21
21
|
_extras_generator: ExtraGenerator
|
|
22
|
+
_randomize_lasers: bool
|
|
22
23
|
|
|
23
24
|
def __init__(self, world: World):
|
|
24
25
|
self._world = world
|
|
@@ -29,6 +30,7 @@ class Builder:
|
|
|
29
30
|
self._env_name = "LLE"
|
|
30
31
|
self._reward_strategy = SingleObjective(world.n_agents)
|
|
31
32
|
self._extras_generator = NoExtras(world.n_agents)
|
|
33
|
+
self._randomize_lasers = False
|
|
32
34
|
|
|
33
35
|
def obs_type(
|
|
34
36
|
self,
|
|
@@ -120,6 +122,11 @@ class Builder:
|
|
|
120
122
|
)
|
|
121
123
|
return self
|
|
122
124
|
|
|
125
|
+
def randomize_lasers(self):
|
|
126
|
+
"""Randomize the colour of the lasers at each reset."""
|
|
127
|
+
self._randomize_lasers = True
|
|
128
|
+
return self
|
|
129
|
+
|
|
123
130
|
def add_extras(self, *extras: Literal["laser_subgoal"] | ExtraGenerator):
|
|
124
131
|
"""
|
|
125
132
|
Add extra information to the observation.
|
|
@@ -161,6 +168,7 @@ class Builder:
|
|
|
161
168
|
name=self._env_name,
|
|
162
169
|
reward_strategy=self._reward_strategy,
|
|
163
170
|
extras_generator=self._extras_generator,
|
|
171
|
+
randomize_lasers=self._randomize_lasers,
|
|
164
172
|
)
|
|
165
173
|
return env
|
|
166
174
|
|