
\begin{enumerate}
\tightlist
\item
  Use 4 spaces for indentation.
\item
  Split long function definitions and calls using hanging indentation.
\item
  Keep lines shorter than 79 characters.
\item
  Keep docstrings and comments shorter than 72 characters.
\item
  Separate function definitions with two blank lines.
\item
  Imports should be on separate lines.
\item
  Imports are always put at the top of the file.
\item
  Always use double quote characters for triple-quoted strings.
\item
  Avoid whitespace in the following situations:

  \begin{itemize}
  \tightlist
  \item
    Immediately inside parentheses;
  \item
    immediately before a comma, semicolon, or colon;
  \item
    immediately before the open parenthesis that starts the argument
    list of a function call;
  \item
    immediately before the open parenthesis that starts an indexing or
    slicing.
  \end{itemize}
\item
  Always surround these binary operators with a single space on either
  side:

  \begin{itemize}
  \tightlist
  \item
    assignment ( = ),
  \item
    augmented assignment ( += , -= etc.),
  \item
    comparisons ( == , \textless{} , \textgreater{} , != ,
    \textless{}\textgreater{} , \textless{}= , \textgreater{}= , in ,
    not in , is , is not ),
  \item
    Boolean operators ( and , or , not ).
  \end{itemize}
\item
  Comments should be complete sentences.
\item
  Block comments should start with `\#' and a single space.
\item
  Modules should have short, all-lowercase names. Underscores can be
  used in the module name if it improves readability.
\item
  Function names should be lowercase, with words separated by
  underscores as necessary to improve readability.
\item
  Keep variable, function, and method names lowercase.
\item
  Capitalize names of user-defined classes.
\end{enumerate}
