Skip to content

Commit

Permalink
Switch to ruff for format/lint
Browse files Browse the repository at this point in the history
  • Loading branch information
breuleux committed Jun 13, 2024
1 parent 00baf4a commit b8f81ea
Show file tree
Hide file tree
Showing 8 changed files with 208 additions and 396 deletions.
41 changes: 26 additions & 15 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,46 @@ on:
branches: [ master ]

jobs:
build:

lint:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']

python-version: ['3.12']
steps:
- uses: actions/checkout@v2

- name: Check out the code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install ruff==0.4.8
- name: Lint check
run: ruff check
- name: Check formatting
run: ruff format --check

test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
steps:
- name: Check out the code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install
- name: Lint with flake8
run: poetry run flake8

- name: Sort imports
run: poetry run isort -c --df .

- name: Test with pytest
run: poetry run pytest --cov=hrepr --cov-report term-missing

- name: Verify coverage
if: ${{ matrix.python-version == '3.12' }}
run: poetry run coverage report | tail -1 | egrep "TOTAL +[0-9]+ +0 +100%"
1 change: 0 additions & 1 deletion examples/exhibit.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,6 @@ def cytoscape_graph(*edges):


if __name__ == "__main__":

entries = []

def hprint(*objs, **kwargs):
Expand Down
2 changes: 1 addition & 1 deletion hrepr/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from pathlib import Path
from typing import Union

from ovld import OvldMC, extend_super, has_attribute, meta, ovld
from ovld import OvldMC, extend_super, ovld

from .h import H, Tag, styledir
from .make import StandardMaker
Expand Down
534 changes: 166 additions & 368 deletions poetry.lock

Large diffs are not rendered by default.

19 changes: 12 additions & 7 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,11 @@ classifiers = [
python = "^3.7"
ovld = "^0.3.2"

[tool.poetry.dev-dependencies]
black = ">=19.3b0"
isort = ">=5.4.2"
[tool.poetry.group.dev.dependencies]
pytest = ">=7.2.0"
pytest-cov = ">=4.0.0"
flake8 = ">=5.0.0"
pytest-regressions = ">=2.4.1"

[tool.black]
line-length = 80
ruff = "^0.4.8"

[tool.pytest.ini_options]
filterwarnings = [
Expand All @@ -40,3 +35,13 @@ omit = [
[build-system]
requires = ["poetry-core>=1.3.2"]
build-backend = "poetry.core.masonry.api"

[tool.ruff]
line-length = 80

[tool.ruff.lint]
extend-select = ["I"]
ignore = ["E241", "F722", "E501", "E203", "F811", "F821"]

[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401", "F403"]
3 changes: 1 addition & 2 deletions tests/test_hgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@

import pytest

from hrepr import H, embed
from hrepr import H, embed, standard_html
from hrepr import h as hmodule
from hrepr import standard_html
from hrepr.resource import JSExpression, Resource


Expand Down
2 changes: 1 addition & 1 deletion tests/test_hrepr.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ async def _corogen(x):
"generators": [_gen(3)],
"coroutines": [_coro(3), _corogen(3)],
"classes": [Point, Exception, type],
"builtins": [pow, open, [].append],
"builtins": [pow, print, [].append],
"wrappers": [dict.update, list.__str__],
"methods": [Point(1, 2).some_method, [].__str__],
"modules": [dataclasses],
Expand Down
2 changes: 1 addition & 1 deletion tests/test_hrepr/test_misc_standard_.html
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,4 @@
position: relative;
place-items: center;
}
</style></head><body><h2>description</h2><pre>hrepr(obj)</pre><h2>obj</h2><pre>{&#x27;functions&#x27;: [&lt;function hshort XXX&gt;, &lt;function Point.some_method XXX&gt;, &lt;function &lt;lambda&gt; XXX&gt;], &#x27;generators&#x27;: [&lt;generator object _gen XXX&gt;], &#x27;coroutines&#x27;: [&lt;coroutine object _coro XXX&gt;, &lt;async_generator object _corogen XXX&gt;], &#x27;classes&#x27;: [&lt;class &#x27;tests.test_hrepr.Point&#x27;&gt;, &lt;class &#x27;Exception&#x27;&gt;, &lt;class &#x27;type&#x27;&gt;], &#x27;builtins&#x27;: [&lt;built-in function pow&gt;, &lt;built-in function open&gt;, &lt;built-in method append of list object XXX&gt;], &#x27;wrappers&#x27;: [&lt;method &#x27;update&#x27; of &#x27;dict&#x27; objects&gt;, &lt;slot wrapper &#x27;__str__&#x27; of &#x27;object&#x27; objects&gt;], &#x27;methods&#x27;: [&lt;bound method Point.some_method of Point(x=1, y=2)&gt;, &lt;method-wrapper &#x27;__str__&#x27; of list object XXX&gt;], &#x27;modules&#x27;: [&lt;module &#x27;dataclasses&#x27; XXX&gt;], &#x27;ellipsis&#x27;: Ellipsis}</pre><h2>result</h2><div class="hreprt-dict hrepr-bracketed"><div class="hrepr-open">{</div><table class="hrepr-body"><tr><td><span class="hreprt-str">functions</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-function"><span class="hrepr-defn-key">function</span> <span class="hrepr-defn-name">hshort</span></span></div><div><span class="hreprk-function"><span class="hrepr-defn-key">function</span> <span class="hrepr-defn-name">some_method</span></span></div><div><span class="hreprk-function"><span class="hrepr-defn-key">function</span> <span class="hrepr-defn-name">&lt;lambda&gt;</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">generators</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-generator"><span class="hrepr-defn-key">generator</span> <span class="hrepr-defn-name">_gen</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">coroutines</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-coroutine"><span class="hrepr-defn-key">coroutine</span> <span class="hrepr-defn-name">_coro</span></span></div><div><span class="hreprk-async_generator"><span class="hrepr-defn-key">async_generator</span> <span class="hrepr-defn-name">_corogen</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">classes</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-class"><span class="hrepr-defn-key">class</span> <span class="hrepr-defn-name">Point</span></span></div><div><span class="hreprk-class"><span class="hrepr-defn-key">class</span> <span class="hrepr-defn-name">Exception</span></span></div><div><span class="hreprk-metaclass"><span class="hrepr-defn-key">metaclass</span> <span class="hrepr-defn-name">type</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">builtins</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-builtin"><span class="hrepr-defn-key">builtin</span> <span class="hrepr-defn-name">pow</span></span></div><div><span class="hreprk-builtin"><span class="hrepr-defn-key">builtin</span> <span class="hrepr-defn-name">io.open</span></span></div><div><span class="hreprk-builtin"><span class="hrepr-defn-key">builtin</span> <span class="hrepr-defn-name">&lt;list&gt;.append</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">wrappers</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-descriptor"><span class="hrepr-defn-key">descriptor</span> <span class="hrepr-defn-name">dict.update</span></span></div><div><span class="hreprk-descriptor"><span class="hrepr-defn-key">descriptor</span> <span class="hrepr-defn-name">object.__str__</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">methods</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-method"><span class="hrepr-defn-key">method</span> <span class="hrepr-defn-name">&lt;Point&gt;.some_method</span></span></div><div><span class="hreprk-method"><span class="hrepr-defn-key">method</span> <span class="hrepr-defn-name">&lt;list&gt;.__str__</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">modules</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-module"><span class="hrepr-defn-key">module</span> <span class="hrepr-defn-name">dataclasses</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">ellipsis</span></td><td><span class="hrepr-delim">: </span></td><td><span class="hreprt-ellipsis">&lt;ellipsis&gt;</span></td></tr></table><div class="hrepr-close">}</div></div></body></html>
</style></head><body><h2>description</h2><pre>hrepr(obj)</pre><h2>obj</h2><pre>{&#x27;functions&#x27;: [&lt;function hshort XXX&gt;, &lt;function Point.some_method XXX&gt;, &lt;function &lt;lambda&gt; XXX&gt;], &#x27;generators&#x27;: [&lt;generator object _gen XXX&gt;], &#x27;coroutines&#x27;: [&lt;coroutine object _coro XXX&gt;, &lt;async_generator object _corogen XXX&gt;], &#x27;classes&#x27;: [&lt;class &#x27;tests.test_hrepr.Point&#x27;&gt;, &lt;class &#x27;Exception&#x27;&gt;, &lt;class &#x27;type&#x27;&gt;], &#x27;builtins&#x27;: [&lt;built-in function pow&gt;, &lt;built-in function print&gt;, &lt;built-in method append of list object XXX&gt;], &#x27;wrappers&#x27;: [&lt;method &#x27;update&#x27; of &#x27;dict&#x27; objects&gt;, &lt;slot wrapper &#x27;__str__&#x27; of &#x27;object&#x27; objects&gt;], &#x27;methods&#x27;: [&lt;bound method Point.some_method of Point(x=1, y=2)&gt;, &lt;method-wrapper &#x27;__str__&#x27; of list object XXX&gt;], &#x27;modules&#x27;: [&lt;module &#x27;dataclasses&#x27; XXX&gt;], &#x27;ellipsis&#x27;: Ellipsis}</pre><h2>result</h2><div class="hreprt-dict hrepr-bracketed"><div class="hrepr-open">{</div><table class="hrepr-body"><tr><td><span class="hreprt-str">functions</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-function"><span class="hrepr-defn-key">function</span> <span class="hrepr-defn-name">hshort</span></span></div><div><span class="hreprk-function"><span class="hrepr-defn-key">function</span> <span class="hrepr-defn-name">some_method</span></span></div><div><span class="hreprk-function"><span class="hrepr-defn-key">function</span> <span class="hrepr-defn-name">&lt;lambda&gt;</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">generators</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-generator"><span class="hrepr-defn-key">generator</span> <span class="hrepr-defn-name">_gen</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">coroutines</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-coroutine"><span class="hrepr-defn-key">coroutine</span> <span class="hrepr-defn-name">_coro</span></span></div><div><span class="hreprk-async_generator"><span class="hrepr-defn-key">async_generator</span> <span class="hrepr-defn-name">_corogen</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">classes</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-class"><span class="hrepr-defn-key">class</span> <span class="hrepr-defn-name">Point</span></span></div><div><span class="hreprk-class"><span class="hrepr-defn-key">class</span> <span class="hrepr-defn-name">Exception</span></span></div><div><span class="hreprk-metaclass"><span class="hrepr-defn-key">metaclass</span> <span class="hrepr-defn-name">type</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">builtins</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-builtin"><span class="hrepr-defn-key">builtin</span> <span class="hrepr-defn-name">pow</span></span></div><div><span class="hreprk-builtin"><span class="hrepr-defn-key">builtin</span> <span class="hrepr-defn-name">print</span></span></div><div><span class="hreprk-builtin"><span class="hrepr-defn-key">builtin</span> <span class="hrepr-defn-name">&lt;list&gt;.append</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">wrappers</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-descriptor"><span class="hrepr-defn-key">descriptor</span> <span class="hrepr-defn-name">dict.update</span></span></div><div><span class="hreprk-descriptor"><span class="hrepr-defn-key">descriptor</span> <span class="hrepr-defn-name">object.__str__</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">methods</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-method"><span class="hrepr-defn-key">method</span> <span class="hrepr-defn-name">&lt;Point&gt;.some_method</span></span></div><div><span class="hreprk-method"><span class="hrepr-defn-key">method</span> <span class="hrepr-defn-name">&lt;list&gt;.__str__</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">modules</span></td><td><span class="hrepr-delim">: </span></td><td><div class="hreprt-list hrepr-bracketed"><div class="hrepr-open">[</div><div class="hreprl-h hrepr-body"><div><span class="hreprk-module"><span class="hrepr-defn-key">module</span> <span class="hrepr-defn-name">dataclasses</span></span></div></div><div class="hrepr-close">]</div></div></td></tr><tr><td><span class="hreprt-str">ellipsis</span></td><td><span class="hrepr-delim">: </span></td><td><span class="hreprt-ellipsis">&lt;ellipsis&gt;</span></td></tr></table><div class="hrepr-close">}</div></div></body></html>

0 comments on commit b8f81ea

Please sign in to comment.