Skip to content

Commit 30eb4ba

Browse files
committed
Make ty: ignore to type: ignore
1 parent 2489a14 commit 30eb4ba

File tree

7 files changed

+22
-19
lines changed

7 files changed

+22
-19
lines changed

litecli/completion_refresher.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import threading
44
from collections import OrderedDict
5-
from typing import Callable
5+
from typing import Callable, cast
66

77
from .packages.special.main import COMMANDS
88
from .sqlcompleter import SQLCompleter
@@ -76,7 +76,9 @@ def _bg_refresh(
7676

7777
# If callbacks is a single function then push it into a list.
7878
if callable(callbacks):
79-
callbacks = [callbacks]
79+
callbacks_list: list[Callable] = [callbacks]
80+
else:
81+
callbacks_list = list(cast(list[Callable], callbacks))
8082

8183
while 1:
8284
for refresher in self.refreshers.values():
@@ -93,7 +95,7 @@ def _bg_refresh(
9395
# break statement.
9496
continue
9597

96-
for callback in callbacks: # ty: ignore[not-iterable]
98+
for callback in callbacks_list:
9799
callback(completer)
98100

99101

litecli/main.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from io import open
1414

1515
try:
16-
from sqlean import OperationalError, sqlite_version # ty: ignore[unresolved-import]
16+
from sqlean import OperationalError, sqlite_version # type: ignore[import-untyped]
1717
except ImportError:
1818
from sqlite3 import OperationalError, sqlite_version
1919
from time import time
@@ -80,7 +80,8 @@ def __init__(
8080
self.key_bindings = c["main"]["key_bindings"]
8181
special.set_favorite_queries(self.config)
8282
self.formatter = TabularOutputFormatter(format_name=c["main"]["table_format"])
83-
self.formatter.litecli = self # ty: ignore[unresolved-attribute]
83+
# self.formatter.litecli = self, ty raises unresolved-attribute, hence use dynamic assignment
84+
setattr(self.formatter, "litecli", self)
8485
self.syntax_style = c["main"]["syntax_style"]
8586
self.less_chatty = c["main"].as_bool("less_chatty")
8687
self.show_bottom_toolbar = c["main"].as_bool("show_bottom_toolbar")
@@ -302,7 +303,7 @@ def get(key: str) -> str | None:
302303

303304
return {x: get(x) for x in keys}
304305

305-
def connect(self, database: str = "") -> None:
306+
def connect(self, database: str | None = "") -> None:
306307
cnf: dict[str, str | None] = {"database": None}
307308

308309
cnf = self.read_my_cnf_files(cnf.keys())
@@ -509,8 +510,8 @@ def one_iteration(text: str | None = None) -> None:
509510
successful = False
510511
start = time()
511512
res = sqlexecute.run(text)
512-
# Ty complains about dynamic assignment. Since the code from the library, ignore the assignment error
513-
self.formatter.query = text # ty: ignore[invalid-assignment]
513+
# Set query attribute dynamically on formatter
514+
setattr(self.formatter, "query", text)
514515
successful = True
515516
special.unset_once_if_written()
516517
# Keep track of whether or not the query is mutating. In case
@@ -523,7 +524,7 @@ def one_iteration(text: str | None = None) -> None:
523524
except KeyboardInterrupt:
524525
try:
525526
# since connection can sqlite3 or sqlean, it's hard to annotate the type for interrupt. so ignore the type hint warning.
526-
sqlexecute.conn.interrupt() # ty: ignore[possibly-missing-attribute]
527+
sqlexecute.conn.interrupt() # type: ignore[attr-defined]
527528
except Exception as e:
528529
self.echo(
529530
"Encountered error while cancelling query: {}".format(e),
@@ -817,7 +818,7 @@ def run_query(self, query: str, new_line: bool = True) -> None:
817818
results = self.sqlexecute.run(query)
818819
for result in results:
819820
title, cur, headers, status = result
820-
self.formatter.query = query # ty: ignore[invalid-assignment]
821+
setattr(self.formatter, "query", query)
821822
output = self.format_output(title, cur, headers)
822823
for line in output:
823824
click.echo(line, nl=new_line)

litecli/packages/special/llm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
LLM_CLI_COMMANDS: list[str] = list(cli.commands.keys())
2727
# Mapping of model_id to None used for completion tree leaves.
2828
# the file name is llm.py and module name is llm, hence ty is complaining that get_models is missing.
29-
MODELS: dict[str, None] = {x.model_id: None for x in llm.get_models()} # ty: ignore[unresolved-attribute]
29+
MODELS: dict[str, None] = {x.model_id: None for x in llm.get_models()} # type: ignore[attr-defined]
3030

3131

3232
def run_external_cmd(

litecli/sqlexecute.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
from typing import Any, Generator, Iterable
66

77
try:
8-
import sqlean as sqlite3
9-
from sqlean import OperationalError # ty: ignore[unresolved-import]
8+
import sqlean as sqlite3 # type: ignore[import-untyped]
9+
from sqlean import OperationalError # type: ignore[import-untyped]
1010

1111
sqlite3.extensions.enable_all()
1212
except ImportError:
@@ -88,7 +88,7 @@ def connect(self, database: str | None = None) -> None:
8888
raise Exception("Path does not exist: {}".format(db_dir_name))
8989

9090
# sqlean exposes the connect method during run-time
91-
conn = sqlite3.connect(database=db_name, isolation_level=None, uri=uri) # ty: ignore[possibly-missing-attribute]
91+
conn = sqlite3.connect(database=db_name, isolation_level=None, uri=uri) # type: ignore[attr-defined]
9292
conn.text_factory = lambda x: x.decode("utf-8", "backslashreplace")
9393
if self.conn:
9494
self.conn.close()

tests/test_main.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,10 +240,10 @@ def stub_terminal_size():
240240

241241
old_func = shutil.get_terminal_size
242242

243-
shutil.get_terminal_size = stub_terminal_size # ty: ignore[invalid-assignment]
243+
shutil.get_terminal_size = stub_terminal_size # type: ignore[assignment]
244244
lc = LiteCli()
245245
assert isinstance(lc.get_reserved_space(), int)
246-
shutil.get_terminal_size = old_func
246+
shutil.get_terminal_size = old_func # type: ignore[assignment]
247247

248248

249249
@dbtest
@@ -330,7 +330,7 @@ def test_get_prompt(mock_datetime):
330330
assert lc.get_prompt(r"\s") == "42"
331331

332332
# 11. Test when dbname is None => (none)
333-
lc.connect(None) # ty: ignore[invalid-argument-type]
333+
lc.connect(None)
334334
# Simulate no DB connection and incorrect argument type
335335
assert lc.get_prompt(r"\d") == "(none)"
336336
assert lc.get_prompt(r"\f") == "(none)"

tests/test_sqlexecute.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from .utils import assert_result_equal, dbtest, is_expanded_output, run, set_expanded_output
88

99
try:
10-
from sqlean import OperationalError, ProgrammingError # ty: ignore[unresolved-import]
10+
from sqlean import OperationalError, ProgrammingError # type: ignore[import-untyped]
1111
except ImportError:
1212
from sqlite3 import OperationalError, ProgrammingError
1313

tests/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222

2323
def db_connection(dbname=":memory:"):
24-
conn = sqlite3.connect(database=dbname, isolation_level=None) # ty: ignore[possibly-missing-attribute]
24+
conn = sqlite3.connect(database=dbname, isolation_level=None) # type: ignore[attr-defined]
2525
return conn
2626

2727

0 commit comments

Comments
 (0)