vis-agent 0.3.4.dev8092__tar.gz → 0.3.4.dev8106__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 (157) hide show
  1. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/PKG-INFO +1 -1
  2. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/pyproject.toml +1 -1
  3. vis_agent-0.3.4.dev8106/release-tag +1 -0
  4. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_sdk_bootstrap.py +18 -2
  5. vis_agent-0.3.4.dev8092/release-tag +0 -1
  6. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/.gitignore +0 -0
  7. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/LICENSE +0 -0
  8. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/README.md +0 -0
  9. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-arguments.json +0 -0
  10. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-cases.json +0 -0
  11. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-copy.json +0 -0
  12. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-execution.json +0 -0
  13. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-groups.json +0 -0
  14. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-read-session.json +0 -0
  15. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-reads.json +0 -0
  16. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-results.json +0 -0
  17. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-stream.json +0 -0
  18. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity-tables.json +0 -0
  19. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/activity.json +0 -0
  20. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/diff.json +0 -0
  21. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/live-primitives.json +0 -0
  22. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/session-health.json +0 -0
  23. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/fixtures/view.json +0 -0
  24. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/activity.json +0 -0
  25. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/agents.json +0 -0
  26. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/automations.json +0 -0
  27. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/common.json +0 -0
  28. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/config.json +0 -0
  29. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/content.json +0 -0
  30. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/council.json +0 -0
  31. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/diff.json +0 -0
  32. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/evals.json +0 -0
  33. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/gateway.json +0 -0
  34. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/provider.json +0 -0
  35. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/rooms.json +0 -0
  36. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/symbol.json +0 -0
  37. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/toggle.json +0 -0
  38. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/contracts/schema/view.json +0 -0
  39. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/examples/greeter/tests/test_greeter.py +0 -0
  40. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/hatch_build.py +0 -0
  41. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/__init__.py +0 -0
  42. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/_contracts.py +0 -0
  43. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/_outside.py +0 -0
  44. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/_wire.py +0 -0
  45. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/activity.py +0 -0
  46. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/__init__.py +0 -0
  47. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_agent.py +0 -0
  48. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_agents.py +0 -0
  49. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_client.py +0 -0
  50. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_council.py +0 -0
  51. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_extensions.py +0 -0
  52. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_host.py +0 -0
  53. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_install.py +0 -0
  54. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_local.py +0 -0
  55. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_models.py +0 -0
  56. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/engine/_speech.py +0 -0
  57. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/__init__.py +0 -0
  58. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/_gateway.py +0 -0
  59. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/agent.py +0 -0
  60. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/bench.py +0 -0
  61. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/check.py +0 -0
  62. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/compare.py +0 -0
  63. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/environment.py +0 -0
  64. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/grade.py +0 -0
  65. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/harbor.py +0 -0
  66. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/judge-rubric.toml +0 -0
  67. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/judge.py +0 -0
  68. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/labels.py +0 -0
  69. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/leaderboard.py +0 -0
  70. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/lic.py +0 -0
  71. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/longmemeval.py +0 -0
  72. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/mrcr.py +0 -0
  73. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/repeats.py +0 -0
  74. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/report.py +0 -0
  75. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/reports.py +0 -0
  76. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/rounds.py +0 -0
  77. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/stages.py +0 -0
  78. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/stats.py +0 -0
  79. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/evals/trajectory.py +0 -0
  80. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/extension.py +0 -0
  81. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/extension_package.py +0 -0
  82. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/py.typed +0 -0
  83. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/rooms.py +0 -0
  84. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/src/blockether/vis/views.py +0 -0
  85. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/conftest.py +0 -0
  86. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/evals_atif.py +0 -0
  87. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_activity.py +0 -0
  88. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_agent.py +0 -0
  89. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_agent_extension_lifecycle.py +0 -0
  90. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_agent_extensions.py +0 -0
  91. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_agents.py +0 -0
  92. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_api_guides.py +0 -0
  93. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_attachments.py +0 -0
  94. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_authoring.py +0 -0
  95. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_catalog.py +0 -0
  96. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_catalog_recipe.py +0 -0
  97. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_ci_report_recipe.py +0 -0
  98. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_client.py +0 -0
  99. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_client_extensions_engine.py +0 -0
  100. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_code_quality_recipe.py +0 -0
  101. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_contracts.py +0 -0
  102. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_council.py +0 -0
  103. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_declarations.py +0 -0
  104. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_engine.py +0 -0
  105. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_engine_docstrings.py +0 -0
  106. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_agent.py +0 -0
  107. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_bench.py +0 -0
  108. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_check.py +0 -0
  109. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_compare.py +0 -0
  110. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_environment.py +0 -0
  111. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_gateway.py +0 -0
  112. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_grade.py +0 -0
  113. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_guards.py +0 -0
  114. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_harbor.py +0 -0
  115. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_judge.py +0 -0
  116. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_labels.py +0 -0
  117. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_lic.py +0 -0
  118. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_longmemeval.py +0 -0
  119. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_mrcr.py +0 -0
  120. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_repeats.py +0 -0
  121. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_report.py +0 -0
  122. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_rounds.py +0 -0
  123. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_stages.py +0 -0
  124. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_stats.py +0 -0
  125. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_tasks.py +0 -0
  126. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_evals_trajectory.py +0 -0
  127. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_extension_package.py +0 -0
  128. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_extension_reference.py +0 -0
  129. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_gateway_performance.py +0 -0
  130. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_goals.py +0 -0
  131. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_install.py +0 -0
  132. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_live_primitives.py +0 -0
  133. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_live_wait.py +0 -0
  134. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_local.py +0 -0
  135. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_method_typing.py +0 -0
  136. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_models.py +0 -0
  137. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_monitor_recipe.py +0 -0
  138. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_namespace.py +0 -0
  139. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_outside.py +0 -0
  140. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_providers.py +0 -0
  141. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_read_session.py +0 -0
  142. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_record_arguments.py +0 -0
  143. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_registration.py +0 -0
  144. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_repair_hooks.py +0 -0
  145. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_result_sequence.py +0 -0
  146. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_rooms.py +0 -0
  147. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_scoped_settings.py +0 -0
  148. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_sdk_guide.py +0 -0
  149. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_sdk_typing.py +0 -0
  150. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_shortcuts_live.py +0 -0
  151. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_speech.py +0 -0
  152. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_structured_live.py +0 -0
  153. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_symbol_contract.py +0 -0
  154. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_testing.py +0 -0
  155. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_text_list_arguments.py +0 -0
  156. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_tools.py +0 -0
  157. {vis_agent-0.3.4.dev8092 → vis_agent-0.3.4.dev8106}/tests/test_views.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vis-agent
3
- Version: 0.3.4.dev8092
3
+ Version: 0.3.4.dev8106
4
4
  Summary: The Vis Python SDK — author extensions and control local or remote engines.
5
5
  Project-URL: Homepage, https://vis.blockether.com
6
6
  Project-URL: Documentation, https://vis.blockether.com
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
8
8
 
9
9
  [project]
10
10
  name = "vis-agent"
11
- version = "0.3.4.dev8092"
11
+ version = "0.3.4.dev8106"
12
12
  description = "The Vis Python SDK — author extensions and control local or remote engines."
13
13
  readme = "README.md"
14
14
  requires-python = ">=3.12"
@@ -0,0 +1 @@
1
+ beta-38320f2487239eff4f791611de57e6ea1ee1e919
@@ -21,9 +21,9 @@ def bootstrap(monkeypatch):
21
21
  )
22
22
  monkeypatch.delitem(sys.modules, "blockether.vis._outside")
23
23
  # The engine stages each guest module next to vis_sdk.py, so its imports resolve.
24
- monkeypatch.syspath_prepend(str(REPOSITORY / "resources/vis-guest"))
24
+ monkeypatch.syspath_prepend(str(REPOSITORY / "resources/vis-host-python"))
25
25
  spec = importlib.util.spec_from_file_location(
26
- "vis_sdk", REPOSITORY / "resources/vis-guest/vis_sdk.py"
26
+ "vis_sdk", REPOSITORY / "resources/vis-host-python/vis_sdk.py"
27
27
  )
28
28
  module = importlib.util.module_from_spec(spec)
29
29
  spec.loader.exec_module(module)
@@ -79,6 +79,22 @@ def test_explicit_extension_host_is_not_reused_by_sandbox(bootstrap):
79
79
  assert extension.state["key"] == "trusted key"
80
80
 
81
81
 
82
+ def test_sandbox_installs_share_one_module_for_one_source(bootstrap):
83
+ # Each sandbox session installs the SDK. Executing the body each time cost
84
+ # about 15 ms for each new session.
85
+ parent = importlib.import_module("blockether.vis")
86
+ sandbox = bootstrap(SOURCE)
87
+ hosted = bootstrap(SOURCE, SimpleNamespace())
88
+
89
+ again = bootstrap(SOURCE)
90
+
91
+ assert hosted is not sandbox
92
+ assert again is sandbox
93
+ assert sys.modules["blockether.vis.extension"] is sandbox
94
+ assert parent.extension is sandbox
95
+ assert bootstrap(SOURCE + "\n") is not sandbox
96
+
97
+
82
98
  @pytest.mark.parametrize("previous", [True, False])
83
99
  def test_failed_load_restores_previous_module(bootstrap, monkeypatch, previous):
84
100
  parent = importlib.import_module("blockether.vis")
@@ -1 +0,0 @@
1
- beta-aada8f93cffb9c5de516bb8b02a25a9cdb281913