From ed516f4fea12c7c8fe66bfc794d0be75c33a281c Mon Sep 17 00:00:00 2001 From: Talley Lambert <talley.lambert@gmail.com> Date: Mon, 18 Mar 2024 11:11:56 -0400 Subject: [PATCH] chore: add format to pre-commit (#182) --- .pre-commit-config.yaml | 1 + src/app_model/_app.py | 9 ++---- src/app_model/backends/qt/__init__.py | 1 + src/app_model/expressions/__init__.py | 1 + src/app_model/expressions/_context_keys.py | 6 ++-- src/app_model/expressions/_expressions.py | 22 +++++++-------- src/app_model/registries/__init__.py | 1 + src/app_model/registries/_register.py | 32 +++++++++++----------- src/app_model/types/__init__.py | 1 + src/app_model/types/_keys/_key_codes.py | 9 ++---- src/app_model/types/_utils.py | 2 +- tests/test_context/test_context.py | 3 +- 12 files changed, 43 insertions(+), 45 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f5642a6..46de3ff 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,6 +14,7 @@ repos: hooks: - id: ruff args: ["--fix", "--unsafe-fixes"] + - id: ruff-format - repo: https://github.com/abravalheri/validate-pyproject rev: v0.16 diff --git a/src/app_model/_app.py b/src/app_model/_app.py index 8219ac0..3d342f5 100644 --- a/src/app_model/_app.py +++ b/src/app_model/_app.py @@ -210,8 +210,7 @@ def dispose(self) -> None: self._disposers.pop()[1]() @overload - def register_action(self, action: Action) -> DisposeCallable: - ... + def register_action(self, action: Action) -> DisposeCallable: ... @overload def register_action( @@ -227,8 +226,7 @@ def register_action( menus: list[MenuRuleOrDict] | None = ..., keybindings: list[KeyBindingRuleOrDict] | None = ..., palette: bool = True, - ) -> CommandDecorator: - ... + ) -> CommandDecorator: ... @overload def register_action( @@ -244,8 +242,7 @@ def register_action( menus: list[MenuRuleOrDict] | None = ..., keybindings: list[KeyBindingRuleOrDict] | None = ..., palette: bool = True, - ) -> DisposeCallable: - ... + ) -> DisposeCallable: ... def register_action( self, diff --git a/src/app_model/backends/qt/__init__.py b/src/app_model/backends/qt/__init__.py index 5504870..e81c564 100644 --- a/src/app_model/backends/qt/__init__.py +++ b/src/app_model/backends/qt/__init__.py @@ -1,4 +1,5 @@ """Qt objects for app_model.""" + from ._qaction import QCommandAction, QCommandRuleAction, QMenuItemAction from ._qkeybindingedit import QModelKeyBindingEdit from ._qkeymap import ( diff --git a/src/app_model/expressions/__init__.py b/src/app_model/expressions/__init__.py index b6067d8..aa4544b 100644 --- a/src/app_model/expressions/__init__.py +++ b/src/app_model/expressions/__init__.py @@ -1,4 +1,5 @@ """Abstraction on expressions, and contexts in which to evaluate them.""" + from ._context import Context, app_model_context, create_context, get_context from ._context_keys import ContextKey, ContextKeyInfo, ContextNamespace from ._expressions import ( diff --git a/src/app_model/expressions/_context_keys.py b/src/app_model/expressions/_context_keys.py index d202dc2..83e9eb2 100644 --- a/src/app_model/expressions/_context_keys.py +++ b/src/app_model/expressions/_context_keys.py @@ -73,14 +73,14 @@ class ContextKey(Name, Generic[A, T]): Examples -------- >>> class MyNames(ContextNamespace): - ... some_key = ContextKey(0, 'some description', lambda x: sum(x)) + ... some_key = ContextKey(0, "some description", lambda x: sum(x)) >>> expr = MyNames.some_key > 5 # create an expression using this key these expressions can be later evaluated with some concrete context. - >>> expr.eval({'some_key': 3}) # False - >>> expr.eval({'some_key': 6}) # True + >>> expr.eval({"some_key": 3}) # False + >>> expr.eval({"some_key": 6}) # True """ # This will catalog all ContextKeys that get instantiated, which provides diff --git a/src/app_model/expressions/_expressions.py b/src/app_model/expressions/_expressions.py index 0c9dd83..fdb8d7d 100644 --- a/src/app_model/expressions/_expressions.py +++ b/src/app_model/expressions/_expressions.py @@ -1,4 +1,5 @@ """Provides `Expr` and its subclasses.""" + from __future__ import annotations import ast @@ -128,10 +129,10 @@ class Expr(ast.AST, Generic[T]): Examples -------- - >>> expr = parse_expression('myvar > 5') + >>> expr = parse_expression("myvar > 5") combine expressions with operators - >>> new_expr = expr & parse_expression('v2') + >>> new_expr = expr & parse_expression("v2") nice `repr` >>> new_expr @@ -147,7 +148,7 @@ class Expr(ast.AST, Generic[T]): Name(id='v2', ctx=Load())]) evaluate in some context - >>> new_expr.eval(dict(v2='hello!', myvar=8)) + >>> new_expr.eval(dict(v2="hello!", myvar=8)) 'hello!' serialize @@ -158,13 +159,13 @@ class Expr(ast.AST, Generic[T]): that can be evaluated repeatedly as some underlying context changes. ```python - light_is_green = Name[bool]('light_is_green') - count = Name[int]('count') + light_is_green = Name[bool]("light_is_green") + count = Name[int]("count") is_ready = light_is_green & count > 5 - assert is_ready.eval({'count': 4, 'light_is_green': True}) == False - assert is_ready.eval({'count': 7, 'light_is_green': False}) == False - assert is_ready.eval({'count': 7, 'light_is_green': True}) == True + assert is_ready.eval({"count": 4, "light_is_green": True}) == False + assert is_ready.eval({"count": 7, "light_is_green": False}) == False + assert is_ready.eval({"count": 7, "light_is_green": True}) == True ``` this will also preserve type information: @@ -466,7 +467,7 @@ class ExprTransformer(ast.NodeTransformer): Examples -------- - >>> tree = ast.parse('my_var > 11', mode='eval') + >>> tree = ast.parse("my_var > 11", mode="eval") >>> tree = ExprTransformer().visit(tree) # transformed """ @@ -480,7 +481,6 @@ def visit(self, node: ast.expr) -> Expr: ... @overload def visit(self, node: PassedType) -> PassedType: ... # fmt: on - def visit(self, node: ast.AST) -> ast.AST | None: """Visit a node in the tree, transforming into Expr.""" if isinstance( @@ -523,7 +523,7 @@ class _ExprSerializer(ast.NodeVisitor): Examples -------- - >>> expr = Expr.parse('a + b == c') + >>> expr = Expr.parse("a + b == c") >>> print(expr) 'a + b == c' diff --git a/src/app_model/registries/__init__.py b/src/app_model/registries/__init__.py index 1a0755f..2a10441 100644 --- a/src/app_model/registries/__init__.py +++ b/src/app_model/registries/__init__.py @@ -1,4 +1,5 @@ """App-model registries, such as menus, keybindings, commands.""" + from ._commands_reg import CommandsRegistry from ._keybindings_reg import KeyBindingsRegistry from ._menus_reg import MenusRegistry diff --git a/src/app_model/registries/_register.py b/src/app_model/registries/_register.py index c5584de..246e226 100644 --- a/src/app_model/registries/_register.py +++ b/src/app_model/registries/_register.py @@ -21,8 +21,9 @@ @overload -def register_action(app: Application | str, id_or_action: Action) -> DisposeCallable: - ... +def register_action( + app: Application | str, id_or_action: Action +) -> DisposeCallable: ... @overload @@ -39,8 +40,7 @@ def register_action( menus: list[MenuRuleOrDict] | None = ..., keybindings: list[KeyBindingRuleOrDict] | None = ..., palette: bool = True, -) -> CommandDecorator: - ... +) -> CommandDecorator: ... @overload @@ -57,8 +57,7 @@ def register_action( menus: list[MenuRuleOrDict] | None = ..., keybindings: list[KeyBindingRuleOrDict] | None = ..., palette: bool = True, -) -> DisposeCallable: - ... +) -> DisposeCallable: ... def register_action( @@ -159,10 +158,10 @@ def register_action( from app_model import Application, Action, register_action app = Application.get_or_create("myapp") - action = Action('my_action', title='My Action', callback=lambda: print("hi")) + action = Action("my_action", title="My Action", callback=lambda: print("hi")) register_action(app, action) - app.commands.execute_command('my_action') # prints "hi" + app.commands.execute_command("my_action") # prints "hi" ``` ## Creating a new Action @@ -175,12 +174,12 @@ def register_action( ```python register_action( app, - 'my_action2', - title='My Action2', + "my_action2", + title="My Action2", callback=lambda: print("hello again!"), ) - app.commands.execute_command('my_action2') # prints "hello again!" + app.commands.execute_command("my_action2") # prints "hello again!" ``` ## Usage as a decorator @@ -189,11 +188,12 @@ def register_action( decorate a function as the executor of the command: ```python - @register_action(app, 'my_action3', title='My Action3') + @register_action(app, "my_action3", title="My Action3") def my_action3(): print("hello again, again!") - app.commands.execute_command('my_action3') # prints "hello again, again!" + + app.commands.execute_command("my_action3") # prints "hello again, again!" ``` ## Passing app as a string @@ -206,9 +206,9 @@ def my_action3(): ```python register_action( - 'myapp', # app name instead of Application instance - 'my_action4', - title='My Action4', + "myapp", # app name instead of Application instance + "my_action4", + title="My Action4", callback=lambda: print("hello again, again, again!"), ) ``` diff --git a/src/app_model/types/__init__.py b/src/app_model/types/__init__.py index 1502e92..52e6609 100644 --- a/src/app_model/types/__init__.py +++ b/src/app_model/types/__init__.py @@ -1,4 +1,5 @@ """App-model types.""" + from typing import TYPE_CHECKING from ._action import Action diff --git a/src/app_model/types/_keys/_key_codes.py b/src/app_model/types/_keys/_key_codes.py index 1b5cbab..4c719d4 100644 --- a/src/app_model/types/_keys/_key_codes.py +++ b/src/app_model/types/_keys/_key_codes.py @@ -655,16 +655,13 @@ class KeyMod(IntFlag): WinCtrl = 1 << 8 # meta key on windows, ctrl key on mac @overload # type: ignore - def __or__(self, other: "KeyMod") -> "KeyMod": - ... + def __or__(self, other: "KeyMod") -> "KeyMod": ... @overload - def __or__(self, other: KeyCode) -> "KeyCombo": - ... + def __or__(self, other: KeyCode) -> "KeyCombo": ... @overload - def __or__(self, other: int) -> int: - ... + def __or__(self, other: int) -> int: ... def __or__( self, other: Union["KeyMod", KeyCode, int] diff --git a/src/app_model/types/_utils.py b/src/app_model/types/_utils.py index 459d5ac..f8ebff5 100644 --- a/src/app_model/types/_utils.py +++ b/src/app_model/types/_utils.py @@ -33,7 +33,7 @@ def import_python_name(python_name: str) -> Any: -------- >>> import_python_name("my_package.a_module:some_function") <function some_function at 0x...> - >>> import_python_name('pydantic:BaseModel') + >>> import_python_name("pydantic:BaseModel") <class 'pydantic.main.BaseModel'> """ _validate_python_name(python_name) # shows the best error message diff --git a/tests/test_context/test_context.py b/tests/test_context/test_context.py index ca4ed47..2a40fe3 100644 --- a/tests/test_context/test_context.py +++ b/tests/test_context/test_context.py @@ -10,8 +10,7 @@ def test_create_context(): """You can create a context for any object""" - class T: - ... + class T: ... t = T() tid = id(t)