Skip to content

Style#299

Open
JacopoPan wants to merge 3 commits into
mainfrom
fix/style
Open

Style#299
JacopoPan wants to merge 3 commits into
mainfrom
fix/style

Conversation

@JacopoPan

Copy link
Copy Markdown
Member

ruff check .

F401 [*] `os` imported but unused
 --> gym_pybullet_drones/control/CTBRControl.py:1:8
  |
1 | import os
  |        ^^
2 | import numpy as np
3 | import xml.etree.ElementTree as etxml
  |
help: Remove unused import: `os`

F401 [*] `socket` imported but unused
 --> gym_pybullet_drones/control/CTBRControl.py:5:8
  |
3 | import xml.etree.ElementTree as etxml
4 | import pkg_resources
5 | import socket 
  |        ^^^^^^
6 | import struct
  |
help: Remove unused import: `socket`

F401 [*] `struct` imported but unused
 --> gym_pybullet_drones/control/CTBRControl.py:6:8
  |
4 | import pkg_resources
5 | import socket 
6 | import struct
  |        ^^^^^^
7 |
8 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
  |
help: Remove unused import: `struct`

E741 Ambiguous variable name: `l`
  --> gym_pybullet_drones/control/MRAC.py:65:9
   |
63 |         Iyy = self.Iyy
64 |         Izz = self.Izz
65 |         l = self.l
   |         ^
66 |         Ka = self.Ka
67 |         Km = self.Km
   |

F841 Local variable `l` is assigned to but never used
  --> gym_pybullet_drones/control/MRAC.py:65:9
   |
63 |         Iyy = self.Iyy
64 |         Izz = self.Izz
65 |         l = self.l
   |         ^
66 |         Ka = self.Ka
67 |         Km = self.Km
   |
help: Remove assignment to unused variable `l`

F841 Local variable `Ka` is assigned to but never used
  --> gym_pybullet_drones/control/MRAC.py:66:9
   |
64 |         Izz = self.Izz
65 |         l = self.l
66 |         Ka = self.Ka
   |         ^^
67 |         Km = self.Km
   |
help: Remove assignment to unused variable `Ka`

F841 Local variable `Km` is assigned to but never used
  --> gym_pybullet_drones/control/MRAC.py:67:9
   |
65 |         l = self.l
66 |         Ka = self.Ka
67 |         Km = self.Km
   |         ^^
68 |
69 |         a_sub = np.array([[0, 0, 0, g*np.sin(psi), g*np.cos(psi), 0],
   |
help: Remove assignment to unused variable `Km`

F401 [*] `sys.platform` imported but unused
 --> gym_pybullet_drones/envs/BaseAviary.py:2:17
  |
1 | import os
2 | from sys import platform
  |                 ^^^^^^^^
3 | import time
4 | import collections
  |
help: Remove unused import: `sys.platform`

F401 [*] `collections` imported but unused
 --> gym_pybullet_drones/envs/BaseAviary.py:4:8
  |
2 | from sys import platform
3 | import time
4 | import collections
  |        ^^^^^^^^^^^
5 | from datetime import datetime
6 | import xml.etree.ElementTree as etxml
  |
help: Remove unused import: `collections`

E712 Avoid equality comparisons to `False`; use `not self.USE_GUI_RPM:` for false checks
   --> gym_pybullet_drones/envs/BaseAviary.py:323:44
    |
321 |             if current_input_switch > self.last_input_switch:
322 |                 self.last_input_switch = current_input_switch
323 |                 self.USE_GUI_RPM = True if self.USE_GUI_RPM == False else False
    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^
324 |         if self.USE_GUI_RPM:
325 |             for i in range(4):
    |
help: Replace with `not self.USE_GUI_RPM`

F841 Local variable `p` is assigned to but never used
   --> gym_pybullet_drones/envs/BetaAviary.py:120:13
    |
118 |             #### State message to Betaflight ###########################
119 |             o = obs[j,:] # p, q, euler, v, w, rpm (all in world frame)
120 |             p = o[:3]
    |             ^
121 |             q = np.array([o[6], o[3], o[4], o[5]]) # w, x, y, z
122 |             v = o[10:13]
    |
help: Remove assignment to unused variable `p`

F841 Local variable `v` is assigned to but never used
   --> gym_pybullet_drones/envs/BetaAviary.py:122:13
    |
120 |             p = o[:3]
121 |             q = np.array([o[6], o[3], o[4], o[5]]) # w, x, y, z
122 |             v = o[10:13]
    |             ^
123 |             w = o[13:16] # world frame
124 |             w_body = rotate_vector(w, qconjugate(q)) # local frame
    |
help: Remove assignment to unused variable `v`

F841 [*] Local variable `msg` is assigned to but never used
   --> gym_pybullet_drones/envs/BetaAviary.py:164:36
    |
162 |             try:
163 |                 data, addr = self.sock_pwm[j].recvfrom(16) # buffer size is 100 bytes (servo_packet size 16)
164 |             except socket.error as msg:
    |                                    ^^^
165 |                 _action = self.beta_action[j,:]
166 |                 pass
    |
help: Remove assignment to unused variable `msg`

F401 [*] `socket` imported but unused
 --> gym_pybullet_drones/envs/CFAviary.py:3:8
  |
1 | import numpy as np
2 | from gymnasium import spaces
3 | import socket
  |        ^^^^^^
4 | import math 
  |
help: Remove unused import: `socket`

F401 `gym_pybullet_drones.envs.BetaAviary.BetaAviary` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
 --> gym_pybullet_drones/envs/__init__.py:1:49
  |
1 | from gym_pybullet_drones.envs.BetaAviary import BetaAviary
  |                                                 ^^^^^^^^^^
2 | from gym_pybullet_drones.envs.CtrlAviary import CtrlAviary
3 | from gym_pybullet_drones.envs.HoverAviary import HoverAviary
  |
help: Use an explicit re-export: `BetaAviary as BetaAviary`

F401 `gym_pybullet_drones.envs.CtrlAviary.CtrlAviary` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
 --> gym_pybullet_drones/envs/__init__.py:2:49
  |
1 | from gym_pybullet_drones.envs.BetaAviary import BetaAviary
2 | from gym_pybullet_drones.envs.CtrlAviary import CtrlAviary
  |                                                 ^^^^^^^^^^
3 | from gym_pybullet_drones.envs.HoverAviary import HoverAviary
4 | from gym_pybullet_drones.envs.MultiHoverAviary import MultiHoverAviary
  |
help: Use an explicit re-export: `CtrlAviary as CtrlAviary`

F401 `gym_pybullet_drones.envs.HoverAviary.HoverAviary` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
 --> gym_pybullet_drones/envs/__init__.py:3:50
  |
1 | from gym_pybullet_drones.envs.BetaAviary import BetaAviary
2 | from gym_pybullet_drones.envs.CtrlAviary import CtrlAviary
3 | from gym_pybullet_drones.envs.HoverAviary import HoverAviary
  |                                                  ^^^^^^^^^^^
4 | from gym_pybullet_drones.envs.MultiHoverAviary import MultiHoverAviary
5 | from gym_pybullet_drones.envs.VelocityAviary import VelocityAviary
  |
help: Use an explicit re-export: `HoverAviary as HoverAviary`

F401 `gym_pybullet_drones.envs.MultiHoverAviary.MultiHoverAviary` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
 --> gym_pybullet_drones/envs/__init__.py:4:55
  |
2 | from gym_pybullet_drones.envs.CtrlAviary import CtrlAviary
3 | from gym_pybullet_drones.envs.HoverAviary import HoverAviary
4 | from gym_pybullet_drones.envs.MultiHoverAviary import MultiHoverAviary
  |                                                       ^^^^^^^^^^^^^^^^
5 | from gym_pybullet_drones.envs.VelocityAviary import VelocityAviary
  |
help: Use an explicit re-export: `MultiHoverAviary as MultiHoverAviary`

F401 `gym_pybullet_drones.envs.VelocityAviary.VelocityAviary` imported but unused; consider removing, adding to `__all__`, or using a redundant alias
 --> gym_pybullet_drones/envs/__init__.py:5:53
  |
3 | from gym_pybullet_drones.envs.HoverAviary import HoverAviary
4 | from gym_pybullet_drones.envs.MultiHoverAviary import MultiHoverAviary
5 | from gym_pybullet_drones.envs.VelocityAviary import VelocityAviary
  |                                                     ^^^^^^^^^^^^^^
  |
help: Use an explicit re-export: `VelocityAviary as VelocityAviary`

F401 [*] `transforms3d.quaternions.rotate_vector` imported but unused
  --> gym_pybullet_drones/examples/beta.py:33:38
   |
31 | import csv
32 |
33 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
   |                                      ^^^^^^^^^^^^^
34 | from transforms3d.utils import normalized_vector
   |
help: Remove unused import

F401 [*] `transforms3d.quaternions.qconjugate` imported but unused
  --> gym_pybullet_drones/examples/beta.py:33:53
   |
31 | import csv
32 |
33 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
   |                                                     ^^^^^^^^^^
34 | from transforms3d.utils import normalized_vector
   |
help: Remove unused import

F401 [*] `transforms3d.quaternions.mat2quat` imported but unused
  --> gym_pybullet_drones/examples/beta.py:33:65
   |
31 | import csv
32 |
33 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
   |                                                                 ^^^^^^^^
34 | from transforms3d.utils import normalized_vector
   |
help: Remove unused import

F401 [*] `transforms3d.quaternions.qmult` imported but unused
  --> gym_pybullet_drones/examples/beta.py:33:75
   |
31 | import csv
32 |
33 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
   |                                                                           ^^^^^
34 | from transforms3d.utils import normalized_vector
   |
help: Remove unused import

F401 [*] `transforms3d.utils.normalized_vector` imported but unused
  --> gym_pybullet_drones/examples/beta.py:34:32
   |
33 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
34 | from transforms3d.utils import normalized_vector
   |                                ^^^^^^^^^^^^^^^^^
35 |
36 | from gym_pybullet_drones.utils.enums import DroneModel, Physics
   |
help: Remove unused import: `transforms3d.utils.normalized_vector`

F841 Local variable `PYB_CLIENT` is assigned to but never used
  --> gym_pybullet_drones/examples/beta.py:82:5
   |
81 |     #### Obtain the PyBullet Client ID from the environment ####
82 |     PYB_CLIENT = env.getPyBulletClient()
   |     ^^^^^^^^^^
83 |
84 |     #### Initialize the logger #################################
   |
help: Remove assignment to unused variable `PYB_CLIENT`

F841 Local variable `ARM_TIME` is assigned to but never used
   --> gym_pybullet_drones/examples/beta.py:120:5
    |
118 |         } for row in csv_reader]))
119 |     action = np.zeros((num_drones,4))
120 |     ARM_TIME = 1.
    |     ^^^^^^^^
121 |     TRAJ_TIME = 1.5
122 |     START = time.time()
    |
help: Remove assignment to unused variable `ARM_TIME`

F841 Local variable `TRAJ_TIME` is assigned to but never used
   --> gym_pybullet_drones/examples/beta.py:121:5
    |
119 |     action = np.zeros((num_drones,4))
120 |     ARM_TIME = 1.
121 |     TRAJ_TIME = 1.5
    |     ^^^^^^^^^
122 |     START = time.time()
123 |     for i in range(0, int(duration_sec*env.CTRL_FREQ)):
    |
help: Remove assignment to unused variable `TRAJ_TIME`

E722 Do not use bare `except`
   --> gym_pybullet_drones/examples/beta.py:137:17
    |
135 |                                                     target_vel=target["vel"]
136 |                                                     )
137 |                 except:
    |                 ^^^^^^
138 |                     break
    |

F401 [*] `csv` imported but unused
  --> gym_pybullet_drones/examples/cf.py:17:8
   |
15 | import argparse
16 | import numpy as np
17 | import csv
   |        ^^^
18 |
19 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
   |
help: Remove unused import: `csv`

F401 [*] `transforms3d.quaternions.rotate_vector` imported but unused
  --> gym_pybullet_drones/examples/cf.py:19:38
   |
17 | import csv
18 |
19 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
   |                                      ^^^^^^^^^^^^^
20 | from transforms3d.utils import normalized_vector
   |
help: Remove unused import

F401 [*] `transforms3d.quaternions.qconjugate` imported but unused
  --> gym_pybullet_drones/examples/cf.py:19:53
   |
17 | import csv
18 |
19 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
   |                                                     ^^^^^^^^^^
20 | from transforms3d.utils import normalized_vector
   |
help: Remove unused import

F401 [*] `transforms3d.quaternions.mat2quat` imported but unused
  --> gym_pybullet_drones/examples/cf.py:19:65
   |
17 | import csv
18 |
19 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
   |                                                                 ^^^^^^^^
20 | from transforms3d.utils import normalized_vector
   |
help: Remove unused import

F401 [*] `transforms3d.quaternions.qmult` imported but unused
  --> gym_pybullet_drones/examples/cf.py:19:75
   |
17 | import csv
18 |
19 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
   |                                                                           ^^^^^
20 | from transforms3d.utils import normalized_vector
   |
help: Remove unused import

F401 [*] `transforms3d.utils.normalized_vector` imported but unused
  --> gym_pybullet_drones/examples/cf.py:20:32
   |
19 | from transforms3d.quaternions import rotate_vector, qconjugate, mat2quat, qmult
20 | from transforms3d.utils import normalized_vector
   |                                ^^^^^^^^^^^^^^^^^
21 |
22 | from gym_pybullet_drones.utils.enums import DroneModel, Physics
   |
help: Remove unused import: `transforms3d.utils.normalized_vector`

F401 [*] `gym_pybullet_drones.control.CTBRControl.CTBRControl` imported but unused
  --> gym_pybullet_drones/examples/cf.py:24:53
   |
22 | from gym_pybullet_drones.utils.enums import DroneModel, Physics
23 | from gym_pybullet_drones.envs.CFAviary import CFAviary
24 | from gym_pybullet_drones.control.CTBRControl import CTBRControl
   |                                                     ^^^^^^^^^^^
25 | from gym_pybullet_drones.utils.Logger import Logger
26 | from gym_pybullet_drones.utils.utils import sync, str2bool
   |
help: Remove unused import: `gym_pybullet_drones.control.CTBRControl.CTBRControl`

F841 Local variable `PYB_CLIENT` is assigned to but never used
  --> gym_pybullet_drones/examples/cf.py:65:5
   |
64 |     #### Obtain the PyBullet Client ID from the environment ####
65 |     PYB_CLIENT = env.getPyBulletClient()
   |     ^^^^^^^^^^
66 |
67 |     #### Initialize the logger #################################
   |
help: Remove assignment to unused variable `PYB_CLIENT`

E722 Do not use bare `except`
  --> gym_pybullet_drones/examples/cf.py:98:13
   |
96 |                 rpy_rate = np.zeros(3)
97 |                 env.sendFullStateCmd(pos, vel, acc, yaw, rpy_rate, t)
98 |             except:
   |             ^^^^^^
99 |                 break
   |

F401 [*] `pybullet_data` imported but unused
 --> gym_pybullet_drones/examples/debug.py:4:8
  |
2 | import numpy as np
3 | import pybullet as p
4 | import pybullet_data
  |        ^^^^^^^^^^^^^
5 |
6 | DURATION_SEC = 5
  |
help: Remove unused import: `pybullet_data`

E702 Multiple statements on one line (semicolon)
  --> gym_pybullet_drones/examples/debug.py:8:12
   |
 6 | DURATION_SEC = 5
 7 |
 8 | X_AX_1 = -1; Y_AX_1 = -1; Z_AX_1 = -1;
   |            ^
 9 | X_AX_2 = -1; Y_AX_2 = -1; Z_AX_2 = -1; 
10 | TEXT = -1
   |

E702 Multiple statements on one line (semicolon)
  --> gym_pybullet_drones/examples/debug.py:8:25
   |
 6 | DURATION_SEC = 5
 7 |
 8 | X_AX_1 = -1; Y_AX_1 = -1; Z_AX_1 = -1;
   |                         ^
 9 | X_AX_2 = -1; Y_AX_2 = -1; Z_AX_2 = -1; 
10 | TEXT = -1
   |

E703 [*] Statement ends with an unnecessary semicolon
  --> gym_pybullet_drones/examples/debug.py:8:38
   |
 6 | DURATION_SEC = 5
 7 |
 8 | X_AX_1 = -1; Y_AX_1 = -1; Z_AX_1 = -1;
   |                                      ^
 9 | X_AX_2 = -1; Y_AX_2 = -1; Z_AX_2 = -1; 
10 | TEXT = -1
   |
help: Remove unnecessary semicolon

E702 Multiple statements on one line (semicolon)
  --> gym_pybullet_drones/examples/debug.py:9:12
   |
 8 | X_AX_1 = -1; Y_AX_1 = -1; Z_AX_1 = -1;
 9 | X_AX_2 = -1; Y_AX_2 = -1; Z_AX_2 = -1; 
   |            ^
10 | TEXT = -1
   |

E702 Multiple statements on one line (semicolon)
  --> gym_pybullet_drones/examples/debug.py:9:25
   |
 8 | X_AX_1 = -1; Y_AX_1 = -1; Z_AX_1 = -1;
 9 | X_AX_2 = -1; Y_AX_2 = -1; Z_AX_2 = -1; 
   |                         ^
10 | TEXT = -1
   |

E703 [*] Statement ends with an unnecessary semicolon
  --> gym_pybullet_drones/examples/debug.py:9:38
   |
 8 | X_AX_1 = -1; Y_AX_1 = -1; Z_AX_1 = -1;
 9 | X_AX_2 = -1; Y_AX_2 = -1; Z_AX_2 = -1; 
   |                                      ^
10 | TEXT = -1
   |
help: Remove unnecessary semicolon

E702 Multiple statements on one line (semicolon)
  --> gym_pybullet_drones/examples/debug.py:15:41
   |
13 | if __name__ == "__main__":
14 |
15 |     PYB_CLIENT = p.connect(p.GUI, key=0); p.setRealTimeSimulation(0, physicsClientId=PYB_CLIENT); p.setTimeStep(1/240, physicsClientId…
   |                                         ^
16 |     p.resetDebugVisualizerCamera(cameraDistance=3, cameraYaw=-30, cameraPitch=-30, cameraTargetPosition=[0.0,0.0,0.0], physicsClientId…
17 |     p.setGravity(0, 0, 0, physicsClientId=PYB_CLIENT) # Make objects weightless
   |

E702 Multiple statements on one line (semicolon)
  --> gym_pybullet_drones/examples/debug.py:15:97
   |
13 | if __name__ == "__main__":
14 |
15 |     PYB_CLIENT = p.connect(p.GUI, key=0); p.setRealTimeSimulation(0, physicsClientId=PYB_CLIENT); p.setTimeStep(1/240, physicsClientId…
   |                                                                                                 ^
16 |     p.resetDebugVisualizerCamera(cameraDistance=3, cameraYaw=-30, cameraPitch=-30, cameraTargetPosition=[0.0,0.0,0.0], physicsClientId…
17 |     p.setGravity(0, 0, 0, physicsClientId=PYB_CLIENT) # Make objects weightless
   |

E701 Multiple statements on one line (colon)
   --> gym_pybullet_drones/examples/debug.py:100:27
    |
 98 |         p.stepSimulation(physicsClientId=PYB_CLIENT)
 99 |         elapsed = time.time()-START
100 |         if elapsed < i/240: time.sleep(i/240-elapsed)    
    |                           ^
101 |
102 |     # p.stopStateLogging(VIDEO, physicsClientId=PYB_CLIENT)
    |

F401 [*] `gymnasium` imported but unused
  --> gym_pybullet_drones/examples/learn.py:22:21
   |
20 | from datetime import datetime
21 | import argparse
22 | import gymnasium as gym
   |                     ^^^
23 | import numpy as np
24 | import matplotlib.pyplot as plt
   |
help: Remove unused import: `gymnasium`

F401 [*] `torch` imported but unused
  --> gym_pybullet_drones/examples/learn.py:25:8
   |
23 | import numpy as np
24 | import matplotlib.pyplot as plt
25 | import torch
   |        ^^^^^
26 | from stable_baselines3 import PPO
27 | from stable_baselines3.common.env_util import make_vec_env
   |
help: Remove unused import: `torch`

F401 [*] `pybullet` imported but unused
 --> gym_pybullet_drones/examples/mrac.py:4:20
  |
3 | import numpy as np
4 | import pybullet as p
  |                    ^
5 | import matplotlib.pyplot as plt
6 | import pybullet_data
  |
help: Remove unused import: `pybullet`

F401 [*] `matplotlib.pyplot` imported but unused
 --> gym_pybullet_drones/examples/mrac.py:5:29
  |
3 | import numpy as np
4 | import pybullet as p
5 | import matplotlib.pyplot as plt
  |                             ^^^
6 | import pybullet_data
  |
help: Remove unused import: `matplotlib.pyplot`

F401 [*] `pybullet_data` imported but unused
 --> gym_pybullet_drones/examples/mrac.py:6:8
  |
4 | import pybullet as p
5 | import matplotlib.pyplot as plt
6 | import pybullet_data
  |        ^^^^^^^^^^^^^
7 |
8 | from gym_pybullet_drones.utils.enums import DroneModel, Physics
  |
help: Remove unused import: `pybullet_data`

F401 [*] `gym_pybullet_drones.utils.utils.str2bool` imported but unused
  --> gym_pybullet_drones/examples/mrac.py:12:51
   |
10 | from gym_pybullet_drones.control.MRAC import MRAC
11 | from gym_pybullet_drones.utils.Logger import Logger
12 | from gym_pybullet_drones.utils.utils import sync, str2bool
   |                                                   ^^^^^^^^
13 |
14 | DEFAULT_DRONES = DroneModel("cf2x")
   |
help: Remove unused import: `gym_pybullet_drones.utils.utils.str2bool`

F841 Local variable `PYB_CLIENT` is assigned to but never used
  --> gym_pybullet_drones/examples/mrac.py:65:5
   |
64 |     #### Obtain the PyBullet Client ID from the environment ####
65 |     PYB_CLIENT = env.getPyBulletClient()
   |     ^^^^^^^^^^
66 |
67 |     #### Initialize the logger #################################
   |
help: Remove assignment to unused variable `PYB_CLIENT`

F401 [*] `os` imported but unused
  --> gym_pybullet_drones/examples/pid.py:18:8
   |
17 | """
18 | import os
   |        ^^
19 | import time
20 | import argparse
   |
help: Remove unused import: `os`

F401 [*] `datetime.datetime` imported but unused
  --> gym_pybullet_drones/examples/pid.py:21:22
   |
19 | import time
20 | import argparse
21 | from datetime import datetime
   |                      ^^^^^^^^
22 | import pdb
23 | import math
   |
help: Remove unused import: `datetime.datetime`

F401 [*] `pdb` imported but unused
  --> gym_pybullet_drones/examples/pid.py:22:8
   |
20 | import argparse
21 | from datetime import datetime
22 | import pdb
   |        ^^^
23 | import math
24 | import random
   |
help: Remove unused import: `pdb`

F401 [*] `math` imported but unused
  --> gym_pybullet_drones/examples/pid.py:23:8
   |
21 | from datetime import datetime
22 | import pdb
23 | import math
   |        ^^^^
24 | import random
25 | import numpy as np
   |
help: Remove unused import: `math`

F401 [*] `random` imported but unused
  --> gym_pybullet_drones/examples/pid.py:24:8
   |
22 | import pdb
23 | import math
24 | import random
   |        ^^^^^^
25 | import numpy as np
26 | import pybullet as p
   |
help: Remove unused import: `random`

F401 [*] `pybullet` imported but unused
  --> gym_pybullet_drones/examples/pid.py:26:20
   |
24 | import random
25 | import numpy as np
26 | import pybullet as p
   |                    ^
27 | import matplotlib.pyplot as plt
   |
help: Remove unused import: `pybullet`

F401 [*] `matplotlib.pyplot` imported but unused
  --> gym_pybullet_drones/examples/pid.py:27:29
   |
25 | import numpy as np
26 | import pybullet as p
27 | import matplotlib.pyplot as plt
   |                             ^^^
28 |
29 | from gym_pybullet_drones.utils.enums import DroneModel, Physics
   |
help: Remove unused import: `matplotlib.pyplot`

F841 Local variable `PYB_CLIENT` is assigned to but never used
   --> gym_pybullet_drones/examples/pid.py:116:5
    |
115 |     #### Obtain the PyBullet Client ID from the environment ####
116 |     PYB_CLIENT = env.getPyBulletClient()
    |     ^^^^^^^^^^
117 |
118 |     #### Initialize the logger #################################
    |
help: Remove assignment to unused variable `PYB_CLIENT`

F401 [*] `os` imported but unused
  --> gym_pybullet_drones/examples/pid_velocity.py:16:8
   |
15 | """
16 | import os
   |        ^^
17 | import time
18 | import argparse
   |
help: Remove unused import: `os`

F401 [*] `datetime.datetime` imported but unused
  --> gym_pybullet_drones/examples/pid_velocity.py:19:22
   |
17 | import time
18 | import argparse
19 | from datetime import datetime
   |                      ^^^^^^^^
20 | import pdb
21 | import math
   |
help: Remove unused import: `datetime.datetime`

F401 [*] `pdb` imported but unused
  --> gym_pybullet_drones/examples/pid_velocity.py:20:8
   |
18 | import argparse
19 | from datetime import datetime
20 | import pdb
   |        ^^^
21 | import math
22 | import random
   |
help: Remove unused import: `pdb`

F401 [*] `math` imported but unused
  --> gym_pybullet_drones/examples/pid_velocity.py:21:8
   |
19 | from datetime import datetime
20 | import pdb
21 | import math
   |        ^^^^
22 | import random
23 | import numpy as np
   |
help: Remove unused import: `math`

F401 [*] `random` imported but unused
  --> gym_pybullet_drones/examples/pid_velocity.py:22:8
   |
20 | import pdb
21 | import math
22 | import random
   |        ^^^^^^
23 | import numpy as np
24 | import pybullet as p
   |
help: Remove unused import: `random`

F401 [*] `pybullet` imported but unused
  --> gym_pybullet_drones/examples/pid_velocity.py:24:20
   |
22 | import random
23 | import numpy as np
24 | import pybullet as p
   |                    ^
25 | import matplotlib.pyplot as plt
   |
help: Remove unused import: `pybullet`

F401 [*] `matplotlib.pyplot` imported but unused
  --> gym_pybullet_drones/examples/pid_velocity.py:25:29
   |
23 | import numpy as np
24 | import pybullet as p
25 | import matplotlib.pyplot as plt
   |                             ^^^
26 |
27 | from gym_pybullet_drones.utils.enums import DroneModel, Physics
   |
help: Remove unused import: `matplotlib.pyplot`

F401 [*] `gym_pybullet_drones.envs.CtrlAviary.CtrlAviary` imported but unused
  --> gym_pybullet_drones/examples/pid_velocity.py:28:49
   |
27 | from gym_pybullet_drones.utils.enums import DroneModel, Physics
28 | from gym_pybullet_drones.envs.CtrlAviary import CtrlAviary
   |                                                 ^^^^^^^^^^
29 | from gym_pybullet_drones.control.DSLPIDControl import DSLPIDControl
30 | from gym_pybullet_drones.utils.Logger import Logger
   |
help: Remove unused import: `gym_pybullet_drones.envs.CtrlAviary.CtrlAviary`

F401 [*] `gym_pybullet_drones.control.DSLPIDControl.DSLPIDControl` imported but unused
  --> gym_pybullet_drones/examples/pid_velocity.py:29:55
   |
27 | from gym_pybullet_drones.utils.enums import DroneModel, Physics
28 | from gym_pybullet_drones.envs.CtrlAviary import CtrlAviary
29 | from gym_pybullet_drones.control.DSLPIDControl import DSLPIDControl
   |                                                       ^^^^^^^^^^^^^
30 | from gym_pybullet_drones.utils.Logger import Logger
31 | from gym_pybullet_drones.utils.utils import sync, str2bool
   |
help: Remove unused import: `gym_pybullet_drones.control.DSLPIDControl.DSLPIDControl`

F841 Local variable `PHY` is assigned to but never used
  --> gym_pybullet_drones/examples/pid_velocity.py:73:5
   |
71 |                           [0, 0, np.pi/2]
72 |                           ])
73 |     PHY = Physics.PYB
   |     ^^^
74 |
75 |     #### Create the environment ################################
   |
help: Remove assignment to unused variable `PHY`

F841 Local variable `PYB_CLIENT` is assigned to but never used
  --> gym_pybullet_drones/examples/pid_velocity.py:91:5
   |
90 |     #### Obtain the PyBullet Client ID from the environment ####
91 |     PYB_CLIENT = env.getPyBulletClient()
   |     ^^^^^^^^^^
92 |     DRONE_IDS = env.getDroneIds()
   |
help: Remove assignment to unused variable `PYB_CLIENT`

F841 Local variable `DRONE_IDS` is assigned to but never used
  --> gym_pybullet_drones/examples/pid_velocity.py:92:5
   |
90 |     #### Obtain the PyBullet Client ID from the environment ####
91 |     PYB_CLIENT = env.getPyBulletClient()
92 |     DRONE_IDS = env.getDroneIds()
   |     ^^^^^^^^^
93 |
94 |     #### Compute number of control steps in the simlation ######
   |
help: Remove assignment to unused variable `DRONE_IDS`

F401 [*] `gymnasium` imported but unused
 --> gym_pybullet_drones/examples/play.py:5:21
  |
3 | import argparse
4 | import numpy as np
5 | import gymnasium as gym
  |                     ^^^
6 | from stable_baselines3 import PPO
7 | from gym_pybullet_drones.envs.HoverAviary import HoverAviary
  |
help: Remove unused import: `gymnasium`

F401 [*] `numpy` imported but unused
 --> gym_pybullet_drones/utils/utils.py:5:17
  |
3 | import time
4 | import argparse
5 | import numpy as np
  |                 ^^
6 | from scipy.optimize import nnls
  |
help: Remove unused import: `numpy`

F401 [*] `scipy.optimize.nnls` imported but unused
 --> gym_pybullet_drones/utils/utils.py:6:28
  |
4 | import argparse
5 | import numpy as np
6 | from scipy.optimize import nnls
  |                            ^^^^
7 |
8 | ################################################################################
  |
help: Remove unused import: `scipy.optimize.nnls`

F401 [*] `gym_pybullet_drones.utils` imported but unused
 --> tests/test_build.py:6:12
  |
4 |     import gym_pybullet_drones.envs
5 |     import gym_pybullet_drones.examples
6 |     import gym_pybullet_drones.utils
  |            ^^^^^^^^^^^^^^^^^^^^^^^^^
  |
help: Remove unused import: `gym_pybullet_drones.utils`

Found 78 errors.
[*] 48 fixable with the `--fix` option (15 hidden fixes can be enabled with the `--unsafe-fixes` option).

pyright .

/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/BaseControl.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/BaseControl.py:34:24 - error: Operator "*" not supported for types "float" and "float | None"
    Operator "*" not supported for types "float" and "None" (reportOperatorIssue)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/CTBRControl.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/CTBRControl.py:40:24 - error: Operator "*" not supported for types "float" and "float | None"
    Operator "*" not supported for types "float" and "None" (reportOperatorIssue)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/DSLPIDControl.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/DSLPIDControl.py:198:45 - error: Operator "*" not supported for types "Literal[4]" and "float | None"
    Operator "*" not supported for types "Literal[4]" and "None" (reportOperatorIssue)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/DSLPIDControl.py:280:50 - error: Operator "*" not supported for "None" (reportOptionalOperand)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/MRAC.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/MRAC.py:26:18 - error: No overloads for "diag" match the provided arguments (reportCallIssue)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/MRAC.py:26:26 - error: Argument of type "list[float | None]" cannot be assigned to parameter "v" of type "ArrayLike" in function "diag"
    Type "list[float | None]" is not assignable to type "ArrayLike"
      "list[float | None]" is incompatible with protocol "_Buffer"
        "__buffer__" is not present
      "list[float | None]" is incompatible with protocol "_SupportsArray[dtype[Any]]"
        "__array__" is not present
      "list[float | None]" is incompatible with protocol "_NestedSequence[_SupportsArray[dtype[Any]]]"
        "__getitem__" is an incompatible type
          No overloaded function matches type "(index: int, /) -> (_T_co@_NestedSequence | _NestedSequence[_T_co@_NestedSequence])"
    ... (reportArgumentType)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/MRAC.py:76:28 - error: Operator "/" not supported for types "Literal[1]" and "float | None"
    Operator "/" not supported for types "Literal[1]" and "None" (reportOperatorIssue)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/MRAC.py:77:31 - error: Operator "/" not supported for types "Literal[1]" and "float | None"
    Operator "/" not supported for types "Literal[1]" and "None" (reportOperatorIssue)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/MRAC.py:78:34 - error: Operator "/" not supported for types "Literal[1]" and "float | None"
    Operator "/" not supported for types "Literal[1]" and "None" (reportOperatorIssue)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/MRAC.py:79:37 - error: Operator "/" not supported for types "Literal[1]" and "float | None"
    Operator "/" not supported for types "Literal[1]" and "None" (reportOperatorIssue)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/control/MRAC.py:144:38 - error: Operator "*" not supported for types "Literal[4]" and "float | None"
    Operator "*" not supported for types "Literal[4]" and "None" (reportOperatorIssue)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BaseAviary.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BaseAviary.py:220:9 - error: Method "reset" overrides class "Env" in an incompatible manner
    Parameter "seed" is missing in override
    Parameter "options" is missing in override (reportIncompatibleMethodOverride)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BaseAviary.py:221:28 - error: Expression of type "None" cannot be assigned to parameter of type "int"
    "None" is not assignable to "int" (reportArgumentType)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BaseAviary.py:222:32 - error: Expression of type "None" cannot be assigned to parameter of type "dict[Unknown, Unknown]"
    "None" is not assignable to "dict[Unknown, Unknown]" (reportArgumentType)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BaseAviary.py:654:30 - error: "temp" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BaseAviary.py:855:29 - error: "x_torque" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BaseAviary.py:855:39 - error: "y_torque" is possibly unbound (reportPossiblyUnboundVariable)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BaseRLAviary.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BaseRLAviary.py:220:68 - error: Argument of type "NDArray[Any]" cannot be assigned to parameter "target_rpy" of type "_Array1D[float64]" in function "computeControl"
    "ndarray[_Shape, dtype[Any]]" is not assignable to "ndarray[tuple[int], dtype[float64]]"
      Type parameter "_ShapeT_co@ndarray" is covariant, but "_Shape" is not a subtype of "tuple[int]"
        "tuple[int, ...]" is not assignable to "tuple[int]"
          Tuple size mismatch; expected 1 but received indeterminate (reportArgumentType)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BetaAviary.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/BetaAviary.py:111:9 - error: Method "step" overrides class "BaseAviary" in an incompatible manner
    Positional parameter count mismatch; base method has 2, but override has 3 (reportIncompatibleMethodOverride)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py:11:12 - error: Import "pycffirmware" could not be resolved (reportMissingImports)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py:13:11 - error: Invalid exception class or object
    "Literal['PyCFFirmware required for CF Aviary. Please instal…']" does not derive from BaseException (reportGeneralTypeIssues)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py:187:9 - error: Method "step" overrides class "BaseAviary" in an incompatible manner
    Parameter 2 name mismatch: base parameter is named "action", override parameter is named "i" (reportIncompatibleMethodOverride)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py:261:16 - error: "obs" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py:261:21 - error: "reward" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py:261:29 - error: "terminated" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py:261:41 - error: "truncated" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py:261:52 - error: "info" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/CFAviary.py:652:25 - error: No overloads for "clip" match the provided arguments
    Argument types: (list[Unknown], Literal[20000]) (reportCallIssue)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/VelocityAviary.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/envs/VelocityAviary.py:164:64 - error: Argument of type "NDArray[Any]" cannot be assigned to parameter "target_rpy" of type "_Array1D[float64]" in function "computeControl"
    "ndarray[_Shape, dtype[Any]]" is not assignable to "ndarray[tuple[int], dtype[float64]]"
      Type parameter "_ShapeT_co@ndarray" is covariant, but "_Shape" is not a subtype of "tuple[int]"
        "tuple[int, ...]" is not assignable to "tuple[int]"
          Tuple size mismatch; expected 1 but received indeterminate (reportArgumentType)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/beta.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/beta.py:135:64 - error: Argument of type "NDArray[Any]" cannot be assigned to parameter "target_vel" of type "_Array1D[float64]" in function "computeControlFromState"
    "ndarray[_Shape, dtype[Any]]" is not assignable to "ndarray[tuple[int], dtype[float64]]"
      Type parameter "_ShapeT_co@ndarray" is covariant, but "_Shape" is not a subtype of "tuple[int]"
        "tuple[int, ...]" is not assignable to "tuple[int]"
          Tuple size mismatch; expected 1 but received indeterminate (reportArgumentType)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/downwash.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/downwash.py:101:32 - error: Argument of type "NDArray[float64]" cannot be assigned to parameter "control" of type "_Array1D[float64]" in function "log"
    "ndarray[_Shape, dtype[float64]]" is not assignable to "ndarray[tuple[int], dtype[float64]]"
      Type parameter "_ShapeT_co@ndarray" is covariant, but "_Shape" is not a subtype of "tuple[int]"
        "tuple[int, ...]" is not assignable to "tuple[int]"
          Tuple size mismatch; expected 1 but received indeterminate (reportArgumentType)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/learn.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/learn.py:127:22 - error: "path" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/learn.py:158:41 - error: Argument of type "Unknown | tuple[Unknown, Unknown]" cannot be assigned to parameter "observation" of type "ndarray[Unknown, Unknown] | dict[str, ndarray[Unknown, Unknown]]" in function "predict"
    Type "Unknown | tuple[Unknown, Unknown]" is not assignable to type "ndarray[Unknown, Unknown] | dict[str, ndarray[Unknown, Unknown]]"
      Type "tuple[Unknown, Unknown]" is not assignable to type "ndarray[Unknown, Unknown] | dict[str, ndarray[Unknown, Unknown]]"
        "tuple[Unknown, Unknown]" is not assignable to "ndarray[Unknown, Unknown]"
        "tuple[Unknown, Unknown]" is not assignable to "dict[str, ndarray[Unknown, Unknown]]" (reportArgumentType)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/mrac.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/mrac.py:86:33 - error: "ctrl" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/mrac.py:89:76 - error: Argument of type "ndarray[_Shape, dtype[Any]]" cannot be assigned to parameter "target_rpy" of type "_Array1D[float64]" in function "computeControlFromState"
    "ndarray[_Shape, dtype[Any]]" is not assignable to "ndarray[tuple[int], dtype[float64]]"
      Type parameter "_ShapeT_co@ndarray" is covariant, but "_Shape" is not a subtype of "tuple[int]"
        "tuple[int, ...]" is not assignable to "tuple[int]"
          Tuple size mismatch; expected 1 but received indeterminate (reportArgumentType)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/mrac.py:97:29 - error: Argument of type "NDArray[float64]" cannot be assigned to parameter "control" of type "_Array1D[float64]" in function "log"
    "ndarray[_Shape, dtype[float64]]" is not assignable to "ndarray[tuple[int], dtype[float64]]"
      Type parameter "_ShapeT_co@ndarray" is covariant, but "_Shape" is not a subtype of "tuple[int]"
        "tuple[int, ...]" is not assignable to "tuple[int]"
          Tuple size mismatch; expected 1 but received indeterminate (reportArgumentType)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/pid.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/pid.py:142:34 - error: "ctrl" is possibly unbound (reportPossiblyUnboundVariable)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/pid.py:146:80 - error: Argument of type "ndarray[_Shape, dtype[Unknown]]" cannot be assigned to parameter "target_rpy" of type "_Array1D[float64]" in function "computeControlFromState"
    "ndarray[_Shape, dtype[Unknown]]" is not assignable to "ndarray[tuple[int], dtype[float64]]"
      Type parameter "_ShapeT_co@ndarray" is covariant, but "_Shape" is not a subtype of "tuple[int]"
        "tuple[int, ...]" is not assignable to "tuple[int]"
          Tuple size mismatch; expected 1 but received indeterminate (reportArgumentType)
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/pid.py:158:32 - error: Argument of type "NDArray[float64]" cannot be assigned to parameter "control" of type "_Array1D[float64]" in function "log"
    "ndarray[_Shape, dtype[float64]]" is not assignable to "ndarray[tuple[int], dtype[float64]]"
      Type parameter "_ShapeT_co@ndarray" is covariant, but "_Shape" is not a subtype of "tuple[int]"
        "tuple[int, ...]" is not assignable to "tuple[int]"
          Tuple size mismatch; expected 1 but received indeterminate (reportArgumentType)
/Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/pid_velocity.py
  /Users/jacopo/GitHub/gym-pybullet-drones/gym_pybullet_drones/examples/pid_velocity.py:138:32 - error: Argument of type "NDArray[float64]" cannot be assigned to parameter "control" of type "_Array1D[float64]" in function "log"
    "ndarray[_Shape, dtype[float64]]" is not assignable to "ndarray[tuple[int], dtype[float64]]"
      Type parameter "_ShapeT_co@ndarray" is covariant, but "_Shape" is not a subtype of "tuple[int]"
        "tuple[int, ...]" is not assignable to "tuple[int]"
          Tuple size mismatch; expected 1 but received indeterminate (reportArgumentType)
40 errors, 0 warnings, 0 informations

@JacopoPan JacopoPan self-assigned this Apr 5, 2026
@JacopoPan JacopoPan added enhancement New feature or request good first issue Good for newcomers python Pull requests that update python code labels Apr 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request good first issue Good for newcomers python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant