epignatelli / navix

Accelerated minigrid environments with JAX
Apache License 2.0
103 stars 7 forks source link

Implementing MiniGrid skin for RGB obs #53

Closed epignatelli closed 6 months ago

github-actions[bot] commented 6 months ago
************* Module performance
docs/performance.py:1:0: C0114: Missing module docstring (missing-module-docstring)
docs/performance.py:19:0: C0116: Missing function or method docstring (missing-function-docstring)
docs/performance.py:32:0: C0116: Missing function or method docstring (missing-function-docstring)
docs/performance.py:32:21: W0613: Unused argument 'seed' (unused-argument)
docs/performance.py:41:17: W0612: Unused variable 'info' (unused-variable)
docs/performance.py:44:8: W0612: Unused variable 'timestep' (unused-variable)
docs/performance.py:53:8: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
docs/performance.py:64:10: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
docs/performance.py:68:8: W0108: Lambda may not be necessary (unnecessary-lambda)
docs/performance.py:74:8: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
docs/performance.py:5:0: C0411: third party import "gymnasium" should be placed before first party import "navix"  (wrong-import-order)
docs/performance.py:6:0: C0411: third party import "minigrid" should be placed before first party import "navix"  (wrong-import-order)
docs/performance.py:7:0: C0411: third party import "minigrid.wrappers.ImgObsWrapper" should be placed before first party import "navix"  (wrong-import-order)
docs/performance.py:8:0: C0411: standard import "random" should be placed before third party imports "jax", "jax.numpy", "gymnasium", "minigrid", "minigrid.wrappers.ImgObsWrapper" and first party import "navix"  (wrong-import-order)
docs/performance.py:9:0: C0411: standard import "time" should be placed before third party imports "jax", "jax.numpy", "gymnasium", "minigrid", "minigrid.wrappers.ImgObsWrapper" and first party import "navix"  (wrong-import-order)
docs/performance.py:11:0: C0411: standard import "timeit.timeit" should be placed before third party imports "jax", "jax.numpy", "gymnasium", "minigrid", "minigrid.wrappers.ImgObsWrapper" and first party import "navix"  (wrong-import-order)
docs/performance.py:6:0: W0611: Unused import minigrid (unused-import)
************* Module navix
navix/__init__.py:1:0: C0114: Missing module docstring (missing-module-docstring)
************* Module navix._version
navix/_version.py:1:0: C0114: Missing module docstring (missing-module-docstring)
************* Module navix.actions
navix/actions.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/actions.py:150:0: W0622: Redefining built-in 'open' (redefined-builtin)
navix/actions.py:31:0: C0115: Missing class docstring (missing-class-docstring)
navix/actions.py:31:0: R0903: Too few public methods (0/2) (too-few-public-methods)
navix/actions.py:81:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/actions.py:92:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/actions.py:96:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/actions.py:100:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/actions.py:104:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/actions.py:109:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/actions.py:114:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/actions.py:119:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/actions.py:124:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/actions.py:172:4: W0621: Redefining name 'open' from outer scope (line 150) (redefined-outer-name)
************* Module navix.components
navix/components.py:49:0: C0301: Line too long (101/100) (line-too-long)
navix/components.py:88:0: C0301: Line too long (112/100) (line-too-long)
navix/components.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/components.py:38:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/components.py:39:11: E3701: Invalid usage of field(), it should be used within a dataclass or the make_dataclass() function. (invalid-field-call)
navix/components.py:42:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:43:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/components.py:43:25: W0613: Unused argument 'batched' (unused-argument)
navix/components.py:42:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/components.py:47:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:47:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/components.py:52:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:52:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/components.py:57:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:57:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/components.py:62:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:62:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/components.py:67:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:67:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/components.py:75:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:75:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/components.py:80:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:80:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/components.py:85:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:92:0: C0115: Missing class docstring (missing-class-docstring)
navix/components.py:94:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/components.py:28:0: C0411: standard import "dataclasses" should be placed before third party imports "jax.Array", "flax.struct", "jax.numpy" (wrong-import-order)
************* Module navix.entities
navix/entities.py:64:0: C0301: Line too long (103/100) (line-too-long)
navix/entities.py:228:0: C0301: Line too long (105/100) (line-too-long)
navix/entities.py:229:0: C0301: Line too long (112/100) (line-too-long)
navix/entities.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/entities.py:29:0: C0115: Missing class docstring (missing-class-docstring)
navix/entities.py:29:0: R0903: Too few public methods (0/2) (too-few-public-methods)
navix/entities.py:70:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:76:15: E1101: Instance of 'Field' has no 'shape' member (no-member)
navix/entities.py:79:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:80:15: E1101: Instance of 'Field' has no 'ndim' member (no-member)
navix/entities.py:83:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:87:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:95:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:123:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:157:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:179:30: E1101: Instance of 'Field' has no 'shape' member (no-member)
navix/entities.py:193:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:197:8: W0622: Redefining built-in 'id' (redefined-builtin)
navix/entities.py:216:30: E1101: Instance of 'Field' has no 'shape' member (no-member)
navix/entities.py:235:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:240:8: W0622: Redefining built-in 'open' (redefined-builtin)
navix/entities.py:266:30: E1101: Instance of 'Field' has no 'shape' member (no-member)
navix/entities.py:275:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:292:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:295:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:299:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:302:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:306:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:309:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:309:41: W0613: Unused argument 'idx' (unused-argument)
navix/entities.py:314:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:317:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:321:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:324:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:328:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:331:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:335:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:338:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:341:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:344:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/entities.py:23:0: W0611: Unused PALETTE imported from rendering.registry (unused-import)
************* Module navix.environments.environment
navix/environments/environment.py:53:0: C0301: Line too long (105/100) (line-too-long)
navix/environments/environment.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/environments/environment.py:36:0: C0115: Missing class docstring (missing-class-docstring)
navix/environments/environment.py:36:0: R0903: Too few public methods (0/2) (too-few-public-methods)
navix/environments/environment.py:47:0: C0115: Missing class docstring (missing-class-docstring)
navix/environments/environment.py:47:0: R0903: Too few public methods (0/2) (too-few-public-methods)
navix/environments/environment.py:64:0: C0115: Missing class docstring (missing-class-docstring)
navix/environments/environment.py:80:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/environments/environment.py:81:8: R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
navix/environments/environment.py:81:11: W0143: Comparing against a callable, did you omit the parenthesis? (comparison-with-callable)
navix/environments/environment.py:83:13: W0143: Comparing against a callable, did you omit the parenthesis? (comparison-with-callable)
navix/environments/environment.py:85:13: W0143: Comparing against a callable, did you omit the parenthesis? (comparison-with-callable)
navix/environments/environment.py:88:13: W0143: Comparing against a callable, did you omit the parenthesis? (comparison-with-callable)
navix/environments/environment.py:94:13: W0143: Comparing against a callable, did you omit the parenthesis? (comparison-with-callable)
navix/environments/environment.py:103:16: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
navix/environments/environment.py:109:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/environments/environment.py:113:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/environments/environment.py:116:4: W0102: Dangerous default value ACTIONS (builtins.dict) as argument (dangerous-default-value)
navix/environments/environment.py:130:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/environments/environment.py:130:4: W0102: Dangerous default value ACTIONS (builtins.dict) as argument (dangerous-default-value)
navix/environments/environment.py:140:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/environments/environment.py:143:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/environments/environment.py:146:4: C0116: Missing function or method docstring (missing-function-docstring)
************* Module navix.environments.keydoor
navix/environments/keydoor.py:16:0: C0301: Line too long (103/100) (line-too-long)
navix/environments/keydoor.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/environments/keydoor.py:15:0: C0115: Missing class docstring (missing-class-docstring)
navix/environments/keydoor.py:16:4: R0914: Too many local variables (29/15) (too-many-locals)
navix/environments/keydoor.py:4:0: C0411: standard import "typing.Union" should be placed before third party imports "jax", "jax.numpy", "jax.Array" (wrong-import-order)
************* Module navix.environments.room
navix/environments/room.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/environments/room.py:35:0: C0115: Missing class docstring (missing-class-docstring)
************* Module navix.grid
navix/grid.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/grid.py:33:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:37:38: W0621: Redefining name 'coordinates' from outer scope (line 33) (redefined-outer-name)
navix/grid.py:70:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:82:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:86:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:90:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:94:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:98:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:111:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:122:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:126:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:155:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:187:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:210:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/grid.py:210:0: W0102: Dangerous default value {} as argument (dangerous-default-value)
************* Module navix.observations
navix/observations.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/observations.py:36:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/observations.py:37:4: W0613: Unused argument 'state' (unused-argument)
navix/observations.py:42:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/observations.py:56:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/observations.py:79:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/observations.py:102:0: C0116: Missing function or method docstring (missing-function-docstring)
************* Module navix.rendering
navix/rendering/__init__.py:1:0: C0114: Missing module docstring (missing-module-docstring)
************* Module navix.rendering.cache
navix/rendering/cache.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/rendering/cache.py:13:0: C0115: Missing class docstring (missing-class-docstring)
navix/rendering/cache.py:18:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/cache.py:13:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/rendering/cache.py:33:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/cache.py:33:0: W0102: Dangerous default value SPRITES_REGISTRY (builtins.dict) as argument (dangerous-default-value)
navix/rendering/cache.py:60:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/cache.py:78:0: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/cache.py:10:0: W0611: Unused SpritesRegistry imported from registry (unused-import)
************* Module navix.rendering.registry
navix/rendering/registry.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/rendering/registry.py:33:0: C0115: Missing class docstring (missing-class-docstring)
navix/rendering/registry.py:42:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/registry.py:46:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/registry.py:50:0: C0115: Missing class docstring (missing-class-docstring)
navix/rendering/registry.py:64:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/registry.py:67:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/registry.py:70:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/registry.py:73:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/registry.py:79:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/registry.py:89:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/rendering/registry.py:4:0: W0611: Unused Dict imported from typing (unused-import)
navix/rendering/registry.py:4:0: W0611: Unused Tuple imported from typing (unused-import)
************* Module navix.spaces
navix/spaces.py:1:0: C0114: Missing module docstring (missing-module-docstring)
navix/spaces.py:34:0: C0115: Missing class docstring (missing-class-docstring)
navix/spaces.py:39:15: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
navix/spaces.py:43:4: C0116: Missing function or method docstring (missing-function-docstring)
navix/spaces.py:47:0: C0115: Missing class docstring (missing-class-docstring)
navix/spaces.py:47:0: R0903: Too few public methods (1/2) (too-few-public-methods)
navix/spaces.py:59:0: C0115: Missing class docstring (missing-class-docstring)
navix/spaces.py:59:0: R0903: Too few public methods (1/2) (too-few-public-methods)
************* Module test_actions
tests/test_actions.py:1:0: C0114: Missing module docstring (missing-module-docstring)
tests/test_actions.py:11:0: C0116: Missing function or method docstring (missing-function-docstring)
tests/test_actions.py:35:12: W0212: Access to a protected member _rotate of a client class (protected-access)
tests/test_actions.py:40:12: W0212: Access to a protected member _rotate of a client class (protected-access)
tests/test_actions.py:45:12: W0212: Access to a protected member _rotate of a client class (protected-access)
tests/test_actions.py:50:12: W0212: Access to a protected member _rotate of a client class (protected-access)
tests/test_actions.py:11:0: R1711: Useless return at end of function or method (useless-return)
tests/test_actions.py:57:0: C0116: Missing function or method docstring (missing-function-docstring)
tests/test_actions.py:82:4: W0105: String statement has no effect (pointless-string-statement)
tests/test_actions.py:57:0: R0915: Too many statements (57/50) (too-many-statements)
tests/test_actions.py:157:0: C0116: Missing function or method docstring (missing-function-docstring)
tests/test_actions.py:183:4: W0105: String statement has no effect (pointless-string-statement)
tests/test_actions.py:207:19: W0212: Access to a protected member _walkable of a client class (protected-access)
tests/test_actions.py:209:11: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:244:0: C0116: Missing function or method docstring (missing-function-docstring)
tests/test_actions.py:265:4: W0105: String statement has no effect (pointless-string-statement)
tests/test_actions.py:290:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:303:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:309:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:312:0: C0116: Missing function or method docstring (missing-function-docstring)
tests/test_actions.py:363:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:373:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:385:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:396:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:407:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:416:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:425:7: C0209: Formatting a regular string which could be an f-string (consider-using-f-string)
tests/test_actions.py:312:0: R0915: Too many statements (52/50) (too-many-statements)
************* Module test_entities
tests/test_entities.py:1:0: C0114: Missing module docstring (missing-module-docstring)
tests/test_entities.py:9:0: C0116: Missing function or method docstring (missing-function-docstring)
tests/test_entities.py:20:0: C0116: Missing function or method docstring (missing-function-docstring)
tests/test_entities.py:4:0: W0611: Unused navix imported as nx (unused-import)
************* Module test_observations
tests/test_observations.py:1:0: C0114: Missing module docstring (missing-module-docstring)
tests/test_observations.py:11:0: C0116: Missing function or method docstring (missing-function-docstring)
tests/test_observations.py:11:0: R0914: Too many local variables (21/15) (too-many-locals)
tests/test_observations.py:11:0: R1711: Useless return at end of function or method (useless-return)
tests/test_observations.py:100:0: C0116: Missing function or method docstring (missing-function-docstring)
************* Module test_tasks
tests/test_tasks.py:1:0: C0114: Missing module docstring (missing-module-docstring)
tests/test_tasks.py:49:0: C0116: Missing function or method docstring (missing-function-docstring)
tests/test_tasks.py:1:0: R0801: Similar lines in 2 files
==navix.environments.keydoor:[87:98]
==navix.environments.room:[57:70]
        }

        state = State(
            key=key,
            grid=grid,
            cache=cache or RenderingCache.init(grid),
            entities=entities,
        )
        return Timestep(
            t=jnp.asarray(0, dtype=jnp.int32),
            observation=self.observation(state), (duplicate-code)
tests/test_tasks.py:1:0: R0801: Similar lines in 2 files
==test_observations:[109:118]
==test_tasks:[22:32]
    keys = Key(position=jnp.asarray((2, 2)), id=jnp.asarray(0), colour=PALETTE.YELLOW)
    doors = Door(
        position=jnp.asarray([(1, 5), (1, 6)]),
        requires=jnp.asarray((0, 0)),
        open=jnp.asarray((False, True)),
        colour=PALETTE.YELLOW,
    )

    entities = {
        Entities.PLAYER: players[None], (duplicate-code)
tests/test_tasks.py:1:0: R0801: Similar lines in 2 files
==test_observations:[11:19]
==test_tasks:[11:19]
    height = 10
    width = 10
    grid = jnp.zeros((height - 2, width - 2), dtype=jnp.int32)
    grid = jnp.pad(grid, 1, mode="constant", constant_values=-1)

    players = Player(
        position=jnp.asarray((1, 1)), direction=jnp.asarray(0), pocket=EMPTY_POCKET_ID
    ) (duplicate-code)
tests/test_tasks.py:1:0: R0801: Similar lines in 2 files
==test_observations:[31:38]
==test_tasks:[33:40]
        Entities.KEY: keys[None],
        Entities.DOOR: doors,
    }

    state = nx.entities.State(
        key=jax.random.PRNGKey(0),
        grid=grid, (duplicate-code)
tests/test_tasks.py:1:0: R0801: Similar lines in 2 files
==test_observations:[20:25]
==test_tasks:[22:27]
    keys = Key(position=jnp.asarray((2, 2)), id=jnp.asarray(0), colour=PALETTE.YELLOW)
    doors = Door(
        position=jnp.asarray([(1, 5), (1, 6)]),
        requires=jnp.asarray((0, 0)),
        open=jnp.asarray((False, True)), (duplicate-code)

Report
======
1112 statements analysed.

Statistics by type
------------------

+---------+-------+-----------+-----------+------------+---------+
|type     |number |old number |difference |%documented |%badname |
+=========+=======+===========+===========+============+=========+
|module   |19     |NC         |NC         |0.00        |0.00     |
+---------+-------+-----------+-----------+------------+---------+
|class    |30     |NC         |NC         |23.33       |0.00     |
+---------+-------+-----------+-----------+------------+---------+
|method   |80     |NC         |NC         |43.75       |0.00     |
+---------+-------+-----------+-----------+------------+---------+
|function |59     |NC         |NC         |27.12       |0.00     |
+---------+-------+-----------+-----------+------------+---------+

External dependencies
---------------------
::

    navix (performance,test_actions,test_entities,test_observations,test_tasks)
      \-actions (navix.environments.environment)
      \-components (navix.environments.keydoor,navix.environments.room,test_actions,test_observations,test_tasks)
      \-entities (navix.environments.environment,navix.environments.keydoor,navix.environments.room,test_actions,test_entities,test_observations,test_tasks)
      \-grid (navix.environments.keydoor,navix.environments.room)
      \-observations (navix.environments.environment)
      \-rendering 
      | \-cache (navix.environments.environment,navix.environments.keydoor,navix.environments.room,test_observations)
      | \-registry (navix.environments.keydoor,test_actions,test_entities,test_observations,test_tasks)
      \-spaces (navix.environments.environment)
      \-tasks (navix.environments.environment)
      \-terminations (navix.environments.environment)

2478 lines have been analyzed

Raw metrics
-----------

+----------+-------+------+---------+-----------+
|type      |number |%     |previous |difference |
+==========+=======+======+=========+===========+
|code      |1603   |64.69 |NC       |NC         |
+----------+-------+------+---------+-----------+
|docstring |94     |3.79  |NC       |NC         |
+----------+-------+------+---------+-----------+
|comment   |283    |11.42 |NC       |NC         |
+----------+-------+------+---------+-----------+
|empty     |498    |20.10 |NC       |NC         |
+----------+-------+------+---------+-----------+

Duplication
-----------

+-------------------------+------+---------+-----------+
|                         |now   |previous |difference |
+=========================+======+=========+===========+
|nb duplicated lines      |0     |NC       |NC         |
+-------------------------+------+---------+-----------+
|percent duplicated lines |0.000 |NC       |NC         |
+-------------------------+------+---------+-----------+

Messages by category
--------------------

+-----------+-------+---------+-----------+
|type       |number |previous |difference |
+===========+=======+=========+===========+
|convention |161    |NC       |NC         |
+-----------+-------+---------+-----------+
|refactor   |27     |NC       |NC         |
+-----------+-------+---------+-----------+
|warning    |35     |NC       |NC         |
+-----------+-------+---------+-----------+
|error      |6      |NC       |NC         |
+-----------+-------+---------+-----------+

Messages
--------

+---------------------------+------------+
|message id                 |occurrences |
+===========================+============+
|missing-function-docstring |88          |
+---------------------------+------------+
|missing-class-docstring    |23          |
+---------------------------+------------+
|missing-module-docstring   |19          |
+---------------------------+------------+
|consider-using-f-string    |16          |
+---------------------------+------------+
|too-few-public-methods     |15          |
+---------------------------+------------+
|wrong-import-order         |8           |
+---------------------------+------------+
|line-too-long              |7           |
+---------------------------+------------+
|unused-import              |6           |
+---------------------------+------------+
|protected-access           |5           |
+---------------------------+------------+
|no-member                  |5           |
+---------------------------+------------+
|duplicate-code             |5           |
+---------------------------+------------+
|comparison-with-callable   |5           |
+---------------------------+------------+
|unused-argument            |4           |
+---------------------------+------------+
|dangerous-default-value    |4           |
+---------------------------+------------+
|redefined-builtin          |3           |
+---------------------------+------------+
|pointless-string-statement |3           |
+---------------------------+------------+
|useless-return             |2           |
+---------------------------+------------+
|unused-variable            |2           |
+---------------------------+------------+
|too-many-statements        |2           |
+---------------------------+------------+
|too-many-locals            |2           |
+---------------------------+------------+
|redefined-outer-name       |2           |
+---------------------------+------------+
|unnecessary-lambda         |1           |
+---------------------------+------------+
|no-else-return             |1           |
+---------------------------+------------+
|invalid-field-call         |1           |
+---------------------------+------------+

-----------------------------------
Your code has been rated at 7.72/10