kaqing 2.0.68__py3-none-any.whl → 2.0.70__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
@@ -194,10 +194,10 @@ class SqlCompleter(Completer):
194
194
  'select_a_comma_ > name|* > select_a ^ *',
195
195
  'select_a_ > from > select_from ^ from',
196
196
  'select_from_ > name > select_from_x ^ (select,tables',
197
- '- > ( > select_from_x_lp_',
197
+ '- > { > select_from_x_lp_',
198
198
  'select_from_x_lp_ > select > select',
199
199
  'select_from_x > , > select_from_x_comma_',
200
- '- > ) > select_from_x_rp_',
200
+ '- > } > select_from_x_rp_',
201
201
  'select_from_x_rp__ > as > select_from_x_as ^ as',
202
202
  'select_from_x_comma_ > name > select_from_x ^ tables',
203
203
  'select_from_x_ ^ as,where,inner join,left outer join,right outer join,full outer join,group by,limit',
@@ -219,6 +219,7 @@ class SqlCompleter(Completer):
219
219
  '- > full outer join > select_join',
220
220
  'select_from_x_as_ > name > select_from_x_as_x ^ x,y,z',
221
221
  'select_from_x_as_x > , > select_from_x_as_x_comma_',
222
+ '- > } > select_where_sc_re_',
222
223
  'select_from_x_as_x_comma_ > name > select_from_x ^ tables',
223
224
  'select_where_ > name > select_where_a ^ id,x.,y.,z.',
224
225
  'select_where_a > comparison > select_where_a_op ^ =,<,<=,>,>=,<>,like,not,in',
@@ -237,7 +238,15 @@ class SqlCompleter(Completer):
237
238
  'select_where_a_not_op > name|single|num > select_where_sc ^ single',
238
239
  'select_where_a_op > name|single|num > select_where_sc ^ single',
239
240
  'select_where_sc > ) > select_where_sc_rp_',
240
- 'select_where_sc_rp__ > as > select_from_x_as ^ as',
241
+ 'select_where_sc > } > select_where_sc_re_',
242
+ 'select_where_sc_re__ > as > select_from_x_as ^ as',
243
+ 'select_where_sc_rp_ > } > select_where_sc_re_',
244
+ 'select_where_sc_rp__ > as > select_from_x_as ^ and,or,group by,limit',
245
+ '- > and|or > select_where',
246
+ '- > group > select_group',
247
+ '- > group by > select_group_by',
248
+ '- > limit > select_where_sc_limit',
249
+ '- > } > select_where_sc_re_',
241
250
  'select_where_sc_ > and|or > select_where ^ and,or,group by,limit',
242
251
  '- > group > select_group',
243
252
  '- > group by > select_group_by',
@@ -245,6 +254,7 @@ class SqlCompleter(Completer):
245
254
  'select_group_ > by > select_group_by ^ by',
246
255
  'select_group_by_ > name > select_group_by_a ^ id,x.,y.,z.',
247
256
  'select_group_by_a > , > select_group_by_a_comma_',
257
+ '- > } > select_where_sc_re_',
248
258
  'select_group_by_a_comma_ > name > select_group_by_a ^ id,x.,y.,z.',
249
259
  'select_group_by_a_ > limit > select_where_sc_limit ^ limit',
250
260
  'select_where_sc_limit_ > num > select_where_sc_limit_num ^ 1',
@@ -269,6 +279,7 @@ class SqlCompleter(Completer):
269
279
  'select_x_join_y_on_a > comparison > select_x_join_y_on_a_op ^ =',
270
280
  'select_x_join_y_on_a_op > name > select_x_join_y_on_a_op_b ^ id,x.,y.,z.',
271
281
  'select_x_join_y_on_a_op_b > _ > select_from_x_as_x_',
282
+ '- > } > select_where_sc_re_',
272
283
 
273
284
 
274
285
  ' > insert > insert',
@@ -392,7 +403,7 @@ class SqlCompleter(Completer):
392
403
 
393
404
  return (machine, completers)
394
405
 
395
- def traverse_tokens(self, text: str, tokens: list[Token], state: str = '', indent=0):
406
+ def traverse_tokens(self, text: str, tokens: list[Token], state: str = '', indent=0, lp_level = 0, lp_levels_to_match: set = set()):
396
407
  keywords = [
397
408
  'select', 'from', 'as', 'not', 'in', 'where',
398
409
  'and', 'or', 'group', 'by', 'group by', 'limit',
@@ -406,6 +417,20 @@ class SqlCompleter(Completer):
406
417
  'delete'
407
418
  ]
408
419
 
420
+ def is_opening_embrace():
421
+ if f'{state} > ' + '{' in self.machine[0]:
422
+ lp_levels_to_match.add(lp_level)
423
+ return '{'
424
+
425
+ return '('
426
+
427
+ def is_closing_embrace():
428
+ if f'{state} > ' + '}' in self.machine[0] and lp_level in lp_levels_to_match:
429
+ lp_levels_to_match.remove(lp_level)
430
+ return '}'
431
+
432
+ return ')'
433
+
409
434
  for token in tokens:
410
435
  if self.debug:
411
436
  if token.ttype == T.Whitespace:
@@ -422,7 +447,7 @@ class SqlCompleter(Completer):
422
447
  # print(" " * indent + f"Token: {token.value}, Type: {token.ttype}@{token.ttype.__class__}")
423
448
 
424
449
  if token.is_group:
425
- state = self.traverse_tokens(text, token.tokens, state, indent + 1)
450
+ state = self.traverse_tokens(text, token.tokens, state, indent + 1, lp_level)
426
451
  else:
427
452
  it = ''
428
453
  if (t := token.value.lower()) in keywords:
@@ -441,9 +466,12 @@ class SqlCompleter(Completer):
441
466
  if token.value == ',':
442
467
  it = ','
443
468
  elif token.value == '(':
444
- it = '('
469
+ it = is_opening_embrace()
470
+ lp_level += 1
445
471
  elif token.value == ')':
446
- it = ')'
472
+ lp_level -= 1
473
+ it = is_closing_embrace()
474
+
447
475
  elif token.ttype == T.Operator.Comparison:
448
476
  it = 'comparison'
449
477
 
@@ -1,6 +1,6 @@
1
1
  from typing import Callable, Iterable, List, Mapping, Optional, Pattern, Union
2
2
 
3
- from prompt_toolkit.completion import CompleteEvent, Completer, Completion, WordCompleter
3
+ from prompt_toolkit.completion import CompleteEvent, Completion, WordCompleter
4
4
  from prompt_toolkit.document import Document
5
5
  from prompt_toolkit.formatted_text import AnyFormattedText
6
6
 
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.68" #: the working version
4
+ __version__ = "2.0.70" #: 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.68
3
+ Version: 2.0.70
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=nZO5CucSIGz68f4JreadGphRzMXPUzkTn-4XcoJJOug,8643
16
16
  adam/utils.py,sha256=2DoWsrcaioFFH0-RjT30qelVRPUJqCGTfz_ucfE7F8g,7406
17
- adam/version.py,sha256=VZJ1V0tn0r8qo89qxufoxCjB67gaQg6kLNEAEkIKX5g,139
17
+ adam/version.py,sha256=yckbK4TX1cs1x8SSakRP16TVFCz-kWBTek3kfgTkIHA,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,8 +164,8 @@ adam/k8s_utils/services.py,sha256=EOJJGACVbbRvu5T3rMKqIJqgYic1_MSJ17EA0TJ6UOk,31
164
164
  adam/k8s_utils/statefulsets.py,sha256=5g7KxGRHgEewT8rnZneDTaJDylUf-dHH2edWJEoorr8,4667
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=hjUzwMUrfqPAO8vufC74f9PiBuuvu3_FNVd5L2--xAQ,25133
168
- adam/sql/term_completer.py,sha256=17fuRyW2Uk-CoKySAh0S_UEzRQu9a-NxWII8jQnpAPU,2550
167
+ adam/sql/sql_completer.py,sha256=VQfSPgNenkzIPKdER2p7NkU-82yyM-TDiSPHs_NkSJA,26705
168
+ adam/sql/term_completer.py,sha256=bNnHAVf9NZl52xS_BQpikbOK39gDBJADnT9gSvG0iqI,2539
169
169
  adam/sso/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
170
  adam/sso/authenticator.py,sha256=BCm16L9zf5aLU47-sTCnudn2zLPwd8M2wwRminJfsqw,615
171
171
  adam/sso/authn_ad.py,sha256=fDW8UR3WWykny5Awa5dQjjBUSFzIDz4aMn-lwXoABl8,5857
@@ -176,8 +176,8 @@ adam/sso/idp.py,sha256=fvcwUw_URTgsO6ySaqTIw0zQT2qRO1IPSGhf6rPtybo,5804
176
176
  adam/sso/idp_login.py,sha256=QAtCUeDTVWliJy40RK_oac8Vgybr13xH8wzeBoxPaa8,1754
177
177
  adam/sso/idp_session.py,sha256=9BUHNRf70u4rVKrVY1HKPOEmOviXvkjam8WJxmXSKIM,1735
178
178
  adam/sso/sso_config.py,sha256=5N8WZgIJQBtHUy585XLRWKjpU87_v6QluyNK9E27D5s,2459
179
- kaqing-2.0.68.dist-info/METADATA,sha256=3pgPlx0IZRVQJ24RUGpkCJrmXEbGedBmYAcUCXPw-cc,132
180
- kaqing-2.0.68.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
181
- kaqing-2.0.68.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
182
- kaqing-2.0.68.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
183
- kaqing-2.0.68.dist-info/RECORD,,
179
+ kaqing-2.0.70.dist-info/METADATA,sha256=CXfFNyxJYztdM8ZE6MW7MSPJ6LmxM63_fNGPBAH4THU,132
180
+ kaqing-2.0.70.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
181
+ kaqing-2.0.70.dist-info/entry_points.txt,sha256=SkzhuQJUWsXOzHeZ5TgQ2c3_g53UGK23zzJU_JTZOZI,39
182
+ kaqing-2.0.70.dist-info/top_level.txt,sha256=8_2PZkwBb-xDcnc8a2rAbQeJhXKXskc7zTP7pSPa1fw,5
183
+ kaqing-2.0.70.dist-info/RECORD,,