Skip to content
Closed
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
4 changes: 2 additions & 2 deletions cursorless-talon-dev/src/spoken_form_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import json
from typing import Any, Optional
from typing import Any

from talon import Context, Module, actions, scope, settings

Expand Down Expand Up @@ -115,7 +115,7 @@ def private_cursorless_use_community_snippets(enable: bool): # pyright: ignore

def private_cursorless_spoken_form_test(
phrase: str, # pyright: ignore [reportGeneralTypeIssues]
mockedGetValue_: Optional[str],
mockedGetValue_: str | None,
):
"""Run Cursorless spoken form test"""
global commands_run, mockedGetValue
Expand Down
4 changes: 2 additions & 2 deletions cursorless-talon/src/actions/actions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Callable, Union
from typing import Callable

from talon import Module, actions

Expand Down Expand Up @@ -123,7 +123,7 @@ def cursorless_ide_command(command_id: str, target: CursorlessTarget): # pyrigh

def cursorless_insert(
destination: CursorlessDestination, # pyright: ignore [reportGeneralTypeIssues]
text: Union[str, list[str]],
text: str | list[str],
):
"""Perform text insertion on Cursorless destination"""
if isinstance(text, str):
Expand Down
6 changes: 2 additions & 4 deletions cursorless-talon/src/actions/get_text.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from typing import Optional

from talon import Module, actions

from ..targets.target_types import CursorlessTarget
Expand Down Expand Up @@ -35,8 +33,8 @@ def cursorless_get_text_list(
def cursorless_get_text_action(
target: CursorlessTarget,
*,
show_decorations: Optional[bool] = None,
ensure_single_target: Optional[bool] = None,
show_decorations: bool | None = None,
ensure_single_target: bool | None = None,
) -> list[str]:
"""Get target texts"""
options: dict[str, bool] = {}
Expand Down
4 changes: 1 addition & 3 deletions cursorless-talon/src/actions/homophones.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from typing import Optional

from talon import actions, app

from ..targets.target_types import (
Expand All @@ -23,7 +21,7 @@ def cursorless_homophones_action(target: CursorlessExplicitTarget):


def get_next_homophone(word: str) -> str:
homophones: Optional[list[str]] = actions.user.homophones_get(word)
homophones: list[str] | None = actions.user.homophones_get(word)
if not homophones:
raise LookupError(f"Found no homophones for '{word}'")
index = (homophones.index(word.lower()) + 1) % len(homophones)
Expand Down
6 changes: 3 additions & 3 deletions cursorless-talon/src/cheatsheet/get_list.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import re
import typing
from collections.abc import Mapping, Sequence
from typing import Optional, TypedDict
from typing import TypedDict

from talon import registry

Expand All @@ -20,7 +20,7 @@ class ListItemDescriptor(TypedDict):


def get_list(
name: str, type: str, descriptions: Optional[Mapping[str, str]] = None
name: str, type: str, descriptions: Mapping[str, str] | None = None
) -> list[ListItemDescriptor]:
if descriptions is None:
descriptions = {}
Expand All @@ -31,7 +31,7 @@ def get_list(


def get_lists(
names: Sequence[str], type: str, descriptions: Optional[Mapping[str, str]] = None
names: Sequence[str], type: str, descriptions: Mapping[str, str] | None = None
) -> list[ListItemDescriptor]:
return [item for name in names for item in get_list(name, type, descriptions)]

Expand Down
16 changes: 8 additions & 8 deletions cursorless-talon/src/csv_overrides.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from dataclasses import dataclass
from datetime import datetime
from pathlib import Path
from typing import Callable, Iterable, Optional, TypedDict
from typing import Callable, Iterable, TypedDict

from talon import Context, Module, actions, app, fs, settings

Expand Down Expand Up @@ -60,15 +60,15 @@ def csv_get_normalized_ctx():
def init_csv_and_watch_changes(
filename: str,
default_values: ListToSpokenForms,
handle_new_values: Optional[Callable[[list[SpokenFormEntry]], None]] = None,
handle_new_values: Callable[[list[SpokenFormEntry]], None] | None = None,
*,
extra_ignored_values: Optional[list[str]] = None,
extra_allowed_values: Optional[list[str]] = None,
extra_ignored_values: list[str] | None = None,
extra_allowed_values: list[str] | None = None,
allow_unknown_values: bool = False,
default_list_name: Optional[str] = None,
default_list_name: str | None = None,
headers: list[str] = [SPOKEN_FORM_HEADER, CURSORLESS_IDENTIFIER_HEADER],
no_update_file: bool = False,
pluralize_lists: Optional[list[str]] = None,
pluralize_lists: list[str] | None = None,
):
"""
Initialize a cursorless settings csv, creating it if necessary, and watch
Expand Down Expand Up @@ -229,9 +229,9 @@ def update_dicts(
extra_ignored_values: list[str],
extra_allowed_values: list[str],
allow_unknown_values: bool,
default_list_name: Optional[str],
default_list_name: str | None,
pluralize_lists: list[str],
handle_new_values: Optional[Callable[[list[SpokenFormEntry]], None]],
handle_new_values: Callable[[list[SpokenFormEntry]], None] | None,
):
# Create map with all default values
results_map: dict[str, ResultsListEntry] = {}
Expand Down
10 changes: 5 additions & 5 deletions cursorless-talon/src/private_api/private_api.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Any, Optional, Union
from typing import Any

from talon import Module, actions

Expand Down Expand Up @@ -26,14 +26,14 @@ class TargetBuilderActions:

def cursorless_private_build_primitive_target(
modifiers: list[dict], # pyright: ignore [reportGeneralTypeIssues]
mark: Optional[dict],
mark: dict | None,
) -> PrimitiveTarget:
"""Cursorless private api low-level target builder: Create a primitive target"""
return PrimitiveTarget(mark, modifiers)

def cursorless_private_build_list_target(
elements: list[Union[PrimitiveTarget, RangeTarget]], # pyright: ignore [reportGeneralTypeIssues]
) -> Union[PrimitiveTarget, RangeTarget, ListTarget]:
elements: list[PrimitiveTarget | RangeTarget], # pyright: ignore [reportGeneralTypeIssues]
) -> PrimitiveTarget | RangeTarget | ListTarget:
"""Cursorless private api low-level target builder: Create a list target"""
if len(elements) == 1:
return elements[0]
Expand All @@ -52,7 +52,7 @@ def cursorless_private_target_nothing() -> PrimitiveTarget:
class ActionActions:
def cursorless_private_action_highlight(
target: CursorlessTarget, # pyright: ignore [reportGeneralTypeIssues]
highlightId: Optional[str] = None,
highlightId: str | None = None,
) -> None:
"""Cursorless private api: Highlights a target"""
payload = {
Expand Down
8 changes: 4 additions & 4 deletions cursorless-talon/src/public_api.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Any, Optional
from typing import Any

from talon import Module, actions

Expand Down Expand Up @@ -28,9 +28,9 @@ def cursorless_create_destination(
class CommandActions:
def cursorless_custom_command(
content: str, # pyright: ignore [reportGeneralTypeIssues]
arg1: Optional[Any] = None,
arg2: Optional[Any] = None,
arg3: Optional[Any] = None,
arg1: Any | None = None,
arg2: Any | None = None,
arg3: Any | None = None,
):
"""Cursorless: Run custom parsed command"""
actions.user.private_cursorless_command_and_wait(
Expand Down
12 changes: 6 additions & 6 deletions cursorless-talon/src/snippets.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from dataclasses import dataclass
from typing import Any, Optional, Union
from typing import Any

from talon import Module, actions

Expand Down Expand Up @@ -97,7 +97,7 @@ def insert_snippet(snippet_description: dict, destination: CursorlessDestination
def insert_named_snippet(
name: str,
destination: CursorlessDestination,
substitutions: Optional[dict] = None,
substitutions: dict | None = None,
):
snippet: dict = {
"type": "named",
Expand All @@ -111,7 +111,7 @@ def insert_named_snippet(
def insert_custom_snippet(
body: str,
destination: CursorlessDestination,
scope_types: Optional[list[dict]] = None,
scope_types: list[dict] | None = None,
):
snippet: dict = {
"type": "custom",
Expand Down Expand Up @@ -155,7 +155,7 @@ def cursorless_insert_snippet_by_name(name: str): # pyright: ignore [reportGene
def cursorless_insert_snippet(
body: str, # pyright: ignore [reportGeneralTypeIssues]
destination: CursorlessDestination = ImplicitDestination(),
scope_type: Optional[Union[str, list[str]]] = None,
scope_type: str | list[str] | None = None,
):
"""Cursorless: Insert custom snippet <body>"""
if isinstance(scope_type, str):
Expand Down Expand Up @@ -186,8 +186,8 @@ def cursorless_wrap_with_snippet_by_name(
def cursorless_wrap_with_snippet(
body: str, # pyright: ignore [reportGeneralTypeIssues]
target: CursorlessTarget,
variable_name: Optional[str] = None,
scope: Optional[str] = None,
variable_name: str | None = None,
scope: str | None = None,
):
"""Cursorless: Wrap target with custom snippet <body>"""
snippet_arg: dict[str, Any] = {
Expand Down
4 changes: 1 addition & 3 deletions cursorless-talon/src/targets/destination.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from typing import Union

from talon import Module

from .target_types import ListDestination, PrimitiveDestination
Expand Down Expand Up @@ -29,7 +27,7 @@ def cursorless_insertion_mode(m) -> str:
"({user.cursorless_list_connective} <user.cursorless_insertion_mode> <user.cursorless_target>)*"
)
)
def cursorless_destination(m) -> Union[ListDestination, PrimitiveDestination]:
def cursorless_destination(m) -> ListDestination | PrimitiveDestination:
destinations = [
PrimitiveDestination(insertion_mode, target)
for insertion_mode, target in zip(
Expand Down
3 changes: 1 addition & 2 deletions cursorless-talon/src/targets/range_target.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from dataclasses import dataclass
from typing import Optional

from talon import Module

Expand All @@ -22,7 +21,7 @@ class RangeConnective:
@dataclass
class RangeConnectiveWithType:
connective: RangeConnective
type: Optional[RangeTargetType]
type: RangeTargetType | None


@mod.capture(rule="{user.cursorless_range_connective}")
Expand Down
6 changes: 2 additions & 4 deletions cursorless-talon/src/targets/target.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from typing import Union

from talon import Module

from .target_types import ListTarget, PrimitiveTarget, RangeTarget
Expand All @@ -16,7 +14,7 @@
@mod.capture(
rule=("<user.cursorless_range_target> | <user.cursorless_primitive_target>")
)
def cursorless_primitive_or_range_target(m) -> Union[RangeTarget, PrimitiveTarget]:
def cursorless_primitive_or_range_target(m) -> RangeTarget | PrimitiveTarget:
return m[0]


Expand All @@ -26,7 +24,7 @@ def cursorless_primitive_or_range_target(m) -> Union[RangeTarget, PrimitiveTarge
"({user.cursorless_list_connective} <user.cursorless_primitive_or_range_target>)*"
)
)
def cursorless_target(m) -> Union[ListTarget, RangeTarget, PrimitiveTarget]:
def cursorless_target(m) -> ListTarget | RangeTarget | PrimitiveTarget:
targets = m.cursorless_primitive_or_range_target_list

if len(targets) == 1:
Expand Down
14 changes: 7 additions & 7 deletions cursorless-talon/src/targets/target_types.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from dataclasses import dataclass
from typing import Any, Literal, Optional, Union
from typing import Any, Literal, Union

from ..marks.mark_types import Mark

Expand All @@ -9,8 +9,8 @@
@dataclass
class PrimitiveTarget:
type = "primitive"
mark: Optional[Mark]
modifiers: Optional[list[dict[str, Any]]]
mark: Mark | None
modifiers: list[dict[str, Any]] | None


@dataclass
Expand All @@ -21,17 +21,17 @@ class ImplicitTarget:
@dataclass
class RangeTarget:
type = "range"
anchor: Union[PrimitiveTarget, ImplicitTarget]
anchor: PrimitiveTarget | ImplicitTarget
active: PrimitiveTarget
excludeAnchor: bool
excludeActive: bool
rangeType: Optional[RangeTargetType]
rangeType: RangeTargetType | None


@dataclass
class ListTarget:
type = "list"
elements: list[Union[PrimitiveTarget, RangeTarget]]
elements: list[PrimitiveTarget | RangeTarget]


CursorlessTarget = Union[
Expand All @@ -53,7 +53,7 @@ class ListTarget:
class PrimitiveDestination:
type = "primitive"
insertionMode: InsertionMode
target: Union[ListTarget, RangeTarget, PrimitiveTarget]
target: ListTarget | RangeTarget | PrimitiveTarget


@dataclass
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ extend-exclude = ["vendor", "data/playground/**/*.py"]

[tool.ruff.lint]
select = ["E", "F", "C4", "I001", "UP", "SIM"]
ignore = ["E501", "SIM105", "UP007", "UP035"]
ignore = ["E501", "SIM105", "UP035"]

[tool.pyright]
reportSelfClsParameterName = false
Expand Down
Loading