setta 0.0.14.dev4__tar.gz → 0.0.14.dev5__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.14.dev4/backend/setta.egg-info → setta-0.0.14.dev5}/PKG-INFO +1 -1
  2. setta-0.0.14.dev5/backend/setta/__init__.py +1 -0
  3. setta-0.0.14.dev5/backend/setta/tasks/task_runner.py +41 -0
  4. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/tasks.py +53 -22
  5. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/utils.py +19 -6
  6. {setta-0.0.14.dev4 → setta-0.0.14.dev5/backend/setta.egg-info}/PKG-INFO +1 -1
  7. setta-0.0.14.dev4/backend/setta/__init__.py +0 -1
  8. setta-0.0.14.dev4/backend/setta/tasks/task_runner.py +0 -29
  9. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/LICENSE +0 -0
  10. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/MANIFEST.in +0 -0
  11. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/README.md +0 -0
  12. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/cli/__init__.py +0 -0
  13. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/cli/connect.py +0 -0
  14. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/cli/logger.py +0 -0
  15. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/__init__.py +0 -0
  16. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/create_runnable_scripts.py +0 -0
  17. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/export_selected.py +0 -0
  18. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/find_placeholders.py +0 -0
  19. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/python/__init__.py +0 -0
  20. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/python/ast_utils.py +0 -0
  21. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/python/check_scope.py +0 -0
  22. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/python/generate_code.py +0 -0
  23. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/python/make_parseable.py +0 -0
  24. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/python/position_line_col.py +0 -0
  25. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/python/validate_imports.py +0 -0
  26. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/utils.py +0 -0
  27. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/yaml/__init__.py +0 -0
  28. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/yaml/generate_yaml.py +0 -0
  29. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/code_gen/yaml/section_dict.py +0 -0
  30. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/__init__.py +0 -0
  31. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/backup.py +0 -0
  32. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/__init__.py +0 -0
  33. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/artifacts/__init__.py +0 -0
  34. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/artifacts/load.py +0 -0
  35. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/artifacts/save.py +0 -0
  36. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/artifacts/save_or_create.py +0 -0
  37. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/artifacts/utils.py +0 -0
  38. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/codeInfo/__init__.py +0 -0
  39. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/codeInfo/copy.py +0 -0
  40. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/codeInfo/load.py +0 -0
  41. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/codeInfo/save.py +0 -0
  42. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/codeInfo/utils.py +0 -0
  43. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/evRefs/__init__.py +0 -0
  44. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/evRefs/load.py +0 -0
  45. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/evRefs/save.py +0 -0
  46. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/projects/__init__.py +0 -0
  47. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/projects/copy.py +0 -0
  48. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/projects/delete.py +0 -0
  49. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/projects/load.py +0 -0
  50. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/projects/save.py +0 -0
  51. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/projects/saveAs.py +0 -0
  52. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/projects/utils.py +0 -0
  53. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sectionVariants/__init__.py +0 -0
  54. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sectionVariants/copy.py +0 -0
  55. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sectionVariants/load.py +0 -0
  56. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sectionVariants/save.py +0 -0
  57. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sectionVariants/utils.py +0 -0
  58. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sections/__init__.py +0 -0
  59. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sections/copy.py +0 -0
  60. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sections/jsonSource.py +0 -0
  61. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sections/load.py +0 -0
  62. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sections/save.py +0 -0
  63. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/sections/utils.py +0 -0
  64. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/uiTypes/__init__.py +0 -0
  65. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/uiTypes/copy.py +0 -0
  66. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/uiTypes/load.py +0 -0
  67. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/uiTypes/save.py +0 -0
  68. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db/uiTypes/utils.py +0 -0
  69. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db_init.py +0 -0
  70. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/db_objs.py +0 -0
  71. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/export_db/__init__.py +0 -0
  72. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/export_db/export_db.py +0 -0
  73. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/export_db/export_raw.py +0 -0
  74. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/export_db/export_readable.py +0 -0
  75. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/export_db/utils.py +0 -0
  76. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/import_db.py +0 -0
  77. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/seed.py +0 -0
  78. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/settings_file.py +0 -0
  79. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/database/utils.py +0 -0
  80. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/__init__.py +0 -0
  81. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/file_watcher.py +0 -0
  82. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/reader.py +0 -0
  83. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/reader_fns/__init__.py +0 -0
  84. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/reader_fns/completion.py +0 -0
  85. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/reader_fns/definition.py +0 -0
  86. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/reader_fns/diagnostics.py +0 -0
  87. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/reader_fns/documentHighlight.py +0 -0
  88. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/reader_fns/references.py +0 -0
  89. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/reader_fns/signatureHelp.py +0 -0
  90. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/server.py +0 -0
  91. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/specific_file_watcher.py +0 -0
  92. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/utils.py +0 -0
  93. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/lsp/writer.py +0 -0
  94. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/__init__.py +0 -0
  95. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/artifact.py +0 -0
  96. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/code_info.py +0 -0
  97. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/dependencies.py +0 -0
  98. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/in_memory_fn_stdout_websocket.py +0 -0
  99. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/interactive.py +0 -0
  100. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/lsp.py +0 -0
  101. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/projects.py +0 -0
  102. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/reference_renaming.py +0 -0
  103. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/sections.py +0 -0
  104. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/settings.py +0 -0
  105. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/terminals.py +0 -0
  106. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/routers/websocket.py +0 -0
  107. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/server.py +0 -0
  108. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/start.py +0 -0
  109. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/constants/BaseUITypes.json +0 -0
  110. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/constants/Settings.json +0 -0
  111. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/constants/constants.json +0 -0
  112. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/constants/db_init.sql +0 -0
  113. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/constants/defaultValues.json +0 -0
  114. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/constants/settingsProject.json +0 -0
  115. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/android-chrome-192x192.png +0 -0
  116. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/android-chrome-512x512.png +0 -0
  117. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/apple-touch-icon.png +0 -0
  118. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  119. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  120. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  121. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  122. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  123. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  124. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  125. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  126. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  127. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  128. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  129. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  130. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  131. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  132. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  133. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  134. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  135. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  136. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  137. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  138. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  139. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  140. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  141. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  142. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  143. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  144. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  145. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  146. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  147. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  148. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  149. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  150. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  151. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  152. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  153. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  154. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  155. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  156. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  157. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  158. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  159. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  160. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  161. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  162. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  163. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  164. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  165. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  166. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  167. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  168. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  169. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  170. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  171. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  172. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  173. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  174. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  175. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  176. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  177. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/cormorant-garamond-all-700-italic-D-4m7eF5.woff +0 -0
  178. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/cormorant-garamond-cyrillic-700-italic-C21vCyEA.woff2 +0 -0
  179. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/cormorant-garamond-cyrillic-ext-700-italic-gsr366qd.woff2 +0 -0
  180. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/cormorant-garamond-latin-700-italic-BQbwEFjx.woff2 +0 -0
  181. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/cormorant-garamond-latin-ext-700-italic-DnnS5iSC.woff2 +0 -0
  182. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/cormorant-garamond-vietnamese-700-italic-2_nTgjbG.woff2 +0 -0
  183. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/index-B8656WgG.js +0 -0
  184. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/index-DQjclEVk.css +0 -0
  185. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-all-400-normal-ByZ5TkcW.woff +0 -0
  186. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-all-600-normal-BQl_S1BW.woff +0 -0
  187. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-all-800-normal-BdAoPad8.woff +0 -0
  188. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-cyrillic-400-normal-BdCE3qi6.woff2 +0 -0
  189. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-cyrillic-600-normal-7XOpjHIA.woff2 +0 -0
  190. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-cyrillic-800-normal-DGhuWe7d.woff2 +0 -0
  191. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-cyrillic-ext-400-normal-BWPw_Wqo.woff2 +0 -0
  192. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-cyrillic-ext-600-normal-ejcnWb4M.woff2 +0 -0
  193. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-cyrillic-ext-800-normal-DBv1a6vS.woff2 +0 -0
  194. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-greek-400-normal-B1y6FevT.woff2 +0 -0
  195. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-greek-600-normal-C2fO7_LG.woff2 +0 -0
  196. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-greek-800-normal-Cmzsyk9X.woff2 +0 -0
  197. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-greek-ext-400-normal-CDYjSWzV.woff2 +0 -0
  198. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-greek-ext-600-normal-aFl-DVOe.woff2 +0 -0
  199. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-greek-ext-800-normal-BDfRYppl.woff2 +0 -0
  200. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-latin-400-normal-C0b7ZYuD.woff2 +0 -0
  201. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-latin-600-normal-Do_HpvrI.woff2 +0 -0
  202. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-latin-800-normal-4xo3UuPr.woff2 +0 -0
  203. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-latin-ext-400-normal-CoAAiu5e.woff2 +0 -0
  204. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-latin-ext-600-normal-Dc00Iig3.woff2 +0 -0
  205. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/inter-latin-ext-800-normal-MtSFSlwC.woff2 +0 -0
  206. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/logo/logo.svg +0 -0
  207. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/source-code-pro-all-500-normal-r3XLtphf.woff +0 -0
  208. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/source-code-pro-cyrillic-500-normal-CY1ydVwz.woff2 +0 -0
  209. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/source-code-pro-cyrillic-ext-500-normal-CfYAfiCF.woff2 +0 -0
  210. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/source-code-pro-greek-500-normal-CAXYj0Fh.woff2 +0 -0
  211. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/source-code-pro-latin-500-normal-D9gpC5Cq.woff2 +0 -0
  212. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/source-code-pro-latin-ext-500-normal-CRAmHsi-.woff2 +0 -0
  213. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-all-400-normal-DjvUmtn7.woff +0 -0
  214. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-all-500-normal-xIKbAjND.woff +0 -0
  215. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-all-600-normal-G3qI_FYS.woff +0 -0
  216. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-all-700-normal-DDAKfh8R.woff +0 -0
  217. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-latin-400-normal-DiMJuv0g.woff2 +0 -0
  218. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-latin-500-normal-Bj5Gxvqh.woff2 +0 -0
  219. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-latin-600-normal-DqkZaPuW.woff2 +0 -0
  220. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-latin-700-normal-DrOaUiEE.woff2 +0 -0
  221. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-latin-ext-400-normal-DVtzt6WA.woff2 +0 -0
  222. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-latin-ext-500-normal-Ci3LVpiW.woff2 +0 -0
  223. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-latin-ext-600-normal-BROvLH43.woff2 +0 -0
  224. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/assets/work-sans-latin-ext-700-normal-qcgZR4tS.woff2 +0 -0
  225. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/browserconfig.xml +0 -0
  226. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/favicon-16x16.png +0 -0
  227. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/favicon-32x32.png +0 -0
  228. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/favicon.ico +0 -0
  229. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/index.html +0 -0
  230. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/manifest.json +0 -0
  231. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/mstile-144x144.png +0 -0
  232. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/mstile-150x150.png +0 -0
  233. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/mstile-310x150.png +0 -0
  234. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/mstile-310x310.png +0 -0
  235. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/mstile-70x70.png +0 -0
  236. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/robots.txt +0 -0
  237. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/safari-pinned-tab.svg +0 -0
  238. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/frontend/site.webmanifest +0 -0
  239. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/seed/.DS_Store +0 -0
  240. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/static/seed/examples/.DS_Store +0 -0
  241. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/__init__.py +0 -0
  242. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/__init__.py +0 -0
  243. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/codeAreaAutocomplete.py +0 -0
  244. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/codeAreaFindTemplateVars.py +0 -0
  245. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/codeAreaInitializeCode.py +0 -0
  246. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/findEVRefs.py +0 -0
  247. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/parametersRequest.py +0 -0
  248. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/textFieldAutocomplete.py +0 -0
  249. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/textFieldInitializeCode.py +0 -0
  250. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/typeCheck.py +0 -0
  251. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/tasks/fns/utils.py +0 -0
  252. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/terminals/__init__.py +0 -0
  253. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/terminals/terminals.py +0 -0
  254. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/terminals/utils.py +0 -0
  255. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/utils/__init__.py +0 -0
  256. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/utils/constants.py +0 -0
  257. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/utils/generate_memorable_string.py +0 -0
  258. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/utils/generate_new_filename.py +0 -0
  259. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/utils/section_contents.py +0 -0
  260. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/utils/utils.py +0 -0
  261. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta/utils/websocket_manager.py +0 -0
  262. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta.egg-info/SOURCES.txt +0 -0
  263. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta.egg-info/dependency_links.txt +0 -0
  264. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta.egg-info/entry_points.txt +0 -0
  265. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta.egg-info/requires.txt +0 -0
  266. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/backend/setta.egg-info/top_level.txt +0 -0
  267. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/pyproject.toml +0 -0
  268. {setta-0.0.14.dev4 → setta-0.0.14.dev5}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: setta
3
- Version: 0.0.14.dev4
3
+ Version: 0.0.14.dev5
4
4
  Summary: Python without the donkeywork.
5
5
  Home-page: https://setta.dev
6
6
  Author: Kevin Musgrave, Jeff Musgrave
@@ -0,0 +1 @@
1
+ __version__ = "0.0.14.dev5"
@@ -0,0 +1,41 @@
1
+ import asyncio
2
+ import inspect
3
+ import logging
4
+ import traceback
5
+ from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor
6
+ from enum import Enum
7
+
8
+ logger = logging.getLogger(__name__)
9
+
10
+
11
+ class RunType(Enum):
12
+ SUBPROCESS = "SUBPROCESS"
13
+ THREAD = "THREAD"
14
+ NONE = "NONE"
15
+
16
+
17
+ class TaskRunner:
18
+ def __init__(self):
19
+ self.thread_executor = ThreadPoolExecutor(max_workers=2)
20
+ self.process_executor = ProcessPoolExecutor(max_workers=2)
21
+
22
+ async def run(self, fn, fn_args, run_as):
23
+ logger.debug(f"TaskRunner running function {fn.__name__} with run_as={run_as}")
24
+ try:
25
+ if inspect.iscoroutinefunction(fn):
26
+ return await fn(*fn_args)
27
+
28
+ if run_as == RunType.NONE:
29
+ return fn(*fn_args)
30
+ elif run_as == RunType.THREAD:
31
+ executor = self.thread_executor
32
+ elif run_as == RunType.SUBPROCESS:
33
+ executor = self.process_executor
34
+
35
+ return await asyncio.get_running_loop().run_in_executor(
36
+ executor, fn, *fn_args
37
+ )
38
+ except Exception as e:
39
+ logger.error(f"Error in TaskRunner.run: {str(e)}")
40
+ traceback.print_exc()
41
+ raise
@@ -3,6 +3,7 @@ import copy
3
3
  import json
4
4
  import logging
5
5
  import time
6
+ import traceback
6
7
  from typing import Dict
7
8
 
8
9
  from setta.database.utils import create_new_id
@@ -87,15 +88,25 @@ class Tasks:
87
88
  or None in fnInfo["dependencies"]
88
89
  or any(k in fnInfo["dependencies"] for k in message.content.keys())
89
90
  ):
90
- # Send message to subprocess
91
- sp_info["subprocess"].parent_conn.send(
92
- {
93
- "type": call_type,
94
- "fn_name": fn_name,
95
- "message": message,
96
- "other_data": other_data,
97
- }
91
+ logger.debug(
92
+ f"Sending message to subprocess {sp_key}, function {fn_name}, message type: {call_type}"
98
93
  )
94
+ try:
95
+ # Send message to subprocess
96
+ sp_info["subprocess"].parent_conn.send(
97
+ {
98
+ "type": call_type,
99
+ "fn_name": fn_name,
100
+ "message": message,
101
+ "other_data": other_data,
102
+ }
103
+ )
104
+ except Exception as e:
105
+ logger.error(
106
+ f"Error sending message to subprocess {sp_key}: {str(e)}"
107
+ )
108
+ traceback.print_exc()
109
+ continue # Skip to next function if we can't send
99
110
 
100
111
  # Create task for receiving response
101
112
  task = asyncio.create_task(
@@ -127,23 +138,43 @@ class Tasks:
127
138
  self, subprocess_key, fn_name, msg_id, recv_fn, websocket_manager, results
128
139
  ):
129
140
  # Run the receive function in a thread
141
+ logger.debug(
142
+ f"Waiting for response from subprocess {subprocess_key}, function {fn_name}"
143
+ )
130
144
  start_time = time.perf_counter()
131
- result = await self.task_runner.run(recv_fn, [], RunType.THREAD)
132
- elapsed_time = time.perf_counter() - start_time
133
- if result["status"] == "success":
134
- self.update_average_subprocess_fn_time(
135
- subprocess_key, fn_name, elapsed_time
145
+ try:
146
+ result = await self.task_runner.run(recv_fn, [], RunType.THREAD)
147
+ logger.debug(
148
+ f"Received response from subprocess {subprocess_key}, function {fn_name}: status={result.get('status', 'unknown')}"
136
149
  )
137
- if websocket_manager is not None:
138
- if result["content"]:
139
- await websocket_manager.send_message_to_requester(
140
- msg_id, result["content"], result["messageType"]
141
- )
142
- await self.maybe_send_latest_run_time_info(
143
- subprocess_key, fn_name, msg_id, websocket_manager
150
+
151
+ elapsed_time = time.perf_counter() - start_time
152
+ if result["status"] == "success":
153
+ self.update_average_subprocess_fn_time(
154
+ subprocess_key, fn_name, elapsed_time
144
155
  )
145
- else:
146
- results.append(result)
156
+ if websocket_manager is not None:
157
+ if result["content"]:
158
+ await websocket_manager.send_message_to_requester(
159
+ msg_id, result["content"], result["messageType"]
160
+ )
161
+ await self.maybe_send_latest_run_time_info(
162
+ subprocess_key, fn_name, msg_id, websocket_manager
163
+ )
164
+ else:
165
+ results.append(result)
166
+ except EOFError:
167
+ logger.error(
168
+ f"EOF error when receiving response from subprocess {subprocess_key}, function {fn_name}"
169
+ )
170
+ # Add stack trace to see where exactly the error occurs
171
+ traceback.print_exc()
172
+ # Consider adding a placeholder result or raising to caller
173
+ except Exception as e:
174
+ logger.error(
175
+ f"Error receiving response from subprocess {subprocess_key}, function {fn_name}: {str(e)}"
176
+ )
177
+ traceback.print_exc()
147
178
 
148
179
  async def add_custom_fns(self, code_graph, exporter_obj):
149
180
  for c in code_graph:
@@ -61,8 +61,17 @@ class SettaInMemoryFnSubprocess:
61
61
  sys.stderr = output_capture
62
62
 
63
63
  while True:
64
- msg = self.child_conn.recv() # Wait for requests
65
- msg_type = msg["type"]
64
+ try:
65
+ msg = self.child_conn.recv()
66
+ msg_type = msg["type"]
67
+ logger.debug(f"Subprocess received message type: {msg_type}")
68
+ except EOFError:
69
+ logger.error("EOF error when receiving message in subprocess")
70
+ break
71
+ except Exception as e:
72
+ logger.error(f"Error receiving message in subprocess: {str(e)}")
73
+ traceback.print_exc()
74
+ break
66
75
 
67
76
  if msg_type == "shutdown":
68
77
  # Signal all worker threads to stop
@@ -145,11 +154,14 @@ class SettaInMemoryFnSubprocess:
145
154
  self, fn_name, fn_message_queues, fns_dict, cache, lock, send_lock, child_conn
146
155
  ):
147
156
  """Worker thread that processes messages for a specific function"""
157
+ logger.debug(f"Started worker thread for {fn_name}")
148
158
  while True:
149
159
  try:
150
160
  # Get a message from the queue
151
161
  msg = fn_message_queues[fn_name].get()
152
-
162
+ logger.debug(
163
+ f"Worker thread for {fn_name} got message of type: {msg.get('type') if msg else 'None'}"
164
+ )
153
165
  if msg is None: # Sentinel value to stop the thread
154
166
  break
155
167
 
@@ -241,10 +253,11 @@ class SettaInMemoryFnSubprocess:
241
253
 
242
254
  # Send shutdown message to the subprocess
243
255
  try:
256
+ logger.debug("Sending shutdown message to subprocess")
244
257
  self.parent_conn.send({"type": "shutdown"})
245
- except (BrokenPipeError, EOFError):
246
- # Pipe might already be closed, that's okay
247
- pass
258
+ logger.debug("Shutdown message sent")
259
+ except (BrokenPipeError, EOFError) as e:
260
+ logger.error(f"Error sending shutdown message: {str(e)}")
248
261
 
249
262
  # Join the process with timeout
250
263
  self.process.join(timeout=2)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: setta
3
- Version: 0.0.14.dev4
3
+ Version: 0.0.14.dev5
4
4
  Summary: Python without the donkeywork.
5
5
  Home-page: https://setta.dev
6
6
  Author: Kevin Musgrave, Jeff Musgrave
@@ -1 +0,0 @@
1
- __version__ = "0.0.14.dev4"
@@ -1,29 +0,0 @@
1
- import asyncio
2
- import inspect
3
- from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor
4
- from enum import Enum
5
-
6
-
7
- class RunType(Enum):
8
- SUBPROCESS = "SUBPROCESS"
9
- THREAD = "THREAD"
10
- NONE = "NONE"
11
-
12
-
13
- class TaskRunner:
14
- def __init__(self):
15
- self.thread_executor = ThreadPoolExecutor(max_workers=2)
16
- self.process_executor = ProcessPoolExecutor(max_workers=2)
17
-
18
- async def run(self, fn, fn_args, run_as):
19
- if inspect.iscoroutinefunction(fn):
20
- return await fn(*fn_args)
21
-
22
- if run_as == RunType.NONE:
23
- return fn(*fn_args)
24
- elif run_as == RunType.THREAD:
25
- executor = self.thread_executor
26
- elif run_as == RunType.SUBPROCESS:
27
- executor = self.process_executor
28
-
29
- return await asyncio.get_running_loop().run_in_executor(executor, fn, *fn_args)
File without changes
File without changes
File without changes