Skip to content

Commit

Permalink
chore: add formatting tools with pre-commit
Browse files Browse the repository at this point in the history
  • Loading branch information
mariugul committed Jul 31, 2024
1 parent 0b89197 commit d87a972
Show file tree
Hide file tree
Showing 5 changed files with 941 additions and 0 deletions.
11 changes: 11 additions & 0 deletions code_quality/.docstr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
ignore_name_file: .*/test # ignore all test files
badge: docs/badges/docstr_coverage.svg
verbose: 3 # int (0-4)
fail_under: 0 # Fail under a certain percentage coverage
skip_magic: false # Ignore all magic methods (except __init__)
skip_file_doc: false # Ignore module docstrings (at the top of files)
skip_init: false # Ignore all __init__ methods
skip_class_def: false # Ignore docstrings of class definitions
skip_private: true # Ignore private functions (starting with a single underscore)
accept_empty: true # Exit with code 0 if no Python files are found (default: exit code 1)
percentage_only: false # Show only percentage at the end
209 changes: 209 additions & 0 deletions code_quality/.markdownlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
# Example markdownlint configuration with all properties set to their default value

# Default state for all rules
default: true

# Path to configuration file to extend
extends:

# MD001/heading-increment/header-increment - Heading levels should only increment by one level
MD001: true

# MD002/first-heading-h1/first-header-h1 - First heading should be a top-level heading
MD002:
# Heading level
level: 1

# MD003/heading-style/header-style - Heading style
MD003:
style: consistent

# MD004/ul-style - Unordered list style
MD004:
style: consistent

# MD005/list-indent - Inconsistent indentation for list items at the same level
MD005: true

# MD006/ul-start-left - Consider starting bulleted lists at the beginning of the line
MD006: true

# MD007/ul-indent - Unordered list indentation
MD007:
indent: 2
start_indented: false
start_indent: 2

# MD009/no-trailing-spaces - Trailing spaces
MD009:
br_spaces: 2
list_item_empty_lines: false
# Include unnecessary breaks
strict: false

# MD010/no-hard-tabs - Hard tabs
MD010:
code_blocks: true
# Fenced code languages to ignore
ignore_code_languages: []
spaces_per_tab: 1

# MD011/no-reversed-links - Reversed link syntax
MD011: true

# MD012/no-multiple-blanks - Multiple consecutive blank lines
MD012:
maximum: 1

# MD013/line-length - Line length
MD013:
line_length: 100
heading_line_length: 100
code_block_line_length: 100
code_blocks: true
tables: true
headings: true
headers: true
strict: false
stern: false

# MD014/commands-show-output - Dollar signs used before commands without showing output
MD014: true

# MD018/no-missing-space-atx - No space after hash on atx style heading
MD018: true

# MD019/no-multiple-space-atx - Multiple spaces after hash on atx style heading
MD019: true

# MD020/no-missing-space-closed-atx - No space inside hashes on closed atx style heading
MD020: true

# MD021/no-multiple-space-closed-atx - Multiple spaces inside hashes on closed atx style heading
MD021: true

# MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines
MD022:
lines_above: 1
lines_below: 1

# MD023/heading-start-left/header-start-left - Headings must start at the beginning of the line
MD023: true

# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
MD024:
# Only check sibling headings
allow_different_nesting: false
siblings_only: false

# MD025/single-title/single-h1 - Multiple top-level headings in the same document
MD025:
level: 1
# RegExp for matching title in front matter
front_matter_title: ^\s*title\s*[:=]

# MD026/no-trailing-punctuation - Trailing punctuation in heading
MD026:
# Punctuation characters not allowed at end of headings
punctuation: .,;:!。,;:!

# MD027/no-multiple-space-blockquote - Multiple spaces after blockquote symbol
MD027: true

# MD028/no-blanks-blockquote - Blank line inside blockquote
MD028: true

# MD029/ol-prefix - Ordered list item prefix
MD029:
style: one_or_ordered

# MD030/list-marker-space - Spaces after list markers
MD030:
ul_single: 1
ol_single: 1
ul_multi: 1
ol_multi: 1

# MD031/blanks-around-fences - Fenced code blocks should be surrounded by blank lines
MD031:
list_items: true

# MD032/blanks-around-lists - Lists should be surrounded by blank lines
MD032: true

# MD033/no-inline-html - Inline HTML
MD033:
allowed_elements: []

# MD034/no-bare-urls - Bare URL used
MD034: true

# MD035/hr-style - Horizontal rule style
MD035:
style: consistent

# MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading
MD036:
punctuation: .,;:!?。,;:!?

# MD037/no-space-in-emphasis - Spaces inside emphasis markers
MD037: true

# MD038/no-space-in-code - Spaces inside code span elements
MD038: true

# MD039/no-space-in-links - Spaces inside link text
MD039: true

# MD040/fenced-code-language - Fenced code blocks should have a language specified
MD040:
allowed_languages: []
language_only: false

# MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading
MD041:
level: 1
# RegExp for matching title in front matter
front_matter_title: ^\s*title\s*[:=]

# MD042/no-empty-links - No empty links
MD042: true

# MD044/proper-names - Proper names should have the correct capitalization
MD044:
names: []
code_blocks: true
html_elements: true

# MD045/no-alt-text - Images should have alternate text (alt text)
MD045: true

# MD046/code-block-style - Code block style
MD046:
style: consistent

# MD047/single-trailing-newline - Files should end with a single newline character
MD047: true

# MD048/code-fence-style - Code fence style
MD048:
style: consistent

# MD049/emphasis-style - Emphasis style should be consistent
MD049:
style: consistent

# MD050/strong-style - Strong style should be consistent
MD050:
style: consistent

# MD051/link-fragments - Link fragments should be valid
MD051: true

# MD052/reference-links-images - Reference links and images should use a label that is defined
MD052: true

# MD053/link-image-reference-definitions - Link and image reference definitions should be needed
MD053:
ignored_definitions:
- //
85 changes: 85 additions & 0 deletions code_quality/.pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks


# Exlude binary files and CHANGELOGS that are automanaged
exclude: \.(deb|exe|bat)|^.*\/(CHANGELOG|bug_report|feature_request)\.md$

repos:

# Python tools
# ----------------------------------------------------------------------------------------------
- repo: https://github.com/hadialqattan/pycln
rev: v2.4.0
hooks:
- id: pycln
name: Remove Unused Python Imports
args: [--exclude, conftest.py]

- repo: https://github.com/PyCQA/isort
rev: 5.12.0
hooks:
- id: isort
name: Sort Python Imports
args: [--profile=black]

- repo: https://github.com/psf/black
rev: 23.11.0
hooks:
- id: black
name: Format Python Code
args: [--line-length, '100']

- repo: https://github.com/PyCQA/pylint
rev: v3.0.1
hooks:
- id: pylint
name: Lint Python Code
entry: bash -c 'echo $PATH'
language: system
types: [python]
# ----------------------------------------------------------------------------------------------
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
rev: v2.11.0
hooks:
- id: pretty-format-yaml
args: [--autofix, --indent, '2', --line-width, '100']

- repo: https://github.com/adrienverge/yamllint.git
rev: v1.33.0
hooks:
- id: yamllint
name: Lint YAML Files
args: [-c=code_quality/.yamllint]

- repo: https://github.com/executablebooks/mdformat
rev: 0.7.17
hooks:
- id: mdformat
name: Format Markdown Files
additional_dependencies:
- mdformat-black
args: [--number]

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace
name: Trim Trailing Whitespace
- id: check-yaml
name: Check YAML Parseable
- id: requirements-txt-fixer
name: Sort requirements.txt
- id: check-added-large-files
- id: check-case-conflict
- id: check-merge-conflict
- id: end-of-file-fixer
name: Ensure End of File Newline
- id: fix-byte-order-marker
- id: mixed-line-ending
- id: check-executables-have-shebangs
- id: check-shebang-scripts-are-executable
exclude: .bat
- id: no-commit-to-branch
name: No Commit to main
args: [--branch, main]
Loading

0 comments on commit d87a972

Please sign in to comment.