sapiopycommons 2025.2.14a434__tar.gz → 2025.2.14a436__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.
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/PKG-INFO +1 -1
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/pyproject.toml +1 -1
- {sapiopycommons-2025.2.14a434/src/sapiopycommons/elain → sapiopycommons-2025.2.14a436/src/sapiopycommons/ai}/tool_of_tools.py +29 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/.gitignore +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/LICENSE +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/README.md +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434/src/sapiopycommons/callbacks → sapiopycommons-2025.2.14a436/src/sapiopycommons/ai}/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434/src/sapiopycommons/chem → sapiopycommons-2025.2.14a436/src/sapiopycommons/callbacks}/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/callbacks/callback_util.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/callbacks/field_builder.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/chem/IndigoMolecules.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/chem/Molecules.py +0 -0
- {sapiopycommons-2025.2.14a434/src/sapiopycommons/customreport → sapiopycommons-2025.2.14a436/src/sapiopycommons/chem}/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434/src/sapiopycommons/datatype → sapiopycommons-2025.2.14a436/src/sapiopycommons/customreport}/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/customreport/auto_pagers.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/customreport/column_builder.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/customreport/custom_report_builder.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/customreport/term_builder.py +0 -0
- {sapiopycommons-2025.2.14a434/src/sapiopycommons/elain → sapiopycommons-2025.2.14a436/src/sapiopycommons/datatype}/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/datatype/attachment_util.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/datatype/data_fields.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/datatype/pseudo_data_types.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/eln/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/eln/experiment_handler.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/eln/experiment_report_util.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/eln/plate_designer.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/complex_data_loader.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/file_bridge.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/file_bridge_handler.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/file_data_handler.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/file_util.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/file_validator.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/file_writer.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/flowcyto/flow_cyto.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/flowcyto/flowcyto_data.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/accession_service.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/aliases.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/audit_log.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/custom_report_util.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/directive_util.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/exceptions.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/popup_util.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/sapio_links.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/storage_util.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/time_util.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/multimodal/multimodal.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/multimodal/multimodal_data.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/processtracking/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/processtracking/custom_workflow_handler.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/processtracking/endpoints.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/recordmodel/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/recordmodel/record_handler.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/rules/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/rules/eln_rule_handler.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/rules/on_save_rule_handler.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/samples/aliquot.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/sftpconnect/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/sftpconnect/sftp_builder.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/webhook/__init__.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/webhook/webhook_context.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/webhook/webhook_handlers.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/webhook/webservice_handlers.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/AF-A0A009IHW8-F1-model_v4.cif +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/_do_not_add_init_py_here +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/accession_test.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/aliquot_test.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/bio_reg_test.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/chem_test.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/chem_test_curation_queue.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/curation_queue_test.sdf +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/data_type_models.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/flowcyto/101_DEN084Y5_15_E01_008_clean.fcs +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/flowcyto/101_DEN084Y5_15_E03_009_clean.fcs +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/flowcyto/101_DEN084Y5_15_E05_010_clean.fcs +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/flowcyto/8_color_ICS.wsp +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/flowcyto/COVID19_W_001_O.fcs +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/flowcyto_test.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/kappa.chains.fasta +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/mafft_test.py +0 -0
- {sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/test.gb +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: sapiopycommons
|
|
3
|
-
Version: 2025.2.
|
|
3
|
+
Version: 2025.2.14a436
|
|
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,4 +1,5 @@
|
|
|
1
1
|
import base64
|
|
2
|
+
import io
|
|
2
3
|
import math
|
|
3
4
|
import re
|
|
4
5
|
from typing import Final, Mapping, Any
|
|
@@ -27,6 +28,8 @@ from sapiopycommons.callbacks.field_builder import FieldBuilder
|
|
|
27
28
|
from sapiopycommons.general.aliases import AliasUtil, SapioRecord
|
|
28
29
|
from sapiopycommons.general.exceptions import SapioException
|
|
29
30
|
from sapiopycommons.general.time_util import TimeUtil
|
|
31
|
+
from sapiopycommons.multimodal.multimodal import MultiModalManager
|
|
32
|
+
from sapiopycommons.multimodal.multimodal_data import ImageDataRequestPojo
|
|
30
33
|
|
|
31
34
|
CREDENTIALS_HEADER: Final[str] = "SAPIO_APP_API_KEY"
|
|
32
35
|
API_URL_HEADER: Final[str] = "SAPIO_APP_API_URL"
|
|
@@ -388,6 +391,32 @@ class AiHelper:
|
|
|
388
391
|
file_contents: bytes = f.read()
|
|
389
392
|
return self.create_attachment_entry(tab, entry_name, file_path, file_contents)
|
|
390
393
|
|
|
394
|
+
def smiles_to_svg(self, smiles: list[str]) -> list[bytes]:
|
|
395
|
+
"""
|
|
396
|
+
Given a list of SMILES strings, return a list of the corresponding images in SVG format.
|
|
397
|
+
|
|
398
|
+
:param smiles: The SMILES strings to retrieve images for.
|
|
399
|
+
:return: The images in SVG format. The indices of the returned list correspond to the indices of the input
|
|
400
|
+
SMILES.
|
|
401
|
+
"""
|
|
402
|
+
if not smiles:
|
|
403
|
+
return []
|
|
404
|
+
reg_man = MultiModalManager(self.user)
|
|
405
|
+
image_list: list[str] = reg_man.load_image_data(ImageDataRequestPojo(smiles, False))
|
|
406
|
+
return [x.encode() for x in image_list]
|
|
407
|
+
|
|
408
|
+
def update_record_images(self, records: list[SapioRecord], images: list[bytes]) -> None:
|
|
409
|
+
"""
|
|
410
|
+
Update the images of the given records with the given images.
|
|
411
|
+
|
|
412
|
+
:param records: The records to update the images of.
|
|
413
|
+
:param images: The images to update the records with. Records will be match with the image in the matching
|
|
414
|
+
index of this list.
|
|
415
|
+
"""
|
|
416
|
+
for record, image in zip(AliasUtil.to_data_records(records), images):
|
|
417
|
+
with io.BytesIO(image) as bytes_io:
|
|
418
|
+
self.dr_man.set_record_image(record, bytes_io)
|
|
419
|
+
|
|
391
420
|
|
|
392
421
|
class ToolOfToolsHelper:
|
|
393
422
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/chem/Molecules.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/eln/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/files/file_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/general/aliases.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/rules/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/samples/aliquot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/src/sapiopycommons/webhook/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/AF-A0A009IHW8-F1-model_v4.cif
RENAMED
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/_do_not_add_init_py_here
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/chem_test_curation_queue.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/flowcyto/8_color_ICS.wsp
RENAMED
|
File without changes
|
{sapiopycommons-2025.2.14a434 → sapiopycommons-2025.2.14a436}/tests/flowcyto/COVID19_W_001_O.fcs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|