- Notifications
You must be signed in to change notification settings - Fork547
Coding conventions
Peter Corke edited this pageFeb 14, 2021 ·4 revisions
PEP 8 rules
We aspire to theZen of Python
seedetailed doc string conventions here
At the top of each file we import packages in the following order
- Standard Python packages
- NumPy:
import numpy as np - SciPy:
import script as sp - Matplotlib
import matplotlib as mplimport matplotlib.pyplot as pptimport mpl_toolkits.mplot3das mpl3d`
- Spatial Math Toolbox
import spatialmath as smfrom spatialmath import base
- Robotics Toolbox
- for toolbox code, to avoid circular imports always just import the required class, eg.
from roboticstoolbox.module import class - for application code,
import roboticstoolbox as rtb
- for toolbox code, to avoid circular imports always just import the required class, eg.
- all other imports
We usepytest
We usecodecov to analyse and display unit test coverage, we aim for over 90% coverage.
We useLGTM to analyse and display code quality, we aim for an A rating.
We strive to be Pythonic rather than MATLABish.
- we prefer
for x in Xrather thanfor i in range()and indexing. IfXis a NumPy array thenxiterates over matrix rows. If we do need an index as well as the object, then useenumerate(). - we test arguments for appropriateness and raise a
ValueErrororTypeError - for argument checking we use
spatialmath.base.argcheck- we test for a scalar argument using
isscalar - we test for a vector argument using
isvectorwhich accepts a Python list, tuple or NumPy array
- we test for a scalar argument using