qlever 0.5.29__tar.gz → 0.5.32__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.

Potentially problematic release.


This version of qlever might be problematic. Click here for more details.

Files changed (62) hide show
  1. {qlever-0.5.29/src/qlever.egg-info → qlever-0.5.32}/PKG-INFO +1 -1
  2. {qlever-0.5.29 → qlever-0.5.32}/pyproject.toml +1 -1
  3. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.dblp +2 -1
  4. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/index.py +2 -2
  5. qlever-0.5.32/src/qlever/commands/settings.py +115 -0
  6. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/start.py +25 -5
  7. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/qleverfile.py +42 -9
  8. {qlever-0.5.29 → qlever-0.5.32/src/qlever.egg-info}/PKG-INFO +1 -1
  9. qlever-0.5.32/src/qlever.egg-info/top_level.txt +1 -0
  10. qlever-0.5.29/src/qlever/commands/settings.py +0 -121
  11. qlever-0.5.29/src/qlever.egg-info/top_level.txt +0 -6
  12. {qlever-0.5.29 → qlever-0.5.32}/LICENSE +0 -0
  13. {qlever-0.5.29 → qlever-0.5.32}/README.md +0 -0
  14. {qlever-0.5.29 → qlever-0.5.32}/setup.cfg +0 -0
  15. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.dblp-plus +0 -0
  16. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.dbpedia +0 -0
  17. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.default +0 -0
  18. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.dnb +0 -0
  19. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.fbeasy +0 -0
  20. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.freebase +0 -0
  21. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.imdb +0 -0
  22. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.ohm-planet +0 -0
  23. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.olympics +0 -0
  24. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.orkg +0 -0
  25. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.osm-country +0 -0
  26. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.osm-planet +0 -0
  27. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.osm-planet-from-pbf +0 -0
  28. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.pubchem +0 -0
  29. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.scientists +0 -0
  30. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.uniprot +0 -0
  31. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.vvz +0 -0
  32. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.wikidata +0 -0
  33. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.wikipathways +0 -0
  34. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/Qleverfiles/Qleverfile.yago-4 +0 -0
  35. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/__init__.py +0 -0
  36. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/command.py +0 -0
  37. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/__init__.py +0 -0
  38. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/add_text_index.py +0 -0
  39. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/benchmark_queries.py +0 -0
  40. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/cache_stats.py +0 -0
  41. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/clear_cache.py +0 -0
  42. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/extract_queries.py +0 -0
  43. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/get_data.py +0 -0
  44. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/index_stats.py +0 -0
  45. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/log.py +0 -0
  46. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/query.py +0 -0
  47. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/setup_config.py +0 -0
  48. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/status.py +0 -0
  49. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/stop.py +0 -0
  50. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/system_info.py +0 -0
  51. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/ui.py +0 -0
  52. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/update_wikidata.py +0 -0
  53. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/commands/warmup.py +0 -0
  54. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/config.py +0 -0
  55. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/containerize.py +0 -0
  56. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/log.py +0 -0
  57. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/qlever_main.py +0 -0
  58. {qlever-0.5.29 → qlever-0.5.32}/src/qlever/util.py +0 -0
  59. {qlever-0.5.29 → qlever-0.5.32}/src/qlever.egg-info/SOURCES.txt +0 -0
  60. {qlever-0.5.29 → qlever-0.5.32}/src/qlever.egg-info/dependency_links.txt +0 -0
  61. {qlever-0.5.29 → qlever-0.5.32}/src/qlever.egg-info/entry_points.txt +0 -0
  62. {qlever-0.5.29 → qlever-0.5.32}/src/qlever.egg-info/requires.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qlever
3
- Version: 0.5.29
3
+ Version: 0.5.32
4
4
  Summary: Command-line tool for using the QLever graph database
5
5
  Author-email: Hannah Bast <bast@cs.uni-freiburg.de>
6
6
  License: Apache-2.0
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "qlever"
7
7
  description = "Command-line tool for using the QLever graph database"
8
- version = "0.5.29"
8
+ version = "0.5.32"
9
9
  authors = [
10
10
  { name = "Hannah Bast", email = "bast@cs.uni-freiburg.de" }
11
11
  ]
@@ -18,7 +18,8 @@ FORMAT = ttl
18
18
  [index]
19
19
  INPUT_FILES = *.gz
20
20
  MULTI_INPUT_JSON = { "cmd": "zcat {}", "for-each": "*.gz" }
21
- SETTINGS_JSON = { "ascii-prefixes-only": false, "num-triples-per-batch": 5000000, "prefixes-external": [""] }
21
+ SETTINGS_JSON = { "num-triples-per-batch": 5000000 }
22
+ STXXL_MEMORY = 5G
22
23
 
23
24
  [server]
24
25
  PORT = 7015
@@ -219,8 +219,8 @@ class IndexCommand(QleverCommand):
219
219
  if args.encode_as_id:
220
220
  index_cmd += f" --encode-as-id {args.encode_as_id}"
221
221
  if args.only_pso_and_pos_permutations:
222
- index_cmd += " --only-pso-and-pos-permutations --no-patterns"
223
- if not args.use_patterns:
222
+ index_cmd += " --only-pso-and-pos-permutations"
223
+ if args.use_patterns == "no":
224
224
  index_cmd += " --no-patterns"
225
225
  if args.text_index in [
226
226
  "from_text_records",
@@ -0,0 +1,115 @@
1
+ from __future__ import annotations
2
+
3
+ import json
4
+
5
+ from termcolor import colored
6
+
7
+ from qlever.command import QleverCommand
8
+ from qlever.log import log
9
+ from qlever.qleverfile import Qleverfile
10
+ from qlever.util import run_command
11
+
12
+
13
+ class SettingsCommand(QleverCommand):
14
+ """
15
+ Class for executing the `settings` command.
16
+ """
17
+
18
+ def __init__(self):
19
+ pass
20
+
21
+ def description(self) -> str:
22
+ return "Show or set server settings (after `qlever start`)"
23
+
24
+ def should_have_qleverfile(self) -> bool:
25
+ return True
26
+
27
+ def relevant_qleverfile_arguments(self) -> dict[str : list[str]]:
28
+ return {"server": ["port", "host_name", "access_token"]}
29
+
30
+ def additional_arguments(self, subparser) -> None:
31
+ subparser.add_argument(
32
+ "runtime_parameters",
33
+ nargs="*",
34
+ help="Space-separated list of runtime parameters to set "
35
+ "in the form `key=value`; afterwards shows all settings, "
36
+ "with the changed ones highlighted",
37
+ ).completer = lambda **kwargs: [
38
+ f"{key}=" for key in Qleverfile.SERVER_RUNTIME_PARAMETERS
39
+ ]
40
+ subparser.add_argument(
41
+ "--endpoint_url",
42
+ type=str,
43
+ help="An arbitrary endpoint URL "
44
+ "(overriding the one in the Qleverfile)",
45
+ )
46
+
47
+ def execute(self, args) -> bool:
48
+ # Get endpoint URL from command line or Qleverfile.
49
+ if args.endpoint_url:
50
+ endpoint_url = args.endpoint_url
51
+ else:
52
+ endpoint_url = f"http://{args.host_name}:{args.port}"
53
+
54
+ # Construct the `curl` commands for setting and getting.
55
+ curl_cmds_setting = []
56
+ keys_set = set()
57
+ if args.runtime_parameters:
58
+ for key_value_pair in args.runtime_parameters:
59
+ try:
60
+ key, value = key_value_pair.split("=")
61
+ except ValueError:
62
+ log.error("Runtime parameter must be given as `key=value`")
63
+ return False
64
+ curl_cmds_setting.append(
65
+ f"curl -s {endpoint_url} -w %{{http_code}}"
66
+ f' --data-urlencode "{key}={value}"'
67
+ f' --data-urlencode "access-token={args.access_token}"'
68
+ )
69
+ keys_set.add(key)
70
+ curl_cmd_getting = (
71
+ f"curl -s {endpoint_url} -w %{{http_code}}"
72
+ f" --data-urlencode cmd=get-settings"
73
+ )
74
+ self.show(
75
+ "\n".join(curl_cmds_setting + [curl_cmd_getting]),
76
+ only_show=args.show,
77
+ )
78
+ if args.show:
79
+ return True
80
+
81
+ # Execute the `curl` commands for setting the key-value pairs if any.
82
+ for curl_cmd in curl_cmds_setting:
83
+ try:
84
+ curl_result = run_command(curl_cmd, return_output=True)
85
+ body, http_code = curl_result[:-3], curl_result[-3:]
86
+ if http_code != "200":
87
+ raise Exception(body)
88
+ except Exception as e:
89
+ log.error(
90
+ f"curl command for setting key-value pair failed: {e}"
91
+ )
92
+ return False
93
+
94
+ # Execute the `curl` commands for getting the settings.
95
+ try:
96
+ curl_result = run_command(curl_cmd_getting, return_output=True)
97
+ body, http_code = curl_result[:-3], curl_result[-3:]
98
+ if http_code != "200":
99
+ raise Exception(body)
100
+ settings_dict = json.loads(body)
101
+ if isinstance(settings_dict, list):
102
+ settings_dict = settings_dict[0]
103
+ except Exception as e:
104
+ log.error(f"curl command for getting settings failed: {e}")
105
+ return False
106
+ for key, value in settings_dict.items():
107
+ print(
108
+ colored(
109
+ f"{key:<45}: {value}",
110
+ "blue" if key in keys_set else None,
111
+ )
112
+ )
113
+
114
+ # That's it.
115
+ return True
@@ -5,11 +5,13 @@ import time
5
5
 
6
6
  from qlever.command import QleverCommand
7
7
  from qlever.commands.cache_stats import CacheStatsCommand
8
+ from qlever.commands.settings import SettingsCommand
8
9
  from qlever.commands.status import StatusCommand
9
10
  from qlever.commands.stop import StopCommand
10
11
  from qlever.commands.warmup import WarmupCommand
11
12
  from qlever.containerize import Containerize
12
13
  from qlever.log import log
14
+ from qlever.qleverfile import Qleverfile
13
15
  from qlever.util import binary_exists, is_qlever_server_alive, run_command
14
16
 
15
17
 
@@ -34,7 +36,7 @@ def construct_command(args) -> str:
34
36
  start_cmd += " --persist-updates"
35
37
  if args.only_pso_and_pos_permutations:
36
38
  start_cmd += " --only-pso-and-pos-permutations"
37
- if not args.use_patterns:
39
+ if args.use_patterns == "no":
38
40
  start_cmd += " --no-patterns"
39
41
  if args.use_text_index == "yes":
40
42
  start_cmd += " -t"
@@ -165,8 +167,19 @@ class StartCommand(QleverCommand):
165
167
  help="Run the server in the foreground "
166
168
  "(default: run in the background with `nohup`)",
167
169
  )
170
+ subparser.add_argument(
171
+ "runtime_parameters",
172
+ nargs="*",
173
+ help="Space-separated list of runtime parameters to set "
174
+ "(in the form `key=value`) once the server is running",
175
+ ).completer = lambda **kwargs: [
176
+ f"{key}=" for key in Qleverfile.SERVER_RUNTIME_PARAMETERS
177
+ ]
168
178
 
169
179
  def execute(self, args) -> bool:
180
+ # Set the endpoint URL.
181
+ args.endpoint_url = f"http://{args.host_name}:{args.port}"
182
+
170
183
  # Kill existing server with the same name if so desired.
171
184
  #
172
185
  # TODO: This is currently disabled because I never used it once over
@@ -200,6 +213,9 @@ class StartCommand(QleverCommand):
200
213
  # Show the command line.
201
214
  self.show(start_cmd, only_show=args.show)
202
215
  if args.show:
216
+ if args.runtime_parameters:
217
+ log.info("")
218
+ SettingsCommand().execute(args)
203
219
  return True
204
220
 
205
221
  # When running natively, check if the binary exists and works.
@@ -208,9 +224,8 @@ class StartCommand(QleverCommand):
208
224
  return False
209
225
 
210
226
  # Check if a QLever server is already running on this port.
211
- endpoint_url = f"http://{args.host_name}:{args.port}"
212
- if is_qlever_server_alive(endpoint_url):
213
- log.error(f"QLever server already running on {endpoint_url}")
227
+ if is_qlever_server_alive(args.endpoint_url):
228
+ log.error(f"QLever server already running on {args.endpoint_url}")
214
229
  log.info("")
215
230
  log.info(
216
231
  "To kill the existing server, use `qlever stop` "
@@ -269,7 +284,7 @@ class StartCommand(QleverCommand):
269
284
  log.info("")
270
285
  tail_cmd = f"exec tail -f {args.name}.server-log.txt"
271
286
  tail_proc = subprocess.Popen(tail_cmd, shell=True)
272
- while not is_qlever_server_alive(endpoint_url):
287
+ while not is_qlever_server_alive(args.endpoint_url):
273
288
  time.sleep(1)
274
289
 
275
290
  # Set the description for the index and text.
@@ -305,6 +320,11 @@ class StartCommand(QleverCommand):
305
320
  args.server_url = None
306
321
  CacheStatsCommand().execute(args)
307
322
 
323
+ # Apply settings if any.
324
+ if args.runtime_parameters:
325
+ log.info("")
326
+ SettingsCommand().execute(args)
327
+
308
328
  # With `--run-in-foreground`, wait until the server is stopped.
309
329
  if args.run_in_foreground:
310
330
  try:
@@ -21,6 +21,35 @@ class Qleverfile:
21
21
  Qleverfile + functions for parsing.
22
22
  """
23
23
 
24
+ # Runtime parameters (for `settings` and `start` commands).
25
+ SERVER_RUNTIME_PARAMETERS = [
26
+ "always-multiply-unions",
27
+ "cache-max-num-entries",
28
+ "cache-max-size",
29
+ "cache-max-size-single-entry",
30
+ "cache-service-results",
31
+ "default-query-timeout",
32
+ "division-by-zero-is-undef",
33
+ "enable-prefilter-on-index-scans",
34
+ "group-by-disable-index-scan-optimizations",
35
+ "group-by-hash-map-enabled",
36
+ "lazy-index-scan-max-size-materialization",
37
+ "lazy-index-scan-num-threads",
38
+ "lazy-index-scan-queue-size",
39
+ "lazy-result-max-cache-size",
40
+ "query-planning-budget",
41
+ "request-body-limit",
42
+ "service-max-redirects",
43
+ "service-max-value-rows",
44
+ "sort-estimate-cancellation-factor",
45
+ "spatial-join-prefilter-max-size",
46
+ "spatial-join-max-num-threads",
47
+ "syntax-test-mode",
48
+ "throw-on-unbound-variables",
49
+ "treat-default-graph-as-named-graph",
50
+ "use-binsearch-transitive-path",
51
+ ]
52
+
24
53
  @staticmethod
25
54
  def all_arguments():
26
55
  """
@@ -61,7 +90,7 @@ class Qleverfile:
61
90
  "--text-description",
62
91
  type=str,
63
92
  default=None,
64
- help="A concise description of the additional text data" " if any",
93
+ help="A concise description of the additional text data if any",
65
94
  )
66
95
  data_args["format"] = arg(
67
96
  "--format",
@@ -167,10 +196,10 @@ class Qleverfile:
167
196
  )
168
197
  index_args["use_patterns"] = arg(
169
198
  "--use-patterns",
170
- action="store_true",
171
- default=True,
172
- help="Precompute so-called patterns needed for fast processing"
173
- " of queries like SELECT ?p (COUNT(DISTINCT ?s) AS ?c) "
199
+ choices=["yes", "no"],
200
+ default="yes",
201
+ help="Whether to precompute the so-called patterns used for fast "
202
+ "processing of queries like SELECT ?p (COUNT(DISTINCT ?s) AS ?c) "
174
203
  "WHERE { ?s ?p [] ... } GROUP BY ?p",
175
204
  )
176
205
  index_args["text_index"] = arg(
@@ -283,10 +312,10 @@ class Qleverfile:
283
312
  )
284
313
  server_args["use_patterns"] = arg(
285
314
  "--use-patterns",
286
- action="store_true",
287
- default=True,
288
- help="Use the patterns precomputed during the index build"
289
- " (see `qlever index --help` for their utility)",
315
+ choices=["yes", "no"],
316
+ default="yes",
317
+ help="Whether to use the patterns precomputed during the index "
318
+ "build (see `qlever index --help` for their utility)",
290
319
  )
291
320
  server_args["use_text_index"] = arg(
292
321
  "--use-text-index",
@@ -438,6 +467,10 @@ class Qleverfile:
438
467
  server = config["server"]
439
468
  if index.get("text_index", "none") != "none":
440
469
  server["use_text_index"] = "yes"
470
+ if index.get("only_pso_and_pos_permutations", "false") == "true":
471
+ index["use_patterns"] = "no"
472
+ if index.get("use_patterns", None) == "no":
473
+ server["use_patterns"] = "no"
441
474
 
442
475
  # Add other non-trivial default values.
443
476
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qlever
3
- Version: 0.5.29
3
+ Version: 0.5.32
4
4
  Summary: Command-line tool for using the QLever graph database
5
5
  Author-email: Hannah Bast <bast@cs.uni-freiburg.de>
6
6
  License: Apache-2.0
@@ -0,0 +1 @@
1
+ qlever
@@ -1,121 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import json
4
-
5
- from termcolor import colored
6
-
7
- from qlever.command import QleverCommand
8
- from qlever.log import log
9
- from qlever.util import run_command
10
-
11
-
12
- class SettingsCommand(QleverCommand):
13
- """
14
- Class for executing the `settings` command.
15
- """
16
-
17
- def __init__(self):
18
- pass
19
-
20
- def description(self) -> str:
21
- return "Show or set server settings (after `qlever start`)"
22
-
23
- def should_have_qleverfile(self) -> bool:
24
- return True
25
-
26
- def relevant_qleverfile_arguments(self) -> dict[str : list[str]]:
27
- return {"server": ["port", "host_name", "access_token"]}
28
-
29
- def additional_arguments(self, subparser) -> None:
30
- all_keys = [
31
- "always-multiply-unions",
32
- "cache-max-num-entries",
33
- "cache-max-size",
34
- "cache-max-size-single-entry",
35
- "cache-service-results",
36
- "default-query-timeout",
37
- "division-by-zero-is-undef",
38
- "enable-prefilter-on-index-scans",
39
- "group-by-disable-index-scan-optimizations",
40
- "group-by-hash-map-enabled",
41
- "lazy-index-scan-max-size-materialization",
42
- "lazy-index-scan-num-threads",
43
- "lazy-index-scan-queue-size",
44
- "lazy-result-max-cache-size",
45
- "query-planning-budget",
46
- "request-body-limit",
47
- "service-max-redirects",
48
- "service-max-value-rows",
49
- "sort-estimate-cancellation-factor",
50
- "spatial-join-prefilter-max-size",
51
- "spatial-join-max-num-threads",
52
- "syntax-test-mode",
53
- "throw-on-unbound-variables",
54
- "treat-default-graph-as-named-graph",
55
- "use-binsearch-transitive-path",
56
- ]
57
- subparser.add_argument(
58
- "runtime_parameter",
59
- nargs="?",
60
- help="Set the given runtime parameter (key=value)"
61
- "; if no argument is given, show all settings",
62
- ).completer = lambda **kwargs: [f"{key}=" for key in all_keys]
63
- subparser.add_argument(
64
- "--endpoint_url",
65
- type=str,
66
- help="An arbitrary endpoint URL "
67
- "(overriding the one in the Qleverfile)",
68
- )
69
-
70
- def execute(self, args) -> bool:
71
- # Get endpoint URL from command line or Qleverfile.
72
- if args.endpoint_url:
73
- endpoint_url = args.endpoint_url
74
- else:
75
- endpoint_url = f"http://{args.host_name}:{args.port}"
76
-
77
- # Construct the `curl` command for getting or setting.
78
- if args.runtime_parameter:
79
- try:
80
- parameter_key, parameter_value = args.runtime_parameter.split(
81
- "="
82
- )
83
- except ValueError:
84
- log.error("Runtime parameter must be given as `key=value`")
85
- return False
86
-
87
- curl_cmd = (
88
- f"curl -s {endpoint_url}"
89
- f' --data-urlencode "{parameter_key}={parameter_value}"'
90
- f' --data-urlencode "access-token={args.access_token}"'
91
- )
92
- else:
93
- curl_cmd = (
94
- f"curl -s {endpoint_url}" f" --data-urlencode cmd=get-settings"
95
- )
96
- parameter_key, parameter_value = None, None
97
- self.show(curl_cmd, only_show=args.show)
98
- if args.show:
99
- return True
100
-
101
- # Execute the `curl` command. Note that the `get-settings` command
102
- # returns all settings in both scencarios (that is, also when setting a
103
- # parameter).
104
- try:
105
- settings_json = run_command(curl_cmd, return_output=True)
106
- settings_dict = json.loads(settings_json)
107
- if isinstance(settings_dict, list):
108
- settings_dict = settings_dict[0]
109
- except Exception as e:
110
- log.error(f"setting command failed: {e}")
111
- return False
112
- for key, value in settings_dict.items():
113
- print(
114
- colored(
115
- f"{key:<45}: {value}",
116
- "blue"
117
- if parameter_key and key == parameter_key
118
- else None,
119
- )
120
- )
121
- return True
@@ -1,6 +0,0 @@
1
- qblazegraph
2
- qjena
3
- qlever
4
- qmdb
5
- qoxigraph
6
- qvirtuoso
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes