12
12
from textwrap import dedent
13
13
import _colorize as colorize
14
14
15
- def _clr (color , use_color ):
16
- if use_color :
17
- return color
18
- return ''
19
15
20
- def execute (c , sql , suppress_errors = True , use_color = False ):
16
+ def execute (c , sql , suppress_errors = True ):
21
17
"""Helper that wraps execution of SQL code.
22
18
23
19
This is used both by the REPL and by direct execution from the CLI.
@@ -33,24 +29,23 @@ def execute(c, sql, suppress_errors=True, use_color=False):
33
29
theme = colorize .get_theme (force_color = True ).traceback
34
30
tp = type (e ).__name__
35
31
try :
36
- print (f"{ _clr ( theme .type , use_color ) } { tp } ({ e .sqlite_errorname } )"
37
- f"{ _clr ( theme .reset , use_color ) } : "
38
- f"{ _clr ( theme .message , use_color ) } { e } { _clr ( theme .reset , use_color ) } " , file = sys .stderr )
32
+ print (f"{ theme .type } { tp } ({ e .sqlite_errorname } )"
33
+ f"{ theme .reset } : "
34
+ f"{ theme .message } { e } { theme .reset } " , file = sys .stderr )
39
35
except AttributeError :
40
- print (f"{ _clr ( theme .type , use_color ) } { tp } { _clr ( theme .reset , use_color ) } : "
41
- f"{ _clr ( theme .message , use_color ) } { e } { _clr ( theme .reset , use_color ) } " , file = sys .stderr )
36
+ print (f"{ theme .type } { tp } { theme .reset } : "
37
+ f"{ theme .message } { e } { theme .reset } " , file = sys .stderr )
42
38
if not suppress_errors :
43
39
sys .exit (1 )
44
40
45
41
46
42
class SqliteInteractiveConsole (InteractiveConsole ):
47
43
"""A simple SQLite REPL."""
48
44
49
- def __init__ (self , connection , use_color = False ):
45
+ def __init__ (self , connection ):
50
46
super ().__init__ ()
51
47
self ._con = connection
52
48
self ._cur = connection .cursor ()
53
- self ._use_color = use_color
54
49
55
50
def runsource (self , source , filename = "<input>" , symbol = "single" ):
56
51
"""Override runsource, the core of the InteractiveConsole REPL.
@@ -68,7 +63,7 @@ def runsource(self, source, filename="<input>", symbol="single"):
68
63
case _:
69
64
if not sqlite3 .complete_statement (source ):
70
65
return True
71
- execute (self ._cur , source , use_color = self . _use_color )
66
+ execute (self ._cur , source )
72
67
return False
73
68
74
69
@@ -116,11 +111,10 @@ def main(*args):
116
111
Type ".help" for more information; type ".quit" or { eofkey } to quit.
117
112
""" ).strip ()
118
113
119
- use_color = colorize .can_colorize ()
120
114
theme = colorize .get_theme (force_color = True ).syntax
121
115
122
- sys .ps1 = f"{ _clr ( theme .prompt , use_color ) } sqlite> { _clr ( theme .reset , use_color ) } "
123
- sys .ps2 = f"{ _clr ( theme .prompt , use_color ) } ... { _clr ( theme .reset , use_color ) } "
116
+ sys .ps1 = f"{ theme .prompt } sqlite> { theme .reset } "
117
+ sys .ps2 = f"{ theme .prompt } ... { theme .reset } "
124
118
125
119
con = sqlite3 .connect (args .filename , isolation_level = None )
126
120
try :
@@ -129,7 +123,7 @@ def main(*args):
129
123
execute (con , args .sql , suppress_errors = False )
130
124
else :
131
125
# No SQL provided; start the REPL.
132
- console = SqliteInteractiveConsole (con , use_color )
126
+ console = SqliteInteractiveConsole (con )
133
127
try :
134
128
import readline # noqa: F401
135
129
except ImportError :
0 commit comments