epignatelli / helx

Interoperating between (Deep) Reiforcement Learning libraries
Apache License 2.0
10 stars 6 forks source link

53 add contributing guidelines and improve triage #54

Closed epignatelli closed 10 months ago

github-actions[bot] commented 1 year ago
************* Module helx.agents.agent
helx/agents/agent.py:40:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/agents/agent.py:47:0: R0902: Too many instance attributes (9/7) (too-many-instance-attributes)
helx/agents/agent.py:138:34: W0622: Redefining built-in 'eval' (redefined-builtin)
helx/agents/agent.py:138:34: W0613: Unused argument 'eval' (unused-argument)
helx/agents/agent.py:151:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/agents/agent.py:156:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/agents/agent.py:212:23: C0103: Argument name "n" doesn't conform to snake_case naming style (invalid-name)
************* Module helx.agents.dqn
helx/agents/dqn.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/agents/dqn.py:38:0: C0115: Missing class docstring (missing-class-docstring)
helx/agents/dqn.py:38:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/agents/dqn.py:92:4: W0221: Number of parameters was 4 in 'Agent.loss' and is now 4 in overriding 'DQN.loss' method (arguments-differ)
helx/agents/dqn.py:92:4: W0221: Variadics removed in overriding 'DQN.loss' method (arguments-differ)
helx/agents/dqn.py:98:28: C0103: Variable name "d" doesn't conform to snake_case naming style (invalid-name)
************* Module helx.agents.random
helx/agents/random.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/agents/random.py:35:4: W0231: __init__ method from base class 'Agent' is not called (super-init-not-called)
helx/agents/random.py:45:34: W0622: Redefining built-in 'eval' (redefined-builtin)
helx/agents/random.py:49:4: W0221: Number of parameters was 4 in 'Agent.loss' and is now 4 in overriding 'Random.loss' method (arguments-differ)
helx/agents/random.py:49:4: W0221: Variadics removed in overriding 'Random.loss' method (arguments-differ)
helx/agents/random.py:53:8: W0613: Unused argument 'params_target' (unused-argument)
************* Module helx.agents.sac
helx/agents/sac.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/agents/sac.py:45:0: C0115: Missing class docstring (missing-class-docstring)
helx/agents/sac.py:45:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/agents/sac.py:87:4: R0913: Too many arguments (6/5) (too-many-arguments)
helx/agents/sac.py:115:4: W0221: Number of parameters was 4 in 'Agent.loss' and is now 5 in overriding 'SAC.loss' method (arguments-differ)
helx/agents/sac.py:115:4: W0221: Variadics removed in overriding 'SAC.loss' method (arguments-differ)
helx/agents/sac.py:115:4: R0914: Too many local variables (29/15) (too-many-locals)
helx/agents/sac.py:122:26: C0103: Variable name "d" doesn't conform to snake_case naming style (invalid-name)
helx/agents/sac.py:131:8: C0103: Variable name "qA_0" doesn't conform to snake_case naming style (invalid-name)
helx/agents/sac.py:131:14: C0103: Variable name "qB_0" doesn't conform to snake_case naming style (invalid-name)
helx/agents/sac.py:132:8: C0103: Variable name "qA_1" doesn't conform to snake_case naming style (invalid-name)
helx/agents/sac.py:132:14: C0103: Variable name "qB_1" doesn't conform to snake_case naming style (invalid-name)
************* Module helx.agents.sacd
helx/agents/sacd.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/agents/sacd.py:46:0: C0115: Missing class docstring (missing-class-docstring)
helx/agents/sacd.py:46:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/agents/sacd.py:63:4: R0913: Too many arguments (6/5) (too-many-arguments)
helx/agents/sacd.py:90:4: W0221: Number of parameters was 4 in 'Agent.loss' and is now 5 in overriding 'SACD.loss' method (arguments-differ)
helx/agents/sacd.py:90:4: W0221: Variadics removed in overriding 'SACD.loss' method (arguments-differ)
helx/agents/sacd.py:90:4: R0914: Too many local variables (31/15) (too-many-locals)
helx/agents/sacd.py:97:26: C0103: Variable name "d" doesn't conform to snake_case naming style (invalid-name)
helx/agents/sacd.py:98:23: C3001: Lambda expression assigned to a variable. Define a function using the "def" keyword instead. (unnecessary-lambda-assignment)
helx/agents/sacd.py:107:8: C0103: Variable name "qA_0" doesn't conform to snake_case naming style (invalid-name)
helx/agents/sacd.py:107:14: C0103: Variable name "qB_0" doesn't conform to snake_case naming style (invalid-name)
helx/agents/sacd.py:108:8: C0103: Variable name "qA_1" doesn't conform to snake_case naming style (invalid-name)
helx/agents/sacd.py:108:14: C0103: Variable name "qB_1" doesn't conform to snake_case naming style (invalid-name)
************* Module helx.configure
helx/configure.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/configure.py:7:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/configure.py:34:0: C0116: Missing function or method docstring (missing-function-docstring)
************* Module helx.download
helx/download.py:94:0: C0301: Line too long (110/100) (line-too-long)
helx/download.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/download.py:39:4: C0103: Variable name "r" doesn't conform to snake_case naming style (invalid-name)
helx/download.py:39:8: W3101: Missing timeout argument for method 'requests.get' can cause your program to hang indefinitely (missing-timeout)
helx/download.py:40:4: W1203: Use lazy % formatting in logging functions (logging-fstring-interpolation)
helx/download.py:41:33: C0103: Variable name "fd" doesn't conform to snake_case naming style (invalid-name)
helx/download.py:48:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/download.py:82:4: W1203: Use lazy % formatting in logging functions (logging-fstring-interpolation)
helx/download.py:93:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/download.py:129:4: W1203: Use lazy % formatting in logging functions (logging-fstring-interpolation)
helx/download.py:135:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/download.py:146:4: W1203: Use lazy % formatting in logging functions (logging-fstring-interpolation)
helx/download.py:153:11: W0718: Catching too general exception Exception (broad-exception-caught)
helx/download.py:153:4: C0103: Variable name "e" doesn't conform to snake_case naming style (invalid-name)
helx/download.py:162:0: C0116: Missing function or method docstring (missing-function-docstring)
************* Module helx.environment.bsuite
helx/environment/bsuite.py:40:9: W0511: TODO (epignatelli): Remove this once dm_env is correctly typed. (fixme)
helx/environment/bsuite.py:48:9: W0511: TODO (epignatelli): Remove this once dm_env is correctly typed. (fixme)
helx/environment/bsuite.py:60:9: W0511: TODO (epignatelli): Remove this once bsuite is updated. (fixme)
helx/environment/bsuite.py:89:9: W0511: TODO: Handle mode (fixme)
helx/environment/bsuite.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/bsuite.py:33:4: W0246: Useless parent or super() delegation in method '__init__' (useless-parent-delegation)
helx/environment/bsuite.py:36:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/bsuite.py:44:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/bsuite.py:52:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/bsuite.py:59:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/bsuite.py:62:19: W0212: Access to a protected member _get_observation of a client class (protected-access)
helx/environment/bsuite.py:71:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/bsuite.py:71:20: W0613: Unused argument 'seed' (unused-argument)
helx/environment/bsuite.py:76:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/bsuite.py:83:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/bsuite.py:83:4: R1711: Useless return at end of function or method (useless-return)
helx/environment/bsuite.py:88:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/bsuite.py:88:21: W0613: Unused argument 'mode' (unused-argument)
helx/environment/bsuite.py:93:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/bsuite.py:37:11: E0203: Access to member '_action_space' before its definition line 41 (access-member-before-definition)
helx/environment/bsuite.py:38:19: E0203: Access to member '_action_space' before its definition line 41 (access-member-before-definition)
helx/environment/bsuite.py:45:11: E0203: Access to member '_observation_space' before its definition line 49 (access-member-before-definition)
helx/environment/bsuite.py:46:19: E0203: Access to member '_observation_space' before its definition line 49 (access-member-before-definition)
helx/environment/bsuite.py:53:11: E0203: Access to member '_reward_space' before its definition line 56 (access-member-before-definition)
helx/environment/bsuite.py:54:19: E0203: Access to member '_reward_space' before its definition line 56 (access-member-before-definition)
helx/environment/bsuite.py:41:8: W0201: Attribute '_action_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/bsuite.py:49:8: W0201: Attribute '_observation_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/bsuite.py:56:8: W0201: Attribute '_reward_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/bsuite.py:73:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/bsuite.py:80:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/bsuite.py:84:8: W0201: Attribute '_seed' defined outside __init__ (attribute-defined-outside-init)
helx/environment/bsuite.py:85:8: W0201: Attribute '_key' defined outside __init__ (attribute-defined-outside-init)
************* Module helx.environment.distributed
helx/environment/distributed.py:84:0: C0301: Line too long (111/100) (line-too-long)
helx/environment/distributed.py:85:0: C0301: Line too long (107/100) (line-too-long)
helx/environment/distributed.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/distributed.py:38:19: C0103: Argument name "a" doesn't conform to snake_case naming style (invalid-name)
helx/environment/distributed.py:44:25: C0103: Argument name "a" doesn't conform to snake_case naming style (invalid-name)
helx/environment/distributed.py:44:4: R1711: Useless return at end of function or method (useless-return)
helx/environment/distributed.py:72:20: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/environment/distributed.py:89:4: W0231: __init__ method from base class 'Environment' is not called (super-init-not-called)
helx/environment/distributed.py:97:12: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/environment/distributed.py:114:28: R1704: Redefining argument with the local name 'env' (redefined-argument-from-local)
helx/environment/distributed.py:124:15: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
helx/environment/distributed.py:125:25: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
helx/environment/distributed.py:125:25: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/environment/distributed.py:143:4: W0221: Number of parameters was 2 in 'Environment.reset' and is now 1 in overriding 'MultiprocessEnv.reset' method (arguments-differ)
helx/environment/distributed.py:148:4: W0237: Parameter 'action' has been renamed to 'actions' in overriding 'MultiprocessEnv.step' method (arguments-renamed)
helx/environment/distributed.py:150:12: C0103: Variable name "a" doesn't conform to snake_case naming style (invalid-name)
helx/environment/distributed.py:154:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/distributed.py:156:12: C0103: Variable name "a" doesn't conform to snake_case naming style (invalid-name)
helx/environment/distributed.py:154:4: R1711: Useless return at end of function or method (useless-return)
helx/environment/distributed.py:163:12: C0103: Variable name "p" doesn't conform to snake_case naming style (invalid-name)
helx/environment/distributed.py:172:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/distributed.py:180:12: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
************* Module helx.environment.dm_control
helx/environment/dm_control.py:25:9: W0511: TODO (epignatelli): Implement this (fixme)
helx/environment/dm_control.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/dm_control.py:24:4: W0231: __init__ method from base class 'Environment' is not called (super-init-not-called)
************* Module helx.environment.dm_env
helx/environment/dm_env.py:38:9: W0511: TODO (epignatelli): remove type ignore once dm_env is correctly typed. (fixme)
helx/environment/dm_env.py:46:9: W0511: TODO (epignatelli): remove type ignore once dm_env is correctly typed. (fixme)
helx/environment/dm_env.py:54:9: W0511: TODO (epignatelli): remove type ignore once dm_env is correctly typed. (fixme)
helx/environment/dm_env.py:82:9: W0511: TODO: Handle mode (fixme)
helx/environment/dm_env.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/dm_env.py:31:4: W0246: Useless parent or super() delegation in method '__init__' (useless-parent-delegation)
helx/environment/dm_env.py:34:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/dm_env.py:42:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/dm_env.py:50:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/dm_env.py:58:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/dm_env.py:66:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/dm_env.py:66:20: W0613: Unused argument 'seed' (unused-argument)
helx/environment/dm_env.py:71:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/dm_env.py:76:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/dm_env.py:76:4: R1711: Useless return at end of function or method (useless-return)
helx/environment/dm_env.py:81:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/dm_env.py:81:21: W0613: Unused argument 'mode' (unused-argument)
helx/environment/dm_env.py:86:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/dm_env.py:35:11: E0203: Access to member '_action_space' before its definition line 39 (access-member-before-definition)
helx/environment/dm_env.py:36:19: E0203: Access to member '_action_space' before its definition line 39 (access-member-before-definition)
helx/environment/dm_env.py:43:11: E0203: Access to member '_observation_space' before its definition line 47 (access-member-before-definition)
helx/environment/dm_env.py:44:19: E0203: Access to member '_observation_space' before its definition line 47 (access-member-before-definition)
helx/environment/dm_env.py:51:11: E0203: Access to member '_reward_space' before its definition line 55 (access-member-before-definition)
helx/environment/dm_env.py:52:19: E0203: Access to member '_reward_space' before its definition line 55 (access-member-before-definition)
helx/environment/dm_env.py:39:8: W0201: Attribute '_action_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/dm_env.py:47:8: W0201: Attribute '_observation_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/dm_env.py:55:8: W0201: Attribute '_reward_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/dm_env.py:68:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/dm_env.py:73:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/dm_env.py:77:8: W0201: Attribute '_seed' defined outside __init__ (attribute-defined-outside-init)
helx/environment/dm_env.py:78:8: W0201: Attribute '_key' defined outside __init__ (attribute-defined-outside-init)
************* Module helx.environment.gym
helx/environment/gym.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/gym.py:59:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:66:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:73:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:82:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:90:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:100:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:106:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:111:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:115:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:118:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:60:11: E0203: Access to member '_action_space' before its definition line 63 (access-member-before-definition)
helx/environment/gym.py:61:19: E0203: Access to member '_action_space' before its definition line 63 (access-member-before-definition)
helx/environment/gym.py:67:11: E0203: Access to member '_observation_space' before its definition line 70 (access-member-before-definition)
helx/environment/gym.py:68:19: E0203: Access to member '_observation_space' before its definition line 70 (access-member-before-definition)
helx/environment/gym.py:74:11: E0203: Access to member '_reward_space' before its definition line 79 (access-member-before-definition)
helx/environment/gym.py:75:19: E0203: Access to member '_reward_space' before its definition line 79 (access-member-before-definition)
helx/environment/gym.py:63:8: W0201: Attribute '_action_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym.py:70:8: W0201: Attribute '_observation_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym.py:79:8: W0201: Attribute '_reward_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym.py:97:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym.py:103:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym.py:108:8: W0201: Attribute '_seed' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym.py:109:8: W0201: Attribute '_key' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym.py:122:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym.py:32:0: C0412: Imports from package gym are not grouped (ungrouped-imports)
helx/environment/gym.py:18:0: W0611: Unused import re (unused-import)
helx/environment/gym.py:19:0: W0611: Unused defaultdict imported from collections (unused-import)
helx/environment/gym.py:29:0: W0611: Unused parse_env_id imported from gym.envs.registration (unused-import)
************* Module helx.environment.gym3
helx/environment/gym3.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/gym3.py:39:4: W0246: Useless parent or super() delegation in method '__init__' (useless-parent-delegation)
helx/environment/gym3.py:42:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:49:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:56:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:65:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:73:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:73:20: W0613: Unused argument 'seed' (unused-argument)
helx/environment/gym3.py:80:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:87:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:90:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:93:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:96:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gym3.py:43:11: E0203: Access to member '_action_space' before its definition line 46 (access-member-before-definition)
helx/environment/gym3.py:44:19: E0203: Access to member '_action_space' before its definition line 46 (access-member-before-definition)
helx/environment/gym3.py:50:11: E0203: Access to member '_observation_space' before its definition line 53 (access-member-before-definition)
helx/environment/gym3.py:51:19: E0203: Access to member '_observation_space' before its definition line 53 (access-member-before-definition)
helx/environment/gym3.py:57:11: E0203: Access to member '_reward_space' before its definition line 62 (access-member-before-definition)
helx/environment/gym3.py:58:19: E0203: Access to member '_reward_space' before its definition line 62 (access-member-before-definition)
helx/environment/gym3.py:46:8: W0201: Attribute '_action_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym3.py:53:8: W0201: Attribute '_observation_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym3.py:62:8: W0201: Attribute '_reward_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym3.py:77:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym3.py:84:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gym3.py:18:0: W0611: Unused cast imported from typing (unused-import)
************* Module helx.environment.gymnasium
helx/environment/gymnasium.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/gymnasium.py:36:4: W0246: Useless parent or super() delegation in method '__init__' (useless-parent-delegation)
helx/environment/gymnasium.py:39:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:46:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:55:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:64:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:72:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:73:13: W0612: Unused variable 'info' (unused-variable)
helx/environment/gymnasium.py:77:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:83:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:88:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:92:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:95:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/gymnasium.py:40:11: E0203: Access to member '_action_space' before its definition line 43 (access-member-before-definition)
helx/environment/gymnasium.py:41:19: E0203: Access to member '_action_space' before its definition line 43 (access-member-before-definition)
helx/environment/gymnasium.py:47:11: E0203: Access to member '_observation_space' before its definition line 50 (access-member-before-definition)
helx/environment/gymnasium.py:48:19: E0203: Access to member '_observation_space' before its definition line 50 (access-member-before-definition)
helx/environment/gymnasium.py:56:11: E0203: Access to member '_reward_space' before its definition line 61 (access-member-before-definition)
helx/environment/gymnasium.py:57:19: E0203: Access to member '_reward_space' before its definition line 61 (access-member-before-definition)
helx/environment/gymnasium.py:43:8: W0201: Attribute '_action_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gymnasium.py:50:8: W0201: Attribute '_observation_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gymnasium.py:61:8: W0201: Attribute '_reward_space' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gymnasium.py:74:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gymnasium.py:80:8: W0201: Attribute '_current_observation' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gymnasium.py:85:8: W0201: Attribute '_seed' defined outside __init__ (attribute-defined-outside-init)
helx/environment/gymnasium.py:86:8: W0201: Attribute '_key' defined outside __init__ (attribute-defined-outside-init)
************* Module helx.environment.gymnax
helx/environment/gymnax.py:25:9: W0511: TODO (epignatelli): Implement this (fixme)
helx/environment/gymnax.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/gymnax.py:24:4: W0231: __init__ method from base class 'Environment' is not called (super-init-not-called)
************* Module helx.environment.interop
helx/environment/interop.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/interop.py:31:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/environment/interop.py:42:4: R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
************* Module helx.environment.ivy_gym
helx/environment/ivy_gym.py:25:9: W0511: TODO (epignatelli): Implement this (fixme)
helx/environment/ivy_gym.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/environment/ivy_gym.py:24:4: W0231: __init__ method from base class 'Environment' is not called (super-init-not-called)
************* Module helx.experiment
helx/experiment.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/experiment.py:30:4: W0622: Redefining built-in 'eval' (redefined-builtin)
helx/experiment.py:51:4: C0103: Variable name "t" doesn't conform to snake_case naming style (invalid-name)
helx/experiment.py:55:8: C0103: Variable name "t" doesn't conform to snake_case naming style (invalid-name)
helx/experiment.py:62:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/experiment.py:62:0: R0913: Too many arguments (9/5) (too-many-arguments)
helx/experiment.py:62:0: R0914: Too many local variables (20/15) (too-many-locals)
helx/experiment.py:76:15: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/experiment.py:80:14: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/experiment.py:88:8: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
helx/experiment.py:88:8: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/experiment.py:93:8: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
helx/experiment.py:93:8: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/experiment.py:98:8: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
helx/experiment.py:98:8: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/experiment.py:112:16: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
helx/experiment.py:112:16: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/experiment.py:126:25: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
helx/experiment.py:126:25: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/experiment.py:136:16: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
helx/experiment.py:136:16: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
************* Module helx.flags
helx/flags.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/flags.py:26:0: C0115: Missing class docstring (missing-class-docstring)
helx/flags.py:27:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/flags.py:26:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/flags.py:68:0: C0115: Missing class docstring (missing-class-docstring)
helx/flags.py:69:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/flags.py:68:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/flags.py:116:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/flags.py:117:4: R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
helx/flags.py:132:25: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/flags.py:116:0: R0911: Too many return statements (7/6) (too-many-return-statements)
helx/flags.py:135:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/flags.py:144:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/flags.py:144:0: R1711: Useless return at end of function or method (useless-return)
helx/flags.py:171:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/flags.py:172:48: W0621: Redefining name 'flags' from outer scope (line 20) (redefined-outer-name)
helx/flags.py:182:29: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
************* Module helx.image
helx/image.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/image.py:23:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/image.py:31:8: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/image.py:66:12: W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
helx/image.py:66:12: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
************* Module helx.interop
helx/interop.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/interop.py:46:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/interop.py:50:0: C0115: Missing class docstring (missing-class-docstring)
helx/interop.py:53:12: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/interop.py:58:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/interop.py:68:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/interop.py:68:0: E0102: function already defined line 58 (function-redefined)
helx/interop.py:73:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/interop.py:73:0: E0102: function already defined line 58 (function-redefined)
helx/interop.py:77:8: W0707: Consider explicitly re-raising using 'except Exception as exc' and 'raise UnsupportedConversion(space) from exc' (raise-missing-from)
helx/interop.py:20:0: W0611: Unused convert_to_terminated_truncated_step_api imported from gym.utils.step_api_compatibility as gym_convert_to_terminated_truncated_step_api (unused-import)
helx/interop.py:20:0: W0611: Unused TerminatedTruncatedStepType imported from gym.utils.step_api_compatibility as GymTimestep (unused-import)
helx/interop.py:31:0: W0611: Unused StepType imported from mdp (unused-import)
helx/interop.py:31:0: W0611: Unused Timestep imported from mdp (unused-import)
helx/interop.py:32:0: W0611: Unused Space imported from spaces (unused-import)
************* Module helx.logging
helx/logging.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/logging.py:39:0: C0103: Constant name "_logger" doesn't conform to UPPER_CASE naming style (invalid-name)
helx/logging.py:42:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/logging.py:43:4: W0603: Using the global statement (global-statement)
helx/logging.py:51:4: C0103: Variable name "ch" doesn't conform to snake_case naming style (invalid-name)
helx/logging.py:63:0: C0115: Missing class docstring (missing-class-docstring)
helx/logging.py:77:4: E0102: method already defined line 64 (function-redefined)
helx/logging.py:94:8: R1725: Consider using Python 3 style super() without arguments (super-with-arguments)
helx/logging.py:101:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/logging.py:101:4: C0103: Method name "setLevelColor" doesn't conform to snake_case naming style (invalid-name)
helx/logging.py:105:0: C0115: Missing class docstring (missing-class-docstring)
helx/logging.py:114:8: R1725: Consider using Python 3 style super() without arguments (super-with-arguments)
helx/logging.py:117:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/logging.py:119:26: E1102: isatty is not callable (not-callable)
helx/logging.py:134:8: W0702: No exception type(s) specified (bare-except)
helx/logging.py:137:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/logging.py:137:4: C0103: Method name "setLevelColor" doesn't conform to snake_case naming style (invalid-name)
************* Module helx.mdp
helx/mdp.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/mdp.py:37:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:41:0: C0115: Missing class docstring (missing-class-docstring)
helx/mdp.py:54:0: C0115: Missing class docstring (missing-class-docstring)
helx/mdp.py:62:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:65:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:68:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:72:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:85:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:98:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:130:14: C0103: Argument name "s" doesn't conform to snake_case naming style (invalid-name)
helx/mdp.py:130:30: C0103: Argument name "a" doesn't conform to snake_case naming style (invalid-name)
helx/mdp.py:130:46: C0103: Argument name "r" doesn't conform to snake_case naming style (invalid-name)
helx/mdp.py:130:62: C0103: Argument name "d" doesn't conform to snake_case naming style (invalid-name)
helx/mdp.py:138:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:138:4: C0103: Attribute name "s" doesn't conform to snake_case naming style (invalid-name)
helx/mdp.py:142:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:142:4: C0103: Attribute name "a" doesn't conform to snake_case naming style (invalid-name)
helx/mdp.py:146:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:146:4: C0103: Attribute name "r" doesn't conform to snake_case naming style (invalid-name)
helx/mdp.py:150:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:150:4: C0103: Attribute name "d" doesn't conform to snake_case naming style (invalid-name)
helx/mdp.py:154:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:158:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:162:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:166:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:170:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:187:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:193:8: W0613: Unused argument 'aux' (unused-argument)
helx/mdp.py:200:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:203:4: R1711: Useless return at end of function or method (useless-return)
helx/mdp.py:236:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/mdp.py:19:0: W0611: Unused partial imported from functools (unused-import)
************* Module helx.networks.actors
helx/networks/actors.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/networks/actors.py:35:0: C0115: Missing class docstring (missing-class-docstring)
helx/networks/actors.py:35:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/networks/actors.py:46:0: C0115: Missing class docstring (missing-class-docstring)
helx/networks/actors.py:54:8: W0622: Redefining built-in 'eval' (redefined-builtin)
helx/networks/actors.py:55:8: C0103: Variable name "x" doesn't conform to snake_case naming style (invalid-name)
helx/networks/actors.py:46:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/networks/actors.py:75:0: C0115: Missing class docstring (missing-class-docstring)
helx/networks/actors.py:83:8: C0103: Variable name "mu" doesn't conform to snake_case naming style (invalid-name)
helx/networks/actors.py:75:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/networks/actors.py:102:0: C0115: Missing class docstring (missing-class-docstring)
helx/networks/actors.py:102:0: R0903: Too few public methods (1/2) (too-few-public-methods)
************* Module helx.networks.architectures
helx/networks/architectures.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/networks/architectures.py:130:0: W0613: Unused argument 'args' (unused-argument)
helx/networks/architectures.py:130:0: W0613: Unused argument 'kwargs' (unused-argument)
helx/networks/architectures.py:177:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/networks/architectures.py:194:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/networks/architectures.py:213:4: C0116: Missing function or method docstring (missing-function-docstring)
************* Module helx.networks.critics
helx/networks/critics.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/networks/critics.py:26:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/networks/critics.py:63:8: C0103: Variable name "q1" doesn't conform to snake_case naming style (invalid-name)
helx/networks/critics.py:64:8: C0103: Variable name "q2" doesn't conform to snake_case naming style (invalid-name)
helx/networks/critics.py:42:0: R0903: Too few public methods (1/2) (too-few-public-methods)
************* Module helx.networks.modules
helx/networks/modules.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/networks/modules.py:41:19: W0212: Access to a protected member _get_unbound_fn of a client class (protected-access)
helx/networks/modules.py:64:23: C0103: Argument name "x" doesn't conform to snake_case naming style (invalid-name)
helx/networks/modules.py:60:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/networks/modules.py:72:23: C0103: Argument name "x" doesn't conform to snake_case naming style (invalid-name)
helx/networks/modules.py:68:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/networks/modules.py:88:23: C0103: Argument name "x" doesn't conform to snake_case naming style (invalid-name)
helx/networks/modules.py:76:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/networks/modules.py:113:23: C0103: Argument name "x" doesn't conform to snake_case naming style (invalid-name)
helx/networks/modules.py:114:8: C0200: Consider using enumerate instead of iterating with range and len (consider-using-enumerate)
helx/networks/modules.py:94:0: R0903: Too few public methods (1/2) (too-few-public-methods)
helx/networks/modules.py:155:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/networks/modules.py:161:11: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/networks/modules.py:177:23: C0103: Argument name "x" doesn't conform to snake_case naming style (invalid-name)
helx/networks/modules.py:167:8: W0201: Attribute 'modules' defined outside __init__ (attribute-defined-outside-init)
helx/networks/modules.py:186:0: C0115: Missing class docstring (missing-class-docstring)
helx/networks/modules.py:186:0: R0903: Too few public methods (1/2) (too-few-public-methods)
************* Module helx.spaces
helx/spaces.py:1:0: C0114: Missing module docstring (missing-module-docstring)
helx/spaces.py:33:0: C0115: Missing class docstring (missing-class-docstring)
helx/spaces.py:35:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/spaces.py:34:4: W4905: Using deprecated decorator abc.abstractproperty() (deprecated-decorator)
helx/spaces.py:39:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/spaces.py:38:4: W4905: Using deprecated decorator abc.abstractproperty() (deprecated-decorator)
helx/spaces.py:43:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/spaces.py:42:4: W4905: Using deprecated decorator abc.abstractproperty() (deprecated-decorator)
helx/spaces.py:47:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/spaces.py:51:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/spaces.py:52:8: R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
helx/spaces.py:58:16: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/spaces.py:62:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/spaces.py:63:8: R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
helx/spaces.py:69:16: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/spaces.py:75:4: C0116: Missing function or method docstring (missing-function-docstring)
helx/spaces.py:76:8: R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
helx/spaces.py:82:16: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/spaces.py:86:0: C0115: Missing class docstring (missing-class-docstring)
helx/spaces.py:104:15: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/spaces.py:129:0: C0115: Missing class docstring (missing-class-docstring)
helx/spaces.py:143:12: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/spaces.py:162:15: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
helx/spaces.py:170:8: R1705: Unnecessary "elif" after "return", remove the leading "el" from "elif" (no-else-return)
helx/spaces.py:190:16: C0209: Formatting a regular string which could be a f-string (consider-using-f-string)
************* Module helx.stax
helx/stax.py:25:0: C0103: Function name "Rnn" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:56:0: C0115: Missing class docstring (missing-class-docstring)
helx/stax.py:61:0: C0103: Function name "LSTMCell" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:63:4: C0103: Argument name "W_init" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:73:8: C0103: Variable name "k1" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:73:12: C0103: Variable name "k2" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:82:8: C0103: Variable name "k1" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:82:12: C0103: Variable name "k2" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:82:16: C0103: Variable name "k3" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:83:8: C0103: Variable name "W" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:83:11: C0103: Variable name "b" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:92:8: C0103: Variable name "W" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:92:11: C0103: Variable name "b" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:93:8: C0103: Variable name "xh" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:95:11: C0103: Variable name "f" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:95:14: C0103: Variable name "o" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:95:17: C0103: Variable name "g" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:96:8: C0103: Variable name "c" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:97:8: C0103: Variable name "h" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:103:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/stax.py:103:0: C0103: Function name "LSTM" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:105:4: C0103: Argument name "W_init" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:121:0: C0103: Function name "GRUCell" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:123:4: C0103: Argument name "W_init" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:136:8: C0103: Variable name "k1" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:136:12: C0103: Variable name "k2" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:136:16: C0103: Variable name "k3" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:136:20: C0103: Variable name "k4" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:137:8: C0103: Variable name "W_i" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:138:8: C0103: Variable name "W_h" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:139:8: C0103: Variable name "b" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:143:4: R0914: Too many local variables (20/15) (too-many-locals)
helx/stax.py:145:8: C0103: Variable name "W_i" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:145:13: C0103: Variable name "W_h" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:145:18: C0103: Variable name "b" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:146:8: C0103: Variable name "W_hz" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:146:14: C0103: Variable name "W_ha" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:152:8: C0103: Variable name "z" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:152:11: C0103: Variable name "r" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:156:8: C0103: Variable name "a" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:157:8: C0103: Variable name "h" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:163:0: C0116: Missing function or method docstring (missing-function-docstring)
helx/stax.py:163:0: C0103: Function name "GRU" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:165:4: C0103: Argument name "W_init" doesn't conform to snake_case naming style (invalid-name)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.agents.sac:[156:207]
==helx.agents.sacd:[138:189]
        loss = actor_loss + critic_loss + temperature_loss
        aux = (actor_loss, critic_loss, temperature_loss, policy_entropy, alpha)
        return loss, aux

    def update(self, episode: Episode) -> Array:
        # update iteration
        self.iteration += 1
        wandb.log({"Iteration": self.iteration})

        # update memory
        transitions: List[Transition] = episode.transitions()
        self.memory.add_range(transitions)
        wandb.log({"Buffer size": len(self.memory)})

        # if replay buffer is smaller than the minimum size, there is nothing else to do
        if len(self.memory) < self.hparams.replay_start:
            return jnp.asarray([])

        # check update period
        if self.iteration % self.hparams.update_frequency != 0:
            return jnp.asarray([])

        episode_batch: Transition = self.memory.sample(self.hparams.batch_size)
        params, opt_state, loss, aux = self.sgd_step(
            self.params,
            episode_batch,
            self.opt_state,
            self._new_key(),
            self.params_target,
        )

        # update dqn state
        self.opt_state = opt_state
        self.params = params
        self.params_target = jax.tree_map(
            lambda theta, theta_: theta * self.hparams.tau
            + (1 - self.hparams.tau) * theta_,
            self.params,
            self.params_target,
        )

        aux = jax.tree_map(jnp.mean, aux)  # reduce aux
        actor_loss, critic_loss, temperature_loss, policy_entropy, alpha = aux
        wandb.log({"train/total_loss": loss.item()})
        wandb.log({"train/actor_loss": actor_loss.item()})
        wandb.log({"train/critic_loss": critic_loss.item()})
        wandb.log({"train/temperature_loss": temperature_loss.item()})
        wandb.log({"train/policy_entropy": policy_entropy.item()})
        wandb.log({"train/alpha": alpha.item()})
        wandb.log({"train/Return": jnp.sum(episode.r).item()})  # type: ignore
        return loss (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.environment.gym3:[39:75]
==helx.environment.gym:[56:90]
        super().__init__(env)

    def action_space(self) -> Space:
        if self._action_space is not None:
            return self._action_space

        self._action_space = Space.from_gym(self._env.action_space)
        return self._action_space

    def observation_space(self) -> Space:
        if self._observation_space is not None:
            return self._observation_space

        self._observation_space = Space.from_gym(self._env.observation_space)
        return self._observation_space

    def reward_space(self) -> Space:
        if self._reward_space is not None:
            return self._reward_space

        minimum = self._env.reward_range[0]
        maximum = self._env.reward_range[1]
        self._reward_space = Continuous((1,), (minimum,), (maximum,))
        return self._reward_space

    def state(self) -> Array:
        if self._current_observation is None:
            raise ValueError(
                "Environment not initialized. Run `reset` first, to set a"
                " starting state."
            )
        return self._current_observation

    def reset(self, seed: int | None = None) -> Timestep: (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.environment.gym:[70:90]
==helx.environment.gymnasium:[52:72]
        return self._observation_space

    def reward_space(self) -> Space:
        if self._reward_space is not None:
            return self._reward_space

        minimum = self._env.reward_range[0]
        maximum = self._env.reward_range[1]
        self._reward_space = Continuous((1,), (minimum,), (maximum,))
        return self._reward_space

    def state(self) -> Array:
        if self._current_observation is None:
            raise ValueError(
                "Environment not initialized. Run `reset` first, to set a"
                " starting state."
            )
        return self._current_observation

    def reset(self, seed: int | None = None) -> Timestep: (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.environment.bsuite:[33:60]
==helx.environment.dm_env:[31:58]
        super().__init__(env)

    def action_space(self) -> Space:
        if self._action_space is not None:
            return self._action_space

        # TODO (epignatelli): remove type ignore once dm_env is correctly typed.
        self._action_space = Space.from_dm_env(self._env.action_spec())  # type: ignore
        return self._action_space

    def observation_space(self) -> Space:
        if self._observation_space is not None:
            return self._observation_space

        # TODO (epignatelli): remove type ignore once dm_env is correctly typed.
        self._observation_space = Space.from_dm_env(self._env.observation_spec())  # type: ignore
        return self._observation_space

    def reward_space(self) -> Space:
        if self._reward_space is not None:
            return self._reward_space

        # TODO (epignatelli): remove type ignore once dm_env is correctly typed.
        self._reward_space = Space.from_dm_env(self._env.reward_spec())  # type: ignore
        return self._reward_space

    def state(self) -> Array: (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.agents.dqn:[110:128]
==helx.agents.sac:[162:179]
        self.iteration += 1
        wandb.log({"Iteration": self.iteration})

        # update memory
        transitions: List[Transition] = episode.transitions()
        self.memory.add_range(transitions)
        wandb.log({"Buffer size": len(self.memory)})

        # if replay buffer is smaller than the minimum size, there is nothing else to do
        if len(self.memory) < self.hparams.replay_start:
            return jnp.asarray([])

        # check update period
        if self.iteration % self.hparams.update_frequency != 0:
            return jnp.asarray([])

        episode_batch: Transition = self.memory.sample(self.hparams.batch_size) (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.environment.bsuite:[78:94]
==helx.environment.dm_env:[71:87]
        next_step = self._env.step(action.item())
        self._current_observation = jnp.asarray(next_step[0])
        return Timestep.from_dm_env(next_step)

    def seed(self, seed: int) -> None:
        self._seed = seed
        self._key = jax.random.PRNGKey(self._seed)
        return

    def render(self, mode: str = "human"):
        # TODO: Handle mode
        current_state = self.state()
        return current_state

    def close(self) -> None:
        return self._env.close() (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.environment.bsuite:[63:77]
==helx.environment.dm_env:[58:71]
        if self._current_observation is None:
            raise ValueError(
                "Environment not initialized. Run `reset` first to produce a"
                " starting state."
            )
        return self._current_observation

    def reset(self, seed: int | None = None) -> Timestep:
        next_step = self._env.reset()
        self._current_observation = jnp.asarray(next_step[0])
        return Timestep.from_dm_env(next_step)

    def step(self, action: Action) -> Timestep: (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.agents.sac:[103:112]
==helx.agents.sacd:[79:96]
                representation_net_a=deep_copy(critic_representation_net),
                representation_net_b=deep_copy(critic_representation_net),
            ),
            extra_net=Temperature(),
        )

        super().__init__(hparams, network, optimiser, seed)
        self.memory = ReplayBuffer(hparams.replay_memory_size)
        self.params_target: nn.FrozenDict = self.params.copy({}) (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.environment.gym:[107:122]
==helx.environment.gymnasium:[84:96]
        self._seed = seed
        self._key = jax.random.PRNGKey(seed)

    def render(self, mode: str = "human"):
        self._env.render_mode = mode
        return self._env.render()

    def close(self) -> None:
        return self._env.close()

    def name(self) -> str:
        return self._env.unwrapped.__class__.__name__

def list_envs(namespace: str) -> List[str]: (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.agents.dqn:[44:51]
==helx.agents.sac:[49:55]
    replay_start: int = 1000
    replay_memory_size: int = 1000
    update_frequency: int = 1
    target_network_update_frequency: int = 10000
    discount: float = 0.99
    n_steps: int = 1 (duplicate-code)
helx/stax.py:1:0: R0801: Similar lines in 2 files
==helx.environment.gym:[96:103]
==helx.environment.gymnasium:[73:80]
        self._current_observation = jnp.asarray(obs)
        return Timestep(obs, None, StepType.TRANSITION)

    def step(self, action: Action) -> Timestep:
        action_ = np.asarray(action)
        next_step = self._env.step(action_)
        self._current_observation = jnp.asarray(next_step[0]) (duplicate-code)

Report
======
1585 statements analysed.

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

+---------+-------+-----------+-----------+------------+---------+
|type     |number |old number |difference |%documented |%badname |
+=========+=======+===========+===========+============+=========+
|module   |29     |NC         |NC         |6.90        |0.00     |
+---------+-------+-----------+-----------+------------+---------+
|class    |44     |NC         |NC         |56.82       |0.00     |
+---------+-------+-----------+-----------+------------+---------+
|method   |177    |NC         |NC         |50.85       |1.13     |
+---------+-------+-----------+-----------+------------+---------+
|function |46     |NC         |NC         |52.17       |15.22    |
+---------+-------+-----------+-----------+------------+---------+

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

    helx 
      \-logging (helx.environment.gym,helx.environment.gymnasium)
      \-mdp (helx.agents.agent,helx.agents.dqn,helx.agents.random,helx.agents.sac,helx.agents.sacd,helx.environment.bsuite,helx.environment.distributed,helx.environment.dm_env,helx.environment.gym,helx.environment.gym3,helx.environment.gymnasium,helx.networks.actors,helx.networks.architectures)
      \-memory (helx.agents.dqn,helx.agents.sac,helx.agents.sacd)
      \-networks (helx.agents.agent,helx.agents.dqn,helx.agents.sac,helx.agents.sacd)
      | \-modules (helx.agents.dqn)
      \-random (helx.environment.distributed)
      \-spaces (helx.agents.agent,helx.agents.dqn,helx.agents.sac,helx.agents.sacd,helx.environment.bsuite,helx.environment.distributed,helx.environment.dm_env,helx.environment.gym,helx.environment.gym3,helx.environment.gymnasium)
    requests (helx.download)

3751 lines have been analyzed

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

+----------+-------+------+---------+-----------+
|type      |number |%     |previous |difference |
+==========+=======+======+=========+===========+
|code      |2220   |59.18 |NC       |NC         |
+----------+-------+------+---------+-----------+
|docstring |440    |11.73 |NC       |NC         |
+----------+-------+------+---------+-----------+
|comment   |488    |13.01 |NC       |NC         |
+----------+-------+------+---------+-----------+
|empty     |603    |16.08 |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 |270    |NC       |NC         |
+-----------+-------+---------+-----------+
|refactor   |51     |NC       |NC         |
+-----------+-------+---------+-----------+
|warning    |112    |NC       |NC         |
+-----------+-------+---------+-----------+
|error      |34     |NC       |NC         |
+-----------+-------+---------+-----------+

Messages
--------

+--------------------------------+------------+
|message id                      |occurrences |
+================================+============+
|missing-function-docstring      |109         |
+--------------------------------+------------+
|invalid-name                    |84          |
+--------------------------------+------------+
|attribute-defined-outside-init  |34          |
+--------------------------------+------------+
|access-member-before-definition |30          |
+--------------------------------+------------+
|missing-module-docstring        |27          |
+--------------------------------+------------+
|consider-using-f-string         |25          |
+--------------------------------+------------+
|missing-class-docstring         |19          |
+--------------------------------+------------+
|too-few-public-methods          |16          |
+--------------------------------+------------+
|fixme                           |11          |
+--------------------------------+------------+
|duplicate-code                  |11          |
+--------------------------------+------------+
|unused-import                   |10          |
+--------------------------------+------------+
|unused-argument                 |10          |
+--------------------------------+------------+
|arguments-differ                |9           |
+--------------------------------+------------+
|logging-format-interpolation    |8           |
+--------------------------------+------------+
|useless-return                  |6           |
+--------------------------------+------------+
|no-else-return                  |6           |
+--------------------------------+------------+
|super-init-not-called           |5           |
+--------------------------------+------------+
|useless-parent-delegation       |4           |
+--------------------------------+------------+
|too-many-locals                 |4           |
+--------------------------------+------------+
|redefined-builtin               |4           |
+--------------------------------+------------+
|logging-fstring-interpolation   |4           |
+--------------------------------+------------+
|too-many-arguments              |3           |
+--------------------------------+------------+
|line-too-long                   |3           |
+--------------------------------+------------+
|function-redefined              |3           |
+--------------------------------+------------+
|deprecated-decorator            |3           |
+--------------------------------+------------+
|super-with-arguments            |2           |
+--------------------------------+------------+
|protected-access                |2           |
+--------------------------------+------------+
|unused-variable                 |1           |
+--------------------------------+------------+
|unnecessary-lambda-assignment   |1           |
+--------------------------------+------------+
|ungrouped-imports               |1           |
+--------------------------------+------------+
|too-many-return-statements      |1           |
+--------------------------------+------------+
|too-many-instance-attributes    |1           |
+--------------------------------+------------+
|redefined-outer-name            |1           |
+--------------------------------+------------+
|redefined-argument-from-local   |1           |
+--------------------------------+------------+
|raise-missing-from              |1           |
+--------------------------------+------------+
|not-callable                    |1           |
+--------------------------------+------------+
|missing-timeout                 |1           |
+--------------------------------+------------+
|global-statement                |1           |
+--------------------------------+------------+
|consider-using-enumerate        |1           |
+--------------------------------+------------+
|broad-exception-caught          |1           |
+--------------------------------+------------+
|bare-except                     |1           |
+--------------------------------+------------+
|arguments-renamed               |1           |
+--------------------------------+------------+

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