setta 0.0.3.dev3__tar.gz → 0.0.3.dev6__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (272) hide show
  1. {setta-0.0.3.dev3/backend/setta.egg-info → setta-0.0.3.dev6}/PKG-INFO +1 -1
  2. setta-0.0.3.dev6/backend/setta/__init__.py +1 -0
  3. setta-0.0.3.dev6/backend/setta/cli/__init__.py +1 -0
  4. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/create_runnable_scripts.py +44 -7
  5. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/file_watcher.py +24 -23
  6. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/server.py +1 -1
  7. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/writer.py +2 -2
  8. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/interactive.py +39 -20
  9. setta-0.0.3.dev3/backend/setta/static/frontend/assets/index-73adf0a9.js → setta-0.0.3.dev6/backend/setta/static/frontend/assets/index-1f218da9.js +154 -154
  10. setta-0.0.3.dev6/backend/setta/static/frontend/assets/index-af271c9f.css +32 -0
  11. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/index.html +2 -2
  12. setta-0.0.3.dev6/backend/setta/tasks/tasks.py +159 -0
  13. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/utils.py +72 -8
  14. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/utils/websocket_manager.py +8 -3
  15. {setta-0.0.3.dev3 → setta-0.0.3.dev6/backend/setta.egg-info}/PKG-INFO +1 -1
  16. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta.egg-info/SOURCES.txt +2 -2
  17. setta-0.0.3.dev3/backend/setta/__init__.py +0 -1
  18. setta-0.0.3.dev3/backend/setta/cli/__init__.py +0 -1
  19. setta-0.0.3.dev3/backend/setta/static/frontend/assets/index-1d4b4ecf.css +0 -32
  20. setta-0.0.3.dev3/backend/setta/tasks/tasks.py +0 -152
  21. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/LICENSE +0 -0
  22. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/MANIFEST.in +0 -0
  23. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/README.md +0 -0
  24. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/cli/connect.py +0 -0
  25. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/cli/logger.py +0 -0
  26. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/__init__.py +0 -0
  27. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/export_selected.py +0 -0
  28. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/find_placeholders.py +0 -0
  29. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/python/__init__.py +0 -0
  30. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/python/ast_utils.py +0 -0
  31. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/python/check_scope.py +0 -0
  32. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/python/generate_code.py +0 -0
  33. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/python/make_parseable.py +0 -0
  34. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/python/position_line_col.py +0 -0
  35. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/python/validate_imports.py +0 -0
  36. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/utils.py +0 -0
  37. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/yaml/__init__.py +0 -0
  38. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/yaml/generate_yaml.py +0 -0
  39. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/code_gen/yaml/section_dict.py +0 -0
  40. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/__init__.py +0 -0
  41. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/backup.py +0 -0
  42. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/__init__.py +0 -0
  43. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/artifacts/__init__.py +0 -0
  44. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/artifacts/load.py +0 -0
  45. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/artifacts/save.py +0 -0
  46. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/artifacts/save_or_create.py +0 -0
  47. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/artifacts/utils.py +0 -0
  48. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/codeInfo/__init__.py +0 -0
  49. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/codeInfo/copy.py +0 -0
  50. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/codeInfo/load.py +0 -0
  51. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/codeInfo/save.py +0 -0
  52. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/codeInfo/utils.py +0 -0
  53. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/evRefs/__init__.py +0 -0
  54. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/evRefs/load.py +0 -0
  55. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/evRefs/save.py +0 -0
  56. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/projects/__init__.py +0 -0
  57. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/projects/copy.py +0 -0
  58. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/projects/delete.py +0 -0
  59. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/projects/load.py +0 -0
  60. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/projects/save.py +0 -0
  61. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/projects/saveAs.py +0 -0
  62. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/projects/utils.py +0 -0
  63. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sectionVariants/__init__.py +0 -0
  64. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sectionVariants/copy.py +0 -0
  65. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sectionVariants/load.py +0 -0
  66. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sectionVariants/save.py +0 -0
  67. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sectionVariants/utils.py +0 -0
  68. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sections/__init__.py +0 -0
  69. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sections/copy.py +0 -0
  70. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sections/jsonSource.py +0 -0
  71. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sections/load.py +0 -0
  72. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sections/save.py +0 -0
  73. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/sections/utils.py +0 -0
  74. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/uiTypes/__init__.py +0 -0
  75. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/uiTypes/copy.py +0 -0
  76. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/uiTypes/load.py +0 -0
  77. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/uiTypes/save.py +0 -0
  78. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db/uiTypes/utils.py +0 -0
  79. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db_init.py +0 -0
  80. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/db_objs.py +0 -0
  81. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/export_db/__init__.py +0 -0
  82. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/export_db/export_db.py +0 -0
  83. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/export_db/export_raw.py +0 -0
  84. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/export_db/export_readable.py +0 -0
  85. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/export_db/utils.py +0 -0
  86. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/import_db.py +0 -0
  87. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/seed.py +0 -0
  88. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/settings_file.py +0 -0
  89. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/database/utils.py +0 -0
  90. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/__init__.py +0 -0
  91. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/reader.py +0 -0
  92. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/reader_fns/__init__.py +0 -0
  93. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/reader_fns/completion.py +0 -0
  94. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/reader_fns/definition.py +0 -0
  95. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/reader_fns/diagnostics.py +0 -0
  96. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/reader_fns/documentHighlight.py +0 -0
  97. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/reader_fns/references.py +0 -0
  98. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/reader_fns/signatureHelp.py +0 -0
  99. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/lsp/utils.py +0 -0
  100. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/__init__.py +0 -0
  101. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/artifact.py +0 -0
  102. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/code_info.py +0 -0
  103. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/dependencies.py +0 -0
  104. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/in_memory_fn_stdout_websocket.py +0 -0
  105. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/lsp.py +0 -0
  106. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/projects.py +0 -0
  107. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/reference_renaming.py +0 -0
  108. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/sections.py +0 -0
  109. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/settings.py +0 -0
  110. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/terminals.py +0 -0
  111. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/routers/websocket.py +0 -0
  112. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/server.py +0 -0
  113. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/start.py +0 -0
  114. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/constants/BaseUITypes.json +0 -0
  115. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/constants/Settings.json +0 -0
  116. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/constants/constants.json +0 -0
  117. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/constants/db_init.sql +0 -0
  118. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/constants/defaultValues.json +0 -0
  119. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/constants/settingsProject.json +0 -0
  120. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/android-chrome-192x192.png +0 -0
  121. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/android-chrome-512x512.png +0 -0
  122. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/apple-touch-icon.png +0 -0
  123. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_AMS-Regular-0cdd387c.woff2 +0 -0
  124. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_AMS-Regular-30da91e8.woff +0 -0
  125. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_AMS-Regular-68534840.ttf +0 -0
  126. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Bold-07d8e303.ttf +0 -0
  127. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Bold-1ae6bd74.woff +0 -0
  128. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Bold-de7701e4.woff2 +0 -0
  129. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Regular-3398dd02.woff +0 -0
  130. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Regular-5d53e70a.woff2 +0 -0
  131. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Regular-ed0b7437.ttf +0 -0
  132. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Bold-74444efd.woff2 +0 -0
  133. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Bold-9163df9c.ttf +0 -0
  134. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Bold-9be7ceb8.woff +0 -0
  135. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Regular-1e6f9579.ttf +0 -0
  136. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Regular-51814d27.woff2 +0 -0
  137. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Regular-5e28753b.woff +0 -0
  138. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-Bold-0f60d1b8.woff2 +0 -0
  139. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-Bold-138ac28d.ttf +0 -0
  140. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-Bold-c76c5d69.woff +0 -0
  141. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-BoldItalic-70ee1f64.ttf +0 -0
  142. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-BoldItalic-99cd42a3.woff2 +0 -0
  143. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-BoldItalic-a6f7ec0d.woff +0 -0
  144. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-Italic-0d85ae7c.ttf +0 -0
  145. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-Italic-97479ca6.woff2 +0 -0
  146. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-Italic-f1d6ef86.woff +0 -0
  147. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-Regular-c2342cd8.woff2 +0 -0
  148. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-Regular-c6368d87.woff +0 -0
  149. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Main-Regular-d0332f52.ttf +0 -0
  150. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Math-BoldItalic-850c0af5.woff +0 -0
  151. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Math-BoldItalic-dc47344d.woff2 +0 -0
  152. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Math-BoldItalic-f9377ab0.ttf +0 -0
  153. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Math-Italic-08ce98e5.ttf +0 -0
  154. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Math-Italic-7af58c5e.woff2 +0 -0
  155. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Math-Italic-8a8d2445.woff +0 -0
  156. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Bold-1ece03f7.ttf +0 -0
  157. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Bold-e99ae511.woff2 +0 -0
  158. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Bold-ece03cfd.woff +0 -0
  159. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Italic-00b26ac8.woff2 +0 -0
  160. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Italic-3931dd81.ttf +0 -0
  161. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Italic-91ee6750.woff +0 -0
  162. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Regular-11e4dc8a.woff +0 -0
  163. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Regular-68e8c73e.woff2 +0 -0
  164. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Regular-f36ea897.ttf +0 -0
  165. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Script-Regular-036d4e95.woff2 +0 -0
  166. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Script-Regular-1c67f068.ttf +0 -0
  167. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Script-Regular-d96cdf2b.woff +0 -0
  168. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size1-Regular-6b47c401.woff2 +0 -0
  169. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size1-Regular-95b6d2f1.ttf +0 -0
  170. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size1-Regular-c943cc98.woff +0 -0
  171. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size2-Regular-2014c523.woff +0 -0
  172. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size2-Regular-a6b2099f.ttf +0 -0
  173. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size2-Regular-d04c5421.woff2 +0 -0
  174. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size3-Regular-500e04d5.ttf +0 -0
  175. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size3-Regular-6ab6b62e.woff +0 -0
  176. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size4-Regular-99f9c675.woff +0 -0
  177. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size4-Regular-a4af7d41.woff2 +0 -0
  178. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Size4-Regular-c647367d.ttf +0 -0
  179. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Typewriter-Regular-71d517d6.woff2 +0 -0
  180. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Typewriter-Regular-e14fed02.woff +0 -0
  181. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/KaTeX_Typewriter-Regular-f01f3e87.ttf +0 -0
  182. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/cormorant-garamond-all-700-italic-c9b58582.woff +0 -0
  183. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/cormorant-garamond-cyrillic-700-italic-9101ad5f.woff2 +0 -0
  184. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/cormorant-garamond-cyrillic-ext-700-italic-950de0d6.woff2 +0 -0
  185. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/cormorant-garamond-latin-700-italic-0bc53e12.woff2 +0 -0
  186. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/cormorant-garamond-latin-ext-700-italic-525738e0.woff2 +0 -0
  187. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/cormorant-garamond-vietnamese-700-italic-99563037.woff2 +0 -0
  188. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/erase-5e0448ea.svg +0 -0
  189. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-all-400-normal-054f12d0.woff +0 -0
  190. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-all-600-normal-c03769e5.woff +0 -0
  191. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-all-800-normal-15dc6e4b.woff +0 -0
  192. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-cyrillic-400-normal-a4eee61a.woff2 +0 -0
  193. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-cyrillic-600-normal-8b14f703.woff2 +0 -0
  194. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-cyrillic-800-normal-e706eaaa.woff2 +0 -0
  195. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-cyrillic-ext-400-normal-70047a3b.woff2 +0 -0
  196. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-cyrillic-ext-600-normal-d4ab9bc4.woff2 +0 -0
  197. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-cyrillic-ext-800-normal-eae7515a.woff2 +0 -0
  198. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-greek-400-normal-381ea30d.woff2 +0 -0
  199. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-greek-600-normal-601f93a2.woff2 +0 -0
  200. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-greek-800-normal-7af4fb64.woff2 +0 -0
  201. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-greek-ext-400-normal-27027b17.woff2 +0 -0
  202. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-greek-ext-600-normal-f2ddf9de.woff2 +0 -0
  203. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-greek-ext-800-normal-4cb6189e.woff2 +0 -0
  204. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-latin-400-normal-d56fec21.woff2 +0 -0
  205. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-latin-600-normal-ff769fa6.woff2 +0 -0
  206. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-latin-800-normal-5eea1309.woff2 +0 -0
  207. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-latin-ext-400-normal-bb698d85.woff2 +0 -0
  208. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-latin-ext-600-normal-ca4808f9.woff2 +0 -0
  209. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/inter-latin-ext-800-normal-ebdacc0f.woff2 +0 -0
  210. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/logo/logo.svg +0 -0
  211. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/pen-455d7d8a.svg +0 -0
  212. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/source-code-pro-all-500-normal-6bdaa03b.woff +0 -0
  213. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/source-code-pro-cyrillic-500-normal-288a0d68.woff2 +0 -0
  214. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/source-code-pro-cyrillic-ext-500-normal-b110a13b.woff2 +0 -0
  215. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/source-code-pro-greek-500-normal-04328acb.woff2 +0 -0
  216. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/source-code-pro-latin-500-normal-06edef1e.woff2 +0 -0
  217. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/source-code-pro-latin-ext-500-normal-6dc60d5e.woff2 +0 -0
  218. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/web-vitals-44a8e082.js +0 -0
  219. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-all-400-normal-38034a3c.woff +0 -0
  220. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-all-500-normal-550d64e5.woff +0 -0
  221. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-all-600-normal-ccf14060.woff +0 -0
  222. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-all-700-normal-494c2971.woff +0 -0
  223. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-latin-400-normal-36735bc1.woff2 +0 -0
  224. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-latin-500-normal-3790bfda.woff2 +0 -0
  225. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-latin-600-normal-5fba494e.woff2 +0 -0
  226. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-latin-700-normal-a5033d0a.woff2 +0 -0
  227. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-latin-ext-400-normal-c20f571a.woff2 +0 -0
  228. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-latin-ext-500-normal-0f5ac96c.woff2 +0 -0
  229. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-latin-ext-600-normal-97a237d1.woff2 +0 -0
  230. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/assets/work-sans-latin-ext-700-normal-103e112c.woff2 +0 -0
  231. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/browserconfig.xml +0 -0
  232. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/favicon-16x16.png +0 -0
  233. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/favicon-32x32.png +0 -0
  234. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/favicon.ico +0 -0
  235. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/manifest.json +0 -0
  236. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/mstile-144x144.png +0 -0
  237. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/mstile-150x150.png +0 -0
  238. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/mstile-310x150.png +0 -0
  239. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/mstile-310x310.png +0 -0
  240. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/mstile-70x70.png +0 -0
  241. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/robots.txt +0 -0
  242. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/safari-pinned-tab.svg +0 -0
  243. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/frontend/site.webmanifest +0 -0
  244. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/seed/.DS_Store +0 -0
  245. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/static/seed/examples/.DS_Store +0 -0
  246. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/__init__.py +0 -0
  247. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/__init__.py +0 -0
  248. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/codeAreaAutocomplete.py +0 -0
  249. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/codeAreaFindTemplateVars.py +0 -0
  250. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/codeAreaInitializeCode.py +0 -0
  251. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/findEVRefs.py +0 -0
  252. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/parametersRequest.py +0 -0
  253. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/textFieldAutocomplete.py +0 -0
  254. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/textFieldInitializeCode.py +0 -0
  255. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/typeCheck.py +0 -0
  256. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/fns/utils.py +0 -0
  257. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/tasks/task_runner.py +0 -0
  258. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/terminals/__init__.py +0 -0
  259. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/terminals/terminals.py +0 -0
  260. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/terminals/utils.py +0 -0
  261. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/utils/__init__.py +0 -0
  262. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/utils/constants.py +0 -0
  263. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/utils/generate_memorable_string.py +0 -0
  264. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/utils/generate_new_filename.py +0 -0
  265. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/utils/section_contents.py +0 -0
  266. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta/utils/utils.py +0 -0
  267. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta.egg-info/dependency_links.txt +0 -0
  268. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta.egg-info/entry_points.txt +0 -0
  269. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta.egg-info/requires.txt +0 -0
  270. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/backend/setta.egg-info/top_level.txt +0 -0
  271. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/pyproject.toml +0 -0
  272. {setta-0.0.3.dev3 → setta-0.0.3.dev6}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: setta
3
- Version: 0.0.3.dev3
3
+ Version: 0.0.3.dev6
4
4
  Home-page: https://setta.dev
5
5
  Project-URL: GitHub, https://github.com/settadev/setta
6
6
  License-File: LICENSE
@@ -0,0 +1 @@
1
+ __version__ = "0.0.3.dev6"
@@ -0,0 +1 @@
1
+ from .logger import Setta, SettaImg, SettaList
@@ -402,8 +402,46 @@ def prune_and_topological_sort(code_dict, to_keep):
402
402
  return topological_sort(section_dependencies), section_dependencies
403
403
 
404
404
 
405
+ # TODO: eliminate redundancy between this and prune_and_topological_sort
406
+ def prune_and_find_top_nodes(code_dict, to_keep):
407
+ section_dependencies = {k: v["section_dependencies"] for k, v in code_dict.items()}
408
+ section_dependencies = prune_dict(section_dependencies, to_keep)
409
+ return find_top_nodes(section_dependencies), section_dependencies
410
+
411
+
412
+ def get_import_order_for_top_node(top_node, dependency_dict):
413
+ # Build a subgraph consisting of top_node and all its descendants.
414
+ subgraph = get_subgraph(top_node, dependency_dict)
415
+ # Get a topologically sorted list where each dependency comes before the node that depends on it.
416
+ sorted_nodes = topological_sort(subgraph)
417
+ # Because you plan to import starting from the end of the list and work backwards,
418
+ # reverse the topological order so that the deepest dependency is imported first.
419
+ import_order = sorted_nodes[::-1]
420
+ return import_order
421
+
422
+
423
+ def find_top_nodes(dependency_dict):
424
+ all_nodes = set(dependency_dict.keys())
425
+ all_deps = {dep for deps in dependency_dict.values() for dep in deps}
426
+ return all_nodes - all_deps
427
+
428
+
429
+ def get_subgraph(top_node, dependency_dict):
430
+ visited = set()
431
+
432
+ def dfs(node):
433
+ if node not in visited:
434
+ visited.add(node)
435
+ for dep in dependency_dict.get(node, []):
436
+ dfs(dep)
437
+
438
+ dfs(top_node)
439
+ return {node: dependency_dict.get(node, []) for node in visited}
440
+
441
+
442
+ # TODO: is this function actually necessary anymore?
405
443
  def topological_sort(objects):
406
- graph = {id: refs for id, refs in objects.items()}
444
+ graph = {node: refs for node, refs in objects.items()}
407
445
  visiting, visited = set(), set()
408
446
  order = []
409
447
 
@@ -412,16 +450,15 @@ def topological_sort(objects):
412
450
  raise ValueError("Circular reference detected")
413
451
  if node not in visited:
414
452
  visiting.add(node)
415
- for neighbour in graph[node]:
416
- dfs(neighbour)
453
+ for neighbor in graph.get(node, []):
454
+ dfs(neighbor)
417
455
  visiting.remove(node)
418
456
  visited.add(node)
419
457
  order.append(node)
420
458
 
421
- for id in objects.keys():
422
- if id not in visited:
423
- dfs(id)
424
-
459
+ for node in graph.keys():
460
+ if node not in visited:
461
+ dfs(node)
425
462
  return order[::-1]
426
463
 
427
464
 
@@ -75,17 +75,34 @@ class LSPEventHandler(FileSystemEventHandler):
75
75
  self.callback = callback
76
76
  self.loop = loop
77
77
 
78
- def on_any_event(self, event: FileSystemEvent):
78
+ def on_created(self, event: FileSystemEvent):
79
79
  if event.is_directory:
80
80
  return
81
+ changes = [{"uri": self._path_to_uri(event.src_path), "type": 1}]
82
+ self._send_changes(changes)
81
83
 
82
- changes = [
83
- {
84
- "uri": self._path_to_uri(event.src_path),
85
- "type": self._get_change_type(event),
86
- }
87
- ]
84
+ def on_modified(self, event: FileSystemEvent):
85
+ if event.is_directory:
86
+ return
87
+ changes = [{"uri": self._path_to_uri(event.src_path), "type": 2}]
88
+ self._send_changes(changes)
89
+
90
+ def on_deleted(self, event: FileSystemEvent):
91
+ if event.is_directory:
92
+ return
93
+ changes = [{"uri": self._path_to_uri(event.src_path), "type": 3}]
94
+ self._send_changes(changes)
88
95
 
96
+ def on_moved(self, event: FileSystemEvent):
97
+ if event.is_directory:
98
+ return
99
+ # Treat move as deletion of the old path and creation of the new path.
100
+ changes_del = [{"uri": self._path_to_uri(event.src_path), "type": 3}]
101
+ changes_cre = [{"uri": self._path_to_uri(event.dest_path), "type": 1}]
102
+ self._send_changes(changes_del)
103
+ self._send_changes(changes_cre)
104
+
105
+ def _send_changes(self, changes):
89
106
  if asyncio.iscoroutinefunction(self.callback):
90
107
  self.loop.call_soon_threadsafe(
91
108
  lambda: self.loop.create_task(self.callback(changes))
@@ -94,20 +111,4 @@ class LSPEventHandler(FileSystemEventHandler):
94
111
  self.callback(changes)
95
112
 
96
113
  def _path_to_uri(self, path: str) -> str:
97
- """Convert file path to URI format."""
98
114
  return Path(path).as_uri()
99
-
100
- def _get_change_type(self, event: FileSystemEvent) -> int:
101
- """
102
- Convert watchdog event type to LSP change type.
103
- 1: Created
104
- 2: Changed
105
- 3: Deleted
106
- """
107
- if event.event_type == "created":
108
- return 1
109
- elif event.event_type == "modified":
110
- return 2
111
- elif event.event_type == "deleted":
112
- return 3
113
- return 2 # Default to changed
@@ -147,4 +147,4 @@ class LanguageServerInteractor:
147
147
  return obj["version"]
148
148
 
149
149
  def get_code_metadata(self, uri):
150
- return self.code_metadata[uri.lower()]
150
+ return self.code_metadata[uri]
@@ -268,7 +268,7 @@ class LanguageServerWriter(LanguageServerInteractor):
268
268
  asyncio.create_task(async_task)
269
269
 
270
270
  def get_workspace_uri(self):
271
- return f"file://{self.workspace_folder}".lower()
271
+ return f"file://{self.workspace_folder}"
272
272
 
273
273
  def get_base_uri(self, code_id):
274
274
  return self.code_folder / f"{code_id}.py"
@@ -277,7 +277,7 @@ class LanguageServerWriter(LanguageServerInteractor):
277
277
  def get_uri(self, code_id, virtual):
278
278
  base_uri = self.get_base_uri(code_id)
279
279
  prefix = "untitled:" if virtual else "file://"
280
- uri = f"{prefix}{base_uri}".lower()
280
+ uri = f"{prefix}{base_uri}"
281
281
  if platform.system() == "Windows":
282
282
  uri += "/" # need trailing slash on Windows for some reason
283
283
  return uri
@@ -4,7 +4,8 @@ from pydantic import BaseModel
4
4
 
5
5
  from setta.code_gen.create_runnable_scripts import (
6
6
  generate_final_code_for_sections,
7
- prune_and_topological_sort,
7
+ get_import_order_for_top_node,
8
+ prune_and_find_top_nodes,
8
9
  sanitize_section_path_full_name,
9
10
  )
10
11
  from setta.code_gen.export_selected import (
@@ -13,6 +14,7 @@ from setta.code_gen.export_selected import (
13
14
  get_section_code,
14
15
  get_section_type,
15
16
  )
17
+ from setta.code_gen.find_placeholders import parse_template_var
16
18
  from setta.tasks.fns.utils import replace_template_vars_with_random_names
17
19
  from setta.utils.constants import C
18
20
  from setta.utils.utils import multireplace
@@ -23,7 +25,7 @@ router = APIRouter()
23
25
 
24
26
 
25
27
  class UpdateInteractiveCodeRequest(BaseModel):
26
- project: dict
28
+ projects: list
27
29
 
28
30
 
29
31
  class FormatCodeRequest(BaseModel):
@@ -37,7 +39,19 @@ async def route_update_interactive_code(
37
39
  tasks=Depends(get_tasks),
38
40
  lsp_writers=Depends(get_lsp_writers),
39
41
  ):
40
- p = x.project
42
+ idx = 0
43
+ dependencies = set()
44
+ content = []
45
+ for p in x.projects:
46
+ result = await update_interactive_code(p, tasks, lsp_writers, idx)
47
+ dependencies.update(result["dependencies"])
48
+ content.extend(result["content"])
49
+ idx += 1
50
+ dependencies = list(dependencies)
51
+ return {"dependencies": dependencies, "content": content}
52
+
53
+
54
+ async def update_interactive_code(p, tasks, lsp_writers, idx):
41
55
  exporter_obj = export_selected(
42
56
  p, always_export_args_objs=False, force_include_template_var=True
43
57
  )
@@ -46,11 +60,11 @@ async def route_update_interactive_code(
46
60
  template_var_replacement_values = {}
47
61
  for variant in p["sectionVariants"].values():
48
62
  for t in variant["templateVars"]:
49
- if not t["sectionId"]:
50
- continue
51
- template_var_replacement_values[
52
- t["keyword"]
53
- ] = create_in_memory_module_name(p, t["sectionId"])
63
+ _, keyword_type = parse_template_var(t["keyword"])
64
+ if t["sectionId"] and keyword_type == C.TEMPLATE_VAR_IMPORT_PATH_SUFFIX:
65
+ template_var_replacement_values[
66
+ t["keyword"]
67
+ ] = create_in_memory_module_name(p, t["sectionId"])
54
68
 
55
69
  code_dict = await generate_final_code_for_sections(
56
70
  p,
@@ -62,24 +76,29 @@ async def route_update_interactive_code(
62
76
  template_var_replacement_values=template_var_replacement_values,
63
77
  )
64
78
 
65
- to_import, _ = prune_and_topological_sort(code_dict, p["importCodeBlocks"])
66
- to_import = to_import[::-1] # we want to import the dependencies first
67
- code_list = []
68
- for section_id in to_import:
69
- v = code_dict[section_id]
70
- task_name = create_in_memory_module_name(p, section_id)
71
- code_list.append(
79
+ top_node_ids, section_dependencies = prune_and_find_top_nodes(
80
+ code_dict, p["runCodeBlocks"]
81
+ )
82
+ code_graph = []
83
+ project_config_id = p["projectConfig"]["id"]
84
+ for section_id in top_node_ids:
85
+ code_graph.append(
72
86
  {
73
- "code": v["code"],
74
- "module_name": task_name,
87
+ "subprocess_key": f"{project_config_id}-{section_id}-{idx}",
88
+ "code": code_dict[section_id]["code"],
89
+ "imports": get_import_order_for_top_node(
90
+ section_id, section_dependencies
91
+ ),
92
+ "module_name": create_in_memory_module_name(p, section_id),
75
93
  }
76
94
  )
77
95
 
78
- metadata, error_msgs, content = await tasks.add_custom_fns(
79
- code_list,
96
+ dependencies, content = await tasks.add_custom_fns(
97
+ code_graph,
80
98
  to_cache=exporter_obj_in_memory,
81
99
  )
82
- return {"metadata": metadata, "errorMsgs": error_msgs, "content": content}
100
+
101
+ return {"dependencies": dependencies, "content": content}
83
102
 
84
103
 
85
104
  @router.post(C.ROUTE_FORMAT_CODE)