From c83025a0f88e088a2b78ab1eff017cdc0357b724 Mon Sep 17 00:00:00 2001 From: ndamania00 Date: Mon, 17 Feb 2025 08:15:51 -0500 Subject: [PATCH 1/2] part link in mappers --- liminal/mappers.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/liminal/mappers.py b/liminal/mappers.py index fd9cad2..b493a2a 100644 --- a/liminal/mappers.py +++ b/liminal/mappers.py @@ -91,13 +91,10 @@ def convert_field_type_to_api_field_type( BenchlingAPIFieldType.FILE_LINK, BenchlingFolderItemType.SEQUENCE, ), - BenchlingFieldType.PART_LINK: ( - BenchlingAPIFieldType.PART_LINK, - BenchlingFolderItemType.SEQUENCE, - ), + BenchlingFieldType.PART_LINK: (BenchlingAPIFieldType.PART_LINK, None), BenchlingFieldType.TRANSLATION_LINK: ( BenchlingAPIFieldType.TRANSLATION_LINK, - BenchlingFolderItemType.SEQUENCE, + None, ), BenchlingFieldType.ENTITY_LINK: (BenchlingAPIFieldType.FILE_LINK, None), BenchlingFieldType.DECIMAL: (BenchlingAPIFieldType.FLOAT, None), @@ -138,10 +135,7 @@ def convert_api_field_type_to_field_type( BenchlingAPIFieldType.FILE_LINK, BenchlingFolderItemType.PROTEIN, ): BenchlingFieldType.AA_SEQUENCE_LINK, - ( - BenchlingAPIFieldType.PART_LINK, - BenchlingFolderItemType.SEQUENCE, - ): BenchlingFieldType.PART_LINK, + (BenchlingAPIFieldType.PART_LINK, None): BenchlingFieldType.PART_LINK, ( BenchlingAPIFieldType.TRANSLATION_LINK, None, From c24f93c1fd2fb6de79a4a8e9408567cd364053cf Mon Sep 17 00:00:00 2001 From: ndamania00 Date: Mon, 17 Feb 2025 08:21:53 -0500 Subject: [PATCH 2/2] update validation --- liminal/enums/benchling_field_type.py | 2 +- liminal/orm/column.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/liminal/enums/benchling_field_type.py b/liminal/enums/benchling_field_type.py index da877f6..91cc451 100644 --- a/liminal/enums/benchling_field_type.py +++ b/liminal/enums/benchling_field_type.py @@ -35,4 +35,4 @@ def get_non_multi_select_types(cls) -> list[str]: @classmethod def get_entity_link_types(cls) -> list[str]: - return [cls.ENTITY_LINK, cls.TRANSLATION_LINK] + return [cls.ENTITY_LINK, cls.TRANSLATION_LINK, cls.PART_LINK] diff --git a/liminal/orm/column.py b/liminal/orm/column.py index a294dfa..3068196 100644 --- a/liminal/orm/column.py +++ b/liminal/orm/column.py @@ -75,11 +75,11 @@ def __init__( raise ValueError("Dropdown must be set if the field type is DROPDOWN.") if entity_link and type not in BenchlingFieldType.get_entity_link_types(): raise ValueError( - "Entity link can only be set if the field type is ENTITY_LINK or TRANSLATION_LINK." + f"Entity link can only be set if the field type is one of {BenchlingFieldType.get_entity_link_types()}." ) if parent_link and type not in BenchlingFieldType.get_entity_link_types(): raise ValueError( - "Parent link can only be set if the field type is ENTITY_LINK or TRANSLATION_LINK." + f"Parent link can only be set if the field type is one of {BenchlingFieldType.get_entity_link_types()}." ) if type in BenchlingFieldType.get_non_multi_select_types() and is_multi is True: raise ValueError(f"Field type {type} cannot have multi-value set as True.")