Skip to content

Commit 603f92f

Browse files
committed
Type hints for packages/special files.
1 parent d62f0f5 commit 603f92f

6 files changed

Lines changed: 114 additions & 85 deletions

File tree

litecli/packages/special/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
# ruff: noqa
22
# mypy: ignore-errors
33

4-
__all__ = []
4+
from __future__ import annotations
55

6+
from typing import Callable, Any
67

7-
def export(defn):
8+
__all__: list[str] = []
9+
10+
11+
def export(defn: Callable[..., Any]) -> Callable[..., Any]:
812
"""Decorator to explicitly mark functions that are exposed in a lib."""
913
globals()[defn.__name__] = defn
1014
__all__.append(defn.__name__)

litecli/packages/special/dbcommands.py

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
# mypy: ignore-errors
22

3-
from __future__ import unicode_literals, print_function
3+
from __future__ import annotations
4+
45
import csv
56
import logging
67
import os
78
import sys
89
import platform
910
import shlex
11+
from typing import Any, List, Optional, Tuple
1012

1113

1214
from litecli import __version__
@@ -24,7 +26,12 @@
2426
case_sensitive=True,
2527
aliases=("\\dt",),
2628
)
27-
def list_tables(cur, arg=None, arg_type=PARSED_QUERY, verbose=False):
29+
def list_tables(
30+
cur: Any,
31+
arg: Optional[str] = None,
32+
arg_type: int = PARSED_QUERY,
33+
verbose: bool = False,
34+
) -> List[Tuple]:
2835
if arg:
2936
args = ("{0}%".format(arg),)
3037
query = """
@@ -66,7 +73,12 @@ def list_tables(cur, arg=None, arg_type=PARSED_QUERY, verbose=False):
6673
case_sensitive=True,
6774
aliases=("\\dv",),
6875
)
69-
def list_views(cur, arg=None, arg_type=PARSED_QUERY, verbose=False):
76+
def list_views(
77+
cur: Any,
78+
arg: Optional[str] = None,
79+
arg_type: int = PARSED_QUERY,
80+
verbose: bool = False,
81+
) -> List[Tuple]:
7082
if arg:
7183
args = ("{0}%".format(arg),)
7284
query = """
@@ -99,7 +111,7 @@ def list_views(cur, arg=None, arg_type=PARSED_QUERY, verbose=False):
99111
arg_type=PARSED_QUERY,
100112
case_sensitive=True,
101113
)
102-
def show_schema(cur, arg=None, **_):
114+
def show_schema(cur: Any, arg: Optional[str] = None, **_: Any) -> List[Tuple]:
103115
if arg:
104116
args = (arg,)
105117
query = """
@@ -135,7 +147,7 @@ def show_schema(cur, arg=None, **_):
135147
case_sensitive=True,
136148
aliases=("\\l",),
137149
)
138-
def list_databases(cur, **_):
150+
def list_databases(cur: Any, **_: Any) -> List[Tuple]:
139151
query = "PRAGMA database_list"
140152
log.debug(query)
141153
cur.execute(query)
@@ -154,7 +166,12 @@ def list_databases(cur, **_):
154166
case_sensitive=True,
155167
aliases=("\\di",),
156168
)
157-
def list_indexes(cur, arg=None, arg_type=PARSED_QUERY, verbose=False):
169+
def list_indexes(
170+
cur: Any,
171+
arg: Optional[str] = None,
172+
arg_type: int = PARSED_QUERY,
173+
verbose: bool = False,
174+
) -> List[Tuple]:
158175
if arg:
159176
args = ("{0}%".format(arg),)
160177
query = """
@@ -189,7 +206,7 @@ def list_indexes(cur, arg=None, arg_type=PARSED_QUERY, verbose=False):
189206
aliases=("\\s",),
190207
case_sensitive=True,
191208
)
192-
def status(cur, **_):
209+
def status(cur: Any, **_: Any) -> List[Tuple]:
193210
# Create output buffers.
194211
footer = []
195212
footer.append("--------------")
@@ -250,7 +267,7 @@ def load_extension(cur, arg, **_):
250267
case_sensitive=True,
251268
aliases=("\\d", "desc"),
252269
)
253-
def describe(cur, arg, **_):
270+
def describe(cur: Any, arg: Optional[str], **_: Any) -> List[Tuple]:
254271
if arg:
255272
query = """
256273
PRAGMA table_info({})
@@ -277,7 +294,7 @@ def describe(cur, arg, **_):
277294
arg_type=PARSED_QUERY,
278295
case_sensitive=True,
279296
)
280-
def import_file(cur, arg=None, **_):
297+
def import_file(cur: Any, arg: Optional[str] = None, **_: Any) -> List[Tuple]:
281298
def split(s):
282299
# this is a modification of shlex.split function, just to make it support '`',
283300
# because table name might contain '`' character.

litecli/packages/special/favoritequeries.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
# -*- coding: utf-8 -*-
22
# mypy: ignore-errors
3-
from __future__ import unicode_literals
3+
from __future__ import annotations
4+
5+
from typing import Any, List, Optional
46

57

68
class FavoriteQueries(object):
7-
section_name = "favorite_queries"
9+
section_name: str = "favorite_queries"
810

911
usage = """
1012
Favorite Queries are a way to save frequently used queries
@@ -35,22 +37,22 @@ class FavoriteQueries(object):
3537
simple: Deleted
3638
"""
3739

38-
def __init__(self, config):
40+
def __init__(self, config: Any) -> None:
3941
self.config = config
4042

41-
def list(self):
43+
def list(self) -> List[Optional[str]]:
4244
return self.config.get(self.section_name, [])
4345

44-
def get(self, name):
46+
def get(self, name: str) -> Optional[str]:
4547
return self.config.get(self.section_name, {}).get(name, None)
4648

47-
def save(self, name, query):
49+
def save(self, name: str, query: str) -> None:
4850
if self.section_name not in self.config:
4951
self.config[self.section_name] = {}
5052
self.config[self.section_name][name] = query
5153
self.config.write()
5254

53-
def delete(self, name):
55+
def delete(self, name: str) -> str:
5456
try:
5557
del self.config[self.section_name][name]
5658
except KeyError:

0 commit comments

Comments
 (0)