kaqing 2.0.55__py3-none-any.whl → 2.0.56__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
adam/sql/sql_completer.py CHANGED
@@ -7,7 +7,10 @@ from sqlparse import tokens as T
7
7
 
8
8
  from adam.sql.term_completer import TermCompleter
9
9
 
10
+ columns = TermCompleter(['id', 'x.', 'y.', 'z.'])
11
+
10
12
  class SqlCompleter(Completer):
13
+
11
14
  def __init__(self, tables: Callable[[], list[str]], dml: str = None, debug = False):
12
15
  super().__init__()
13
16
  self.dml = dml
@@ -45,11 +48,17 @@ class SqlCompleter(Completer):
45
48
  elif state == "select_a_from_":
46
49
  completer = TermCompleter(self.tables())
47
50
  elif state == "select_a_from_x_":
51
+ completer = TermCompleter(['as', 'where', 'inner', 'left', 'right', 'full', 'group', 'limit'])
52
+ elif state == "select_a_from_x_as_x_":
48
53
  completer = TermCompleter(['where', 'inner', 'left', 'right', 'full', 'group', 'limit'])
49
54
  elif state == "select_a_from_x,":
50
55
  completer = TermCompleter(self.tables())
56
+ elif state == "select_a_from_x_as_":
57
+ completer = TermCompleter(['x', 'y', 'z'])
58
+ elif state == "select_a_from_x_as_x,":
59
+ completer = TermCompleter(self.tables())
51
60
  elif state == "select_a_from_x_where_":
52
- completer = TermCompleter(['id'])
61
+ completer = columns
53
62
  elif state == "select_a_from_x_where_id":
54
63
  completer = TermCompleter(['=', '<', '<=', '>', '>=', '<>', 'like'])
55
64
  elif state == "select_a_from_x_where_id=":
@@ -61,9 +70,9 @@ class SqlCompleter(Completer):
61
70
  elif state == "select_a_from_x_group_":
62
71
  completer = TermCompleter(['by'])
63
72
  elif state == "select_a_from_x_group_by_":
64
- completer = TermCompleter(['id'])
73
+ completer = columns
65
74
  elif state == "select_a_from_x_group_by_a,":
66
- completer = TermCompleter(['id'])
75
+ completer = columns
67
76
  elif state == "select_a_from_x_group_by_a_":
68
77
  completer = TermCompleter(['limit'])
69
78
  elif state == "select_a_from_x_group_by_a_limit_":
@@ -77,11 +86,11 @@ class SqlCompleter(Completer):
77
86
  elif state == "select_a_from_x_inner_join_y_":
78
87
  completer = TermCompleter(['on'])
79
88
  elif state == "select_a_from_x_inner_join_y_on_":
80
- completer = TermCompleter(['id'])
89
+ completer = columns
81
90
  elif state == "select_a_from_x_inner_join_y_on_a":
82
91
  completer = TermCompleter(['='])
83
92
  elif state == "select_a_from_x_inner_join_y_on_a=":
84
- completer = TermCompleter(['id'])
93
+ completer = columns
85
94
  elif state == "select_a_from_x_inner_join_y_on_a=b_":
86
95
  completer = TermCompleter(['where', 'group', 'limit'])
87
96
  elif state == "select_a_from_x_left_":
@@ -104,9 +113,9 @@ class SqlCompleter(Completer):
104
113
  elif state == "insert_into_x_":
105
114
  completer = TermCompleter(['values'])
106
115
  elif state == "insert_into_x(":
107
- completer = TermCompleter(['id'])
116
+ completer = columns
108
117
  elif state == "insert_into_x(a,":
109
- completer = TermCompleter(['id'])
118
+ completer = columns
110
119
  elif state == "insert_into_x(a)_":
111
120
  completer = TermCompleter(['values('])
112
121
  elif state == "insert_into_x_values":
@@ -119,7 +128,7 @@ class SqlCompleter(Completer):
119
128
  elif state == "update_x_":
120
129
  completer = TermCompleter(['set'])
121
130
  elif state in ["update_x_set_", "update_x_set_a=v,"]:
122
- completer = TermCompleter(['id'])
131
+ completer = columns
123
132
  elif state == "update_x_set_a":
124
133
  completer = TermCompleter(['='])
125
134
  elif state == "update_x_set_a=":
@@ -127,7 +136,7 @@ class SqlCompleter(Completer):
127
136
  elif state == "update_x_set_a=v_":
128
137
  completer = TermCompleter(['where'])
129
138
  elif state == "update_x_set_a=v_where_":
130
- completer = TermCompleter(['id'])
139
+ completer = columns
131
140
  elif state == "update_x_set_a=v_where_id":
132
141
  completer = TermCompleter(['='])
133
142
  elif state == "update_x_set_a=v_where_id=v_":
@@ -140,7 +149,7 @@ class SqlCompleter(Completer):
140
149
  elif state == "delete_from_x_":
141
150
  completer = TermCompleter(['where'])
142
151
  elif state == "delete_from_x_where_":
143
- completer = TermCompleter(['id'])
152
+ completer = columns
144
153
  elif state == "delete_from_x_where_id":
145
154
  completer = TermCompleter(['='])
146
155
  elif state == "delete_from_x_where_id=":
@@ -215,8 +224,12 @@ class SqlCompleter(Completer):
215
224
  elif state == 'select_a_from_x,':
216
225
  if token.ttype == T.Name:
217
226
  state = 'select_a_from_x'
218
- elif state == 'select_a_from_x_':
219
- if token.ttype == T.Keyword and token.value.lower() == 'where':
227
+ elif state in ['select_a_from_x_', 'select_a_from_x_as_x_']:
228
+ if token.ttype == T.Punctuation and token.value == ',':
229
+ state = 'select_a_from_x,'
230
+ elif token.ttype == T.Keyword and token.value.lower() == 'as':
231
+ state = 'select_a_from_x_as'
232
+ elif token.ttype == T.Keyword and token.value.lower() == 'where':
220
233
  state = 'select_a_from_x_where'
221
234
  elif token.ttype == T.Keyword and token.value.lower() == 'limit':
222
235
  state = 'select_a_from_x_where_id=v_limit'
@@ -240,6 +253,20 @@ class SqlCompleter(Completer):
240
253
  state = 'select_a_from_x_full'
241
254
  elif token.ttype == T.Keyword and token.value.lower() == 'full outer join':
242
255
  state = 'select_a_from_x_inner_join'
256
+ elif state == 'select_a_from_x_as':
257
+ if token.ttype == T.Text.Whitespace:
258
+ state = 'select_a_from_x_as_'
259
+ elif state == 'select_a_from_x_as_':
260
+ if token.ttype == T.Name:
261
+ state = 'select_a_from_x_as_x'
262
+ elif state == 'select_a_from_x_as_x':
263
+ if token.ttype == T.Text.Whitespace:
264
+ state = 'select_a_from_x_as_x_'
265
+ elif token.ttype == T.Punctuation and token.value == ',':
266
+ state = 'select_a_from_x_as_x,'
267
+ elif state == 'select_a_from_x_as_x,':
268
+ if token.ttype == T.Name:
269
+ state = 'select_a_from_x'
243
270
  elif state == 'select_a_from_x_where':
244
271
  if token.ttype == T.Text.Whitespace:
245
272
  state = 'select_a_from_x_where_'
@@ -46,15 +46,22 @@ class TermCompleter(WordCompleter):
46
46
  if self.ignore_case:
47
47
  word = word.lower()
48
48
 
49
- if word_before_cursor in ['(', ',', '=']:
50
- return True
51
-
52
49
  if self.match_middle:
53
50
  return word_before_cursor in word
54
51
  else:
55
52
  return word.startswith(word_before_cursor)
56
53
 
57
54
  for a in words:
55
+ if word_before_cursor in ['(', ',', '=']:
56
+ display = self.display_dict.get(a, a)
57
+ display_meta = self.meta_dict.get(a, "")
58
+ yield Completion(
59
+ a,
60
+ 0,
61
+ display=display,
62
+ display_meta=display_meta,
63
+ )
64
+
58
65
  if word_matches(a):
59
66
  display = self.display_dict.get(a, a)
60
67
  display_meta = self.meta_dict.get(a, "")
adam/version.py CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding: utf-8 -*-
3
3
 
4
- __version__ = "2.0.55" #: the working version
4
+ __version__ = "2.0.56" #: the working version
5
5
  __release__ = "1.0.0" #: the release version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 2.0.55
3
+ Version: 2.0.56
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -14,7 +14,7 @@ adam/repl_commands.py,sha256=WA90Rl27Juctzr3U3kfCDk5N-oYMKlfWbZeafUgk7k0,4723
14
14
  adam/repl_session.py,sha256=uIogcvWBh7wd8QQ-p_JgLsyJ8YJgINw5vOd6JIsd7Vo,472
15
15
  adam/repl_state.py,sha256=591d7gV6uQSFtm7IWdlIYAHjfAzs9bdvIkwlIAeKddE,7540
16
16
  adam/utils.py,sha256=2DoWsrcaioFFH0-RjT30qelVRPUJqCGTfz_ucfE7F8g,7406
17
- adam/version.py,sha256=1igvrn67AjTOcviySrpDWebyfe7wHN1EWQt56kFGM58,139
17
+ adam/version.py,sha256=_cSpSCO9CTcCYlbRGHCj0bLXdSaXLCYsyqeNu1RWB_s,139
18
18
  adam/checks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  adam/checks/check.py,sha256=Qopr3huYcMu2bzQgb99dEUYjFzkjKHRI76S6KA9b9Rk,702
20
20
  adam/checks/check_context.py,sha256=FEHkQ32jY1EDopQ2uYWqy9v7aEEX1orLpJWhopwAlh4,402
@@ -164,9 +164,8 @@ adam/k8s_utils/services.py,sha256=EOJJGACVbbRvu5T3rMKqIJqgYic1_MSJ17EA0TJ6UOk,31
164
164
  adam/k8s_utils/statefulsets.py,sha256=hiBOmJZ3KTI6_naAFzNoW1NoYnnBG35BZ7RMdPhNC6o,4664
165
165
  adam/k8s_utils/volumes.py,sha256=RIBmlOSWM3V3QVXLCFT0owVOyh4rGG1ETp521a-6ndo,1137
166
166
  adam/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
- adam/sql/sql_completer.py,sha256=rl7UlL5kthXOmcPBK3LFD1H0S2yDZMIQPbov1x8Wo9w,29819
168
- adam/sql/sql_utils.py,sha256=MLoxB9h22WZiANu0SZzmBJcY2gtb6f_D4jnoJEjLgPc,171
169
- adam/sql/term_completer.py,sha256=O-sUxFVc1DJmPQCdT-XPK2SSkUe4AL1dw8ZPXXicATY,2273
167
+ adam/sql/sql_completer.py,sha256=VMMM29z6AnUCYIM6VThdggFkiz8elQEI96EM8FO6RLo,31170
168
+ adam/sql/term_completer.py,sha256=VCCMPUzvh_9lwIOwqQmeijM0V2JPADkBbNV4HQIqDCw,2538
170
169
  adam/sso/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
171
170
  adam/sso/authenticator.py,sha256=BCm16L9zf5aLU47-sTCnudn2zLPwd8M2wwRminJfsqw,615
172
171
  adam/sso/authn_ad.py,sha256=fDW8UR3WWykny5Awa5dQjjBUSFzIDz4aMn-lwXoABl8,5857
@@ -177,8 +176,8 @@ adam/sso/idp.py,sha256=fvcwUw_URTgsO6ySaqTIw0zQT2qRO1IPSGhf6rPtybo,5804
177
176
  adam/sso/idp_login.py,sha256=QAtCUeDTVWliJy40RK_oac8Vgybr13xH8wzeBoxPaa8,1754
178
177
  adam/sso/idp_session.py,sha256=9BUHNRf70u4rVKrVY1HKPOEmOviXvkjam8WJxmXSKIM,1735
179
178
  adam/sso/sso_config.py,sha256=5N8WZgIJQBtHUy585XLRWKjpU87_v6QluyNK9E27D5s,2459
180
- kaqing-2.0.55.dist-info/METADATA,sha256=3kKBRQ9yQ_KbdoGuD42fhkxDprEvWUEsRe5UO67FhvA,132
181
- kaqing-2.0.55.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
182
- kaqing-2.0.55.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
183
- kaqing-2.0.55.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
184
- kaqing-2.0.55.dist-info/RECORD,,
179
+ kaqing-2.0.56.dist-info/METADATA,sha256=50Y7sPo_HmrQyt5xK0N5IrJHVr-bikpprnZsuWjsLyo,132
180
+ kaqing-2.0.56.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
181
+ kaqing-2.0.56.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
182
+ kaqing-2.0.56.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
183
+ kaqing-2.0.56.dist-info/RECORD,,
adam/sql/sql_utils.py DELETED
@@ -1,5 +0,0 @@
1
- import re
2
-
3
- def safe_terms(text: str):
4
- tokens = re.findall(r'"[^"]+"|\b\w+\b|\S', text)
5
- return tokens, len(tokens) > 1 or text.startswith(' ') or text.endswith(' ')