Required standards#
This page collects the required standards for any PyAnsys
project. The
individual configurations for the tools presented in Code style tools and
Documentation style tools are combined together.
The following lines should be included in The pyproject.toml file to indicate the configuration of the different code and documentation style tools.
Required pyproject.toml
file configuration#
[tool.black]
line-length = "<length>"
[tool.isort]
profile = "black"
force_sort_within_sections = true
line_length = "<length>"
src_paths = ["doc", "src", "tests"]
[tool.coverage.run]
source = ["ansys.<product>"]
[tool.coverage.report]
show_missing = true
[tool.pytest.ini_options]
addopts = "--doctest-modules"
[tool.pydocstyle]
convention = "numpy"
Required flake8 configuration#
The following .flake8
file is also required:
[flake8]
max-line-length = 88
extend-ignore = 'E203'
Required pre-commit
configuration#
You can take advantage of pre-commit by including a
.pre-commit-config.yaml
file like this one in your project:
repos:
- repo: https://github.com/psf/black
rev: X.Y.Z
hooks:
- id: black
- repo: https://github.com/pycqa/isort
rev: X.Y.Z
hooks:
- id: isort
- repo: https://github.com/PyCQA/flake8
rev: X.Y.Z
hooks:
- id: flake8
- repo: https://github.com/codespell-project/codespell
rev: vX.Y.Z
hooks:
- id: codespell
- repo: https://github.com/pycqa/pydocstyle
rev: X.Y.Z
hooks:
- id: pydocstyle
additional_dependencies: [toml]
exclude: "tests/"
GitHub CI/CD integration#
Finally, you can Test using GitHub Actions and
create a style.yml
workflow file in the .github/workflows
directory:
name: Style
on:
pull_request:
push:
tags:
- "*"
branches:
- main
jobs:
style:
name: Code & Doc
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install requirements
run: |
python -m pip install -U pip pre-commit
- name: Run pre-commit
run: |
pre-commit run --all-files --show-diff-on-failure