kaqing 2.0.61__tar.gz → 2.0.62__tar.gz

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.
Files changed (188) hide show
  1. {kaqing-2.0.61 → kaqing-2.0.62}/PKG-INFO +1 -1
  2. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sql/sql_completer.py +95 -200
  3. kaqing-2.0.62/adam/version.py +5 -0
  4. {kaqing-2.0.61 → kaqing-2.0.62}/kaqing.egg-info/PKG-INFO +1 -1
  5. {kaqing-2.0.61 → kaqing-2.0.62}/setup.py +1 -1
  6. kaqing-2.0.61/adam/version.py +0 -5
  7. {kaqing-2.0.61 → kaqing-2.0.62}/README +0 -0
  8. {kaqing-2.0.61 → kaqing-2.0.62}/adam/__init__.py +0 -0
  9. {kaqing-2.0.61 → kaqing-2.0.62}/adam/app_session.py +0 -0
  10. {kaqing-2.0.61 → kaqing-2.0.62}/adam/apps.py +0 -0
  11. {kaqing-2.0.61 → kaqing-2.0.62}/adam/batch.py +0 -0
  12. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/__init__.py +0 -0
  13. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/check.py +0 -0
  14. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/check_context.py +0 -0
  15. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/check_result.py +0 -0
  16. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/check_utils.py +0 -0
  17. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/compactionstats.py +0 -0
  18. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/cpu.py +0 -0
  19. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/disk.py +0 -0
  20. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/gossip.py +0 -0
  21. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/issue.py +0 -0
  22. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/memory.py +0 -0
  23. {kaqing-2.0.61 → kaqing-2.0.62}/adam/checks/status.py +0 -0
  24. {kaqing-2.0.61 → kaqing-2.0.62}/adam/cli.py +0 -0
  25. {kaqing-2.0.61 → kaqing-2.0.62}/adam/cli_group.py +0 -0
  26. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/__init__.py +0 -0
  27. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/column.py +0 -0
  28. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/columns.py +0 -0
  29. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/compactions.py +0 -0
  30. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/cpu.py +0 -0
  31. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/dir_data.py +0 -0
  32. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/dir_snapshots.py +0 -0
  33. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/gossip.py +0 -0
  34. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/host_id.py +0 -0
  35. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/memory.py +0 -0
  36. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/node_address.py +0 -0
  37. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/node_load.py +0 -0
  38. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/node_owns.py +0 -0
  39. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/node_status.py +0 -0
  40. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/node_tokens.py +0 -0
  41. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/node_utils.py +0 -0
  42. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/pod_name.py +0 -0
  43. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/volume_cassandra.py +0 -0
  44. {kaqing-2.0.61 → kaqing-2.0.62}/adam/columns/volume_root.py +0 -0
  45. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/__init__.py +0 -0
  46. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/alter_tables.py +0 -0
  47. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/app.py +0 -0
  48. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/app_ping.py +0 -0
  49. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/bash.py +0 -0
  50. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/cd.py +0 -0
  51. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/check.py +0 -0
  52. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/cli_commands.py +0 -0
  53. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/command.py +0 -0
  54. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/command_helpers.py +0 -0
  55. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/commands_utils.py +0 -0
  56. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/cp.py +0 -0
  57. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/cql/__init__.py +0 -0
  58. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/cql/cql_completions.py +0 -0
  59. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/cql/cql_table_completer.py +0 -0
  60. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/cql/cql_utils.py +0 -0
  61. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/cql/cqlsh.py +0 -0
  62. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/__init__.py +0 -0
  63. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/code_start.py +0 -0
  64. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/code_stop.py +0 -0
  65. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/code_utils.py +0 -0
  66. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/deploy.py +0 -0
  67. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/deploy_frontend.py +0 -0
  68. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/deploy_pg_agent.py +0 -0
  69. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/deploy_pod.py +0 -0
  70. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/deploy_utils.py +0 -0
  71. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/undeploy.py +0 -0
  72. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/undeploy_frontend.py +0 -0
  73. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/undeploy_pg_agent.py +0 -0
  74. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/deploy/undeploy_pod.py +0 -0
  75. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/describe/__init__.py +0 -0
  76. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/describe/describe.py +0 -0
  77. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/describe/describe_keyspace.py +0 -0
  78. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/describe/describe_keyspaces.py +0 -0
  79. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/describe/describe_table.py +0 -0
  80. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/describe/describe_tables.py +0 -0
  81. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/devices.py +0 -0
  82. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/exit.py +0 -0
  83. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/help.py +0 -0
  84. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/issues.py +0 -0
  85. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/login.py +0 -0
  86. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/logs.py +0 -0
  87. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/ls.py +0 -0
  88. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/medusa/__init__.py +0 -0
  89. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/medusa/medusa.py +0 -0
  90. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/medusa/medusa_backup.py +0 -0
  91. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/medusa/medusa_restore.py +0 -0
  92. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/medusa/medusa_show_backupjobs.py +0 -0
  93. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/medusa/medusa_show_restorejobs.py +0 -0
  94. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/nodetool.py +0 -0
  95. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/nodetool_commands.py +0 -0
  96. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/param_get.py +0 -0
  97. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/param_set.py +0 -0
  98. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/postgres/__init__.py +0 -0
  99. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/postgres/postgres.py +0 -0
  100. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/postgres/postgres_ls.py +0 -0
  101. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/postgres/postgres_preview.py +0 -0
  102. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/postgres/postgres_session.py +0 -0
  103. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/postgres/postgres_utils.py +0 -0
  104. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/postgres/psql_completions.py +0 -0
  105. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/postgres/psql_table_completer.py +0 -0
  106. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/preview_table.py +0 -0
  107. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/pwd.py +0 -0
  108. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/__init__.py +0 -0
  109. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper.py +0 -0
  110. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_forward.py +0 -0
  111. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_forward_stop.py +0 -0
  112. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_restart.py +0 -0
  113. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_run_abort.py +0 -0
  114. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_runs.py +0 -0
  115. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_runs_abort.py +0 -0
  116. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_schedule_activate.py +0 -0
  117. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_schedule_start.py +0 -0
  118. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_schedule_stop.py +0 -0
  119. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_schedules.py +0 -0
  120. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_session.py +0 -0
  121. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/reaper/reaper_status.py +0 -0
  122. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/repair/__init__.py +0 -0
  123. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/repair/repair.py +0 -0
  124. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/repair/repair_log.py +0 -0
  125. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/repair/repair_run.py +0 -0
  126. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/repair/repair_scan.py +0 -0
  127. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/repair/repair_stop.py +0 -0
  128. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/report.py +0 -0
  129. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/restart.py +0 -0
  130. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/rollout.py +0 -0
  131. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/shell.py +0 -0
  132. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/__init__.py +0 -0
  133. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show.py +0 -0
  134. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_adam.py +0 -0
  135. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_app_actions.py +0 -0
  136. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_app_id.py +0 -0
  137. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_app_queues.py +0 -0
  138. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_cassandra_status.py +0 -0
  139. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_cassandra_version.py +0 -0
  140. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_commands.py +0 -0
  141. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_login.py +0 -0
  142. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_params.py +0 -0
  143. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_processes.py +0 -0
  144. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_repairs.py +0 -0
  145. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/show/show_storage.py +0 -0
  146. {kaqing-2.0.61 → kaqing-2.0.62}/adam/commands/watch.py +0 -0
  147. {kaqing-2.0.61 → kaqing-2.0.62}/adam/config.py +0 -0
  148. {kaqing-2.0.61 → kaqing-2.0.62}/adam/embedded_apps.py +0 -0
  149. {kaqing-2.0.61 → kaqing-2.0.62}/adam/embedded_params.py +0 -0
  150. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/__init__.py +0 -0
  151. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/cassandra_clusters.py +0 -0
  152. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/cassandra_nodes.py +0 -0
  153. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/config_maps.py +0 -0
  154. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/custom_resources.py +0 -0
  155. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/deployment.py +0 -0
  156. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/ingresses.py +0 -0
  157. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/jobs.py +0 -0
  158. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/kube_context.py +0 -0
  159. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/pods.py +0 -0
  160. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/secrets.py +0 -0
  161. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/service_accounts.py +0 -0
  162. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/services.py +0 -0
  163. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/statefulsets.py +0 -0
  164. {kaqing-2.0.61 → kaqing-2.0.62}/adam/k8s_utils/volumes.py +0 -0
  165. {kaqing-2.0.61 → kaqing-2.0.62}/adam/log.py +0 -0
  166. {kaqing-2.0.61 → kaqing-2.0.62}/adam/pod_exec_result.py +0 -0
  167. {kaqing-2.0.61 → kaqing-2.0.62}/adam/repl.py +0 -0
  168. {kaqing-2.0.61 → kaqing-2.0.62}/adam/repl_commands.py +0 -0
  169. {kaqing-2.0.61 → kaqing-2.0.62}/adam/repl_session.py +0 -0
  170. {kaqing-2.0.61 → kaqing-2.0.62}/adam/repl_state.py +0 -0
  171. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sql/__init__.py +0 -0
  172. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sql/term_completer.py +0 -0
  173. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/__init__.py +0 -0
  174. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/authenticator.py +0 -0
  175. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/authn_ad.py +0 -0
  176. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/authn_okta.py +0 -0
  177. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/cred_cache.py +0 -0
  178. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/id_token.py +0 -0
  179. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/idp.py +0 -0
  180. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/idp_login.py +0 -0
  181. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/idp_session.py +0 -0
  182. {kaqing-2.0.61 → kaqing-2.0.62}/adam/sso/sso_config.py +0 -0
  183. {kaqing-2.0.61 → kaqing-2.0.62}/adam/utils.py +0 -0
  184. {kaqing-2.0.61 → kaqing-2.0.62}/kaqing.egg-info/SOURCES.txt +0 -0
  185. {kaqing-2.0.61 → kaqing-2.0.62}/kaqing.egg-info/dependency_links.txt +0 -0
  186. {kaqing-2.0.61 → kaqing-2.0.62}/kaqing.egg-info/entry_points.txt +0 -0
  187. {kaqing-2.0.61 → kaqing-2.0.62}/kaqing.egg-info/top_level.txt +0 -0
  188. {kaqing-2.0.61 → kaqing-2.0.62}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 2.0.61
3
+ Version: 2.0.62
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -151,7 +151,7 @@ class SqlCompleter(Completer):
151
151
  state = f'{self.dml}_'
152
152
  text = f'{self.dml} {text}'
153
153
 
154
- completer = None
154
+ completer: Completer = None
155
155
  stmts = sqlparse.parse(text)
156
156
  if not stmts:
157
157
  completer = TermCompleter(['select', 'insert', 'delete', 'update'])
@@ -160,136 +160,27 @@ class SqlCompleter(Completer):
160
160
  state = self.traverse_tokens(text, statement.tokens)
161
161
  if self.debug:
162
162
  print('\n =>', state)
163
+
163
164
  if state == '':
164
165
  completer = TermCompleter(['select', 'insert', 'delete', 'update'])
165
166
 
166
- elif state == 'select_':
167
- completer = TermCompleter(['*'])
168
- elif state == 'select_a':
169
- completer = TermCompleter(['from'])
170
- elif state == 'select_a_comma_':
171
- completer = TermCompleter(['*'])
172
- elif state == 'select_a_':
173
- completer = TermCompleter(['from'])
174
- elif state == "select_from_":
175
- completer = TermCompleter(self.tables())
176
- elif state == "select_from_x_":
177
- completer = TermCompleter(['as', 'where', 'inner', 'left', 'right', 'full', 'group', 'limit'])
178
- elif state == "select_from_x_as_x_":
179
- completer = TermCompleter(['where', 'inner', 'left', 'right', 'full', 'group', 'limit'])
180
- elif state == "select_from_x_comma_":
181
- completer = TermCompleter(self.tables())
182
- elif state == "select_from_x_as_":
183
- completer = TermCompleter(['x', 'y', 'z'])
184
- elif state == "select_from_x_as_x_comma_":
185
- completer = TermCompleter(self.tables())
186
- elif state == "select_where_":
187
- completer = columns
188
- elif state in ["select_where_a", "select_where_a_"]:
189
- completer = TermCompleter(['=', '<', '<=', '>', '>=', '<>', 'like', 'not', 'in'])
190
- elif state == "select_where_a_not_":
191
- completer = TermCompleter(['like', 'in'])
192
- elif state == "select_where_a_in":
193
- completer = TermCompleter(['('])
194
- elif state == "select_where_a_in_lp_":
195
- completer = TermCompleter(["'", ')'])
196
- elif state == "select_where_a_in_lp_a_comma_":
197
- completer = TermCompleter(["'"])
198
- elif state == "select_where_a_op":
199
- completer = TermCompleter(["'"])
200
- elif state == "select_where_sc_":
201
- completer = TermCompleter(['and', 'or', 'group', 'limit'])
202
- elif state == "select_where_sc_limit_":
203
- completer = TermCompleter(['1'])
204
- elif state == "select_group_":
205
- completer = TermCompleter(['by'])
206
- elif state == "select_group_by_":
207
- completer = columns
208
- elif state == "select_group_by_a_comma_":
209
- completer = columns
210
- elif state == "select_group_by_a_":
211
- completer = TermCompleter(['limit'])
212
- elif state == "select_group_by_a_limit_":
213
- completer = TermCompleter(['1'])
214
- elif state == "select_from_x_inner_":
215
- completer = TermCompleter(['join'])
216
- elif state in ["select_join_", "select_from_x_left_join_"]:
217
- completer = TermCompleter(self.tables())
218
- elif state == "select_x_join_y,":
219
- completer = TermCompleter(self.tables())
220
- elif state == "select_x_join_y_":
221
- completer = TermCompleter(['on'])
222
- elif state == "select_x_join_y_on_":
223
- completer = columns
224
- elif state == "select_x_join_y_on_a":
225
- completer = TermCompleter(['='])
226
- elif state == "select_x_join_y_on_a_op":
227
- completer = columns
228
- elif state == "select_x_join_y_on_a_op_b_":
229
- completer = TermCompleter(['where', 'group', 'limit'])
230
- elif state == "select_from_x_left_":
231
- completer = TermCompleter(['outer', 'join'])
232
- elif state == "select_from_x_left_outer_":
233
- completer = TermCompleter(['join'])
234
- elif state == "select_from_x_right_":
235
- completer = TermCompleter(['outer', 'join'])
236
- elif state == "select_from_x_right_outer_":
237
- completer = TermCompleter(['join'])
238
- elif state == "select_from_x_full_":
239
- completer = TermCompleter(['outer'])
240
- elif state == "select_from_x_full_outer_":
241
- completer = TermCompleter(['join'])
242
-
243
- elif state == "insert_":
244
- completer = TermCompleter(['into'])
245
- elif state == "insert_into_":
246
- completer = TermCompleter(self.tables())
247
- elif state == "insert_into_x_":
248
- completer = TermCompleter(['values(', 'select'])
249
- elif state == "insert_into_x_lp_":
250
- completer = columns
251
- elif state == "insert_into_x_lp_a_comma_":
252
- completer = columns
253
- elif state == "insert_into_x_lp_a_rp__":
254
- completer = TermCompleter(['values(', 'select'])
255
- elif state == "insert_values":
256
- completer = TermCompleter(['('])
257
- elif state == "insert_values_lp_":
258
- completer = TermCompleter(["'"])
259
-
260
- elif state == "update_":
261
- completer = TermCompleter(self.tables())
262
- elif state == "update_x_":
263
- completer = TermCompleter(['set'])
264
- elif state in ["update_set_", "update_set_sc_comma_"]:
265
- completer = columns
266
- elif state == "update_set_a":
267
- completer = TermCompleter(['='])
268
- elif state == "update_set_a_op":
269
- completer = TermCompleter(["'"])
270
- elif state == "update_set_sc_":
271
- completer = TermCompleter(['where'])
272
- elif state == "update_where_":
273
- completer = columns
274
- elif state == "update_where_a":
275
- completer = TermCompleter(['='])
276
- elif state == "update_where_sc_":
277
- completer = TermCompleter(['and', 'or'])
278
-
279
- elif state == "delete_":
280
- completer = TermCompleter(['from'])
281
- elif state == "delete_from_":
282
- completer = TermCompleter(self.tables())
283
- elif state == "delete_from_x_":
284
- completer = TermCompleter(['where'])
285
- elif state == "delete_where_":
286
- completer = columns
287
- elif state == "delete_where_a":
288
- completer = TermCompleter(['='])
289
- elif state == "delete_where_a_op":
290
- completer = TermCompleter(["'"])
291
- elif state == "delete_where_sc_":
292
- completer = TermCompleter(['and', 'or'])
167
+ completers: dict[str, str] = self.machine[1]
168
+ if state in completers:
169
+ terms = []
170
+
171
+ words = completers[state]
172
+ for word in words.strip(' ').split(','):
173
+ if word == 'tables':
174
+ terms.extend(self.tables())
175
+ elif word == 'single':
176
+ terms.append("'")
177
+ elif word == 'comma':
178
+ terms.append(",")
179
+ else:
180
+ terms.append(word)
181
+
182
+ if terms:
183
+ completer = TermCompleter(terms)
293
184
 
294
185
  if completer:
295
186
  for c in completer.get_completions(document, complete_event):
@@ -298,15 +189,15 @@ class SqlCompleter(Completer):
298
189
  def automata(self):
299
190
  y = [
300
191
  ' > select > select',
301
- 'select_ > name|* > select_a',
192
+ 'select_ > name|* > select_a ^ *',
302
193
  'select_a > , > select_a_comma_',
303
- 'select_a_comma_ > name|* > select_a',
304
- 'select_a_ > from > select_from',
305
- 'select_from_ > name > select_from_x',
194
+ 'select_a_comma_ > name|* > select_a ^ *',
195
+ 'select_a_ > from > select_from ^ from',
196
+ 'select_from_ > name > select_from_x ^ tables',
306
197
  'select_from_x > , > select_from_x_comma_',
307
- 'select_from_x_comma_ > name > select_from_x',
308
- 'select_from_x_',
309
- 'select_from_x_as_x_ > , > select_from_x_comma_',
198
+ 'select_from_x_comma_ > name > select_from_x ^ tables',
199
+ 'select_from_x_ ^ as,where,inner join,left outer join,right outer join,full outer join,group by,limit',
200
+ 'select_from_x_as_x_ > , > select_from_x_comma_ ^ where,inner join,left outer join,right outer join,full outer join,group by,limit',
310
201
  '- > as > select_from_x_as',
311
202
  '- > where > select_where',
312
203
  '- > limit > select_where_sc_limit',
@@ -322,101 +213,94 @@ class SqlCompleter(Completer):
322
213
  '- > right outer join > select_join',
323
214
  '- > full > select_from_x_full',
324
215
  '- > full outer join > select_join',
325
- 'select_from_x_as_ > name > select_from_x_as_x',
216
+ 'select_from_x_as_ > name > select_from_x_as_x ^ x,y,z',
326
217
  'select_from_x_as_x > , > select_from_x_as_x_comma_',
327
- 'select_from_x_as_x_comma_ > name > select_from_x_as_x',
328
- 'select_where_ > name > select_where_a',
329
- 'select_where_a > comparison > select_where_a_op',
330
- 'select_where_a_ > comparison > select_where_a_op',
218
+ 'select_from_x_as_x_comma_ > name > select_from_x_as_x ^ tables',
219
+ 'select_where_ > name > select_where_a ^ id,x.,y.,z.',
220
+ 'select_where_a > comparison > select_where_a_op ^ =,<,<=,>,>=,<>,like,not,in',
221
+ 'select_where_a_ > comparison > select_where_a_op ^ =,<,<=,>,>=,<>,like,not,in',
331
222
  '- > not > select_where_a_not',
332
223
  '- > in > select_where_a_in',
333
- 'select_where_a_not_ > comparison > select_where_a_not_op',
224
+ 'select_where_a_not_ > comparison > select_where_a_not_op ^ like,in',
334
225
  '- > in > select_where_a_in',
335
- 'select_where_a_in > ( > select_where_a_in_lp_',
336
- 'select_where_a_in_lp_ > name|single|num > select_where_a_in_lp_a',
337
- 'select_where_a_in_lp_a > , > select_where_a_in_lp_a_comma_',
226
+ 'select_where_a_in > ( > select_where_a_in_lp_ ^ (',
227
+ 'select_where_a_in_lp_ > name|single|num > select_where_a_in_lp_a ^ single',
228
+ 'select_where_a_in_lp_a > , > select_where_a_in_lp_a_comma_ ^ comma,)',
338
229
  '- > ) > select_where_sc',
339
- 'select_where_a_in_lp_a_comma_ > name|single|num > select_where_a_in_lp_a',
340
- 'select_where_a_not_op > name|single|num > select_where_sc',
341
- 'select_where_a_op > name|single|num > select_where_sc',
342
- 'select_where_sc_ > and|or > select_where',
230
+ 'select_where_a_in_lp_a_comma_ > name|single|num > select_where_a_in_lp_a ^ single',
231
+ 'select_where_a_not_op > name|single|num > select_where_sc ^ single',
232
+ 'select_where_a_op > name|single|num > select_where_sc ^ single',
233
+ 'select_where_sc_ > and|or > select_where ^ and,or,group by,limit',
343
234
  '- > group > select_group',
344
235
  '- > group by > select_group_by',
345
236
  '- > limit > select_where_sc_limit',
346
- 'select_group_ > by > select_group_by',
347
- 'select_group_by_ > name > select_group_by_a',
237
+ 'select_group_ > by > select_group_by ^ by',
238
+ 'select_group_by_ > name > select_group_by_a ^ id,x.,y.,z.',
348
239
  'select_group_by_a > , > select_group_by_a_comma_',
349
- 'select_group_by_a_comma_ > name > select_group_by_a',
350
- 'select_group_by_a_ > limit > select_where_sc_limit',
351
- 'select_where_sc_limit > _ > select_where_sc_limit_',
240
+ 'select_group_by_a_comma_ > name > select_group_by_a ^ id,x.,y.,z.',
241
+ 'select_group_by_a_ > limit > select_where_sc_limit ^ limit',
242
+ 'select_where_sc_limit_ > num > select_where_sc_limit_num ^ 1',
352
243
  'select_where_x_inner_ > join > select_join',
353
- 'select_join_ > name > select_x_join_y',
354
- 'select_from_x_left_ > join > select_join',
244
+ 'select_join_ > name > select_x_join_y ^ tables',
245
+ 'select_from_x_left_ > join > select_join ^ outer join',
355
246
  '- > outer > select_from_x_left_outer',
356
- 'select_from_x_left_outer_ > join > select_join',
357
- 'select_from_x_ > left outer join > select_join',
358
- 'select_from_x_right_ > join > select_join',
247
+ 'select_from_x_left_outer_ > join > select_join ^ join',
248
+ 'select_from_x_right_ > join > select_join ^ outer join',
359
249
  '- > outer > select_from_x_right_outer',
360
- 'select_from_x_right_outer_ > join > select_join',
361
- 'select_from_x_full_ > join > select_join',
250
+ 'select_from_x_right_outer_ > join > select_join ^ join',
251
+ 'select_from_x_full_ > join > select_join ^ outer join',
362
252
  '- > outer > select_from_x_full_outer',
363
- 'select_from_x_full_outer_ > join > select_join',
364
- 'select_x_join_y > , > select_x_join_y_comma_',
365
- 'select_x_join_y_comma_ > name > select_x_join_y',
366
- 'select_x_join_y_ > on > select_x_join_y_on',
367
- 'select_x_join_y_on_ > name > select_x_join_y_on_a',
368
- 'select_x_join_y_on_a > comparison > select_x_join_y_on_a_op',
369
- 'select_x_join_y_on_a_op > name > select_x_join_y_on_a_op_b',
370
- 'select_x_join_y_on_a_op_b > , > select_x_join_y_on_',
371
- 'select_x_join_y_on_a_op_b_ > and|or > select_join',
372
- '- > where > select_where',
373
- '- > group > select_group',
374
- '- > group by > select_group_by',
375
- '- > limit > select_where_sc_limit',
253
+ 'select_from_x_full_outer_ > join > select_join ^ join',
254
+ 'select_x_join_y_ > on > select_x_join_y_on ^ on',
255
+ 'select_x_join_y_on_ > name > select_x_join_y_on_a ^ id,x.,y.,z.',
256
+ 'select_x_join_y_on_a > comparison > select_x_join_y_on_a_op ^ =',
257
+ 'select_x_join_y_on_a_op > name > select_x_join_y_on_a_op_b ^ id,x.,y.,z.',
258
+ 'select_x_join_y_on_a_op_b > _ > select_from_x_as_x_',
376
259
 
377
260
 
378
261
  ' > insert > insert',
379
- 'insert_ > into > insert_into',
380
- 'insert_into_ > name > insert_into_x',
262
+ 'insert_ > into > insert_into ^ into',
263
+ 'insert_into_ > name > insert_into_x ^ tables',
381
264
  'insert_into_x > ( > insert_into_x_lp_',
382
- 'insert_into_x_ > ( > insert_into_x_lp_',
265
+ 'insert_into_x_ > ( > insert_into_x_lp_ ^ (,values(',
383
266
  '- > values > insert_values',
384
- 'insert_into_x_lp_ > name > insert_into_x_lp_a',
267
+ 'insert_into_x_lp_ > name > insert_into_x_lp_a ^ id',
385
268
  'insert_into_x_lp_a > , > insert_into_x_lp_a_comma_',
386
269
  '- > ) > insert_into_x_lp_a_rp_',
387
- 'insert_into_x_lp_a_comma_ > name > insert_into_x_lp_a',
388
- 'insert_into_x_lp_a_rp__ > values > insert_values',
270
+ 'insert_into_x_lp_a_comma_ > name > insert_into_x_lp_a ^ id',
271
+ 'insert_into_x_lp_a_rp__ > values > insert_values ^ values(,select',
389
272
  '- > select > select',
390
273
  'insert_values > ( > insert_values_lp_',
391
- 'insert_values_lp_ > name|single|num > insert_values_lp_v',
274
+ 'insert_values_lp_ > name|single|num > insert_values_lp_v ^ single',
392
275
  'insert_values_lp_v > , > insert_values_lp_v_comma_',
393
276
  'insert_values_lp_v_comma_ > name|single|num > insert_values_lp_v',
394
277
 
395
278
 
396
279
  ' > update > update',
397
- 'update_ > name > update_x',
398
- 'update_x_ > set > update_set',
399
- 'update_set_ > name > update_set_a',
280
+ 'update_ > name > update_x ^ tables',
281
+ 'update_x_ > set > update_set ^ set',
282
+ 'update_set_ > name > update_set_a ^ id',
400
283
  'update_set_a > comparison > update_set_a_op',
401
- 'update_set_a_op > name|single|num > update_set_sc',
284
+ 'update_set_a_op > name|single|num > update_set_sc ^ single',
402
285
  'update_set_sc > , > update_set_sc_comma_',
403
- 'update_set_sc_comma_ > name > update_set_a',
404
- 'update_set_sc_ > , > update_set_sc_comma_',
286
+ 'update_set_sc_comma_ > name > update_set_a ^ id',
287
+ 'update_set_sc_ > , > update_set_sc_comma_ ^ where',
405
288
  '- > where > update_where',
406
- 'update_where_ > name > update_where_a',
289
+ 'update_where_ > name > update_where_a ^ id',
407
290
  'update_where_a > comparison > update_where_a_op',
408
- 'update_where_a_op > name|single|num > update_where_sc',
409
- 'update_where_sc_ > and|or > update_where',
291
+ 'update_where_a_ > comparison > update_where_a_op ^ =,<,<=,>,>=,<>,like,not,in',
292
+ 'update_where_a_op > name|single|num > update_where_sc ^ single',
293
+ 'update_where_sc_ > and|or > update_where ^ and,or',
410
294
 
411
295
 
412
296
  ' > delete > delete',
413
- 'delete_ > from > delete_from',
414
- 'delete_from_ > name > delete_from_x',
415
- 'delete_from_x_ > where > delete_where',
416
- 'delete_where_ > name > delete_where_a',
417
- 'delete_where_a > comparison > delete_where_a_op',
418
- 'delete_where_a_op > name|single|num > delete_where_sc',
419
- 'delete_where_sc_ > and|or > delete_where',
297
+ 'delete_ > from > delete_from ^ from',
298
+ 'delete_from_ > name > delete_from_x ^ tables',
299
+ 'delete_from_x_ > where > delete_where ^ where',
300
+ 'delete_where_ > name > delete_where_a ^ id',
301
+ 'delete_where_a > comparison > delete_where_a_op ^ =,<,<=,>,>=,<>,like,not,in',
302
+ 'delete_where_a_op > name|single|num > delete_where_sc ^ single',
303
+ 'delete_where_sc_ > and|or > delete_where ^ and,or',
420
304
  ]
421
305
 
422
306
  def add_space_transition(from_s: str):
@@ -427,14 +311,22 @@ class SqlCompleter(Completer):
427
311
  machine[f'{from_s[:-1]} > _'] = from_s
428
312
 
429
313
  machine: dict[str, str] = {}
314
+ completers: dict[str, str] = {}
430
315
 
431
316
  from_ss_to_add = []
432
317
  from_ss = ['']
433
318
  token = None
434
319
  tokens = []
435
320
  to_s = None
321
+ words: str = None
436
322
  for l in y:
437
- tks = l.split('>')
323
+ t_and_w = l.split('^')
324
+ if len(t_and_w) > 1:
325
+ words = t_and_w[1]
326
+ else:
327
+ words = None
328
+
329
+ tks = t_and_w[0].strip(' ').split('>')
438
330
  if l.startswith('-'):
439
331
  token = tks[1].strip(' ')
440
332
  if len(tks) > 2:
@@ -449,6 +341,9 @@ class SqlCompleter(Completer):
449
341
  print(f'{from_s} > {t} = {to_s}')
450
342
  machine[f'{from_s} > {t}'] = to_s
451
343
  else:
344
+ if words:
345
+ completers[tks[0].strip(' ')] = words
346
+
452
347
  if len(tks) == 1:
453
348
  from_s = tks[0].strip(' ')
454
349
  add_space_transition(from_s)
@@ -458,7 +353,7 @@ class SqlCompleter(Completer):
458
353
  from_ss = []
459
354
  from_ss.extend(from_ss_to_add)
460
355
  from_ss_to_add = []
461
- from_ss.append(f'{tks[0].strip(" ")}')
356
+ from_ss.append(tks[0].strip(' '))
462
357
  for from_s in from_ss:
463
358
  add_space_transition(from_s)
464
359
  token = tks[1].strip(' ')
@@ -474,7 +369,7 @@ class SqlCompleter(Completer):
474
369
  print(f'{from_s} > {t} = {to_s}')
475
370
  machine[f'{from_s} > {t}'] = to_s
476
371
 
477
- return machine
372
+ return (machine, completers)
478
373
 
479
374
  def traverse_tokens(self, text: str, tokens: list[Token], state: str = '', indent=0):
480
375
  keywords = [
@@ -532,7 +427,7 @@ class SqlCompleter(Completer):
532
427
  it = 'comparison'
533
428
 
534
429
  try:
535
- state = self.machine[f'{state} > {it}']
430
+ state = self.machine[0][f'{state} > {it}']
536
431
  except:
537
432
  pass
538
433
 
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ __version__ = "2.0.62" #: the working version
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.61
3
+ Version: 2.0.62
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='kaqing',
5
- version='2.0.61',
5
+ version='2.0.62',
6
6
  packages=find_packages(),
7
7
  entry_points={
8
8
  'console_scripts': [
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- __version__ = "2.0.61" #: the working version
5
- __release__ = "1.0.0" #: the release version
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes