Skip to content

Commit

Permalink
Add Pylint support and enable Pylint CI checks
Browse files Browse the repository at this point in the history
  • Loading branch information
correctmost committed Aug 29, 2024
1 parent 342122e commit 2388752
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 4 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/pylint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
on: [ push, pull_request ]
name: Pylint linting
jobs:
pylint:
runs-on: ubuntu-latest
container:
image: archlinux/archlinux:latest
steps:
- uses: actions/checkout@v4
- name: Prepare arch
run: |
pacman-key --init
pacman --noconfirm -Sy archlinux-keyring
pacman --noconfirm -Syyu
pacman --noconfirm -Sy python-pip python-pyparted python-simple-term-menu pkgconfig gcc
- run: pip install --break-system-packages --upgrade pip
- name: Install Pylint and Pylint plug-ins
run: pip install --break-system-packages .[dev]
- run: python --version
- run: pylint --version
- name: Lint with Pylint
run: pylint --recursive=y .
39 changes: 39 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[MAIN]
extension-pkg-allow-list=_ped
ignore=build,docs
load-plugins=pylint_pydantic
max-line-length=220
persistent=no

[MESSAGES CONTROL]
disable=
C,
R,
arguments-renamed,
attribute-defined-outside-init,
bad-indentation,
bare-except,
broad-exception-caught,
cell-var-from-loop,
comparison-with-callable,
dangerous-default-value,
expression-not-assigned,
f-string-without-interpolation,
fixme,
protected-access,
raise-missing-from,
redefined-builtin,
redefined-outer-name,
self-assigning-variable,
unnecessary-lambda,
unreachable,
unspecified-encoding,
unused-argument,
unused-variable,
useless-parent-delegation,

[VARIABLES]
additional-builtins=_

[REPORTS]
score=no
4 changes: 2 additions & 2 deletions archinstall/lib/interactions/general_conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ def ask_for_audio_selection(
current: Optional[AudioConfiguration] = None
) -> Optional[AudioConfiguration]:
choices = [
Audio.Pipewire.name,
Audio.Pulseaudio.name,
Audio.Pipewire.name, # pylint: disable=no-member
Audio.Pulseaudio.name, # pylint: disable=no-member
Audio.no_audio_text()
]

Expand Down
2 changes: 1 addition & 1 deletion archinstall/lib/models/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class PasswordStrength(Enum):
STRONG = 'strong'

@property
def value(self) -> str:
def value(self) -> str: # pylint: disable=invalid-overridden-method
match self:
case PasswordStrength.VERY_WEAK: return str(_('very weak'))
case PasswordStrength.WEAK: return str(_('weak'))
Expand Down
2 changes: 1 addition & 1 deletion archinstall/lib/packages/packages.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,4 +113,4 @@ def installed_package(package: str) -> LocalPackage:
except SysCallError:
pass

return LocalPackage({field.name: package_info.get(field.name) for field in dataclasses.fields(LocalPackage)}) # type: ignore
return LocalPackage({field.name: package_info.get(field.name) for field in dataclasses.fields(LocalPackage)}) # type: ignore # pylint: disable=no-value-for-parameter
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ dev = [
"flake8==7.1.1",
"pre-commit==3.8.0",
"ruff==0.6.3",
"pylint==3.2.6",
"pylint-pydantic==0.3.2",
]
doc = ["sphinx"]

Expand Down

0 comments on commit 2388752

Please sign in to comment.