Skip to content

Coding conventions

Peter Corke edited this page Feb 14, 2021 · 4 revisions

Style

PEP 8 rules

We aspire to the Zen of Python

docstrings

see detailed doc string conventions here

Package imports

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 mpl
    • import matplotlib.pyplot as ppt
    • import mpl_toolkits.mplot3d as mpl3d`
  • Spatial Math Toolbox
    • import spatialmath as sm
    • from 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
  • all other imports

Unit testing

We use pytest

Code quality

We use codecov to analyse and display unit test coverage, we aim for over 90% coverage.

We use LGTM to analyse and display code quality, we aim for an A rating.

Coding patterns

We strive to be Pythonic rather than MATLABish.

  • we prefer for x in X rather than for i in range() and indexing. If X is a NumPy array then x iterates over matrix rows. If we do need an index as well as the object, then use enumerate().
  • we test arguments for appropriateness and raise a ValueError or TypeError
  • for argument checking we use spatialmath.base.argcheck
    • we test for a scalar argument using isscalar
    • we test for a vector argument using isvector which accepts a Python list, tuple or NumPy array
Clone this wiki locally
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy