bohr-agent-sdk 0.1.116__py3-none-any.whl → 0.1.118__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bohr-agent-sdk
3
- Version: 0.1.116
3
+ Version: 0.1.118
4
4
  Summary: SDK for scientific agents
5
5
  Home-page: https://github.com/dptech-corp/bohr-agent-sdk/
6
6
  Author: DP Technology
@@ -62,7 +62,7 @@ dp/agent/device/device/__init__.py,sha256=w7_1S16S1vWUq0RGl0GFgjq2vFkc5oNvy8cQTn
62
62
  dp/agent/device/device/device.py,sha256=9ZRIJth-4qMO-i-u_b_cO3d6a4eTbTQjPaxFsV_zEkc,9643
63
63
  dp/agent/device/device/types.py,sha256=JuxB-hjf1CjjvfBxCLwRAXVFlYS-nPEdiJpBWLFVCzo,1924
64
64
  dp/agent/server/__init__.py,sha256=rckaYd8pbYyB4ENEhgjXKeGMXjdnrgcJpdM1gu5u1Wc,508
65
- dp/agent/server/calculation_mcp_server.py,sha256=L07b0JNMkEjF6UvdKWTkRB14yehXo8QoU4or7lCwiNw,18618
65
+ dp/agent/server/calculation_mcp_server.py,sha256=D28eEwcaOGRHq3Vwgm-eJINRVU5vz46HDTvmWnouCKQ,19045
66
66
  dp/agent/server/preprocessor.py,sha256=XUWu7QOwo_sIDMYS2b1OTrM33EXEVH_73vk-ju1Ok8A,1264
67
67
  dp/agent/server/utils.py,sha256=cIKaAg8UaP5yMwvIVTgUVBjy-B3S16bEdnucUf4UDIM,2055
68
68
  dp/agent/server/executor/__init__.py,sha256=s95M5qKQk39Yi9qaVJZhk_nfj54quSf7EDghR3OCFUA,248
@@ -75,8 +75,8 @@ dp/agent/server/storage/bohrium_storage.py,sha256=EsKX4dWWvZTn2TEhZv4zsvihfDK0mm
75
75
  dp/agent/server/storage/http_storage.py,sha256=KiySq7g9-iJr12XQCKKyJLn8wJoDnSRpQAR5_qPJ1ZU,1471
76
76
  dp/agent/server/storage/local_storage.py,sha256=t1wfjByjXew9ws3PuUxWxmZQ0-Wt1a6t4wmj3fW62GI,1352
77
77
  dp/agent/server/storage/oss_storage.py,sha256=pgjmi7Gir3Y5wkMDCvU4fvSls15fXT7Ax-h9MYHFPK0,3359
78
- bohr_agent_sdk-0.1.116.dist-info/METADATA,sha256=KycMnrdj1v0eud8EOYzXhMSPX6ISX0rE8aPNou4oJlk,11070
79
- bohr_agent_sdk-0.1.116.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
80
- bohr_agent_sdk-0.1.116.dist-info/entry_points.txt,sha256=5n5kneF5IbDQtoQ2WfF-QuBjDtsimJte9Rv9baSGgc0,86
81
- bohr_agent_sdk-0.1.116.dist-info/top_level.txt,sha256=87xLUDhu_1nQHoGLwlhJ6XlO7OsjILh6i1nX6ljFzDo,3
82
- bohr_agent_sdk-0.1.116.dist-info/RECORD,,
78
+ bohr_agent_sdk-0.1.118.dist-info/METADATA,sha256=vNyEqSDKjWct5yfQIMwFYFz45Ofw71ODoceNhmAk7Vw,11070
79
+ bohr_agent_sdk-0.1.118.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
80
+ bohr_agent_sdk-0.1.118.dist-info/entry_points.txt,sha256=5n5kneF5IbDQtoQ2WfF-QuBjDtsimJte9Rv9baSGgc0,86
81
+ bohr_agent_sdk-0.1.118.dist-info/top_level.txt,sha256=87xLUDhu_1nQHoGLwlhJ6XlO7OsjILh6i1nX6ljFzDo,3
82
+ bohr_agent_sdk-0.1.118.dist-info/RECORD,,
@@ -371,7 +371,9 @@ class CalculationMCPServer:
371
371
  self.mcp._tool_manager._tools[tool.name] = tool
372
372
  return tool
373
373
 
374
- def tool(self, preprocess_func=None, create_workdir=True):
374
+ def tool(self, preprocess_func=None, create_workdir=None):
375
+ # When create_workdir is None, do not create workdir when fn is async
376
+ # and running locally to avoid chdir conflicts, create otherwise
375
377
  if preprocess_func is None:
376
378
  preprocess_func = self.preprocess_func
377
379
 
@@ -381,7 +383,10 @@ class CalculationMCPServer:
381
383
  **kwargs) -> SubmitResult:
382
384
  trace_id = datetime.today().strftime('%Y-%m-%d-%H:%M:%S.%f')
383
385
  logger.info("Job processing (Trace ID: %s)" % trace_id)
384
- workdir = trace_id if create_workdir else "."
386
+ if create_workdir is False:
387
+ workdir = "."
388
+ else:
389
+ workdir = trace_id
385
390
  with set_directory(workdir):
386
391
  if preprocess_func is not None:
387
392
  executor, storage, kwargs = preprocess_func(
@@ -417,14 +422,19 @@ class CalculationMCPServer:
417
422
  context = self.mcp.get_context()
418
423
  trace_id = datetime.today().strftime('%Y-%m-%d-%H:%M:%S.%f')
419
424
  logger.info("Job processing (Trace ID: %s)" % trace_id)
420
- workdir = trace_id if create_workdir else "."
425
+ if preprocess_func is not None:
426
+ executor, storage, kwargs = preprocess_func(
427
+ executor, storage, kwargs)
428
+ executor_type, executor = init_executor(executor)
429
+ if create_workdir is False or (
430
+ create_workdir is None and inspect.iscoroutinefunction(fn)
431
+ and executor_type == "local"):
432
+ workdir = "."
433
+ else:
434
+ workdir = trace_id
421
435
  with set_directory(workdir):
422
- if preprocess_func is not None:
423
- executor, storage, kwargs = preprocess_func(
424
- executor, storage, kwargs)
425
436
  kwargs, input_artifacts = handle_input_artifacts(
426
437
  fn, kwargs, storage)
427
- executor_type, executor = init_executor(executor)
428
438
  res = await executor.async_run(
429
439
  fn, kwargs, context, workdir)
430
440
  exec_id = res["job_id"]