setta 0.0.2.dev0__py3-none-any.whl → 0.0.3.dev1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
setta/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.0.2.dev0"
1
+ __version__ = "0.0.3.dev1"
setta/cli/logger.py CHANGED
@@ -26,9 +26,7 @@ class Setta:
26
26
  if root_path:
27
27
  self.root_path = Path(root_path)
28
28
  else:
29
- self.root_path = Path(
30
- os.environ.get(CODE_FOLDER_ENV_VARIABLE, os.path.relpath(os.getcwd()))
31
- )
29
+ self.root_path = Path(os.environ.get(CODE_FOLDER_ENV_VARIABLE, "."))
32
30
 
33
31
  self.name_path_type_to_id = {}
34
32
 
@@ -1,15 +1,15 @@
1
1
  import copy
2
- import os
3
2
  from datetime import datetime
4
3
  from pathlib import Path
5
4
 
6
5
  from setta.code_gen.export_selected import (
7
6
  export_selected,
8
7
  get_gen_code_template_var,
8
+ get_section_name,
9
9
  get_section_type,
10
10
  get_selected_section_variant,
11
11
  )
12
- from setta.code_gen.find_placeholders import remove_tp, tp
12
+ from setta.code_gen.find_placeholders import parse_template_var, tp
13
13
  from setta.code_gen.python.generate_code import (
14
14
  convert_var_names_to_readable_form,
15
15
  generate_code,
@@ -23,6 +23,7 @@ from setta.code_gen.utils import process_refs
23
23
  from setta.utils.constants import (
24
24
  CODE_FOLDER,
25
25
  CODE_FOLDER_ENV_VARIABLE,
26
+ CWD,
26
27
  USER_SETTINGS,
27
28
  C,
28
29
  )
@@ -56,13 +57,13 @@ async def runCode(message, lsp_writers):
56
57
  id_to_relpath = {}
57
58
  for sid in to_write:
58
59
  curr_code = code_dict[sid]
59
- rel_path = write_code_to_file(
60
+ rel_path_str = write_code_to_file(
60
61
  folder_path,
61
62
  curr_code["sanitized_full_name"],
62
63
  curr_code["code"],
63
64
  curr_code["codeLanguage"],
64
65
  )
65
- id_to_relpath[sid] = rel_path
66
+ id_to_relpath[sid] = rel_path_str
66
67
 
67
68
  # Only run code that isn't referenced by other code
68
69
  run_order = [
@@ -71,8 +72,8 @@ async def runCode(message, lsp_writers):
71
72
 
72
73
  # create a wrapper script if there are multiple files to run
73
74
  if len(run_order) > 1:
74
- rel_path = create_wrapper_bash_script(folder_path, run_order, code_dict)
75
- command = codeCallStr(rel_path, "bash")
75
+ rel_path_str = create_wrapper_bash_script(folder_path, run_order, code_dict)
76
+ command = codeCallStr(rel_path_str, "bash")
76
77
  else:
77
78
  sid = run_order[0]
78
79
  command = codeCallStr(id_to_relpath[sid], code_dict[sid]["codeLanguage"])
@@ -280,17 +281,41 @@ def get_template_var_replacement_value_fn(
280
281
  chars_before_template_var,
281
282
  )
282
283
  else:
283
- section_dependencies.append(template_var["sectionId"])
284
- keyword = remove_tp(keyword)
285
- return construct_module_path(folder_path, keyword)
284
+ return process_non_hardcoded_template_var(
285
+ keyword,
286
+ template_var,
287
+ exporter_obj,
288
+ section_dependencies,
289
+ folder_path,
290
+ )
291
+
286
292
  elif codeLanguage == "bash":
287
- section_dependencies.append(template_var["sectionId"])
288
- keyword = sanitize_section_path_full_name(remove_tp(keyword))
289
- return codePathStr(Path(os.path.relpath(folder_path)), keyword, "python")
293
+ return process_non_hardcoded_template_var(
294
+ keyword, template_var, exporter_obj, section_dependencies, folder_path
295
+ )
290
296
 
291
297
  return get_template_var_replacement_value
292
298
 
293
299
 
300
+ def process_non_hardcoded_template_var(
301
+ keyword, template_var, exporter_obj, section_dependencies, folder_path
302
+ ):
303
+ keyword, keyword_type = parse_template_var(keyword)
304
+ if keyword_type == C.TEMPLATE_VAR_IMPORT_PATH_SUFFIX:
305
+ section_dependencies.append(template_var["sectionId"])
306
+ return construct_module_path(folder_path, keyword)
307
+ elif keyword_type == C.TEMPLATE_VAR_VERSION_SUFFIX:
308
+ version_name = get_selected_section_variant(
309
+ exporter_obj.p, template_var["sectionId"]
310
+ )["name"]
311
+ section_name = get_section_name(exporter_obj.p, template_var["sectionId"])
312
+ return f'"{section_name}@{version_name}"'
313
+ elif keyword_type == C.TEMPLATE_VAR_FILE_PATH_SUFFIX:
314
+ section_dependencies.append(template_var["sectionId"])
315
+ keyword = sanitize_section_path_full_name(keyword)
316
+ return f'"{codePathStr(folder_path, keyword, "python")}"'
317
+
318
+
294
319
  def get_absolute_decl_position_from_rel_position(
295
320
  template_var, var_name_to_decl_rel_position_dict
296
321
  ):
@@ -337,7 +362,7 @@ def preprocess_template_vars(code, evRefs, templateVars, cursor_position):
337
362
 
338
363
 
339
364
  def convert_folder_path_to_module_path(folder_path):
340
- return os.path.relpath(folder_path).replace("/", ".").replace("\\", ".")
365
+ return folder_path.relative_to(CWD).as_posix().replace("/", ".").replace("\\", ".")
341
366
 
342
367
 
343
368
  def languageToExtension(x):
@@ -351,7 +376,7 @@ def languageToCall(x):
351
376
  def codePathStr(folder_path, filename, codeLanguage):
352
377
  extension = languageToExtension(codeLanguage)
353
378
  output = folder_path / f"{filename}{extension}"
354
- return os.path.relpath(output).replace(os.sep, "/")
379
+ return output.relative_to(CWD).as_posix()
355
380
 
356
381
 
357
382
  def codeCallStr(filepath, codeLanguage):
@@ -407,28 +432,19 @@ def create_timestamped_folder(base_dir, prefix=""):
407
432
  folder_name = f"_{prefix}{timestamp}"
408
433
  # Full path for the new folder
409
434
  folder_path = Path(base_dir) / folder_name
410
-
411
- if not os.path.exists(folder_path):
412
- try:
413
- os.makedirs(folder_path)
414
- except FileExistsError:
415
- pass
416
-
435
+ folder_path.mkdir(parents=True, exist_ok=True)
417
436
  return folder_path
418
437
 
419
438
 
420
439
  def write_code_to_file(folder_path, filename, code, codeLanguage):
421
440
  extension = languageToExtension(codeLanguage)
422
441
  filepath = write_string_to_file(folder_path, f"{filename}{extension}", code)
423
- return os.path.relpath(filepath).replace(os.sep, "/")
442
+ return filepath.relative_to(CWD).as_posix()
424
443
 
425
444
 
426
445
  def write_string_to_file(folder, filename, content):
427
- # Full path to the file
428
- file_path = os.path.join(folder, filename)
429
- # Write the content to the file
430
- with open(file_path, "w") as file:
431
- file.write(content)
446
+ file_path = Path(folder) / filename
447
+ file_path.write_text(content)
432
448
  return file_path
433
449
 
434
450
 
@@ -11,10 +11,6 @@ from .find_placeholders import tp
11
11
  from .utils import process_refs
12
12
 
13
13
 
14
- def get_args_var_name(var_name):
15
- return f"{C.ARGS_PREFIX}{var_name}"
16
-
17
-
18
14
  def get_section_type(p, id):
19
15
  ui_type_id = p["sections"][id]["uiTypeId"]
20
16
  ui_type = p["uiTypes"].get(ui_type_id) or BASE_UI_TYPES[ui_type_id]
@@ -144,7 +140,7 @@ def no_entered_value(value):
144
140
 
145
141
 
146
142
  def get_var_name(var_name_mapping):
147
- return f"__x{len(var_name_mapping)}"
143
+ return f"{C.ARGS_PREFIX}x{len(var_name_mapping)}"
148
144
 
149
145
 
150
146
  def get_for_section_id(p, section_id):
@@ -9,5 +9,16 @@ def remove_tp(x):
9
9
  return x.lstrip(C.TEMPLATE_PREFIX)
10
10
 
11
11
 
12
- def needs_yaml(script):
13
- return tp("SETTA_YAML_FILE") in script
12
+ def parse_template_var(template_str: str) -> tuple[str, str | None]:
13
+ suffixes = [
14
+ f"{tp(C.TEMPLATE_VAR_IMPORT_PATH_SUFFIX)}",
15
+ f"{tp(C.TEMPLATE_VAR_VERSION_SUFFIX)}",
16
+ f"{tp(C.TEMPLATE_VAR_FILE_PATH_SUFFIX)}",
17
+ ]
18
+
19
+ for suffix in suffixes:
20
+ if template_str.endswith(suffix):
21
+ base_str = remove_tp(template_str[: -len(suffix)])
22
+ return base_str, remove_tp(suffix)
23
+
24
+ return template_str, None
setta/database/backup.py CHANGED
@@ -1,5 +1,4 @@
1
1
  import logging
2
- import os
3
2
  import shutil
4
3
  import time
5
4
  from datetime import datetime
@@ -54,7 +53,7 @@ def create_backup(db_path):
54
53
  ensure_backup_dir_exists()
55
54
  timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
56
55
  backup_filename = f"backup_{timestamp}.db"
57
- backup_path = os.path.join(DB_BACKUP_FOLDER, backup_filename)
56
+ backup_path = DB_BACKUP_FOLDER / backup_filename
58
57
  logger.debug(f"creating backup: {backup_path}")
59
58
 
60
59
  shutil.copy2(db_path, backup_path)
setta/database/db_objs.py CHANGED
@@ -1,6 +1,8 @@
1
1
  import queue
2
2
  import sqlite3
3
3
 
4
+ from setta.utils.constants import SETTA_FILES_FOLDER
5
+
4
6
 
5
7
  class DB:
6
8
  def __init__(self, path):
@@ -100,3 +102,7 @@ class DBQueue:
100
102
  def __exit__(self, *args, **kwargs):
101
103
  self.curr.__exit__(*args, **kwargs)
102
104
  self.put_back_curr()
105
+
106
+
107
+ def get_default_db_path():
108
+ return SETTA_FILES_FOLDER / "setta.db"
@@ -1,9 +1,9 @@
1
1
  import logging
2
- import os
3
- from pathlib import Path
4
2
 
5
3
  import yaml
6
4
 
5
+ from setta.utils.constants import SETTA_FILES_FOLDER
6
+
7
7
  logger = logging.getLogger(__name__)
8
8
 
9
9
 
@@ -26,7 +26,7 @@ def export_raw(db, filename):
26
26
  yaml.add_representer(str, literal_presenter)
27
27
 
28
28
  # For YAML export, PyYAML is used; ensure it's installed
29
- filepath = Path(os.getcwd()) / f"{filename}_export.yaml"
29
+ filepath = SETTA_FILES_FOLDER / f"{filename}_export.yaml"
30
30
  logger.debug(f"saving raw db to {filepath}")
31
31
  with open(filepath, "w") as file:
32
32
  yaml.dump(database_export, file, allow_unicode=True, sort_keys=False)
@@ -1,16 +1,15 @@
1
- import os
2
1
  from collections import defaultdict
3
- from pathlib import Path
4
2
 
5
3
  import yaml
6
4
  from yaml.representer import Representer
7
5
 
8
6
  from setta.database.db.projects.load import load_full_project
7
+ from setta.utils.constants import SETTA_FILES_FOLDER
9
8
 
10
9
 
11
10
  def get_configs_and_root_folder(db, filename):
12
11
  # export defaultdict the same way as dict
13
12
  yaml.add_representer(defaultdict, Representer.represent_dict)
14
13
  configs = load_full_project(db)
15
- root_folder = Path(os.getcwd()) / f"{filename}_export"
14
+ root_folder = SETTA_FILES_FOLDER / f"{filename}_export"
16
15
  return configs, root_folder
@@ -11,7 +11,7 @@ from setta.database.db.sections.jsonSource import (
11
11
  remove_json_source_data,
12
12
  save_json_source_data,
13
13
  )
14
- from setta.utils.constants import CONSTANTS_FOLDER, USER_SETTINGS
14
+ from setta.utils.constants import CONSTANTS_FOLDER, SETTA_FILES_FOLDER, USER_SETTINGS
15
15
  from setta.utils.utils import get_absolute_path, save_json_to_file
16
16
 
17
17
  logger = logging.getLogger(__name__)
@@ -63,8 +63,8 @@ class MetaSettingsFile:
63
63
  self.path_seed_meta_settings = get_absolute_path(
64
64
  __file__, CONSTANTS_FOLDER / "settingsProject.json"
65
65
  )
66
- self.path_default_settings = "setta-settings.json"
67
- self.path_meta_settings = "setta-meta-settings.json"
66
+ self.path_default_settings = SETTA_FILES_FOLDER / "setta-settings.json"
67
+ self.path_meta_settings = SETTA_FILES_FOLDER / "setta-meta-settings.json"
68
68
  self.load_seed_files()
69
69
 
70
70
  def get_settings_paths(self):
setta/server.py CHANGED
@@ -1,5 +1,4 @@
1
1
  import logging
2
- import os
3
2
  from contextlib import asynccontextmanager
4
3
  from pathlib import Path
5
4
 
@@ -35,7 +34,7 @@ from setta.routers import (
35
34
  )
36
35
  from setta.tasks.tasks import Tasks
37
36
  from setta.terminals.terminals import TerminalWebsockets
38
- from setta.utils.constants import CODE_FOLDER, USER_SETTINGS, C
37
+ from setta.utils.constants import CODE_FOLDER, CWD, USER_SETTINGS, C
39
38
  from setta.utils.utils import get_absolute_path, is_dev_mode
40
39
  from setta.utils.websocket_manager import WebsocketManager
41
40
 
@@ -45,8 +44,8 @@ async def lifespan(app: FastAPI):
45
44
  # startup
46
45
  app.state.settings_file = SettingsFile()
47
46
  app.state.lsps = create_lsps(
48
- workspace_folder=Path(os.getcwd()),
49
- code_folder=Path(os.getcwd()) / CODE_FOLDER / "temp_folder",
47
+ workspace_folder=CWD,
48
+ code_folder=CODE_FOLDER / "temp_folder",
50
49
  settings=USER_SETTINGS["languageServer"],
51
50
  )
52
51
  app.state.lsp_writers = create_lsp_writers(app.state.lsps)
setta/start.py CHANGED
@@ -9,11 +9,10 @@ import uvicorn
9
9
  from . import __version__
10
10
  from .cli.connect import connect as _connect
11
11
  from .database.db_init import maybe_create_tables_and_seed
12
- from .database.db_objs import DBQueue
13
- from .database.db_path import get_default_db_path
12
+ from .database.db_objs import DBQueue, get_default_db_path
14
13
  from .database.export_db.export_db import export_database
15
14
  from .database.import_db import import_database
16
- from .utils.constants import C, set_constants
15
+ from .utils.constants import SETTA_FILES_FOLDER, C, set_constants
17
16
 
18
17
 
19
18
  @click.command()
@@ -79,6 +78,8 @@ def cli(ctx, reload, with_examples, db, host, port, log_level):
79
78
  if ctx.invoked_subcommand is None:
80
79
  print("Starting Setta", flush=True)
81
80
 
81
+ SETTA_FILES_FOLDER.mkdir(parents=True, exist_ok=True)
82
+
82
83
  set_constants(
83
84
  with_examples=with_examples,
84
85
  db_path=db,
@@ -105,6 +105,9 @@
105
105
  "WS_LSP_STATUS": "lspStatus",
106
106
  "SETTA_GENERATED_PYTHON": "SETTA_GENERATED_PYTHON",
107
107
  "SETTA_GENERATED_PYTHON_IMPORTS": "SETTA_GENERATED_PYTHON_IMPORTS",
108
+ "TEMPLATE_VAR_IMPORT_PATH_SUFFIX": "import_path",
109
+ "TEMPLATE_VAR_VERSION_SUFFIX": "version",
110
+ "TEMPLATE_VAR_FILE_PATH_SUFFIX": "file_path",
108
111
  "DEFAULT_PYTHON_SCRIPT_NAME": "setta_python_script",
109
112
  "DEFAULT_BASH_SCRIPT_NAME": "setta_bash_script",
110
113
  "CODE_AREA_GEN_CODE_NOT_INITIALIZED": "CODE_AREA_GEN_CODE_NOT_INITIALIZED",
@@ -91,7 +91,8 @@
91
91
  "isPinned": false,
92
92
  "isFrozen": false,
93
93
  "isSelected": false,
94
- "evRefs": []
94
+ "evRefs": [],
95
+ "ignoreTypeErrors": false
95
96
  },
96
97
  "codeInfoCol": {
97
98
  "children": { "null": [] }
@@ -42,19 +42,19 @@
42
42
  },
43
43
  "sectionVariants": {
44
44
  "19f203aa-cae6-4ccc-928c-dab0194ade77": {
45
- "name": "setta-settings.json"
45
+ "name": "setta_files/setta-settings.json"
46
46
  },
47
47
  "f3cb4189-2692-4e75-b58f-76d632f44205": {
48
- "name": "setta-settings.json"
48
+ "name": "setta_files/setta-settings.json"
49
49
  },
50
50
  "36d29a06-7971-48d1-a1d2-23480f770d74": {
51
- "name": "setta-settings.json"
51
+ "name": "setta_files/setta-settings.json"
52
52
  },
53
53
  "4490975a-8d8d-4f02-8ed4-f48f8258f1ec": {
54
- "name": "setta-settings.json"
54
+ "name": "setta_files/setta-settings.json"
55
55
  },
56
56
  "d2c7059a-8e28-488a-aa33-056476652d5e": {
57
- "name": "setta-settings.json"
57
+ "name": "setta_files/setta-settings.json"
58
58
  }
59
59
  },
60
60
  "uiTypes": {
@@ -123,67 +123,67 @@
123
123
  },
124
124
  "uiTypeCols": {
125
125
  "04f95495-52ba-4277-a79e-228bb1c6a5bc": {
126
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"panOnScrollMode\"]}": {
126
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"panOnScrollMode\"]}": {
127
127
  "uiTypeId": "86b19dfb-742b-4d82-aa5f-5d4cca9f3d0a"
128
128
  },
129
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"selectionMode\"]}": {
129
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"selectionMode\"]}": {
130
130
  "uiTypeId": "1ec5d8de-f984-451d-b43a-78917f698d52"
131
131
  },
132
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"showGridLines\"]}": {
132
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"showGridLines\"]}": {
133
133
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
134
134
  },
135
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"gridColor\"]}": {
135
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"gridColor\"]}": {
136
136
  "uiTypeId": "74de30af-accf-44db-9b6b-da4260f0bd60"
137
137
  },
138
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"gridColorDarkMode\"]}": {
138
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"gridColorDarkMode\"]}": {
139
139
  "uiTypeId": "74de30af-accf-44db-9b6b-da4260f0bd60"
140
140
  },
141
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"gridPattern\"]}": {
141
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"gridPattern\"]}": {
142
142
  "uiTypeId": "90f2233a-2864-498f-a4df-4c027fa0c4a4"
143
143
  },
144
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"backend\",\"showDefaultConfigOnLoad\"]}": {
144
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"backend\",\"showDefaultConfigOnLoad\"]}": {
145
145
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
146
146
  },
147
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"backend\",\"inferImports\"]}": {
147
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"backend\",\"inferImports\"]}": {
148
148
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
149
149
  },
150
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"backend\",\"autosave\"]}": {
150
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"backend\",\"autosave\"]}": {
151
151
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
152
152
  },
153
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"backend\",\"autobackup\"]}": {
153
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"backend\",\"autobackup\"]}": {
154
154
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
155
155
  },
156
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"leftSidePaneShiftsMap\"]}": {
156
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"leftSidePaneShiftsMap\"]}": {
157
157
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
158
158
  },
159
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"panOnDrag\"]}": {
159
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"panOnDrag\"]}": {
160
160
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
161
161
  },
162
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"panOnScroll\"]}": {
162
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"panOnScroll\"]}": {
163
163
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
164
164
  },
165
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"zoomOnScroll\"]}": {
165
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"zoomOnScroll\"]}": {
166
166
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
167
167
  },
168
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"zoomOnPinch\"]}": {
168
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"zoomOnPinch\"]}": {
169
169
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
170
170
  },
171
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"gui\",\"zoomOnDoubleClick\"]}": {
171
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"gui\",\"zoomOnDoubleClick\"]}": {
172
172
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
173
173
  },
174
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"backend\",\"clearTerminalBeforeMarkingAsReady\"]}": {
174
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"backend\",\"clearTerminalBeforeMarkingAsReady\"]}": {
175
175
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
176
176
  },
177
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"backend\",\"exportDbRawOnSave\"]}": {
177
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"backend\",\"exportDbRawOnSave\"]}": {
178
178
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
179
179
  },
180
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"backend\",\"exportDbReadableOnSave\"]}": {
180
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"backend\",\"exportDbReadableOnSave\"]}": {
181
181
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
182
182
  },
183
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"backend\",\"exportDbReadableWithVariantsOnSave\"]}": {
183
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"backend\",\"exportDbReadableWithVariantsOnSave\"]}": {
184
184
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
185
185
  },
186
- "JSON-{\"filenameGlob\":\"setta-settings*.json\",\"key\":[\"backend\",\"saveRenderedValues\"]}": {
186
+ "JSON-{\"filenameGlob\":\"setta_files/setta-settings*.json\",\"key\":[\"backend\",\"saveRenderedValues\"]}": {
187
187
  "uiTypeId": "69cdf4c5-7555-4ef3-93d3-bda03f33c6d5"
188
188
  }
189
189
  }
@@ -202,7 +202,7 @@
202
202
  "variantIds": ["19f203aa-cae6-4ccc-928c-dab0194ade77"],
203
203
  "configLanguage": "json",
204
204
  "hideSearch": true,
205
- "jsonSource": "setta-settings*.json",
205
+ "jsonSource": "setta_files/setta-settings*.json",
206
206
  "jsonSourceKeys": ["shortcuts"]
207
207
  },
208
208
  "6b264a9a-0f87-4288-80aa-45cc6b16db96": {
@@ -218,7 +218,7 @@
218
218
  "variantIds": ["f3cb4189-2692-4e75-b58f-76d632f44205"],
219
219
  "configLanguage": "json",
220
220
  "hideSearch": true,
221
- "jsonSource": "setta-settings*.json",
221
+ "jsonSource": "setta_files/setta-settings*.json",
222
222
  "jsonSourceKeys": ["gui"]
223
223
  },
224
224
  "f74b5aaf-d11d-4153-b55b-9c18e11e3a73": {
@@ -234,7 +234,7 @@
234
234
  "variantIds": ["36d29a06-7971-48d1-a1d2-23480f770d74"],
235
235
  "configLanguage": "json",
236
236
  "hideSearch": true,
237
- "jsonSource": "setta-settings*.json",
237
+ "jsonSource": "setta_files/setta-settings*.json",
238
238
  "jsonSourceKeys": ["backend"]
239
239
  },
240
240
  "8389d4b3-0a1e-4c44-819b-7c745d6c3f1b": {
@@ -250,7 +250,7 @@
250
250
  "variantIds": ["4490975a-8d8d-4f02-8ed4-f48f8258f1ec"],
251
251
  "configLanguage": "json",
252
252
  "hideSearch": true,
253
- "jsonSource": "setta-settings*.json",
253
+ "jsonSource": "setta_files/setta-settings*.json",
254
254
  "jsonSourceKeys": ["languageServer"]
255
255
  },
256
256
  "514c2046-25de-4b0a-b6f9-fca1dd14ad8e": {
@@ -266,7 +266,7 @@
266
266
  "variantIds": ["d2c7059a-8e28-488a-aa33-056476652d5e"],
267
267
  "configLanguage": "json",
268
268
  "hideSearch": true,
269
- "jsonSource": "setta-settings*.json",
269
+ "jsonSource": "setta_files/setta-settings*.json",
270
270
  "jsonSourceKeys": ["sections"]
271
271
  }
272
272
  },