sapiopycommons 2025.3.25a459__tar.gz → 2025.3.27a461__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.

Potentially problematic release.


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

Files changed (85) hide show
  1. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/PKG-INFO +1 -1
  2. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/pyproject.toml +1 -1
  3. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/eln/experiment_handler.py +8 -3
  4. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/sapio_links.py +4 -12
  5. sapiopycommons-2025.3.25a459/src/sapiopycommons/ai/tool_of_tools.py +0 -917
  6. sapiopycommons-2025.3.25a459/src/sapiopycommons/general/html_formatter.py +0 -456
  7. sapiopycommons-2025.3.25a459/src/sapiopycommons/webhook/__init__.py +0 -0
  8. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/.gitignore +0 -0
  9. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/LICENSE +0 -0
  10. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/README.md +0 -0
  11. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/__init__.py +0 -0
  12. {sapiopycommons-2025.3.25a459/src/sapiopycommons/ai → sapiopycommons-2025.3.27a461/src/sapiopycommons/callbacks}/__init__.py +0 -0
  13. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/callbacks/callback_util.py +0 -0
  14. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/callbacks/field_builder.py +0 -0
  15. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/chem/IndigoMolecules.py +0 -0
  16. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/chem/Molecules.py +0 -0
  17. {sapiopycommons-2025.3.25a459/src/sapiopycommons/callbacks → sapiopycommons-2025.3.27a461/src/sapiopycommons/chem}/__init__.py +0 -0
  18. {sapiopycommons-2025.3.25a459/src/sapiopycommons/chem → sapiopycommons-2025.3.27a461/src/sapiopycommons/customreport}/__init__.py +0 -0
  19. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/customreport/auto_pagers.py +0 -0
  20. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/customreport/column_builder.py +0 -0
  21. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/customreport/custom_report_builder.py +0 -0
  22. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/customreport/term_builder.py +0 -0
  23. {sapiopycommons-2025.3.25a459/src/sapiopycommons/customreport → sapiopycommons-2025.3.27a461/src/sapiopycommons/datatype}/__init__.py +0 -0
  24. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/datatype/attachment_util.py +0 -0
  25. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/datatype/data_fields.py +0 -0
  26. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/datatype/pseudo_data_types.py +0 -0
  27. {sapiopycommons-2025.3.25a459/src/sapiopycommons/datatype → sapiopycommons-2025.3.27a461/src/sapiopycommons/eln}/__init__.py +0 -0
  28. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/eln/experiment_report_util.py +0 -0
  29. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/eln/experiment_tags.py +0 -0
  30. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/eln/plate_designer.py +0 -0
  31. {sapiopycommons-2025.3.25a459/src/sapiopycommons/eln → sapiopycommons-2025.3.27a461/src/sapiopycommons/files}/__init__.py +0 -0
  32. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/files/complex_data_loader.py +0 -0
  33. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/files/file_bridge.py +0 -0
  34. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/files/file_bridge_handler.py +0 -0
  35. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/files/file_data_handler.py +0 -0
  36. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/files/file_util.py +0 -0
  37. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/files/file_validator.py +0 -0
  38. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/files/file_writer.py +0 -0
  39. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/flowcyto/flow_cyto.py +0 -0
  40. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/flowcyto/flowcyto_data.py +0 -0
  41. {sapiopycommons-2025.3.25a459/src/sapiopycommons/files → sapiopycommons-2025.3.27a461/src/sapiopycommons/general}/__init__.py +0 -0
  42. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/accession_service.py +0 -0
  43. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/aliases.py +0 -0
  44. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/audit_log.py +0 -0
  45. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/custom_report_util.py +0 -0
  46. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/directive_util.py +0 -0
  47. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/exceptions.py +0 -0
  48. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/popup_util.py +0 -0
  49. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/storage_util.py +0 -0
  50. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/general/time_util.py +0 -0
  51. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/multimodal/multimodal.py +0 -0
  52. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/multimodal/multimodal_data.py +0 -0
  53. {sapiopycommons-2025.3.25a459/src/sapiopycommons/general → sapiopycommons-2025.3.27a461/src/sapiopycommons/processtracking}/__init__.py +0 -0
  54. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/processtracking/custom_workflow_handler.py +0 -0
  55. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/processtracking/endpoints.py +0 -0
  56. {sapiopycommons-2025.3.25a459/src/sapiopycommons/processtracking → sapiopycommons-2025.3.27a461/src/sapiopycommons/recordmodel}/__init__.py +0 -0
  57. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/recordmodel/record_handler.py +0 -0
  58. {sapiopycommons-2025.3.25a459/src/sapiopycommons/recordmodel → sapiopycommons-2025.3.27a461/src/sapiopycommons/rules}/__init__.py +0 -0
  59. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/rules/eln_rule_handler.py +0 -0
  60. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/rules/on_save_rule_handler.py +0 -0
  61. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/samples/aliquot.py +0 -0
  62. {sapiopycommons-2025.3.25a459/src/sapiopycommons/rules → sapiopycommons-2025.3.27a461/src/sapiopycommons/sftpconnect}/__init__.py +0 -0
  63. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/sftpconnect/sftp_builder.py +0 -0
  64. {sapiopycommons-2025.3.25a459/src/sapiopycommons/sftpconnect → sapiopycommons-2025.3.27a461/src/sapiopycommons/webhook}/__init__.py +0 -0
  65. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/webhook/webhook_context.py +0 -0
  66. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/webhook/webhook_handlers.py +0 -0
  67. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/src/sapiopycommons/webhook/webservice_handlers.py +0 -0
  68. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/AF-A0A009IHW8-F1-model_v4.cif +0 -0
  69. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/_do_not_add_init_py_here +0 -0
  70. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/accession_test.py +0 -0
  71. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/aliquot_test.py +0 -0
  72. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/bio_reg_test.py +0 -0
  73. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/chem_test.py +0 -0
  74. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/chem_test_curation_queue.py +0 -0
  75. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/curation_queue_test.sdf +0 -0
  76. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/data_type_models.py +0 -0
  77. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/flowcyto/101_DEN084Y5_15_E01_008_clean.fcs +0 -0
  78. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/flowcyto/101_DEN084Y5_15_E03_009_clean.fcs +0 -0
  79. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/flowcyto/101_DEN084Y5_15_E05_010_clean.fcs +0 -0
  80. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/flowcyto/8_color_ICS.wsp +0 -0
  81. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/flowcyto/COVID19_W_001_O.fcs +0 -0
  82. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/flowcyto_test.py +0 -0
  83. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/kappa.chains.fasta +0 -0
  84. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/mafft_test.py +0 -0
  85. {sapiopycommons-2025.3.25a459 → sapiopycommons-2025.3.27a461}/tests/test.gb +0 -0
@@ -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>
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sapiopycommons"
7
- version='2025.03.25a459'
7
+ version='2025.03.27a461'
8
8
  authors = [
9
9
  { name="Jonathan Steck", email="jsteck@sapiosciences.com" },
10
10
  { name="Yechen Qiao", email="yqiao@sapiosciences.com" },
@@ -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"