Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Programming style

Python style

We follow the PEP8 style guide and use yapf and flake8 to format the code. We have the following settings in setup.cfg:

[yapf]
based_on_style = google
allow_split_before_dict_value = False

[flake8]
max-line-length = 80

C++ style

The C++ code should be formatted using clang-format. We have the following settings in .clang-format:

---
BasedOnStyle: Google
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: AllDefinitions
AlwaysBreakTemplateDeclarations: true
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
  IndentBraces:    false
  AfterNamespace:  false
  AfterClass:      true
  AfterFunction:   true
  AfterEnum:       true
  AfterStruct:     true
  AfterUnion:      true
  BeforeCatch:     true
  BeforeElse:      true
  AfterControlStatement: true
  SplitEmptyFunction:    true
  SplitEmptyRecord:      true
  SplitEmptyNamespace:   true
BreakBeforeBraces: Custom
BreakConstructorInitializers: BeforeComma
ColumnLimit: 150
Cpp11BracedListStyle: true
DerivePointerAlignment: true
IndentWidth: 4
Language: Cpp
PointerAlignment: Left
Standard: Cpp11
TabWidth: 4
UseTab: Never
FixNamespaceComments: true

...