sapiopycommons 2025.3.25a459__py3-none-any.whl → 2025.3.27a461__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.

Potentially problematic release.


This version of sapiopycommons might be problematic. Click here for more details.

@@ -590,6 +590,9 @@ class ExperimentHandler:
590
590
  """
591
591
  Set the experiment's status to Completed. Makes a webservice call to update the experiment. Checks if the
592
592
  experiment is already completed, and does nothing if so.
593
+
594
+ NOTE: This will cause the usual process tracking logic to run as if you'd clicked the "Complete Experiment"
595
+ toolbar button. This includes moving the in process samples forward to the next step in the process.
593
596
  """
594
597
  if not self.experiment_is_complete():
595
598
  self._protocol.complete_protocol()
@@ -600,9 +603,11 @@ class ExperimentHandler:
600
603
  Set the experiment's status to Canceled. Makes a webservice call to update the experiment. Checks if the
601
604
  experiment is already canceled, and does nothing if so.
602
605
 
603
- NOTE: This will not run the usual logic around canceling an experiment that you'd see if canceling the
604
- experiment using the "Cancel Experiment" toolbar button, such as moving in process samples back to the queue,
605
- as those changes are tied to the button instead of being on the experiment status change.
606
+ NOTE: This will cause the usual process tracking logic to run as if you'd clicked the "Cancel Experiment"
607
+ toolbar button. This includes moving the in process samples back into the process queue for the current step.
608
+
609
+ On version 24.12 and earlier, this was not the case, as the process tracking logic was tied to the button
610
+ instead of being on the experiment status change.
606
611
  """
607
612
  if not self.experiment_is_canceled():
608
613
  self._protocol.cancel_protocol()
@@ -10,8 +10,7 @@ class SapioNavigationLinker:
10
10
  Given a URL to a system's webservice API (example: https://company.exemplareln.com/webservice/api), construct
11
11
  URLs for navigation links to various locations in the system.
12
12
  """
13
- client_url: str
14
- webservice_url: str
13
+ base_url: str
15
14
 
16
15
  def __init__(self, url: str | SapioUser | SapioWebhookContext):
17
16
  """
@@ -22,14 +21,7 @@ class SapioNavigationLinker:
22
21
  url = url.user.url
23
22
  elif isinstance(url, SapioUser):
24
23
  url = url.url
25
- self.webservice_url = url.rstrip("/")
26
- self.client_url = url.rstrip("/").replace('webservice/api', 'veloxClient')
27
-
28
- def homepage(self) -> str:
29
- """
30
- :return: A URL for navigating to the system's homepage.
31
- """
32
- return self.client_url + "/#view=homepage"
24
+ self.base_url = url.rstrip("/").replace('webservice/api', 'veloxClient')
33
25
 
34
26
  def data_record(self, record_identifier: RecordIdentifier, data_type_name: DataTypeIdentifier | None = None) -> str:
35
27
  """
@@ -47,7 +39,7 @@ class SapioNavigationLinker:
47
39
  if not data_type_name:
48
40
  raise SapioException("Unable to create a data record link without a data type name. "
49
41
  "Only a record ID was provided.")
50
- return self.client_url + f"/#dataType={data_type_name};recordId={record_id};view=dataRecord"
42
+ return self.base_url + f"/#dataType={data_type_name};recordId={record_id};view=dataRecord"
51
43
 
52
44
  def experiment(self, experiment: ExperimentIdentifier) -> str:
53
45
  """
@@ -55,4 +47,4 @@ class SapioNavigationLinker:
55
47
  object, experiment protocol, or a notebook ID.
56
48
  :return: A URL for navigating to the input experiment.
57
49
  """
58
- return self.client_url + f"/#notebookExperimentId={AliasUtil.to_notebook_id(experiment)};view=eln"
50
+ return self.base_url + f"/#notebookExperimentId={AliasUtil.to_notebook_id(experiment)};view=eln"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sapiopycommons
3
- Version: 2025.3.25a459
3
+ Version: 2025.3.27a461
4
4
  Summary: Official Sapio Python API Utilities Package
5
5
  Project-URL: Homepage, https://github.com/sapiosciences
6
6
  Author-email: Jonathan Steck <jsteck@sapiosciences.com>, Yechen Qiao <yqiao@sapiosciences.com>
@@ -1,6 +1,4 @@
1
1
  sapiopycommons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- sapiopycommons/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- sapiopycommons/ai/tool_of_tools.py,sha256=zYmQ4rNX-qYQnc-vNDnYZjtv9JgmQAmVVuHfVOdBF3w,46984
4
2
  sapiopycommons/callbacks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
3
  sapiopycommons/callbacks/callback_util.py,sha256=sz76LzD9sVLPMcoOpmzPe1aILGXcpHfyZ-qex8oR11c,130849
6
4
  sapiopycommons/callbacks/field_builder.py,sha256=p2XacN99MuKk3ite8GAqstUMpixqugul2CsC4gB83-o,38620
@@ -17,7 +15,7 @@ sapiopycommons/datatype/attachment_util.py,sha256=N-nhsJ0oxa_Ft6Y6VWeNFYLzfuQqsj
17
15
  sapiopycommons/datatype/data_fields.py,sha256=pczUlEcE0TeHEDU0Gkvu7voacSLPXCB7l9UbI1Tb6V0,5656
18
16
  sapiopycommons/datatype/pseudo_data_types.py,sha256=6TG7aJxgmUZ8FQkWBcgmbK5oy7AFFNtKOPpi1w1OOYA,27657
19
17
  sapiopycommons/eln/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- sapiopycommons/eln/experiment_handler.py,sha256=FeqmjnxN5WyDDstN3_AMSo9r7nQi-5zou4m-3K5JsYM,123363
18
+ sapiopycommons/eln/experiment_handler.py,sha256=d99KHi9AV_sFTXH2jbm3OQhUeAUygzxJRSnOnHdEL2U,123667
21
19
  sapiopycommons/eln/experiment_report_util.py,sha256=NNNNPVD3_2ZAjoOqCMOnlnmPD0SCjDcgYi453ATSJBs,37027
22
20
  sapiopycommons/eln/experiment_tags.py,sha256=7-fpOiSqrjbXmWIJhEhaxMgLsVCPAtKqH8xRzpDVKoE,356
23
21
  sapiopycommons/eln/plate_designer.py,sha256=ix2cflz13PAHyu4deS3d5Qd3kQXk0C7IQxBQ2Dm9fEM,13692
@@ -38,9 +36,8 @@ sapiopycommons/general/audit_log.py,sha256=KQq0PsvukUoE3l6TQb3-vpu5-MbSINpWlnQ9e
38
36
  sapiopycommons/general/custom_report_util.py,sha256=NwwmejSQLwSbrndEk1gPyFNYk9GZoS7Wrp9ab9moFgw,18014
39
37
  sapiopycommons/general/directive_util.py,sha256=7SeQrd2Ye5JHlXZtJZaVGgtaSLdq_Vm9EObuxf44Pz8,3905
40
38
  sapiopycommons/general/exceptions.py,sha256=aPlzK1cvxeMU5UsokYlLrIBGltUfJZ7LH8zvLh9DxpI,3233
41
- sapiopycommons/general/html_formatter.py,sha256=HE3OeGgwOw6x53zGSc4-UzP4-JoOmQIz3pX-DzNVg94,17138
42
39
  sapiopycommons/general/popup_util.py,sha256=HKILegU1uCL_6abNlNL0Wn3xgX2JNa_kJeq7e5CZu6Q,31923
43
- sapiopycommons/general/sapio_links.py,sha256=YkcVKNLrSGoM7tCCXBAsIbIxylctwdcEyhePrRMODe0,2859
40
+ sapiopycommons/general/sapio_links.py,sha256=o9Z-8y2rz6AI0Cy6tq58ElPge9RBnisGc9NyccbaJxs,2610
44
41
  sapiopycommons/general/storage_util.py,sha256=ovmK_jN7v09BoX07XxwShpBUC5WYQOM7dbKV_VeLXJU,8892
45
42
  sapiopycommons/general/time_util.py,sha256=jU1urPoZRv6evNucR0-288EyT4PrsDpCr-H1-7BKq9A,12363
46
43
  sapiopycommons/multimodal/multimodal.py,sha256=PFaGJPbKvW__tnxb8KkgkJZOKjQdgxF_kGfD5chet1s,6779
@@ -60,7 +57,7 @@ sapiopycommons/webhook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
60
57
  sapiopycommons/webhook/webhook_context.py,sha256=D793uLsb1691SalaPnBUk3rOSxn_hYLhdvkaIxjNXss,1909
61
58
  sapiopycommons/webhook/webhook_handlers.py,sha256=L0HetSm43NvA5KyW3xbLpGFh2DbAaeZJVtXIEl2fvV8,39689
62
59
  sapiopycommons/webhook/webservice_handlers.py,sha256=Y5dHx_UFWFuSqaoPL6Re-fsKYRuxvCWZ8bj6KSZ3jfM,14285
63
- sapiopycommons-2025.3.25a459.dist-info/METADATA,sha256=IYk0QEYICLPvek_a1d6QVLCreYY_sIzi_L9lk8TnbrI,3143
64
- sapiopycommons-2025.3.25a459.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
65
- sapiopycommons-2025.3.25a459.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
66
- sapiopycommons-2025.3.25a459.dist-info/RECORD,,
60
+ sapiopycommons-2025.3.27a461.dist-info/METADATA,sha256=RtSeg9hG0LT9gTvcfMwuBBLsZ2DwtKy9EudHL6-h1oQ,3143
61
+ sapiopycommons-2025.3.27a461.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
62
+ sapiopycommons-2025.3.27a461.dist-info/licenses/LICENSE,sha256=HyVuytGSiAUQ6ErWBHTqt1iSGHhLmlC8fO7jTCuR8dU,16725
63
+ sapiopycommons-2025.3.27a461.dist-info/RECORD,,
File without changes