Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pre-commit: Switch to ruff for linting and formatting #169

Merged
merged 8 commits into from
Dec 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 73 additions & 73 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -1,103 +1,103 @@
name: cd

on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+*'
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+*

jobs:

validate-release-tag:
validate-release-tag:

if: github.repository == 'aiidateam/aiida-pseudo'
runs-on: ubuntu-latest
if: github.repository == 'aiidateam/aiida-pseudo'
runs-on: ubuntu-latest

steps:
- name: Checkout source
uses: actions/checkout@v2
steps:
- name: Checkout source
uses: actions/checkout@v2

- name: Install Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Validate the tag version against the package version
run: python .github/workflows/validate_release_tag.py $GITHUB_REF
- name: Validate the tag version against the package version
run: python .github/workflows/validate_release_tag.py $GITHUB_REF

pre-commit:
pre-commit:

needs: [validate-release-tag]
runs-on: ubuntu-latest
needs: [validate-release-tag]
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
steps:
- uses: actions/checkout@v2

- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: 'pip'
cache-dependency-path: pyproject.toml
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: pip
cache-dependency-path: pyproject.toml

- name: Install Python package and dependencies
run: pip install -e .[pre-commit,tests]
- name: Install Python package and dependencies
run: pip install -e .[dev]

- name: Run pre-commit
run: pre-commit run --all-files || ( git status --short ; git diff ; exit 1 )
- name: Run pre-commit
run: pre-commit run --all-files || ( git status --short ; git diff ; exit 1 )

tests:
tests:

needs: [validate-release-tag]
runs-on: ubuntu-latest
needs: [validate-release-tag]
runs-on: ubuntu-latest

strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']

services:
postgres:
image: postgres:12
rabbitmq:
image: rabbitmq:latest
ports:
- 5672:5672
services:
postgres:
image: postgres:12
rabbitmq:
image: rabbitmq:latest
ports:
- 5672:5672

steps:
- uses: actions/checkout@v2
steps:
- uses: actions/checkout@v2

- name: Install Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: pyproject.toml
- name: Install Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: pyproject.toml

- name: Install Python package and dependencies
run: pip install -e .[tests]
- name: Install Python package and dependencies
run: pip install -e .[dev]

- name: Run pytest
run: pytest -sv tests
- name: Run pytest
run: pytest -sv tests

publish:
publish:

name: Publish to PyPI
needs: [pre-commit, tests]
runs-on: ubuntu-latest
name: Publish to PyPI
needs: [pre-commit, tests]
runs-on: ubuntu-latest

steps:
- name: Checkout source
uses: actions/checkout@v2
steps:
- name: Checkout source
uses: actions/checkout@v2

- name: Install Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Install flit
run: pip install flit~=3.4
- name: Install flit
run: pip install flit~=3.4

- name: Build and publish
run: flit publish
env:
FLIT_USERNAME: __token__
FLIT_PASSWORD: ${{ secrets.PYPI_KEY }}
- name: Build and publish
run: flit publish
env:
FLIT_USERNAME: __token__
FLIT_PASSWORD: ${{ secrets.PYPI_KEY }}
82 changes: 41 additions & 41 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,57 +4,57 @@ on: [push, pull_request]

jobs:

pre-commit:
pre-commit:

runs-on: ubuntu-latest
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
steps:
- uses: actions/checkout@v2

- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: 'pip'
cache-dependency-path: pyproject.toml
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: pip
cache-dependency-path: pyproject.toml

- name: Install Python package and dependencies
run: pip install -e .[pre-commit,tests]
- name: Install Python package and dependencies
run: pip install -e .[dev]

- name: Run pre-commit
run: pre-commit run --all-files || ( git status --short ; git diff ; exit 1 )
- name: Run pre-commit
run: pre-commit run --all-files || ( git status --short ; git diff ; exit 1 )

tests:
tests:

runs-on: ubuntu-latest
timeout-minutes: 10
runs-on: ubuntu-latest
timeout-minutes: 10

strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']

services:
postgres:
image: postgres:12
rabbitmq:
image: rabbitmq:latest
ports:
- 5672:5672
services:
postgres:
image: postgres:12
rabbitmq:
image: rabbitmq:latest
ports:
- 5672:5672

steps:
- uses: actions/checkout@v2
steps:
- uses: actions/checkout@v2

- name: Install Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: pyproject.toml
- name: Install Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: pyproject.toml

- name: Install Python package and dependencies
run: pip install -e .[tests]
- name: Install Python package and dependencies
run: pip install -e .[dev]

- name: Run pytest
env:
AIIDA_WARN_v3: True
run: pytest -sv tests
- name: Run pytest
env:
AIIDA_WARN_v3: true
run: pytest -sv tests
8 changes: 5 additions & 3 deletions .github/workflows/validate_release_tag.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
"""Validate that the version in the tag label matches the version of the package."""
import argparse
import ast
Expand All @@ -17,8 +16,11 @@ def get_version_from_module(content: str) -> str:

try:
return next(
ast.literal_eval(statement.value) for statement in module.body if isinstance(statement, ast.Assign)
for target in statement.targets if isinstance(target, ast.Name) and target.id == '__version__'
ast.literal_eval(statement.value)
for statement in module.body
if isinstance(statement, ast.Assign)
for target in statement.targets
if isinstance(target, ast.Name) and target.id == '__version__'
)
except StopIteration as exception:
raise IOError('Unable to find the `__version__` attribute in the module.') from exception
Expand Down
78 changes: 34 additions & 44 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,48 +1,38 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: 'v4.2.0'
hooks:
- id: double-quote-string-fixer
- id: end-of-file-fixer
- id: fix-encoding-pragma
- id: mixed-line-ending
- id: trailing-whitespace
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: check-merge-conflict
- id: check-yaml
- id: double-quote-string-fixer
- id: end-of-file-fixer
- id: fix-encoding-pragma
args: [--remove]
- id: mixed-line-ending
args: [--fix=lf]
- id: trailing-whitespace

- repo: https://github.com/ikamensh/flynt/
rev: '0.76'
hooks:
- id: flynt
- repo: https://github.com/ikamensh/flynt/
rev: 1.0.1
hooks:
- id: flynt

- repo: https://github.com/pycqa/isort
rev: '5.12.0'
hooks:
- id: isort
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.1.9
hooks:
- id: ruff-format
exclude: &exclude_files >
(?x)^(
docs/.*|
)$
- id: ruff
args: [--fix, --exit-non-zero-on-fix, --show-fixes]
exclude: *exclude_files

- repo: https://github.com/pre-commit/mirrors-yapf
rev: 'v0.32.0'
hooks:
- id: yapf
name: yapf
types: [python]
args: ['-i']
additional_dependencies: ['toml']
exclude: &exclude_files >
(?x)^(
docs/.*|
)$

- repo: https://github.com/PyCQA/pydocstyle
rev: '6.1.1'
hooks:
- id: pydocstyle
additional_dependencies: ['toml']
exclude: *exclude_files

- repo: local
hooks:
- id: pylint
name: pylint
entry: pylint
types: [python]
language: system
exclude: *exclude_files
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
rev: v2.11.0
hooks:
- id: pretty-format-toml
args: [--autofix]
- id: pretty-format-yaml
args: [--autofix]
Loading
Loading