setta 0.0.16.dev1__tar.gz → 0.0.17__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 (268) hide show
  1. {setta-0.0.16.dev1/backend/setta.egg-info → setta-0.0.17}/PKG-INFO +20 -8
  2. {setta-0.0.16.dev1 → setta-0.0.17}/README.md +19 -7
  3. setta-0.0.17/backend/setta/__init__.py +1 -0
  4. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/interactive.py +40 -3
  5. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/projects.py +42 -3
  6. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/settings.py +11 -1
  7. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/constants/Settings.json +1 -0
  8. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/constants/constants.json +8 -1
  9. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/constants/db_init.sql +15 -0
  10. setta-0.0.17/backend/setta/static/frontend/assets/index-D-mLvWDA.css +32 -0
  11. setta-0.0.16.dev1/backend/setta/static/frontend/assets/index-DWKVZt-S.js → setta-0.0.17/backend/setta/static/frontend/assets/index-D3_nMLig.js +186 -186
  12. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/index.html +2 -2
  13. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/tasks.py +3 -0
  14. {setta-0.0.16.dev1 → setta-0.0.17/backend/setta.egg-info}/PKG-INFO +20 -8
  15. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta.egg-info/SOURCES.txt +2 -2
  16. setta-0.0.16.dev1/backend/setta/__init__.py +0 -1
  17. setta-0.0.16.dev1/backend/setta/static/frontend/assets/index-VC4wWLEk.css +0 -32
  18. {setta-0.0.16.dev1 → setta-0.0.17}/LICENSE +0 -0
  19. {setta-0.0.16.dev1 → setta-0.0.17}/MANIFEST.in +0 -0
  20. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/cli/__init__.py +0 -0
  21. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/cli/connect.py +0 -0
  22. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/cli/logger.py +0 -0
  23. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/__init__.py +0 -0
  24. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/create_runnable_scripts.py +0 -0
  25. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/export_selected.py +0 -0
  26. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/find_placeholders.py +0 -0
  27. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/python/__init__.py +0 -0
  28. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/python/ast_utils.py +0 -0
  29. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/python/check_scope.py +0 -0
  30. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/python/generate_code.py +0 -0
  31. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/python/make_parseable.py +0 -0
  32. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/python/position_line_col.py +0 -0
  33. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/python/validate_imports.py +0 -0
  34. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/utils.py +0 -0
  35. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/yaml/__init__.py +0 -0
  36. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/yaml/generate_yaml.py +0 -0
  37. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/code_gen/yaml/section_dict.py +0 -0
  38. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/__init__.py +0 -0
  39. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/backup.py +0 -0
  40. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/__init__.py +0 -0
  41. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/artifacts/__init__.py +0 -0
  42. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/artifacts/load.py +0 -0
  43. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/artifacts/save.py +0 -0
  44. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/artifacts/save_or_create.py +0 -0
  45. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/artifacts/utils.py +0 -0
  46. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/codeInfo/__init__.py +0 -0
  47. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/codeInfo/copy.py +0 -0
  48. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/codeInfo/load.py +0 -0
  49. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/codeInfo/save.py +0 -0
  50. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/codeInfo/utils.py +0 -0
  51. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/evRefs/__init__.py +0 -0
  52. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/evRefs/load.py +0 -0
  53. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/evRefs/save.py +0 -0
  54. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/projects/__init__.py +0 -0
  55. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/projects/copy.py +0 -0
  56. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/projects/delete.py +0 -0
  57. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/projects/load.py +0 -0
  58. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/projects/save.py +0 -0
  59. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/projects/saveAs.py +0 -0
  60. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/projects/utils.py +0 -0
  61. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sectionVariants/__init__.py +0 -0
  62. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sectionVariants/copy.py +0 -0
  63. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sectionVariants/load.py +0 -0
  64. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sectionVariants/save.py +0 -0
  65. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sectionVariants/utils.py +0 -0
  66. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sections/__init__.py +0 -0
  67. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sections/copy.py +0 -0
  68. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sections/jsonSource.py +0 -0
  69. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sections/load.py +0 -0
  70. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sections/save.py +0 -0
  71. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/sections/utils.py +0 -0
  72. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/uiTypes/__init__.py +0 -0
  73. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/uiTypes/copy.py +0 -0
  74. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/uiTypes/load.py +0 -0
  75. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/uiTypes/save.py +0 -0
  76. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db/uiTypes/utils.py +0 -0
  77. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db_init.py +0 -0
  78. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/db_objs.py +0 -0
  79. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/export_db/__init__.py +0 -0
  80. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/export_db/export_db.py +0 -0
  81. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/export_db/export_raw.py +0 -0
  82. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/export_db/export_readable.py +0 -0
  83. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/export_db/utils.py +0 -0
  84. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/import_db.py +0 -0
  85. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/seed.py +0 -0
  86. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/settings_file.py +0 -0
  87. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/database/utils.py +0 -0
  88. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/__init__.py +0 -0
  89. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/file_watcher.py +0 -0
  90. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/reader.py +0 -0
  91. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/reader_fns/__init__.py +0 -0
  92. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/reader_fns/completion.py +0 -0
  93. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/reader_fns/definition.py +0 -0
  94. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/reader_fns/diagnostics.py +0 -0
  95. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/reader_fns/documentHighlight.py +0 -0
  96. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/reader_fns/references.py +0 -0
  97. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/reader_fns/signatureHelp.py +0 -0
  98. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/server.py +0 -0
  99. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/specific_file_watcher.py +0 -0
  100. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/utils.py +0 -0
  101. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/lsp/writer.py +0 -0
  102. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/__init__.py +0 -0
  103. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/artifact.py +0 -0
  104. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/code_info.py +0 -0
  105. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/dependencies.py +0 -0
  106. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/in_memory_fn_stdout_websocket.py +0 -0
  107. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/lsp.py +0 -0
  108. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/reference_renaming.py +0 -0
  109. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/sections.py +0 -0
  110. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/terminals.py +0 -0
  111. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/routers/websocket.py +0 -0
  112. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/server.py +0 -0
  113. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/start.py +0 -0
  114. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/constants/BaseUITypes.json +0 -0
  115. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/constants/defaultValues.json +0 -0
  116. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/constants/settingsProject.json +0 -0
  117. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/android-chrome-192x192.png +0 -0
  118. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/android-chrome-512x512.png +0 -0
  119. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/apple-touch-icon.png +0 -0
  120. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  121. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  122. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  123. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  124. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  125. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  126. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  127. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  128. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  129. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  130. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  131. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  132. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  133. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  134. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  135. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  136. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  137. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  138. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  139. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  140. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  141. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  142. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  143. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  144. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  145. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  146. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  147. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  148. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  149. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  150. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  151. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  152. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  153. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  154. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  155. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  156. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  157. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  158. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  159. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  160. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  161. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  162. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  163. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  164. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  165. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  166. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  167. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  168. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  169. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  170. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  171. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  172. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  173. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  174. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  175. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  176. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  177. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  178. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  179. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/cormorant-garamond-all-700-italic-D-4m7eF5.woff +0 -0
  180. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/cormorant-garamond-cyrillic-700-italic-C21vCyEA.woff2 +0 -0
  181. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/cormorant-garamond-cyrillic-ext-700-italic-gsr366qd.woff2 +0 -0
  182. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/cormorant-garamond-latin-700-italic-BQbwEFjx.woff2 +0 -0
  183. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/cormorant-garamond-latin-ext-700-italic-DnnS5iSC.woff2 +0 -0
  184. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/cormorant-garamond-vietnamese-700-italic-2_nTgjbG.woff2 +0 -0
  185. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-all-400-normal-ByZ5TkcW.woff +0 -0
  186. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-all-600-normal-BQl_S1BW.woff +0 -0
  187. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-all-800-normal-BdAoPad8.woff +0 -0
  188. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-cyrillic-400-normal-BdCE3qi6.woff2 +0 -0
  189. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-cyrillic-600-normal-7XOpjHIA.woff2 +0 -0
  190. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-cyrillic-800-normal-DGhuWe7d.woff2 +0 -0
  191. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-cyrillic-ext-400-normal-BWPw_Wqo.woff2 +0 -0
  192. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-cyrillic-ext-600-normal-ejcnWb4M.woff2 +0 -0
  193. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-cyrillic-ext-800-normal-DBv1a6vS.woff2 +0 -0
  194. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-greek-400-normal-B1y6FevT.woff2 +0 -0
  195. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-greek-600-normal-C2fO7_LG.woff2 +0 -0
  196. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-greek-800-normal-Cmzsyk9X.woff2 +0 -0
  197. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-greek-ext-400-normal-CDYjSWzV.woff2 +0 -0
  198. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-greek-ext-600-normal-aFl-DVOe.woff2 +0 -0
  199. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-greek-ext-800-normal-BDfRYppl.woff2 +0 -0
  200. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-latin-400-normal-C0b7ZYuD.woff2 +0 -0
  201. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-latin-600-normal-Do_HpvrI.woff2 +0 -0
  202. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-latin-800-normal-4xo3UuPr.woff2 +0 -0
  203. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-latin-ext-400-normal-CoAAiu5e.woff2 +0 -0
  204. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-latin-ext-600-normal-Dc00Iig3.woff2 +0 -0
  205. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/inter-latin-ext-800-normal-MtSFSlwC.woff2 +0 -0
  206. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/logo/logo.svg +0 -0
  207. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/source-code-pro-all-500-normal-r3XLtphf.woff +0 -0
  208. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/source-code-pro-cyrillic-500-normal-CY1ydVwz.woff2 +0 -0
  209. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/source-code-pro-cyrillic-ext-500-normal-CfYAfiCF.woff2 +0 -0
  210. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/source-code-pro-greek-500-normal-CAXYj0Fh.woff2 +0 -0
  211. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/source-code-pro-latin-500-normal-D9gpC5Cq.woff2 +0 -0
  212. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/source-code-pro-latin-ext-500-normal-CRAmHsi-.woff2 +0 -0
  213. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-all-400-normal-DjvUmtn7.woff +0 -0
  214. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-all-500-normal-xIKbAjND.woff +0 -0
  215. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-all-600-normal-G3qI_FYS.woff +0 -0
  216. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-all-700-normal-DDAKfh8R.woff +0 -0
  217. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-latin-400-normal-DiMJuv0g.woff2 +0 -0
  218. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-latin-500-normal-Bj5Gxvqh.woff2 +0 -0
  219. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-latin-600-normal-DqkZaPuW.woff2 +0 -0
  220. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-latin-700-normal-DrOaUiEE.woff2 +0 -0
  221. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-latin-ext-400-normal-DVtzt6WA.woff2 +0 -0
  222. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-latin-ext-500-normal-Ci3LVpiW.woff2 +0 -0
  223. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-latin-ext-600-normal-BROvLH43.woff2 +0 -0
  224. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/assets/work-sans-latin-ext-700-normal-qcgZR4tS.woff2 +0 -0
  225. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/browserconfig.xml +0 -0
  226. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/favicon-16x16.png +0 -0
  227. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/favicon-32x32.png +0 -0
  228. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/favicon.ico +0 -0
  229. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/manifest.json +0 -0
  230. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/mstile-144x144.png +0 -0
  231. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/mstile-150x150.png +0 -0
  232. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/mstile-310x150.png +0 -0
  233. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/mstile-310x310.png +0 -0
  234. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/mstile-70x70.png +0 -0
  235. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/robots.txt +0 -0
  236. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/safari-pinned-tab.svg +0 -0
  237. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/frontend/site.webmanifest +0 -0
  238. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/seed/.DS_Store +0 -0
  239. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/static/seed/examples/.DS_Store +0 -0
  240. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/__init__.py +0 -0
  241. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/__init__.py +0 -0
  242. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/codeAreaAutocomplete.py +0 -0
  243. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/codeAreaFindTemplateVars.py +0 -0
  244. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/codeAreaInitializeCode.py +0 -0
  245. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/findEVRefs.py +0 -0
  246. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/parametersRequest.py +0 -0
  247. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/textFieldAutocomplete.py +0 -0
  248. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/textFieldInitializeCode.py +0 -0
  249. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/typeCheck.py +0 -0
  250. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/fns/utils.py +0 -0
  251. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/task_runner.py +0 -0
  252. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/tasks/utils.py +0 -0
  253. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/terminals/__init__.py +0 -0
  254. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/terminals/terminals.py +0 -0
  255. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/terminals/utils.py +0 -0
  256. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/utils/__init__.py +0 -0
  257. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/utils/constants.py +0 -0
  258. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/utils/generate_memorable_string.py +0 -0
  259. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/utils/generate_new_filename.py +0 -0
  260. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/utils/section_contents.py +0 -0
  261. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/utils/utils.py +0 -0
  262. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta/utils/websocket_manager.py +0 -0
  263. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta.egg-info/dependency_links.txt +0 -0
  264. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta.egg-info/entry_points.txt +0 -0
  265. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta.egg-info/requires.txt +0 -0
  266. {setta-0.0.16.dev1 → setta-0.0.17}/backend/setta.egg-info/top_level.txt +0 -0
  267. {setta-0.0.16.dev1 → setta-0.0.17}/pyproject.toml +0 -0
  268. {setta-0.0.16.dev1 → setta-0.0.17}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: setta
3
- Version: 0.0.16.dev1
3
+ Version: 0.0.17
4
4
  Summary: Python without the donkeywork.
5
5
  Home-page: https://setta.dev
6
6
  Author: Kevin Musgrave, Jeff Musgrave
@@ -42,18 +42,23 @@ Requires-Dist: flake8==6.1.0; extra == "dev"
42
42
 
43
43
  ## News
44
44
 
45
+ **March 13**: [v0.0.17](https://github.com/settadev/setta/releases/tag/v0.0.17)
46
+ - Added the Notifications view.
47
+
48
+ <div align="center">
49
+ <img width="441" src="https://github.com/user-attachments/assets/568f82c7-4944-44c8-a7c5-20008f09f97e" />
50
+ </div>
51
+
52
+ **March 10**: [v0.0.16](https://github.com/settadev/setta/releases/tag/v0.0.16)
53
+ - Made tooltips resizable and draggable.
54
+ - Added command palette.
55
+ - Improved code generation to account for different argument-passing styles.
56
+
45
57
  **March 7**: [v0.0.15](https://github.com/settadev/setta/releases/tag/v0.0.15)
46
58
  - Improved context menu organization.
47
59
  - Added ability to change size of artifacts while preserving aspect ratio.
48
60
  - Added Stop button for stopping subprocesses.
49
61
 
50
- **March 5**: [v0.0.14](https://github.com/settadev/setta/releases/tag/v0.0.14)
51
- - Allow access to individual layers of Drawing sections, as well as the combined output.
52
- - Added button + shortcut for sending current full project state to in-memory functions.
53
-
54
- **March 4**: [v0.0.13](https://github.com/settadev/setta/releases/tag/v0.0.13)
55
- - Updated frontend javascript dependencies.
56
-
57
62
 
58
63
  ## What does Setta do?
59
64
 
@@ -90,6 +95,13 @@ Or click on one of the images below to go directly to that example:
90
95
  <td><a href="https://github.com/settadev/examples/tree/main/transformers_trainer"><img src="https://github.com/user-attachments/assets/1f6554f8-8d49-4ba8-af48-f5dc6bc5d845" /></a></td>
91
96
  <td><a href="https://github.com/settadev/examples/tree/main/pytorch_metric_learning_trainer"><img src="https://github.com/user-attachments/assets/45ae2047-9dbd-4057-9191-9a3460357ccc" /></a></td>
92
97
  </tr>
98
+
99
+ <tr>
100
+ <td><a href="https://github.com/settadev/examples/tree/main/sapientml_automl"><img src="https://github.com/user-attachments/assets/d58e648a-47e2-4eda-b9e5-9062494518a4" /></a></td>
101
+ </tr>
102
+
103
+
104
+
93
105
  </table>
94
106
 
95
107
  We also have [tutorial videos](https://www.youtube.com/@settadev).
@@ -12,18 +12,23 @@
12
12
 
13
13
  ## News
14
14
 
15
+ **March 13**: [v0.0.17](https://github.com/settadev/setta/releases/tag/v0.0.17)
16
+ - Added the Notifications view.
17
+
18
+ <div align="center">
19
+ <img width="441" src="https://github.com/user-attachments/assets/568f82c7-4944-44c8-a7c5-20008f09f97e" />
20
+ </div>
21
+
22
+ **March 10**: [v0.0.16](https://github.com/settadev/setta/releases/tag/v0.0.16)
23
+ - Made tooltips resizable and draggable.
24
+ - Added command palette.
25
+ - Improved code generation to account for different argument-passing styles.
26
+
15
27
  **March 7**: [v0.0.15](https://github.com/settadev/setta/releases/tag/v0.0.15)
16
28
  - Improved context menu organization.
17
29
  - Added ability to change size of artifacts while preserving aspect ratio.
18
30
  - Added Stop button for stopping subprocesses.
19
31
 
20
- **March 5**: [v0.0.14](https://github.com/settadev/setta/releases/tag/v0.0.14)
21
- - Allow access to individual layers of Drawing sections, as well as the combined output.
22
- - Added button + shortcut for sending current full project state to in-memory functions.
23
-
24
- **March 4**: [v0.0.13](https://github.com/settadev/setta/releases/tag/v0.0.13)
25
- - Updated frontend javascript dependencies.
26
-
27
32
 
28
33
  ## What does Setta do?
29
34
 
@@ -60,6 +65,13 @@ Or click on one of the images below to go directly to that example:
60
65
  <td><a href="https://github.com/settadev/examples/tree/main/transformers_trainer"><img src="https://github.com/user-attachments/assets/1f6554f8-8d49-4ba8-af48-f5dc6bc5d845" /></a></td>
61
66
  <td><a href="https://github.com/settadev/examples/tree/main/pytorch_metric_learning_trainer"><img src="https://github.com/user-attachments/assets/45ae2047-9dbd-4057-9191-9a3460357ccc" /></a></td>
62
67
  </tr>
68
+
69
+ <tr>
70
+ <td><a href="https://github.com/settadev/examples/tree/main/sapientml_automl"><img src="https://github.com/user-attachments/assets/d58e648a-47e2-4eda-b9e5-9062494518a4" /></a></td>
71
+ </tr>
72
+
73
+
74
+
63
75
  </table>
64
76
 
65
77
  We also have [tutorial videos](https://www.youtube.com/@settadev).
@@ -0,0 +1 @@
1
+ __version__ = "0.0.17"
@@ -17,12 +17,17 @@ from setta.code_gen.export_selected import (
17
17
  get_section_type,
18
18
  )
19
19
  from setta.code_gen.find_placeholders import parse_template_var
20
+ from setta.database.db.notifications.load import (
21
+ create_notification_dict,
22
+ load_notification,
23
+ )
24
+ from setta.database.db.notifications.save import save_notification
20
25
  from setta.tasks.fns.utils import replace_template_vars_with_random_names
21
26
  from setta.tasks.tasks import construct_subprocess_key
22
27
  from setta.utils.constants import C
23
28
  from setta.utils.utils import multireplace
24
29
 
25
- from .dependencies import get_lsp_writers, get_tasks
30
+ from .dependencies import get_dbq, get_lsp_writers, get_tasks
26
31
 
27
32
  router = APIRouter()
28
33
 
@@ -36,6 +41,10 @@ class FormatCodeRequest(BaseModel):
36
41
  candidateTemplateVars: dict
37
42
 
38
43
 
44
+ class KillInMemorySubprocessesRequest(BaseModel):
45
+ projectConfigId: str
46
+
47
+
39
48
  @router.post(C.ROUTE_SEND_PROJECT_TO_INTERACTIVE_CODE)
40
49
  async def route_send_project_to_interactive_code(
41
50
  x: UpdateInteractiveCodeRequest,
@@ -151,8 +160,36 @@ async def update_interactive_code(p, tasks, lsp_writers, idx):
151
160
 
152
161
 
153
162
  @router.post(C.ROUTE_KILL_IN_MEMORY_SUBPROCESSES)
154
- async def route_kill_in_memory_subprocesses(tasks=Depends(get_tasks)):
155
- tasks.kill_in_memory_subprocesses()
163
+ async def route_kill_in_memory_subprocesses(
164
+ x: KillInMemorySubprocessesRequest, tasks=Depends(get_tasks), dbq=Depends(get_dbq)
165
+ ):
166
+ notification = None
167
+ try:
168
+ num_killed = tasks.kill_in_memory_subprocesses()
169
+ if num_killed == 0:
170
+ notification = create_notification_dict(
171
+ message="No subprocesses to kill",
172
+ type=C.NOTIFICATION_TYPE_INFO,
173
+ temporary=True,
174
+ )
175
+ else:
176
+ with dbq as db:
177
+ notification_id = save_notification(
178
+ db,
179
+ x.projectConfigId,
180
+ C.NOTIFICATION_TYPE_INFO,
181
+ f"Killed {num_killed} subprocesses",
182
+ )
183
+ notification = load_notification(db, notification_id)
184
+
185
+ except Exception as e:
186
+ notification = create_notification_dict(
187
+ message="Failed to kill subprocesses",
188
+ type=C.NOTIFICATION_TYPE_ERROR,
189
+ temporary=True,
190
+ )
191
+
192
+ return {"notification": notification}
156
193
 
157
194
 
158
195
  @router.post(C.ROUTE_FORMAT_CODE)
@@ -5,6 +5,11 @@ from fastapi import APIRouter, Depends, HTTPException
5
5
  from pydantic import BaseModel
6
6
 
7
7
  from setta.database.backup import maybe_create_backup
8
+ from setta.database.db.notifications.delete import delete_notification
9
+ from setta.database.db.notifications.load import (
10
+ create_notification_dict,
11
+ load_project_notifications,
12
+ )
8
13
  from setta.database.db.projects.delete import delete_project_configs
9
14
  from setta.database.db.projects.load import (
10
15
  ProjectNotFound,
@@ -85,6 +90,14 @@ class AddDefaultDataForJSONImportRequest(BaseModel):
85
90
  project: dict
86
91
 
87
92
 
93
+ class GetNotificationsRequest(BaseModel):
94
+ projectConfigId: str
95
+
96
+
97
+ class DeleteNotificationRequest(BaseModel):
98
+ notificationId: str
99
+
100
+
88
101
  @router.post(C.ROUTE_ALL_PROJECT_CONFIG_METADATA)
89
102
  def route_all_project_config_metadata(dbq=Depends(get_dbq)):
90
103
  with dbq as db:
@@ -120,9 +133,21 @@ def route_load_full_project(x: ProjectLoadFullRequest, dbq=Depends(get_dbq)):
120
133
  @router.post(C.ROUTE_SAVE_PROJECT)
121
134
  def route_save_project(x: ProjectSaveRequest, dbq=Depends(get_dbq)):
122
135
  with dbq as db:
123
- maybe_create_backup(db.path)
124
- save_project_details(db, x.project)
125
- maybe_export_database(db, db.path)
136
+ notification = None
137
+ try:
138
+ # Perform existing save operations
139
+ maybe_create_backup(db.path)
140
+ save_project_details(db, x.project)
141
+ maybe_export_database(db, db.path)
142
+ # Return success response with notification
143
+ notification = create_notification_dict(message="Saved!", temporary=True)
144
+
145
+ except Exception as e:
146
+ notification = create_notification_dict(
147
+ message="Failed to save", type=C.NOTIFICATION_TYPE_ERROR, temporary=True
148
+ )
149
+
150
+ return {"notification": notification}
126
151
 
127
152
 
128
153
  @router.post(C.ROUTE_CREATE_PROJECT_CONFIG)
@@ -186,3 +211,17 @@ def router_filter_data_for_json_export(x: FilterDataForJSONExportRequest):
186
211
  def router_add_default_data_for_json_import(x: FilterDataForJSONExportRequest):
187
212
  add_defaults_to_project_and_load_json_sources(x.project)
188
213
  return x.project
214
+
215
+
216
+ @router.post(C.ROUTE_GET_NOTIFICATIONS)
217
+ def route_get_notifications(x: GetNotificationsRequest, dbq=Depends(get_dbq)):
218
+ with dbq as db:
219
+ notifications = load_project_notifications(db, x.projectConfigId)
220
+ return notifications
221
+
222
+
223
+ @router.post(C.ROUTE_DELETE_NOTIFICATION)
224
+ def route_delete_notification(x: DeleteNotificationRequest, dbq=Depends(get_dbq)):
225
+ with dbq as db:
226
+ success = delete_notification(db, x.notificationId)
227
+ return {"success": success}
@@ -1,6 +1,7 @@
1
1
  from fastapi import APIRouter, Depends
2
2
  from pydantic import BaseModel
3
3
 
4
+ from setta.database.db.notifications.load import create_notification_dict
4
5
  from setta.utils.constants import C
5
6
 
6
7
  from .dependencies import get_settings_file
@@ -32,7 +33,16 @@ def route_load_settings(settings_file=Depends(get_settings_file)):
32
33
  def route_save_settings_project(
33
34
  x: SaveSettingsProjectRequest, settings_file=Depends(get_settings_file)
34
35
  ):
35
- return settings_file.save_settings_project(x.settingsProject)
36
+ notification = None
37
+ try:
38
+ settings_file.save_settings_project(x.settingsProject)
39
+ notification = create_notification_dict(message="Saved!", temporary=True)
40
+ except Exception as e:
41
+ notification = create_notification_dict(
42
+ message="Failed to save", type=C.NOTIFICATION_TYPE_ERROR, temporary=True
43
+ )
44
+
45
+ return {"notification": notification}
36
46
 
37
47
 
38
48
  @router.post(C.ROUTE_LOAD_SETTINGS_PROJECT)
@@ -13,6 +13,7 @@
13
13
  "loadShortcut": "Mod + L",
14
14
  "searchShortcut": "Mod + K",
15
15
  "advancedSearchShortcut": "Mod + P",
16
+ "commandPaletteShortcut": "Mod + Shift + P",
16
17
  "resetZoomShortcut": "Mod + Comma",
17
18
  "copyShortcut": "Mod + C",
18
19
  "pasteShortcut": "Mod + V",
@@ -97,6 +97,8 @@
97
97
  "ROUTE_LOAD_ARTIFACT_FROM_DISK": "/loadArtifactFromDisk",
98
98
  "ROUTE_RESTART_LANGUAGE_SERVER": "/restartLanguageServer",
99
99
  "ROUTE_FILE_WATCH_LIST": "/fileWatchList",
100
+ "ROUTE_GET_NOTIFICATIONS": "/getNotifications",
101
+ "ROUTE_DELETE_NOTIFICATION": "/deleteNotification",
100
102
  "NESTED_PARAM": "NESTED_PARAM",
101
103
  "ARGS_PREFIX": "__",
102
104
  "TEMPLATE_PREFIX": "$",
@@ -123,5 +125,10 @@
123
125
  "IMAGE": ["img"],
124
126
  "CHART": ["list"],
125
127
  "CHAT": ["chatHistory"]
126
- }
128
+ },
129
+ "NOTIFICATION_TYPE_SUCCESS": "success",
130
+ "NOTIFICATION_TYPE_ERROR": "error",
131
+ "NOTIFICATION_TYPE_WARNING": "warning",
132
+ "NOTIFICATION_TYPE_INFO": "info",
133
+ "NOTIFICATION_TYPE_SAVE": "save"
127
134
  }
@@ -221,6 +221,21 @@ CREATE TABLE IF NOT EXISTS ArtifactGroup (
221
221
  FOREIGN KEY (artifactId) REFERENCES Artifact(id) ON DELETE CASCADE
222
222
  );
223
223
 
224
+ CREATE TABLE IF NOT EXISTS Notifications (
225
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
226
+ projectConfigId TEXT NOT NULL,
227
+ timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
228
+ type TEXT NOT NULL,
229
+ message TEXT NOT NULL,
230
+ metadata JSON,
231
+ read_status BOOLEAN NOT NULL DEFAULT 0,
232
+ FOREIGN KEY (projectConfigId) REFERENCES ProjectConfig(id)
233
+ );
234
+
235
+
236
+
237
+
238
+
224
239
  -- INSERTS ---
225
240
  INSERT OR IGNORE INTO Metadata (id, defaultProject) VALUES (1, NULL);
226
241